【发布时间】:2021-02-04 07:09:17
【问题描述】:
我是 pyomo 和线性优化的新手。我的问题陈述如下所示:
一家化工公司生产三种化学品:化学品 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))
model.AMax = Var(within= NonNegativeIntegers,bounds = (0,None))
我认为边界应该是 (0, 40)、(40, 100)、(100, 150) 和 (150, None)
另外,既然是 if-then 语句,我该如何写下约束?
如果这是一个非常幼稚的问题,请忽略。我尝试了很多,但没有找到任何好的资源。
【问题讨论】:
标签: python-3.x pyomo