关于堆栈溢出的第一个问题…喜欢这个网站。。。
我在蟒蛇身上用果肉。在输入变量、目标函数和约束的基础上,我试图查看与初始lp问题(primal)的最优解相关联的对偶变量/值。我在搜索文档时遇到问题,我只是想澄清一下有办法用果肉做这个吗?下面的示例代码显示了primal的输入。
注意:我修改了我的问题,从询问双重结果到询问双重结果(基于反馈)。
注2:根据反馈进一步编辑以澄清。
import pulp
lpProb = pulp.LpProblem("example", pulp.LpMinimize)
x1 = pulp.LpVariable("x1", 0, None, pulp.LpContinuous)
x2 = pulp.LpVariable("x2", 0, None, pulp.LpContinuous)
x3 = pulp.LpVariable("x3", 0, None, pulp.LpContinuous)
lpProb += 3*x1 + 4*x2 + 2*x3
lpProb += x1 + 2*x2 + x3 >= 42
lpProb += 5*x1 + 7*x2 + 4*x3 >= 68
lpProb.solve()
print(pulp.LpStatus[lpProb.status])
for i in lpProb.variables():
print("Variable {0} = {1}".format(i.name, i.varValue))
print("Objective function z = {0}".format(pulp.value(lpProb.objective)))
最佳答案
以下是@stuartmitchell在对这个问题的评论中提出的建议。它打印每个约束的名称、双值和松弛度。
for name, c in list(lpProb.constraints.items()):
print(name, ":", c, "\t", c.pi, "\t\t", c.slack)