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

MILP中如何将变量设为另一变量的绝对值?

在混合整数线性规划(MILP)中实现y=|x|的可行性与建模方案

可行。绝对值函数本身是非线性的,但可以通过线性约束转化(或结合少量整数变量)适配MILP的框架,下面是两种常用的落地方式:

方法一:无额外整数变量的直接约束

利用绝对值的核心性质:对任意x,|x| = y等价于-y ≤ x ≤ y,同时配合非负约束和变量范围限制,约束组如下:

  • -y ≤ x ≤ y
  • y ≥ 0
  • x ∈ [-M, M], x ∈ ℤ
  • y ∈ ℕ(若要求y为整数,也可设为非负连续变量,视需求而定)

注意:这种方法需要你的模型目标函数会驱动y取最小值(比如目标中包含最小化y的项),否则y可能取大于|x|的冗余值。

方法二:引入0-1变量强制严格等价

如果需要不依赖目标函数,直接强制y严格等于|x|,可以引入0-1整数变量z,将x拆分为非负分量x⁺和非正分量x⁻:

  • x = x⁺ - x⁻
  • y = x⁺ + x⁻
  • x⁺ ≤ M * z
  • x⁻ ≤ M * (1 - z)
  • x⁺ ≥ 0, x⁻ ≥ 0, x⁺, x⁻ ∈ ℕ
  • z ∈ {0, 1}
  • x ∈ [-M, M], x ∈ ℤ

逻辑说明:

  • 当z=1时,x⁻被约束为0,此时x=x⁺≥0,y=x⁺=|x|
  • 当z=0时,x⁺被约束为0,此时x=-x⁻≤0,y=x⁻=|x|

选型建议

  • 若目标函数天然包含最小化y的逻辑,优先选方法一,模型更简洁,求解效率更高
  • 若需要独立保证y=|x|(不受目标函数影响),选方法二,约束更严谨

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:02:12