我刚接触pyomo和线性优化。我的问题陈述如下:
A化学公司生产三种类型的化学品:化学A、化学B和化学C。在一个计划期内,公司总共有100小时的工程服务,700小时的直接人工,以及4000磅的昂贵原材料可用于生产。这三种化学品需要不同的工程服务时间、劳动力和每批销售的最终产品所需的昂贵原材料数量:燃料A: 1小时工程服务,10小时直接人工,30磅原材料。燃料B: 2小时工程服务,4小时直接人工,20磅原材料。燃料C: 1小时工程服务,5小时直接人工,10磅原材料。当批量购买时,该公司还提供不同的折扣。利润数据如下表所示:

例如,如果售出120批A,前40批将获得10美元/批,接下来的60批将获得9美元/批,其余的将获得8美元/批。我必须找出最有利可图的组合。
我这里有两个问题。首先,如何设置变量的界限?我看到了一个代码,但不理解这里的界限。
model.A40 = Var(within= NonNegativeIntegers,bounds=(0,40))
model.A100 = Var(within= NonNegativeIntegers,bounds=(0,60))
model.A150 = Var(within= NonNegativeIntegers,bounds=(0,50))
边界= Var(within= NonNegativeIntegers,model.AMax = (0,None))
我认为界限应该是(0,40),(40,100),(100,150)和(150,无)
另外,我如何写下约束,因为它是一个if-then语句?
如果这是一个非常幼稚的问题,请忽略它。我尝试了很多,但没有找到任何好的资源。
发布于 2021-02-06 01:18:26
你可以在这里使用几种不同的方法……这显然是一个硬件问题...您看到的“其他代码”是一种方法,它似乎引用了表中限制之间的A部分,这是有意义的,因为您希望显式地捕获该成本带中的金额。所以,如果你把A40,A100,A150和AMax加起来,你会得到A的总量,对吧?边界是有意义的..。
https://stackoverflow.com/questions/66040850
复制相似问题