【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 线性规划求解示例 )
文章目錄
- 一、單純形法計算示例
- 二、轉化標準形式
- 三、查找初始基可行解
- 四、列出單純形表
- 五、最優解判定
在上一篇博客 【運籌學】線性規劃數學模型 ( 單純形法 | 最優解判定原則 | 單純形表 | 系數計算方法 | 根據系數是否小于等于 0 判定最優解 ) 博客中講解了最優解判定原則 , 基本原理就是
-
目標函數推導后的結果 maxZ=b0+(CNT?CBTB?1N)XNmaxZ = b_0 + ( C_N^T - C_B^T B^{-1}N )X_NmaxZ=b0?+(CNT??CBT?B?1N)XN? ;
-
如果滿足條件 : " 當 XN=OX_N = OXN?=O 時 , 目標函數取值最大 " , 那么該 BBB 矩陣對應的基可行解就是最優解 ( 根據定理得出 ) ;
-
在 (CNT?CBTB?1N)( C_N^T - C_B^T B^{-1}N )(CNT??CBT?B?1N) 計算結果中 , 每個分量的值都小于等于 000 時 , 該解就是最優解 ;
-
將 CNC_NCN? , CBC_BCB? , B?1NB^{-1}NB?1N 寫入單純形表中 , 方便計算 ;
-
(CNT?CBTB?1N)=(cm+1cm+2?cn)?(c1c2?cm)×[a1,m+1?a1n???am,m+1?amn]( C_N^T - C_B^T B^{-1}N ) = \begin{pmatrix} c_{m+1} \quad c_{m+2} \quad \cdots \quad c_n \end{pmatrix} - \begin{pmatrix} c_{1} \quad c_{2} \quad \cdots \quad c_m \end{pmatrix} \times \begin{bmatrix} &a_{1,m+1} & \cdots & a_{1n} & \\\\ &\vdots & \vdots & \vdots & \\\\ &a_{m,m+1} & \cdots & a_{mn} & \end{bmatrix}(CNT??CBT?B?1N)=(cm+1?cm+2??cn??)?(c1?c2??cm??)×?????????a1,m+1??am,m+1??????a1n??amn???????????
-
根據上述公式 , 每個系數的計算公式為 : σj=cj?∑ciaij\sigma_j = c_j - \sum c_i a_{ij}σj?=cj??∑ci?aij? , 其中 cjc_jcj? 對應的是非基變量在目標函數系數 , cic_ici? 是基變量在目標函數中的系數 , aija_{ij}aij? 是 B?1NB^{-1}NB?1N 中的矩陣向量 , 代表一列 ;
單純形法解線性規劃的三大問題 : 查找初始基可行解 , 判定是否是最優解 , 如何迭代基可行解 ;
在前幾篇博客中講解了 如何查找初始基可行解 , 與 判定是否是最優解 , 本篇博客中講解 如何進行迭代 ;
一、單純形法計算示例
使用單純形法求解線性規劃最優解 :
maxZ=3x1+4x2{2x1+x2≤40x1+3x2≤30xj≥0(j=1,2)\begin{array}{lcl} max Z = 3x_1 + 4x_2 \\ \\ \begin{cases} 2 x_1 + x_2 \leq 40 \\\\ x_1 + 3x_2 \leq 30 \\ \\x_j \geq 0 & (j = 1 , 2 ) \end{cases}\end{array}maxZ=3x1?+4x2?????????????????2x1?+x2?≤40x1?+3x2?≤30xj?≥0?(j=1,2)??
二、轉化標準形式
首先將該線性規劃轉為標準形式 :
參考 【運籌學】線性規劃數學模型標準形式 ( 標準形式 | 目標函數轉化 | 決策變量轉化 | 約束方程轉化 | 固定轉化順序 | 標準形式轉化實例 ) 線性規劃 普通形式 -> 標準形式 轉化順序說明 博客 , 先處理變量約束 , 再將不等式轉為等式 , 最后更新目標函數 ;
① 變量約束 : 首先查看變量約束 , 兩個變量都是 ≥0\geq 0≥0 的 , 符合線性規劃標準形式要求 ;
② 不等式轉換 : 兩個等式都是 小于等于不等式 , 需要 在不等式左側加入松弛變量 , 將其轉為等式 ;
- 2x1+x2≤402 x_1 + x_2 \leq 402x1?+x2?≤40 , 左側加入松弛變量 x3x_3x3? , 變為 2x1+x2+x3=402 x_1 + x_2 + x_3 = 402x1?+x2?+x3?=40
- x1+3x2≤30x_1 + 3x_2 \leq 30x1?+3x2?≤30 , 左側加入松弛變量 x4x_4x4? , 變為 x1+3x2+x4=30x_1 + 3x_2 + x_4 = 30x1?+3x2?+x4?=30
③ 更新目標函數 : 將 x3x_3x3? 和 x4x_4x4? 加入到目標函數中 , 得到新的目標函數 maxZ=3x1+4x2+0x3+0x4max Z = 3x_1 + 4x_2 + 0x_3 + 0x_4maxZ=3x1?+4x2?+0x3?+0x4? ;
此時線性規劃標準形式為 :
maxZ=3x1+4x2+0x3+0x4{2x1+x2+x3+0x4=40x1+3x2+0x3+x4=30xj≥0(j=1,2,3,4)\begin{array}{lcl} max Z = 3x_1 + 4x_2 + 0x_3 + 0x_4 \\ \\ \begin{cases} 2 x_1 + x_2 + x_3 + 0x_4 = 40 \\\\ x_1 + 3x_2 + 0x_3 + x_4 = 30 \\\\ x_j \geq 0 & (j = 1 , 2 , 3 , 4 ) \end{cases}\end{array}maxZ=3x1?+4x2?+0x3?+0x4?????????????????2x1?+x2?+x3?+0x4?=40x1?+3x2?+0x3?+x4?=30xj?≥0?(j=1,2,3,4)??
三、查找初始基可行解
找基矩陣 :
上述線性規劃標準形式的系數矩陣為 [21101301]\begin{bmatrix} &2 & 1 & 1 & 0 & \\\\ & 1 & 3 & 0 & 1 & \end{bmatrix}????21?13?10?01????? , 其中子矩陣中有 [1001]\begin{bmatrix} & 1 & 0 & \\\\ & 0 & 1 & \end{bmatrix}????10?01????? 單位陣 III ;
使用該單位陣 III 作為基矩陣 , 單位陣肯定是可逆的 , 其對應的基解 , 解出后的值就是右側的常數值 , 肯定大于等于 000 , 是基可行解 ;
四、列出單純形表
列出單純形表 :
| CBC_BCB? 基變量系數 (目標函數) | 基變量 | 常數 bbb | x1x_1x1? | x2x_2x2? | x3x_3x3? | x4x_4x4? | θi\theta_iθi? |
| 000 ( 目標函數 x3x_3x3? 系數 c3c_3c3? ) | x3x_3x3? | 404040 | 222 | 111 | 111 | 000 | |
| 000 ( 目標函數 x4x_4x4? 系數 c4c_4c4?) | x4x_4x4? | 303030 | 111 | 333 | 000 | 111 | |
| σj\sigma_jσj? | 333 | 444 | 000 | 000 |
基變量是 x3x_3x3? 和 x4x_4x4? , 基變量在約束條件中的系數矩陣 [1001]\begin{bmatrix} &1 & 0 & \\\\ &0 & 1 & \end{bmatrix}????10?01????? 就是基矩陣 , 這是個單位陣 ;
基變量是 x3x_3x3? 和 x4x_4x4? 在目標函數中的系數是 (00)\begin{pmatrix} \quad 0 \quad 0 \quad \end{pmatrix}(00?) ;
此時的基解是 (004030)\begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 40 \quad \\ \quad 30 \quad \\ \end{pmatrix}?????004030?????? , 該解是初始解 , 下面判定該解是否是最優解 ;
五、最優解判定
使用 檢驗數矩陣 (CNT?CBTB?1N)( C_N^T - C_B^T B^{-1}N )(CNT??CBT?B?1N) 判斷上述解 , 是否是最優解 , 該矩陣計算結果中所有的數 , 都是檢驗數 σ\sigmaσ , 如果 所有的數都小于等于 000 , 說明該解就是最優解 ;
這里只求非基變量的檢驗數 , 即 x1x_1x1? , x2x_2x2? 的檢驗數 ;
列出目標函數非基變量系數 (CNT?CBTB?1N)( C_N^T - C_B^T B^{-1}N )(CNT??CBT?B?1N) 矩陣 :
-
非基變量在目標函數中的系數矩陣 : CNT=(34)C_N^T=\begin{pmatrix} \quad 3 \quad 4 \quad \end{pmatrix}CNT?=(34?)
-
基變量在目標函數中的敘述矩陣 : CBT=(00)C_B^T = \begin{pmatrix} \quad 0 \quad 0 \quad \end{pmatrix}CBT?=(00?)
-
B?1NB^{-1}NB?1N 是系數矩陣中經過矩陣變換后 , 基變量系數是單位陣 III , 非基變量系數是 B?1NB^{-1}NB?1N : B?1N=[2113]B^{-1}N =\begin{bmatrix} &2 & 1 & \\\\ &1 & 3 & \end{bmatrix}B?1N=????21?13?????
(CNT?CBTB?1N)=CNT=(34)?(00)×[2113]( C_N^T - C_B^T B^{-1}N ) = C_N^T=\begin{pmatrix} \quad 3 \quad 4 \quad \end{pmatrix} - \begin{pmatrix} \quad 0 \quad 0 \quad \end{pmatrix} \times \begin{bmatrix} &2 & 1 & \\\\ &1 & 3 & \end{bmatrix}(CNT??CBT?B?1N)=CNT?=(34?)?(00?)×????21?13?????
=(σ1σ2)= \begin{pmatrix} \quad \sigma_{1} \quad \sigma_{2} \quad \end{pmatrix}=(σ1?σ2??)
其中 σ1\sigma_{1}σ1? 是目標函數中 x1x_1x1? 的系數 , σ2\sigma_{2}σ2? 是目標函數中的 x2x_2x2? 的系數 ;
如果上述兩個系數都小于等于 000 , 那么當 非基變量 XN=(x1x2)X_N =\begin{pmatrix} x_{1} \\ x_{2} \end{pmatrix}XN?=(x1?x2??) 取值為 000 時 , 目標函數取值最大 ;
系數的計算公式為 : σj=cj?∑ciaij\sigma_j = c_j - \sum c_i a_{ij}σj?=cj??∑ci?aij? , 其中 cjc_jcj? 對應的是非基變量在目標函數系數 , cic_ici? 是基變量在目標函數中的系數 , aija_{ij}aij? 是 B?1NB^{-1}NB?1N 中的矩陣向量 , 代表一列 ;
σ1=c1?(c3a11+c4a12)\sigma_{1} = c_1 - ( c_3 a_{11} + c_4 a_{12} )σ1?=c1??(c3?a11?+c4?a12?)
σ1=3?(0×2)?(0×1)=3\sigma_{1} =3 - (0 \times 2) - (0 \times 1) = 3σ1?=3?(0×2)?(0×1)=3 , 是從下面的單純形表中的如下位置提取的數值 ;
σ2=c2?(c3a21+c4a22)\sigma_{2} = c_2 - ( c_3 a_{21} + c_4 a_{22} )σ2?=c2??(c3?a21?+c4?a22?)
σ2=4?(0×1)?(0×3)=4\sigma_{2} =4 - (0 \times 1) - (0 \times 3) = 4σ2?=4?(0×1)?(0×3)=4 , 是從下面的單純形表中的如下位置提取的數值 ;
如果這兩個系數 , 如果都小于等于 000 , 該 基可行解(004030)\begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 40 \quad \\ \quad 30 \quad \\ \end{pmatrix}?????004030?????? 才是最優解 , 這兩個系數都大于 000 , 因此不是最優解 ;
總結
以上是生活随笔為你收集整理的【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 线性规划求解示例 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【运筹学】线性规划数学模型 ( 单纯形法
- 下一篇: 【运筹学】线性规划数学模型 ( 单纯形法