我正在Python中使用PuLP库来解决MILP问题。我已经使用默认求解器(CBC)成功运行了我的问题。现在,我想将PuLP与另一个求解器(GLPK)一起使用。 如何使用GLPK设置PuLP?
我已经在线进行了一些研究,发现了有关如何使用GLPK的信息(例如,与lp_prob.solve(pulp.GLPK_CMD())
一起使用),但是还没有找到有关如何实际使用GLPK(或任何其他求解器)设置PuLP的信息。 ,以便找到我的GLPK安装。我已经单独安装了GLPK(但是我没有将其添加到PATH环境变量中)。
我运行了命令pulp.pulpTestAll()
并得到:
Solver <class 'pulp.solvers.GLPK_CMD'> unavailable
我知道我应该获得“通过”而不是“不可用”才能使用它。
答案 0 :(得分:0)
在更详细地阅读了代码并进行了一些测试之后,我终于找到了如何在PuLP中使用GLPK,而无需更改PuLP软件包本身中的任何内容。
您需要按以下方式将路径作为GLPK_CMD的参数传递(用您的 glpsol 路径替换):
lp_prob.solve(GLPK_CMD(path = 'C:\\Users\\username\\glpk-4.65\\w64\\glpsol.exe')
您还可以通过这种方式传递选项,例如
lp_prob.solve(GLPK_CMD(path = 'C:\\Users\\username\\glpk-4.65\\w64\\glpsol.exe', options = ["--mipgap", "0.01","--tmlim", "1000"])
答案 1 :(得分:0)
我遇到了同样的问题,但与glpk安装无关,与解决方案文件创建有关,消息为confusim。我的问题是我为变量使用了数字名称,即“ 0238”或“ 1342”,在其前面添加了“ x”,然后它们看起来像是“ x0238”。