如何配置PuLP调用GLPK求解器

时间:2019-03-26 17:26:01

标签: python pulp glpk

我正在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

我知道我应该获得“通过”而不是“不可用”才能使用它。

2 个答案:

答案 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”。