无变量求解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。非常感谢任何帮助

你说得非常对。发生这种情况是因为__dummyvarValueNone,而您根本没想到它会被包含在内。我会提交一份错误报告,要求他们从LpAffineExpression.value()中排除伪变量,因为pulp.value(model.objective)model.objective.value()的快捷方式。

目前,我将使用以下解决方法: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

最新更新