【鲁棒优化】| 补充证明:为什么最优解时一定有$y^{*} = |x^{*}|$
作者:刘兴禄,清华大学,博士在读
欢迎关注我们的微信公众号 运小筹
上篇推文有一处证明我省略了,个别小伙伴觉得想不清楚,来问我了。我这里写个补充证明分享给大家。
另外上篇推文也有几处小笔误,由于文章不能更改了,这里来更正一下。在文章的最后部分。
补充证明:为什么最优解时一定有 y ∗ = ∣ x ∗ ∣ y^{*} = |x^{*}| y∗=∣x∗∣
这个说起来很直观,但是我还是来证明一下:
命题:考虑下面的问题
max c x s . t . ∑ j a i j x j + ∑ j ∈ J i a ^ i j y j ⩽ b i , ∀ i y j ⩾ ∣ x j ∣ , ∀ j l ⩽ x ⩽ u y ⩾ 0 \begin{aligned} \max \quad & \mathbf{cx} \\ s.t. \quad & \sum_{j}{a_{ij}x_j}+\sum_{j\in J_i}{\hat{a}_{ij}y_j}\leqslant b_i, \quad &\forall i \\ &y_j \geqslant |x_j| , &&\forall j \\ &\mathbf{l}\leqslant \mathbf{x}\leqslant \mathbf{u}&& \\ &\mathbf{y}\geqslant 0&& \end{aligned} maxs.t.cxj∑aijxj+j∈Ji∑a^ijyj⩽bi,yj⩾∣xj∣,l⩽x⩽uy⩾0∀i∀j
则在最优解中,一定有 y ∗ = ∣ x ∗ ∣ y^{*}=|x^{*}| y∗=∣x∗∣。
证明:
(反证法)假设最优解为 ( y ∗ , x ∗ ) (\mathbf{y}^{*}, \mathbf{x}^{*}) (y∗,x∗), 根据约束,他们一定满足 y ∗ ⩾ ∣ x ∗ ∣ \mathbf{y}^{*}\geqslant |\mathbf{x}^{*}| y∗⩾∣x∗∣。这里包含且仅包含两种情形: y ∗ > ∣ x ∗ ∣ \mathbf{y}^{*}> |\mathbf{x}^{*}| y∗>∣x∗∣或者 y ∗ = ∣ x ∗ ∣ \mathbf{y}^{*} = |\mathbf{x}^{*}| y∗=∣x∗∣。
如果最优解满足: y ∗ > ∣ x ∗ ∣ \mathbf{y}^{*} > |\mathbf{x}^{*}| y∗>∣x∗∣, 约束2显然满足。
我们再来分析约束1。根据 ∣ x ∗ ∣ < y ∗ |\mathbf{x}^{*}| < \mathbf{y}^{*} ∣x∗∣<y∗,可得
∑ j a i j x j ∗ + ∑ j ∈ J i a ^ i j x j ∗ < ∑ j a i j x j ∗ + ∑ j ∈ J i a ^ i j y j ∗ ⩽ b i , ∀ i ( ∗ ) \begin{aligned} \sum_{j}{a_{ij}x_j^{*}}+\sum_{j\in J_i}{\hat{a}_{ij}x_j^{*}} < \sum_{j}{a_{ij}x_j^{*}}+\sum_{j\in J_i}{\hat{a}_{ij}y_j^{*}}\leqslant b_i, \quad &\forall i \hspace{1cm} (*) \end{aligned} j∑aijxj∗+j∈Ji∑a^ijxj∗<j∑aijxj∗+j∈Ji∑a^ijyj∗⩽bi,∀i(∗)
由于目标函数为 max c x \max \, \mathbf{cx} maxcx,随着 x \mathbf{x} x增大,单调递增。而 ( ∗ ) (*) (∗)式显示,一定 ∃ x j ∗ \exist x_j^{*} ∃xj∗还有可以增大的空间,并且使得原问题可行。因此我们有,必然 ∃ ( y ˉ , x ˉ ) \exist (\bar{\mathbf{y}}, \bar{\mathbf{x}}) ∃(yˉ,xˉ)使得原问题可行(这里其实更专业的写法是写成
∃ ( y ˉ , x ˉ ) ∈ S \exist (\bar{\mathbf{y}}, \bar{\mathbf{x}}) \in \mathbf{S} ∃(yˉ,xˉ)∈S,其中
S \mathbf{S} S表示上述问题的可行域,意思就是说这个也是个可行解。这里我只是提及一下
), 并且使得 x ˉ \bar{\mathbf{x}} xˉ中所有分量都不小于 x ∗ \mathbf{x}^{*} x∗的分量,即
x ˉ j ⩾ x j ∗ , ∀ j \bar{x}_j \geqslant x_j^{*}, \quad \forall j xˉj⩾xj∗,∀j。并且至少存在一个分量严格大于
x ∗ \mathbf{x}^{*} x∗的分量,即并且 ∃ j ′ \exist j' ∃j′,满足
x ˉ j ′ > x j ′ ∗ \begin{aligned} \bar{x}_{j'} > x_{j'}^{*} \end{aligned} xˉj′>xj′∗
由于 ( y ˉ , x ˉ ) (\bar{\mathbf{y}}, \bar{\mathbf{x}}) (yˉ,xˉ)是可行解,所以下面条件一定满足 (实际上这一句可以不要)
∑ j a i j x ˉ j + ∑ j ∈ J i a ^ i j y ˉ j ⩽ b i \begin{aligned} \sum_{j}{a_{ij}\bar{x}_j}+\sum_{j\in J_i}{\hat{a}_{ij}\bar{y}_j}\leqslant b_i \end{aligned} j∑aijxˉj+j∈Ji∑a^ijyˉj⩽bi
因此,可行解 ( y ˉ , x ˉ ) (\bar{\mathbf{y}}, \bar{\mathbf{x}}) (yˉ,xˉ)必然导致 c x ˉ > c x ∗ \mathbf{c\bar{\mathbf{x}}} > \mathbf{c\mathbf{x}^{*}} cxˉ>cx∗,从而推出 ( y ∗ , x ∗ ) (\mathbf{y}^{*}, \mathbf{x}^{*}) (y∗,x∗)不是最优解。但是这与原假设矛盾。
所以我们得出,另外一种情况必然成立,即 y ∗ = ∣ x ∗ ∣ \mathbf{y}^{*} = |\mathbf{x}^{*}| y∗=∣x∗∣。综上,若 ( y ∗ , x ∗ ) (\mathbf{y}^{*}, \mathbf{x}^{*}) (y∗,x∗)为问题的最优解,则一定满足 y ∗ = ∣ x ∗ ∣ \mathbf{y}^{*} = |\mathbf{x}^{*}| y∗=∣x∗∣。原命题得证。
拓展:符合条件的 j ′ j' j′如何找?为什么一定存在 j ′ j' j′使得 x j x_j xj增大且原问题可行
上面已经证明了原命题,其实只需要做到上面的部分,这个问题就可以结束了。不过,我还是想从纯数学语言的角度来证明上面的一句话:
一定
∃ x j ∗ \exist x_j^{*} ∃xj∗还有可以增大的空间,并且使得原问题可行。
这句话,我还是想继续来硬钢一下,也顺便练练手。
先把这一段搬过来
必然 ∃ ( y ˉ , x ˉ ) \exist (\bar{\mathbf{y}}, \bar{\mathbf{x}}) ∃(yˉ,xˉ)使得原问题可行(
这里其实更专业的写法是写成
∃ ( y ˉ , x ˉ ) ∈ S \exist (\bar{\mathbf{y}}, \bar{\mathbf{x}}) \in \mathbf{S} ∃(yˉ,xˉ)∈S,其中
S \mathbf{S} S表示上述问题的可行域,意思就是说这个也是个可行解。这里我只是提及一下
), 并且使得 x ˉ \bar{\mathbf{x}} xˉ中所有分量都不小于 x ∗ \mathbf{x}^{*} x∗的分量,即
x ˉ j ⩾ x j ∗ , ∀ j \bar{x}_j \geqslant x_j^{*}, \quad \forall j xˉj⩾xj∗,∀j。并且至少存在一个分量严格大于
x ∗ \mathbf{x}^{*} x∗的分量,即并且 ∃ j ′ \exist j' ∃j′,满足
x ˉ j ′ > x j ′ ∗ \begin{aligned} \bar{x}_{j'} > x_{j'}^{*} \end{aligned} xˉj′>xj′∗
这一部分,如果要再用数学语言表达的精确一些,就是:
- 必然存在正数 ϵ 1 , ϵ 2 > 0 \epsilon_1, \epsilon_2 >0 ϵ1,ϵ2>0以及至少存在一对下标 j 1 , j 2 j_1, j_2 j1,j2满足下面的条件:
- 令 x ˉ j 1 = x j 1 ∗ + ϵ 1 \bar{x}_{j_1} = x_{j_1}^{*} + \epsilon_1 xˉj1=xj1∗+ϵ1, y ˉ j 2 = y j 2 ∗ − ϵ 2 \bar{y}_{j_2} = y_{j_2}^{*} - \epsilon_2 yˉj2=yj2∗−ϵ2,且
- 满足 ∑ j ≠ j 1 a i j x j ∗ + ∑ j ∈ J i , j ≠ j 2 a ^ i j y j ∗ + [ a i , j 1 x ˉ j 1 + a ^ i , j 2 y ˉ j 2 ] ⩽ b i , ∀ i \begin{aligned} \sum_{j \ne j_1}{a_{ij}x_j^{*}}+\sum_{j\in J_i, j\ne j_2}{\hat{a}_{ij}y_j^{*}} + \left[a_{i,j_1}\bar{x}_{j_1} + \hat{a}_{i,j_2}\bar{y}_{j_2} \right]\leqslant b_i, \quad \forall i \end{aligned} j=j1∑aijxj∗+j∈Ji,j=j2∑a^ijyj∗+[ai,j1xˉj1+a^i,j2yˉj2]⩽bi,∀i
- 满足上面条件的 ϵ 1 , ϵ 2 > 0 \epsilon_1, \epsilon_2 >0 ϵ1,ϵ2>0比较好找,只需要满足
a i , j 1 x ˉ j 1 + a ^ i , j 2 y ˉ j 2 ⩽ a i , j 1 x j 1 ∗ + a ^ i , j 2 y j 2 ∗ ∀ i \begin{aligned} a_{i,j_1}\bar{x}_{j_1} + \hat{a}_{i,j_2}\bar{y}_{j_2} \leqslant a_{i,j_1}x_{j_1}^{*} + \hat{a}_{i,j_2}y_{j_2}^{*} \quad \forall i \end{aligned} ai,j1xˉj1+a^i,j2yˉj2⩽ai,j1xj1∗+a^i,j2yj2∗∀i
即可。即
a i , j 1 ( x j 1 ∗ + ϵ 1 ) + a ^ i , j 2 ( y j 2 ∗ − ϵ 2 ) ⩽ a i , j 1 x j 1 ∗ + a ^ i , j 2 y j 2 ∗ ∀ i \begin{aligned} a_{i,j_1} (x_{j_1}^{*} + \epsilon_1) + \hat{a}_{i,j_2}(y_{j_2}^{*} - \epsilon_2) \leqslant a_{i,j_1}x_{j_1}^{*} + \hat{a}_{i,j_2}y_{j_2}^{*} \quad \forall i \end{aligned} ai,j1(xj1∗+ϵ1)+a^i,j2(yj2∗−ϵ2)⩽ai,j1xj1∗+a^i,j2yj2∗∀i
整理得
a i , j 1 ⋅ ϵ 1 − a ^ i , j 2 ⋅ ϵ 2 ⩽ 0 ∀ i ⟺ a i , j 1 ⋅ ϵ 1 ⩽ a ^ i , j 2 ⋅ ϵ 2 ∀ i ⟺ ϵ 1 ϵ 2 ⩽ a ^ i , j 2 a i , j 1 ∀ i ⟺ ϵ 1 ϵ 2 ⩽ min i { a ^ i , j 2 a i , j 1 } = β 0 ( ∗ ∗ ) \begin{aligned} & \quad a_{i,j_1} \cdot \epsilon_1 - \hat{a}_{i,j_2} \cdot \epsilon_2 \leqslant 0 \quad \forall i \\ \Longleftrightarrow& \quad a_{i,j_1} \cdot \epsilon_1 \leqslant \hat{a}_{i,j_2} \cdot \epsilon_2 \quad \forall i \\ \Longleftrightarrow& \quad \frac{\epsilon_1}{\epsilon_2} \leqslant \frac{\hat{a}_{i,j_2}}{a_{i,j_1}} \quad \forall i \\ \Longleftrightarrow& \quad \frac{\epsilon_1}{\epsilon_2} \leqslant \underset{i}{\min} \left\{ \frac{\hat{a}_{i,j_2}}{a_{i,j_1}} \right\} = \beta_0\quad \hspace{1cm} (**) \end{aligned} ⟺⟺⟺ai,j1⋅ϵ1−a^i,j2⋅ϵ2⩽0∀iai,j1⋅ϵ1⩽a^i,j2⋅ϵ2∀iϵ2ϵ1⩽ai,j1a^i,j2∀iϵ2ϵ1⩽imin{ai,j1a^i,j2}=β0(∗∗)所以,只需要取 ϵ 1 , ϵ 2 > 0 \epsilon_1, \epsilon_2 >0 ϵ1,ϵ2>0,且 ϵ 1 ⩽ x j 1 ∗ , ϵ 2 ⩽ y j 2 ∗ \epsilon_1 \leqslant x_{j_1}^{*}, \epsilon_2 \leqslant y_{j_2}^{*} ϵ1⩽xj1∗,ϵ2⩽yj2∗,使得 ϵ 1 ϵ 2 ⩽ β 0 \frac{\epsilon_1}{\epsilon_2} \leqslant \beta_0 ϵ2ϵ1⩽β0即可。
下面来解释一对下标 j 1 , j 2 j_1, j_2 j1,j2如何选取 (这里令所有变量下标集合为 J J J)。
我们令 I 1 = { j ∣ x j < u j , ∣ x j ∣ < y j , ∀ j ∈ J } I_1 = \{j | x_j < \mathbf{u}_j, |x_j| < y_j, \forall j \in J\} I1={j∣xj<uj,∣xj∣<yj,∀j∈J}
令 I 2 = { j ∣ y j > ∣ x j ∣ } I_2 = \{j | y_j > |x_j|\} I2={j∣yj>∣xj∣}.具体操作方法:
- 从 I 1 I_1 I1中选取任意一个元素作为 j 1 j_1 j1;从 I 2 I_2 I2中选取任意一个元素作为 j 2 j_2 j2;
- 根据 β 0 = min i { a ^ i , j 2 a i , j 1 } \beta_0=\underset{i}{\min} \left\{ \frac{\hat{a}_{i,j_2}}{a_{i,j_1}} \right\} β0=imin{ai,j1a^i,j2}计算 β 0 \beta_0 β0;
- 根据 ϵ 1 ϵ 2 ⩽ β 0 \frac{\epsilon_1}{\epsilon_2} \leqslant \beta_0 ϵ2ϵ1⩽β0,选择适合的 ϵ 1 , ϵ 2 \epsilon_1, \epsilon_2 ϵ1,ϵ2即可。
找到了 ϵ 1 , ϵ 2 \epsilon_1, \epsilon_2 ϵ1,ϵ2和 j 1 , j 2 j_1, j_2 j1,j2,我们就可以将 ( y ∗ , x ∗ ) (\mathbf{y}^{*}, \mathbf{x}^{*}) (y∗,x∗)中的值做以
下更新: x ˉ j 1 = x j 1 ∗ + ϵ 1 \bar{x}_{j_1} = x_{j_1}^{*} + \epsilon_1 xˉj1=xj1∗+ϵ1, y ˉ j 2 = y j 2 ∗ − ϵ 2 \bar{y}_{j_2} = y_{j_2}^{*} - \epsilon_2 yˉj2=yj2∗−ϵ2,这样就可以得到
新的解 x ˉ \mathbf{\bar{x}} xˉ,这个 x ˉ \mathbf{\bar{x}} xˉ就可以使得 c x ˉ > c x ∗ \mathbf{c\bar{\mathbf{x}}} > \mathbf{c\mathbf{x}^{*}} cxˉ>cx∗。
到这里,用纯数学的语言,我们就把这个事儿全说清楚了,我也是累了,到此为止吧,哈哈。
笔误更正: min c x → max c x \min \,cx \rightarrow \max \, cx mincx→maxcx
** 作者: 刘兴禄, 清华大学博士在读**
欢迎关注我们的微信公众号 运小筹
公众号往期推文如下