如何使用Python获取Pulp中的最佳优化变量?

1-a*_*ion 4 python pulp

我将Pulp与Python配合使用来解决优化问题。

我在用

import pulp
# code
pulp.prob.objective.value()
Run Code Online (Sandbox Code Playgroud)

现在,我想访问优化变量。这该怎么做?

Pulp文档中,我发现了类似的东西,use_vars[i].varValue但是我应该循环获取整个向量。我可以像客观价值一样直接得到它吗?有谁熟悉纸浆吗?

Jik*_*ika 5

要获得整个优化向量,您可以执行

pulp.prob.variables()
Run Code Online (Sandbox Code Playgroud)

这将返回所有变量的列表。要访问列表中的第i个元素或第i个变量,您必须

pulp.prob.variables()[i].varValue
Run Code Online (Sandbox Code Playgroud)

您可以在类似的函数中返回目标值和变量

return pulp.prob.objective.value(), pulp.prob.variables()
Run Code Online (Sandbox Code Playgroud)

然后使用for循环访问变量

varsdict = {}
for v in prob.variables():
    varsdict[v.name] = v.varValue
Run Code Online (Sandbox Code Playgroud)

最终结果将是一个字典varsdict,看起来像

varsdict = {'x_10': 0.0, 'x_0': 1.0, ...}
Run Code Online (Sandbox Code Playgroud)