对于一个数学规划问题:
min ∑ i = 1 n c i ∣ x i ∣ s . t . A x ≥ b \begin{aligned} &\min\quad &\sum_{i=1}^n c_i|x_i|\\ &s.t. &\bm {Ax\geq b} \end{aligned} mins.t.i=1∑nci∣xi∣Ax≥b
有两种方法将其线性化,
- 方法1:用一个中间变量 z i z_i zi,再增加两个约束条件
min ∑ i = 1 n c i z i s . t . A x ≥ b x i ≤ z i ∀ i − x i ≤ z i ∀ i \begin{aligned} &\min\quad &\sum_{i=1}^n c_iz_i&\\ &s.t. &\bm {Ax\geq b}&\\ & &x_i\leq z_i &\quad\forall i\\ &&-x_i\leq z_i&\quad\forall i \end{aligned} mins.t.i=1∑nciziAx≥bxi≤zi−xi≤zi∀i∀i
- 方法2:用两个非负的中间变量
x
i
+
x_i^+
xi+,
x
i
−
x_i^-
xi− 替换
x
i
x_i
xi,即
x
i
=
x
i
+
−
x
i
−
x_i=x_i^+-x_i^-
xi=xi+−xi−,
∣
x
i
∣
=
x
i
+
+
x
i
−
|x_i|=x_i^++x_i^-
∣xi∣=xi++xi−
min ∑ i = 1 n c i ( x i + + x i − ) s . t . A ( x + − x − ) ≥ b x + , x − ≥ 0 \begin{aligned} &\min\quad &\sum_{i=1}^n c_i(x_i^++x_i^-)\\ &s.t. &\bm{ A(x^+-x^-)\geq b}\\ && \bm x^+, \bm x^-\geq 0 \end{aligned} mins.t.i=1∑nci(xi++xi−)A(x+−x−)≥bx+,x−≥0
由于决策目标是最小化,这种方法自动保证 x i + x_i^+ xi+ 与 x i − x_i^- xi− 至少一个为零(否则总能减去或增加一定量使一方为零,而目标函数更小)。