筆記:線性規劃問題(基礎)

線性規劃問題

線性規劃的標準形

將一個線性規劃問題化爲標準形的方法再也不敘述(求\(\max\)改求\(\min\),不等號補鬆弛變量和剩餘變量變等號)。算法

標準形能夠寫爲以下的矩陣形式:函數

\[A=\left[ \begin{matrix} a_{11} &a_{12} &\cdots &a_{1n} \\ a_{21} &a_{22} &\cdots &a_{2n}\\ &\cdots&\cdots \\ a_{m1} &a_{m2} &\cdots &a_{mn} \end{matrix}\right]\quad b=\left[ \begin{matrix} b_1\\ b_2 \\ \vdots\\ b_m \end{matrix}\right]\quad c=\left[ \begin{matrix} c_1\\ c_2 \\ \vdots\\ c_n \end{matrix}\right]\quad X=\left[ \begin{matrix} x_1\\ x_2 \\ \vdots\\ x_n \end{matrix}\right] \]

例如如下這個標準形線性規劃問題:spa

\[\min z=-12x_1-15x_2\\{\rm s.t.}\ \ \ 0.25x_1+0.5x_2+x_3=120\\0.5x_1+0.5x_2+x_4=150\\0.25x_1+x_5=50\\(x_1\ge 0,x_2\ge 0,x_3\ge 0,x_4\ge 0,x_5\ge 0) \]

將它寫成矩陣乘法:class

\[\left[ \begin{matrix} 0.25 &0.50 &1 &0 &0 \\ 0.50 &0.50 &0 &1 &0\\ 0.25 &0 &0 &0 &1\\ \end{matrix}\right]\left[ \begin{matrix} x_1\\ x_2 \\ x_3\\ x_4\\ x_5 \end{matrix}\right]=\left[ \begin{matrix} 120\\150\\50 \end{matrix}\right] \]

令:變量

\[A=\left[ \begin{matrix} 0.25 &0.50 &1 &0 &0 \\ 0.50 &0.50 &0 &1 &0\\ 0.25 &0 &0 &0 &1\\ \end{matrix}\right]\quad b=\left[ \begin{matrix} 120\\150\\50 \end{matrix}\right]\quad X=\left[ \begin{matrix} x_1\\ x_2 \\ x_3\\ x_4\\ x_5 \end{matrix}\right]\quad c=\left[ \begin{matrix} -12\\ -15 \\ 0\\ 0\\ 0 \end{matrix}\right] \]

那麼原來的線性規劃標準形可簡寫爲如下的矩陣乘法形式:lambda

\[\min z=c^TX\\{\rm s.t.}\ \ AX=b\\X\ge {\bf 0} \]

這裏的\(X\ge {\bf 0}\)表示向量\(X\)的每一個份量非負,之後再也不贅述。方法

線性規劃標準形的可行解性質

定義

\(rank(A)=m\),\(A\)\(m\)個線性無關的列向量組成的線性極大無關組稱做標準形的(列空間的一個基底)。給定一個基:\(B=(P_{i_1},P_{i_2},\cdots,P_{i_m})\),對應基中列向量的變量\(x_{i_1},x_{i_2},\cdots,x_{i_m}\)稱做基變量(在矩陣乘法中與標準形基底列向量相乘的\(X\)的份量),其他變量稱做非基變量im

將基變量構成的向量記做\(X_B\),非基變量構成的向量記做\(X_N\),令\(X_N={\bf 0}\),則等式約束條件變爲di

\[BX_B=b \]

解得\(X_B=B^{-1}b\).該向量知足約束\(AX=b\)且非基變量全爲0,稱做關於基\(B\)基本解,若是\(X\)是一個基本解且\(X\ge {\bf 0}\),則稱\(X\)是一個基本可行解,對應的基\(B\)成爲可行基display

(注:關於爲什麼矩陣\(B\)必定是可逆的?咱們在這裏假設線性規劃的幾個約束條件是線性無關的,即矩陣\(A\)行滿秩。如若否則,\(A\)中存在一行可被其餘行線性表出,則這個約束條件是冗餘的。又矩陣的行秩等於列秩,\(B\)的列向量組是\(A\)列向量的線性極大無關組,那麼\(B\)必定爲滿秩方陣,故\(B\)可逆。 實際上咱們能夠進一步推出,\(A\)的行數嚴格小於列數,如若否則,因爲\(A\)行滿秩,矩陣行秩等於列秩,因此列數大於等於列秩。若列數等於列秩,則線性方程組\(AX=b\)的解是惟一肯定的,線性規劃問題就沒有意義了。)

基本可行解的性質

引理

\(AX=b\)的解\(\alpha\)是基本解\(\Leftrightarrow\alpha\)中非零份量對應列向量線性無關。

定理1

若是標準形有可行解,則必有基本可行解。

定理2

若是標準形有最優解,則必存在一個基本可行解是最優解。

單純形法

基本步驟

(1).肯定初始的基本可行解

