如何将以下 if-else 条件转换为线性整数规划约束?

问题描述 投票:0回答:1

如果 x ≥ 100, 则 x -100 + p(x) ≤ 0; 否则 p(x) ≤ 0 p(x) 是线性函数。如果可以的话,我们可以添加 x ≥ 0。

我尝试制作一个二元变量z,如果x≥100,则z=1;否则z=0。然后我们得到 z(x-100)+p(x) ≤ 0。但是,z(x-100) 项是非线性的,我们无法使用它。

constraints linear-programming mixed-integer-programming integer-programming linearization
1个回答
0
投票

将此类条件(例如,Either/Or 和 If/Then)描述为线性约束的一些众所周知的技巧可以在本书(应用整数编程:建模和解决方案)中找到。请参阅第 3.6 节(变换非同时约束)。

© www.soinside.com 2019 - 2024. All rights reserved.