问题描述
我正在使用 Python 的 PuLP 来解决一些线性规划问题。目前,我能够找到的唯一方法,在求解模型后检索变量名称是解析 pulp.LpProblem().variables()
方法中可用的名称的字符串版本,该方法列出了所有使用的变量。
但是,这将返回一个沿 sometext('var1','var2')
行的字符串。所以我需要解析文本以访问字符串名称,以便我可以得到正确的 .varValue
。
有没有办法以类似 dict 的方式访问这个变量,或者是解析字符串的唯一方法?
解决方法
您可以直接访问变量而无需检索它们。
考虑以下示例:
>>> import pulp
>>> x = pulp.LpVariable('x',3)
>>> y = pulp.LpVariable('y',3)
>>> prob = pulp.LpProblem('example',pulp.LpMinimize)
>>> prob+= x+y
>>> prob+= x+y >= 4
>>> prob.solve()
1
>>> x.varValue
1.0
>>> y.varValue
3.0
同样适用于其他变量容器,例如字典
>>> x_vars = pulp.LpVariable.dicts('x',range(1,6),lowBound=0,upBound=1)
>>> x_vars
{1: x_1,2: x_2,3: x_3,4: x_4,5: x_5}
使用键可以访问关联变量的值,例如,x_vars[1].varValue