如何配置 PuLP 调用 GLPK 求解器
How to configure PuLP to call GLPK solver
我正在使用 Python 中的 PuLP 库来解决 MILP 问题。我使用默认求解器 (CBC) 成功解决了 运行 我的问题。现在我想将 PuLP 与另一个求解器 (GLPK) 一起使用。 如何使用 GLPK 设置 PuLP?
我在网上做了一些研究,找到了有关如何使用 GLPK(例如 lp_prob.solve(pulp.GLPK_CMD())
)的信息,但没有找到有关如何使用 GLPK(或任何其他求解器)实际设置 PuLP 的信息matter),以便它找到我的 GLPK 安装。我已经单独安装了 GLPK(但我没有将它添加到我的 PATH 环境变量中)。
我运行命令pulp.pulpTestAll()
并得到:
Solver <class 'pulp.solvers.GLPK_CMD'> unavailable
我知道我应该得到 "passed" 而不是 "unavailable" 才能使用它。
在更详细地阅读了代码并测试了一些东西之后,我终于找到了如何将 GLPK 与 PuLP 一起使用,而无需更改 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"])
我有同样的问题,但与 glpk 安装无关,与创建解决方案文件有关,消息令人困惑。我的问题是我为我的变量使用数字名称,如'0238'或'1342',我在它之前添加了一个'x',然后它们看起来像'x0238'。
我正在使用 Python 中的 PuLP 库来解决 MILP 问题。我使用默认求解器 (CBC) 成功解决了 运行 我的问题。现在我想将 PuLP 与另一个求解器 (GLPK) 一起使用。 如何使用 GLPK 设置 PuLP?
我在网上做了一些研究,找到了有关如何使用 GLPK(例如 lp_prob.solve(pulp.GLPK_CMD())
)的信息,但没有找到有关如何使用 GLPK(或任何其他求解器)实际设置 PuLP 的信息matter),以便它找到我的 GLPK 安装。我已经单独安装了 GLPK(但我没有将它添加到我的 PATH 环境变量中)。
我运行命令pulp.pulpTestAll()
并得到:
Solver <class 'pulp.solvers.GLPK_CMD'> unavailable
我知道我应该得到 "passed" 而不是 "unavailable" 才能使用它。
在更详细地阅读了代码并测试了一些东西之后,我终于找到了如何将 GLPK 与 PuLP 一起使用,而无需更改 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"])
我有同样的问题,但与 glpk 安装无关,与创建解决方案文件有关,消息令人困惑。我的问题是我为我的变量使用数字名称,如'0238'或'1342',我在它之前添加了一个'x',然后它们看起来像'x0238'。