PuLP - 有没有办法从 dict 访问变量名而不是从 .variables() 解析字符串版本?

问题描述

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