lp 问题可以在Portfolio Optimization Problem中找到。该问题基于 Guy yollins 演示R Tools for Portfolio Optimization中的 cvar 优化。
当我在 R 中读取 lp 文件并执行它时,找到了最佳解决方案。而当我通过 glpsol 执行相同操作时,它会显示“LP 没有原始可行的解决方案”。我使用 glpsol 作为纸浆,当求解器参数为纸浆.GLPK() 时,内部使用 glpsol 来求解 lp。
在 R 中运行 lp 的步骤:
library("Rglpk")
problem <- Rglpk_read_file("path/to/problem.lp", "CPLEX_LP")
solution <- Rglpk_solve_LP(problem$objective, problem$constraints[[1]], problem$constraints[[2]], problem$constraints[[3]], problem$bounds, problem$types, problem$maximum, control=list("verbose" = TRUE))
print(solution$status)
print(solution$solution)
在 glpsol 中运行 lp 的步骤:
glpsol --cpxlp "path/to/problem.lp" -o output.sol
知道为什么吗?我尝试在 R 中查看 Rglpk_solve_lp 函数的代码。它似乎正在调用 glpk c 库的 glp_simplex 函数。我猜 glpsol 也在内部调用 glp_simplex 。
环境详情:
OS:Ubuntu 12.04
R 版本:3.02
Rglpk 版本:0.5-1(GLPK 4.52 版本随源码包提供)
glpsol 版本:4.52