数学建模与数学规划:方法、案例及编程实战(Python+COPT/Gurobi实现)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4.2 至少有m个等式约束成立

考虑下面与等式约束相关的案例。

【例2.3】考虑一组约束。要求这组约束中至少有m个约束成立。试将上述关系建模为等价的线性约束。

引入0-1变量yk和无约束变量wk(∀k=1,…,K),则上述关系可以建模为以下约束:

上述约束的含义如下:若yk=1,则wk=0,,因此约束成立。若yk=0,则wk可取值为,使约束成立,但是约束却不一定成立。此时,若上述模型的最优解中存在,则表示不止有m个等式约束成立。总之,上述模型保证了(∀k=1,…,K)中至少有m个等式约束成立。

另一种建模的思路是,将等式约束转换为两个不等式约束:。当这两个约束同时成立时,约束成立。可以通过引入相应的辅助0-1变量标识这两个约束是否分别成立,再引入0-1辅助变量来标识这两个约束是否同时成立。具体的模型大家可以自行尝试完成。