用纸浆显示双变量

问题描述

我尝试使用带有默认求解器的纸浆来显示对偶变量,但是对于对偶值,我总是获得“无”。

对于此示例:

from pulp import *
prob = LpProblem("test080",LpMinimize)
x = LpVariable("x",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打印每个约束的对数值,则会获得“无”。

有没有一种方法可以使用默认的纸浆求解器来获取对数值?

谢谢!

解决方法

为了从默认求解器(CBC)获取LP信息,您必须明确告诉求解器问题是LP:

prob.solve(PULP_CBC_CMD(mip=False))
print(c3.pi)
# 8.0
,

谢谢您的回答。

但是,如果我使用

prob.solve(GLPK(mip=False))
print(c3.pi)

我仍然获得“无”。

PULP_CBC_CMD对我不可用。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...