如何解决解决无变量的Python Pulp
我有一个Python纸浆线性程序,可将成本降至最低。在无法降低成本的退化情况下,我希望它退还固定成本。但是,在没有变量的情况下,纸浆似乎会添加__dummy变量,其值为None。我在下面添加了一个最小的工作示例。
from pulp import *
model = LpProblem("Degenerate_Model",LpMinimize)
fixed_cost = 10
model += fixed_cost
print(model) #Prints MINIMIZE 10
model.solve()
print(model.objective) #prints 0*__dummy + 10
print(value(model.objective)) #returns None. Desired output is 10
在上面的示例中,我想要的输出将是返回10。非常感谢您的帮助
解决方法
您绝对正确。 This happens是因为__dummy
的{{1}}中varValue
是None
,而您根本不希望包含它。我会提交错误报告,要求他们从LpAffineExpression.value()
中排除虚拟变量-因为pulp.value(model.objective)
是model.objective.value()
的快捷方式。
现在,我将使用following workaround:model.objective.valueOrDefault()
。
您可以将固定成本声明为具有固定值的变量。
>>> model = LpProblem("Degenerate_Model",LpMinimize)
>>> fixed_cost = LpVariable('fixed cost',lowBound=10,upBound=10)
>>> model += fixed_cost
>>> model.solve()
>>> print(value(model.objective))
10.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。