python - 如何配置 PuLP 调用 GLPK 求解器

标签 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

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

最佳答案

在更详细地阅读了代码并测试了一些内容之后,我终于找到了如何将 GLPK 与 PuLP 一起使用,而无需更改 PuLP 包本身的任何内容。

您需要将路径作为参数传递给求解中的 GLPK_CMD,如下所示(替换为您的 glpsol 路径):

lp_prob.solve(GLPK_CMD(path = 'C:\\Users\\用户名\\glpk-4.65\\w64\\glpsol.exe')

您还可以通过这种方式传递选项,例如

lp_prob.solve(GLPK_CMD(路径 = 'C:\\Users\\用户名\\glpk-4.65\\w64\\glpsol.exe', options = ["--mipgap", "0.01","--tmlim","1000"])

关于python - 如何配置 PuLP 调用 GLPK 求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55362984/

相关文章:

python - pip install pymssql 在 anaconda 窗口中失败

python - 像这样的字符串的正则表达式

python-3.x - PuLP目标函数中ABS()的数学运算

GLPK 超时 (tm_lim) 返回找到的最佳解决方案?

python - 如何在Alpine Linux上安装GLPK?

python - 如何通过Python TypeError更新或插入Elasticsearch?

python - 使用 python 在 telnet 连接的交换机上运行命令

python - 使用 PULP 进行 CPLEX 间隙设置

python - 如何在 PuLP Python 中指定两个变量相乘的约束?

julia - 加载错误:MethodError despite (seemingly) using working code