【问题标题】:Accessing GLPK options through PuLP on Google Colab Notebook在 Google Colab Notebook 上通过 PuLP 访问 GLPK 选项
【发布时间】:2020-10-22 16:35:25
【问题描述】:

我正在尝试在 Google Colab Notebook 上使用 PuLP 解决 LP 问题。要生成敏感性报告,我想使用 GLPK 求解器的 '--ranges filename.txt' 选项。我已经安装了 PuLP 和 GLPK,如下所示:

!pip install pulp
!apt-get install -y -qq glpk-utils

这是我试图解决的一个小例子:

from pulp import *

prob = LpProblem('Test_Problem',LpMaximize) # Model

x1=LpVariable("x1",0,100) #Variables
x2=LpVariable("x2",0,100)

prob += 5*x1 + 10*x2 # Objective

prob += x1 + 5*x2 <= 500 #Constraints
prob += 2*x1 + 3*x2 <= 200

prob.solve(GLPK(options=[])) # Solve Without '--ranges sensitivity.txt'

print("Status : ", LpStatus[prob.status]) # Output
print("Objective : ", value(prob.objective))
for v in prob.variables():
    print(v.name," : ", v.varValue)

这运行良好并给了我想要的输出。但是,如果我使用“选项”并更改以下行

prob.solve(GLPK(options=['--ranges sensitivity.txt']))

我收到此错误:

/usr/local/lib/python3.6/dist-packages/pulp/apis/glpk_api.py in actualSolve(self, lp)
     91 
     92         if not os.path.exists(tmpSol):
---> 93             raise PulpSolverError("PuLP: Error while executing "+self.path)
     94         status, values = self.readsol(tmpSol)
     95         lp.assignVarsVals(values)

PulpSolverError: PuLP: Error while executing glpsol

我检查了带有“选项”的相同代码在我的计算机上运行良好,并生成了正确的sensitivity.txt 文件。但由于某种原因,它不适用于 Colab。 (我在笔记本电脑中使用 conda-forge 安装了 GLPK。)

我能做些什么来解决这个问题?

谢谢!

【问题讨论】:

    标签: google-colaboratory pulp glpk


    【解决方案1】:

    传递给 GLPK_CMD 的 options 参数不能有空格,所以:

    prob.solve(GLPK(msg=True, options=['--ranges', 'sensitivity.txt']))
    

    然后就可以了。对于您的案例,GLPK 在没有解决问题的情况下给出了错误:

    Invalid option '--ranges sensitivity.txt'; try glpsol --help
    

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 2020-08-07
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 2023-03-20
      • 2019-05-20
      • 2021-08-29
      • 2019-05-04
      相关资源
      最近更新 更多