陈宝林《最优化理论与算法》详细学习笔记 (三)————单纯形法
一般线性规划问题具有线性方程组的变量数大于方程个数,这时有不定的解。于是,我们有选择地选择一个基本可行解,也就是可行域的一个顶点,沿着可行域的边界到下一个相邻的顶点,要求新的顶点目标值函数更优,如此迭代,直至找到最优解,或判定该最优化问题无界。这就是单纯形法的基本求解思路
数学模型
给定标准形式的LP
min c x \min {\mathcal{ cx}} mincx
s.t. A x = b , A x=b, Ax=b, i = 1 , 2 , … , m i=1,2, \dots, m i=1,2,…,m, x ≥ 0 x \geq 0 x≥0
x = ( x B , x N ) , x B x=\left(x_{B}, x_{N}\right), x_{B} x=(xB,xN),xB 为基变量, x N x_{N} xN 为非基变量
利用分块矩阵
A = [ B , N ] A x = b ⇒ B x B + N x N = b ⇒ x B + B − 1 N x N = B − 1 b ⇒ x B = B − 1 b − B − 1 x N \begin{array}{l} A=[B, N] \\ A x=b \Rightarrow B x_{B}+N x_{N}=b \Rightarrow \\ x_{B}+B^{-1} N x_{N}=B^{-1} b \Rightarrow x_{B}=B^{-1} b-B^{-1} x_{N} \end{array} A=[B,N]Ax=b⇒BxB+NxN=b⇒xB+B−1NxN=B−1b⇒xB=B−1b−B−1xN
于是目标函数
z = c B ′ x B + c N ′ x N = c B ′ ( B − 1 b − B − 1 N x N ) + c N ′ x N = c B ′ B − 1 b + ( c N ′ − c B ′ B − 1 N ) x N \begin{aligned} z &=c_{B}^{\prime} x_{B}+c_{N}^{\prime} x_{N} \\ &=c_{B}^{\prime}\left(B^{-1} b-B^{-1} N x_{N}\right)+c_{N}^{\prime} x_{N} \\ &=c_{B}^{\prime} B^{-1} b+\left(c_{N}^{\prime}-c_{B}^{\prime} B^{-1} N\right) x_{N} \end{aligned} z=cB′xB+cN′xN=cB′(B−1b−B−1NxN)+cN′xN=cB′B−1b+(cN′−cB′B−1N)xN
上式中 ( c N ′ − c B ′ B − 1 N ) \left(c_{N}^{\prime}-c_{B}^{\prime} B^{-1} N\right) (cN′−cB′B−1N)的分量 c ˉ j = c j − c B ′ B − 1 A j \bar{c}_{j}=c_{j}-c_{B}^{\prime} B^{-1} A_{j} cˉj=cj−cB′B−1Aj为约化(缩减)费用,于是有基本可行解 x x x与基 B B B相关联;若约化费用 c ˉ > 0 \bar{c}>0 cˉ>0则可以推出 x x x为最优; x x x为最优且非退化可以推出 c ˉ > 0 \bar{c}>0 cˉ>0。
最优性检验与解的判别
由于线性规划问题的求解可能出现唯一最优解、无穷多最优解、无界解和无可行解等四种情况,因此,需要建立解的判别准则。
x i = b i ′ − ∑ j = m + 1 n a i j ′ x j , ( i = 1 , 2 , ⋯ n ) x_{i}=b_{i}^{\prime}-\sum_{j=m+1}^{n} a_{i j}^{\prime} x_{j}, \quad(i=1,2, \cdots n) xi=bi′−j=m+1∑naij′xj,(i=1,2,⋯n)
将上式代入目标函数式,整理可得
z = ∑ j = 1 n c j x j = ∑ i = 1 m c i x i + ∑ j = m + 1 n c j x j = ∑ i = 1 m c i ( b i − ∑ j = m + 1 n a i j x j ) + ∑ j = m + 1 n c j x j = ∑ i = 1 m c i b i − ∑ i = 1 m c i ∑ j = m + 1 n a i j x j + ∑ j = m + 1 n c j x j = ∑ i = 1 m c i b i − ∑ j = m + 1 n ∑ i = 1 m c i a i j x j + ∑ j = m + 1 n c j x j = ∑ i = 1 m c i b i + ∑ j = m + 1 n ( c j − ∑ i = 1 m c i a i j ) x j \begin{aligned} z &=\sum_{j=1}^{n} c_{j} x_{j}=\sum_{i=1}^{m} c_{i} x_{i}+\sum_{j=m+1}^{n} c_{j} x_{j}=\sum_{i=1}^{m} c_{i}\left(b_{i}-\sum_{j=m+1}^{n} a_{i j} x_{j}\right)+\sum_{j=m+1}^{n} c_{j} x_{j} \\ &=\sum_{i=1}^{m} c_{i} b_{i}-\sum_{i=1}^{m} c_{i} \sum_{j=m+1}^{n} a_{i j} x_{j}+\sum_{j=m+1}^{n} c_{j} x_{j} \\ &=\sum_{i=1}^{m} c_{i} b_{i}-\sum_{j=m+1}^{n} \sum_{i=1}^{m} c_{i} a_{i j} x_{j}+\sum_{j=m+1}^{n} c_{j} x_{j} \\ &=\sum_{i=1}^{m} c_{i} b_{i}+\sum_{j=m+1}^{n}\left(c_{j}-\sum_{i=1}^{m} c_{i} a_{i j}\right) x_{j} \end{aligned} z=j=1∑ncjxj=i=1∑mcixi+j=m+1∑ncjxj=i=1∑mci(bi−j=m+1∑naijxj)+j=m+1∑ncjxj=i=1∑mc