(2).檢查當前的基本可行解:若當前基本可行解是最優解,或者判斷該標準形無最優解,則計算結束;不然做基變換:用一個非基變量替換基變量,獲得一個新的可行基和對應基本可行解,且使目標函數值降低(或不升)。

(3).重複(2).

如何選擇初始基本可行解

通常引入\(m\)個鬆弛變量\(x_{n+i}\ge0(i=1,2,\cdots,m)\),將這\(m\)個鬆弛變量取爲基變量,則初始基本可行解對應基變量部分:

\[X_B={\bf 0} \]

非基變量部分:

\[X_N=(b_1,b_2,\cdots,b_m)^T \]

初始基本可行解:

\[X^{(0)}={\left(\begin{array}{c}X_B\\X_N \end{array} \right)}=(0,0,\cdots,0,b_1,b_2,\cdots,b_m)^T \]

最優性檢驗

給定可行基\(B=(P_{k_1},P_{k_2},\cdots,P_{k_m})\),將\(AX=b\)兩邊同時乘以\(B^{-1}\),得\(B^{-1}AX=B^{-1}b\).記\(A\)中對應非基變量得列向量構成矩陣爲\(N\).

不妨設(矩陣分塊):

\[A=(B \ N)\\X=\left( \begin{array}{c} X_B\\X_N\end{array} \right) \]

則:

\[\begin{aligned}AX&=b\\\Rightarrow \ (B\ N)\left( \begin{array}{c} X_B\\X_N\end{array} \right)&=b\\BX_B+NX_N&=b\\B^{-1}BX_B+B^{-1}NX_N&=B^{-1}b\\X_B&=B^{-1}b-B^{-1}NX_N\end{aligned} \]

代入目標函數

\[\begin{aligned}z&=c^TX\\&=c_B^TX_B+c_N^TX_N\\&=c_B^T(B^{-1}b-B^{-1}NX_N)+c_N^TX_N\\&=c_B^TB^{-1}b+(c_N^T-c_B^TB^{-1}N)X_N\end{aligned} \]

基本可行解\(X_B^{(0)}=B^{-1}b,X_N^{(0)}=0\),目標函數值爲\(z_0=c_B^TB^{-1}b\)

\[\begin{aligned}z&=c^TX\\&=z_0+(c_N^T-c_B^TB^{-1}N)X_N\\&=z_0+(c_B^T-c_B^TB^{-1}B)X_B+(c_N^T-c_B^TB^{-1}N)X_N\\&=z_0+(c^T-c_B^TB^{-1}A)X\end{aligned} \]

\(\Lambda^T=c^T-c_B^TB^{-1}A=(\lambda_1,\lambda_2,\cdots,\lambda _n)^T\)檢驗數,則目標函數能夠簡化爲:

\[z=z_0+\Lambda^TX \]

\(B^{-1}A=(\alpha_{ij})_{m\times n},P_j'=B^{-1}P_j(1\le j \le n),\beta =B^{-1}b\)

定理3

給定基本可行解\(X^{(0)}\),若全部檢驗數非負,則\(X^{(0)}\)是最優解。若存在檢驗數\(\lambda_k<0\)且全部\(\alpha_{ik}\le 0(1\le i \le m)\),則無最優解。

基變換

給定可行基\(B=(P_{\pi(1)},P_{\pi(2)},\cdots,P_{\pi(m)})\),設\(\lambda_k<0\)\(\alpha _{lk}>0\)\(x_k\)必是非基變量。

用非基變量\(x_k\)替換基變量\(x_{\pi(l)}\),用\(P_k\)替換\(B\)中的\(P_{\pi(l)}\),新的基爲

\[B'=(P_{\pi(1)},\cdots,P_{\pi(l-1)},P_k,P_{\pi(l+1)}\cdots,P_{\pi(m)}) \]

\(x_k\)爲換入變量,\(x_{\pi(l)}\)爲換出變量。選取\(l\)的方法:使得

\[\frac{\beta_l}{\alpha_{lk}}=\min \{\frac{\beta_i}{\alpha_{ik}}|\alpha_{ik}>0,1\le i \le m \} \]

針對最小化的單純形法算法步驟

1.設初始可行基

\[B=(P_{\pi(1)},P_{\pi(2)},\cdots,P_{\pi(m)})\\(\alpha_{ij})_{m\times n}=B^{-1}A\\\beta=B^{-1}b\\\Lambda^T=c^T-B^{-1}A\\z_0=B^{-1}b \]

2.若全部\(\lambda_j\ge0(1\le j\le n)\),則\(X_B=\beta,X_N={\bf 0}\)是最優解,計算結束。

3.取\(\lambda_k<0\),若全部\(\alpha_{ik}\le 0 (1\le i \le m)\),則無最優解,計算結束。

4.取\(1\le l\le m\)使得

\[\frac{\beta_l}{\alpha_{lk}}=\min \{\frac{\beta_i}{\alpha_{ik}}|\alpha_{ik}>0,1\le i \le m \} \]

5.以\(x_k\)爲換入變量,\(x_{\pi(i)}\)爲換出變量作基變換。

6.轉第2步判斷。

相關文章
相關標籤/搜索