我尝试使用带有默认求解器的纸浆来显示对偶变量,但是对于对偶值,我总是获得“无”。
对于此示例:
from pulp import *
prob = LpProblem("test080", LpMinimize)
x = LpVariable("x", 0, 5)
y = LpVariable("y", -1, 1)
z = LpVariable("z", 0)
c1 = x+y <= 5
c2 = x+z >= 10
c3 = -y+z == 7
prob += x + 4*y + 9*z, "obj"
prob += c1, "c1"
prob += c2,"c2"
prob += c3,"c3"
prob.solve()
如果我使用.pi打印每个约束的对数值,则会获得“无”。
有没有一种方法可以使用默认的纸浆求解器来获取对数值?
谢谢!
答案 0 :(得分:0)
为了从默认求解器(CBC)获取LP信息,您必须明确告诉求解器问题是LP:
prob.solve(PULP_CBC_CMD(mip=False))
print(c3.pi)
# 8.0
答案 1 :(得分:0)
谢谢您的回答。
但是,如果我使用
prob.solve(GLPK(mip=False))
print(c3.pi)
我仍然获得“无”。
PULP_CBC_CMD对我不可用。