【问题标题】:'LpAffineExpression' object has no attribute 'solve' in pulp Lp problem- Optimization'LpAffineExpression' 对象在纸浆 Lp 问题中没有属性 'solve' - 优化
【发布时间】:2023-03-09 11:05:01
【问题描述】:
import pulp as p
import numpy as np
a1=np.array([1000,2000,3000,7000,8000,13000,223000,32000,35000,369000,38000,3885000])

x=p.LpVariable('x', lowBound=5000, cat='Continuous')
y=p.LpVariable('y', lowBound=8000,cat='Continuous')

Lp_prob=(((y-x)*1.3+x)*0.014428)+((a1-y)*1.5*0.014428)
Lp_prob.solve()

我尝试在纸浆中进行线性规划。但我有 'LpAffineExpression' 对象没有属性 'solve' 错误。

我该如何解决?谢谢。

【问题讨论】:

    标签: python optimization query-optimization nonlinear-optimization pulp


    【解决方案1】:

    我建议先研究一下这个例子:https://www.coin-or.org/PuLP/CaseStudies/a_blending_problem.html。它具有涵盖您的示例的所有要素。

    所以一个工作模型可能看起来像:

    import pulp as p
    import numpy as np
     
    a1=np.array([1000,2000,3000,7000,8000,13000,223000,32000,35000,369000,38000,3885000])
    
    x=p.LpVariable('x', lowBound=5000, cat='Continuous')
    y=p.LpVariable('y', lowBound=8000,cat='Continuous')
    
    Lp_prob = p.LpProblem("This_Example_Works",p.LpMaximize)
    Lp_prob += (((y-x)*1.3+x)*0.014428)+((a1-y)*1.5*0.014428)
    Lp_prob.solve()
    print("Status:", p.LpStatus[Lp_prob.status])
    

    请注意,PuLP 将其解释为:

    MAXIMIZE
    -0.0043284000000000005*x + -0.24094759999999996*y + 99899.472
    VARIABLES
    5000 <= x Continuous
    8000 <= y Continuous
    

    非常奇怪的构造a1-y 在这里被解释为sum(a1-y)=sum(a1)-n*y,其中n=a1.size。我建议不要在 PuLP 模型中以这种方式使用 NumPy 数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      相关资源
      最近更新 更多