【问题标题】:Solve Python Pulp without variables解决没有变量的 Python Pulp
【发布时间】:2020-12-21 21:57:41
【问题描述】:

我有一个 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。非常感谢任何帮助

【问题讨论】:

    标签: python linear-programming pulp


    【解决方案1】:

    你完全正确。 This happens 因为__dummyNonevarValue,而您根本没想到它会被包含在内。我会提交一个错误报告,要求他们从LpAffineExpression.value() 中排除虚拟变量 - 因为pulp.value(model.objective)model.objective.value() 的快捷方式。

    现在,我会使用following workaroundmodel.objective.valueOrDefault()

    【讨论】:

      【解决方案2】:

      您可以将固定成本声明为具有固定值的变量。

      >>> 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-25
        相关资源
        最近更新 更多