MENU

1994世界杯_1954年世界杯 - hengshuifu.com

约束有哪些?

描述如何在问题中表示各种约束。

从问题描述中可以看出,这个问题存在多种限制因素。

对于每种类型的油,计划结束时必须存储 500 吨油。 这一想法可以表示为:

forall( p in Products )

ctStore:

Store[NbMonths][p] == 500;

每个月的生产约束全部可以表示为 forall 语句中的语句:

植物油精制量不得超过 200 吨。

ctUse1:

Use[m]["v1"] + Use[m]["v2"] <= 200;

非植物油精制量不得超过 250 吨。

ctUse2:

Use[m]["o1"] + Use[m]["o2"] + Use[m]["o3"] <= 250;

调和油不能使用三种以上类型的油;也就是说,在五种食用油中,不能在给定调和油中使用其中两种油。

ctUse7:

(Use[m]["v1"] == 0) + (Use[m]["v2"] == 0) + (Use[m]["o1"] == 0) +

(Use[m]["o2"] == 0) + (Use[m]["o3"] == 0) >= 2;

由植物油 1 (v1) 或植物油 2 (v2) 组成的调和油也必须包含非植物油 3 (o3)。

ctUse9:

(Use[m]["v1"] >= 20) || (Use[m]["v2"] >= 20) => Use[m]["o3"] >= 20;

以下示例表示的约束声明,如果某种油完全在调和油中使用,必须使用至少 20 吨这种油:

ctUse8:

(Use[m][p] == 0) || (Use[m][p] >= 20);

以下示例表示的事实是,可以存储有限数量的未加工油以供稍后使用:

forall( p in Products ) {

ctUse6:

if (m == 1) {

500 + Buy[m][p] == Use[m][p] + Store[m][p];

}

else {

Store[m-1][p] + Buy[m][p] == Use[m][p] + Store[m][p];

}

Copyright © 2022 1994世界杯_1954年世界杯 - hengshuifu.com All Rights Reserved.