线性规划中可行域为什么一定是凸的--证明
线性规划中的凸性证明
线性规划中可行域是凸的,这是自然能够想到和容易理解的道理。直观上,线性约束定义的可行域是由半平面的交集构成的,这些半平面的交集总是形成凸区域。
这么一个自然想到、容易理解的道理,怎么从数学上完备地证明它?下面的内容为此作答。
准备知识:
凸集的定义:如果集合 C C C中任意两点 X 1 X_1 X1和 X 2 X_2 X2,其连线上的所有点也都在集合 C C C中,称 C C C为凸集.
为了更好地理解凸集,下面给出一些凸集和凹集的示例:
线性规划的标准型:
m a x z = ∑ j = 1 n c j x j s . t . { ∑ j = 1 n a i j x j = b j x j ≥ 0 max \quad z= \sum_{j=1}^{n}c_{j}x_j \\ s.t. \left\{\begin{array}{l} {\sum_{j=1}^{n}a_{ij}x_j=b_j} \\ x_j \ge 0 \\ \end{array}\right. maxz=j=1∑ncjxjs.t.{∑j=1naijxj=bjxj≥0
证明
命题:如果线性规划中存在可行解,则可行解组成的可行域是凸集。
证明思路:任意假设两个可行解,证明其连线上的所有点仍属于可行域,即满足约束。
证明过程
步骤一:设任意两点,并给出满足约束的方程
- 设 X 1 = ( x 11 , x 12 , … , x 1 n ) T X_1=(x_{11},x_{12},\dots,x_{1n})^T X1=(x11,x12,…,x1n)T, X 2 = ( x 21 , x 22 , … , x 2 n ) T X_2=(x_{21},x_{22},\dots,x_{2n})^T X2=(x21,x22,…,x2n)T为可行域内任意两点,其满足
{ ∑ j = 1 n a i j x 1 j = b j ∑ j = 1 n a i j x 2 j = b j \left\{\begin{array}{l} \sum_{j=1}^n a_{ij}x_{1j}=b_j \\ \sum_{j=1}^n a_{ij}x_{2j}=b_j \\ \end{array}\right. {∑j=1naijx1j=bj∑j=1naijx2j=bj
步骤二:设连线上的任意一点,并给出与两点的关系方程
- 连线上的任意点 X = ( x 1 , x 2 , … , x n ) T X=(x_{1},x_{2},\dots,x_{n})^T X=(x1,x2,…,xn)T 的表示
X = k ( X 1 − X 2 ) + X 2 , 0 ≤ k ≤ 1 X=k(X_1-X_2)+X_2, \quad 0 \leq k \leq1 X=k(X1−X2)+X2,0≤k≤1
这一步如果不好理解,可以看下面的解释:
步骤三:判断 X X X 是否满足约束条件
∑ j = 1 n a i j x j = ∑ j = 1 n a i j ( k ( x 1 j − x 2 j ) + x 2 j ) = k ∑ j = 1 n a i j x 1 j − k ∑ j = 1 n a i j x 2 j + ∑ j = 1 n a i j x 2 j = k b j − k b j + b j = b j \begin{aligned} \sum_{j=1}^n a_{ij}x_{j}&=\sum_{j=1}^n a_{ij}(k(x_{1j}-x_{2j})+x_{2j}) \\ &= k\sum_{j=1}^n a_{ij} x_{1j} - k\sum_{j=1}^n a_{ij} x_{2j} + \sum_{j=1}^n a_{ij} x_{2j} \\ &= k b_j - k b_j + b_j \\ & = b_j \end{aligned} j=1∑naijxj=j=1∑naij(k(x1j−x2j)+x2j)=kj=1∑naijx1j−kj=1∑naijx2j+j=1∑naijx2j=kbj−kbj+bj=bj
因此, X X X 在可行域内。这证明了连线上的任意点均在可行域内,即可行域是凸集。
证毕!
参考资料:
- 胡运权主编的第五版《运筹学教程》
文档源码:
## 线性规划中的凸性证明
**线性规划中可行域是凸的**,这是自然能够想到和容易理解的道理。直观上,线性约束定义的可行域是由半平面的交集构成的,这些半平面的交集总是形成凸区域。这么一个自然想到、容易理解的道理,怎么从数学上完备地证明它?下面的内容为此作答。
### 准备知识:
**凸集的定义**:如果集合$C$中任意两点$X_1$和$X_2$,其连线上的所有点也都在集合$C$中,称$C$为凸集.
<p align = "center">
<img src="https://i-blog.csdnimg.cn/direct/c36979ba43054a219a993520e58b5f2f.png" width="200" />
</p>为了更好地理解凸集,下面给出一些凸集和凹集的示例:
<p align = "center">
<img src="https://i-blog.csdnimg.cn/direct/29b80fec3fb341fc8bad74738821ef4f.png" width="200" />
</p>**线性规划的标准型**:$$max \quad z= \sum_{j=1}^{n}c_{j}x_j \\
s.t. \left\{\begin{array}{l}
{\sum_{j=1}^{n}a_{ij}x_j=b_j} \\
x_j \ge 0 \\
\end{array}\right.$$### 证明
命题:如果线性规划中存在可行解,则可行解组成的可行域是凸集。证明思路:任意假设两个可行解,证明其连线上的所有点仍属于可行域,即满足约束。证明过程
步骤一:**设任意两点,并给出满足约束的方程**
- 设$X_1=(x_{11},x_{12},\dots,x_{1n})^T$,$X_2=(x_{21},x_{22},\dots,x_{2n})^T$为可行域内任意两点,其满足
$$\left\{\begin{array}{l}
\sum_{j=1}^n a_{ij}x_{1j}=b_j \\
\sum_{j=1}^n a_{ij}x_{2j}=b_j \\
\end{array}\right.$$步骤二:**设连线上的任意一点,并给出与两点的关系方程**
- 连线上的任意点 $X=(x_{1},x_{2},\dots,x_{n})^T$ 的表示
$$X=k(X_1-X_2)+X_2, \quad 0 \leq k \leq1$$
这一步如果不好理解,可以看下面的解释:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d3d7473352704642bd4e6503e0a0ad75.png)步骤三:**判断 $X$ 是否满足约束条件**
$$ \begin{aligned}
\sum_{j=1}^n a_{ij}x_{j}&=\sum_{j=1}^n a_{ij}(k(x_{1j}-x_{2j})+x_{2j}) \\
&= k\sum_{j=1}^n a_{ij} x_{1j} - k\sum_{j=1}^n a_{ij} x_{2j} + \sum_{j=1}^n a_{ij} x_{2j} \\
&= k b_j - k b_j + b_j \\
& = b_j
\end{aligned}$$
因此,$X$ 在可行域内。这证明了连线上的任意点均在可行域内,即可行域是凸集。证毕!---
参考资料:
- 胡运权主编的第五版《运筹学教程》