Optimization 将条件语句转换为线性约束
我正在尝试将下面的第三个条件转换为线性约束。为了便于说明,我已经包括了全部问题和我的进度 一家制造商正在考虑生产三种产品a、b、c。每种产品的材料、劳动力和利润如下所示 产品:(投入材料数量、工时、利润) 甲:(3,6200) b:(6,5300) 丙:(108400) 目前,投入材料12000单位,劳动力12000小时。具体规定了以下附加限制Optimization 将条件语句转换为线性约束,optimization,linear-programming,convex-optimization,mixed-integer-programming,Optimization,Linear Programming,Convex Optimization,Mixed Integer Programming,我正在尝试将下面的第三个条件转换为线性约束。为了便于说明,我已经包括了全部问题和我的进度 一家制造商正在考虑生产三种产品a、b、c。每种产品的材料、劳动力和利润如下所示 产品:(投入材料数量、工时、利润) 甲:(3,6200) b:(6,5300) 丙:(108400) 目前,投入材料12000单位,劳动力12000小时。具体规定了以下附加限制 如果公司决定生产“a”,那么它必须生产至少100台 如果公司决定生产“b”车,那么它必须至少生产80辆 如果公司决定生产“c”,那么它最多可以生产120
经过进一步研究。Xa+Xb经过进一步研究。Xa+Xb=12000/5-120=2280 另外添加:
Ya+Yb+Yc经过进一步研究。Xa+Xb请发布您的更新作为答案并接受它(它是正确的)。请注意,传统上,
M
值被选为最小值,不会切断任何可行的解决方案。实际值取决于您的问题结构。这里,M=min{12000/31200/5}-120是一个很好的候选人(为什么?)现在,现代求解者在细化大M值方面做得相当好,但仍然使用小的大M来解决问题不会有什么坏处。还要注意的是,在您当前的公式中,您可能有Ya=Yb=0
和Xa,Xb>0
的最优解。您已经强制执行了Ya=1-->Xa>=100
,但您没有强制Ya=0-->Xa=0
。我相信你会明白这一点:)最后,似乎你无法在正水平上产生所有A、B和C,因此我们还可以添加Ya+Yb+Yc