偶尔在 Gurobi 的讲座中听到了这个技巧,假如两个 0-1 变量 x i x_i xi, y j y_j yj,它们的乘积
z i j = x i y j z_{ij}=x_iy_j zij=xiyj
这是一个非线性表达式,但可以通过下面的约束条件线性化:
z
i
j
=
x
i
z
i
j
=
x
j
z
i
j
≥
x
i
+
x
j
−
1
\begin{aligned} z_{ij}&=x_i\\ z_{ij}&=x_j\\ z_{ij}&\geq x_i+x_j-1 \end{aligned}
zijzijzij=xi=xj≥xi+xj−1