You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MILP约束中if语句线性化:求解决策变量x与y互斥为正的约束问题

互补约束x*y=0的MILP线性化实现方法

前提要求:你需要先确定两个决策变量的取值上下界,我们默认按你描述的「仅可取正值」场景,假设x和y均为非负变量,已知上界分别为U_x、U_y,即满足0 ≤ x ≤ U_x、0 ≤ y ≤ U_y。

具体实现步骤如下:

  • 引入1个二进制辅助决策变量b,取值约束为b ∈ {0, 1}
  • 新增以下两组线性约束:
    1. x ≤ U_x * b
    2. y ≤ U_y * (1 - b)

约束逻辑验证:

当b=1时,第一组约束退化为x ≤ U_x(对x无额外限制,可在定义域内任意取值),第二组约束变为y ≤ 0,结合y非负的属性可得y=0,满足「x非零时y必须为0」的要求;
当b=0时,第一组约束变为x ≤ 0,结合x非负的属性可得x=0,第二组约束退化为y ≤ U_y(对y无额外限制),满足「y非零时x必须为0」的要求。

特殊场景适配:

  • 若变量没有明确的有限上界,可结合问题实际场景设置一个足够大的合理大M值作为上界,注意不要选择过大的M,避免引发求解器数值稳定性问题。
  • 若变量允许取负值,只需对应调整绑定约束即可:比如x的取值范围为L_x ≤ x ≤ U_x,就新增x ≤ U_x * b和x ≥ L_x * b两组约束,y同理绑定(1-b)做上下界限制即可。

内容的提问来源于stack exchange,提问作者amal nammouchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:36:06