首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pyomo中定义边界和if-then语句

在Pyomo中定义边界和if-then语句
EN

Stack Overflow用户
提问于 2021-02-04 15:09:18
回答 1查看 36关注 0票数 0

我刚接触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语句?

如果这是一个非常幼稚的问题,请忽略它。我尝试了很多,但没有找到任何好的资源。

EN

回答 1

Stack Overflow用户

发布于 2021-02-06 01:18:26

你可以在这里使用几种不同的方法……这显然是一个硬件问题...您看到的“其他代码”是一种方法,它似乎引用了表中限制之间的A部分,这是有意义的,因为您希望显式地捕获该成本带中的金额。所以,如果你把A40A100A150AMax加起来,你会得到A的总量,对吧?边界是有意义的..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66040850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档