UA SIE545 优化理论基础1 例题3 凸多面体的表示与线性规划
UA SIE545 優(yōu)化理論基礎1 例題3 凸多面體的表示與線性規(guī)劃
這一講介紹多面體的表示算法,以及單純形的計算方法。考慮線性規(guī)劃:
min?cTxs.t.Ax=b,x≥0\min \ \ c^Tx \\ s.t. \ \ Ax = b,x \ge 0min??cTxs.t.??Ax=b,x≥0
它的可行域是S={x:Ax=b,x≥0}S=\{x:Ax = b,x \ge 0\}S={x:Ax=b,x≥0},這是一個多面體,假設x1,?,xkx_1,\cdots,x_kx1?,?,xk?是極點,d1,?,dld_1,\cdots,d_ld1?,?,dl?是極方向,?x∈S\forall x \in S?x∈S,
x=∑j=1kλjxj+∑j=1lμjdj∑j=1kλj=1,λj≥0,μj≥0x = \sum_{j=1}^k\lambda_jx_j+\sum_{j=1}^l\mu_jd_j \\ \sum_{j=1}^k \lambda_j=1,\lambda_j \ge 0 ,\mu_j \ge 0x=j=1∑k?λj?xj?+j=1∑l?μj?dj?j=1∑k?λj?=1,λj?≥0,μj?≥0
如果SSS有界,它就沒有極方向;如果SSS無界,它至少有一個極方向。手動分析一個線性規(guī)劃問題時,根據(jù)最優(yōu)解的存在性定理:如果?j,cTdj≥0\forall j,c^Td_j \ge 0?j,cTdj?≥0, 則存在一個極點是最優(yōu)解,我們需要先分析SSS的極點與極方向,然后用單純形法找出最優(yōu)解。
例1
min?x1?3x2s.t.?x1+2x2≤6x1+x2≤5x1,x2≥0\min \ \ x_1-3x_2 \\ s.t. \ \ -x_1+2x_2 \le 6 \\ x_1+x_2 \le 5 \\ x_1,x_2 \ge 0min??x1??3x2?s.t.???x1?+2x2?≤6x1?+x2?≤5x1?,x2?≥0
改寫為標準形式,引入松弛變量x3,x4≥0x_3,x_4\ge 0x3?,x4?≥0,
min?x1?3x2s.t.?x1+2x2+x3=6x1+x2+x4=5x1,x2,x3,x4≥0\min \ \ x_1-3x_2 \\ s.t. \ \ -x_1+2x_2+x_3 = 6 \\ x_1+x_2 + x_4 = 5 \\ x_1,x_2 ,x_3,x_4\ge 0min??x1??3x2?s.t.???x1?+2x2?+x3?=6x1?+x2?+x4?=5x1?,x2?,x3?,x4?≥0
因此這個線性規(guī)劃的參數(shù)為
c=[1?300],A=[?12101101],b=[65]c = \left[ \begin{matrix} 1 \\ -3 \\ 0 \\ 0 \end{matrix} \right],A= \left[ \begin{matrix} -1 & 2 & 1 & 0 \\ 1 & 1 & 0 & 1 \end{matrix} \right], b = \left[ \begin{matrix} 6 \\ 5 \end{matrix} \right]c=?????1?300??????,A=[?11?21?10?01?],b=[65?]
極點的計算方法
第一步,將Ax=bAx=bAx=b改寫為BxB+NxN=bBx_B+Nx_N=bBxB?+NxN?=b,其中BBB是AAA列空間的一個極大無關組;
第二步,對于每一個BBB,極點滿足xB=B?1b,xN=0x_B=B^{-1}b,x_N=0xB?=B?1b,xN?=0
對于B=[abcd]B = \left[ \begin{matrix} a&b\\c&d \end{matrix} \right]B=[ac?bd?], b=[b1b2]b = \left[ \begin{matrix} b_1 \\ b_2 \end{matrix} \right]b=[b1?b2??], B?1b=1ad?bc[db1?bb2?cb1+ab2]B^{-1}b=\frac{1}{ad-bc}\left[ \begin{matrix} db_1 -bb_2\\ -cb_1+ab_2 \end{matrix} \right]B?1b=ad?bc1?[db1??bb2??cb1?+ab2??],這道題中AAA有6個可能的極大無關組,因此極點個數(shù)可能有六個。
比如選擇B=[1001]B = \left[ \begin{matrix} 1&0\\0&1 \end{matrix} \right]B=[10?01?], 則B?1b=[65]B^{-1}b=\left[ \begin{matrix} 6 \\ 5 \end{matrix} \right]B?1b=[65?]。
極方向的計算方法
假設已經(jīng)完成了極點的第一步,如果N=[a1,a2,?,an?m]N=[a_1,a_2,\cdots,a_{n-m}]N=[a1?,a2?,?,an?m?],并且存在aja_jaj?使得B?1aj≤0B^{-1}a_j \le 0B?1aj?≤0,則極方向為
d=[?B?1ajej]d = \left[ \begin{matrix} -B^{-1}a_j \\ e_j \end{matrix} \right]d=[?B?1aj?ej??]
其中eje_jej?是n?mn-mn?m維了除了第jjj個元素為1其他元素均為0的向量。但這個例子中可行域有界,因此不存在極方向。
單純形法(表格形式)
決策變量為xB,xNx_B,x_NxB?,xN?,則目標函數(shù)為cBTxB+cNTxNc_B^Tx_B+c_N^Tx_NcBT?xB?+cNT?xN?,記目標函數(shù)值為fff,則f?cBTxB?cNTxN=0f-c_B^Tx_B-c_N^Tx_N=0f?cBT?xB??cNT?xN?=0,因此模型的表格形式為
| 0 | B | N | b |
如果取xB=B?1bx_B=B^{-1}bxB?=B?1b,則
cTx=cBTxB+cNTxN=cBTB?1b+cNTxN=cBTB?1b+(cNT?cBTB?1N)xNc^Tx = c_B^Tx_B+c_N^Tx_N = c_B^TB^{-1}b+c_N^Tx_N \\= c_B^TB^{-1}b+(c_N^T-c_B^TB^{-1}N)x_NcTx=cBT?xB?+cNT?xN?=cBT?B?1b+cNT?xN?=cBT?B?1b+(cNT??cBT?B?1N)xN?
因此f+(cNT?cBTB?1N)xN=cBTB?1bf+(c_N^T-c_B^TB^{-1}N)x_N=c_B^TB^{-1}bf+(cNT??cBT?B?1N)xN?=cBT?B?1b,于是表格形式改寫為:
| 0 | I | B?1NB^{-1}NB?1N | B?1bB^{-1}bB?1b |
如果?cNT+cBTB?1N≤0-c_N^T+c_B^TB^{-1}N \le 0?cNT?+cBT?B?1N≤0,當前的極點就是最優(yōu)點。在本例中應用單純形法:
第一步,選擇一個極點作為初始值,比如xB=[6,5]′x_B=[6,5]'xB?=[6,5]′,寫出表格形式:
| x3x_3x3? | 0 | -1 | 2 | 1 | 0 | 6 |
| x4x_4x4? | 0 | 1 | 1 | 0 | 1 | 5 |
此時?cNT+cBTB?1N≤0-c_N^T+c_B^TB^{-1}N \le 0?cNT?+cBT?B?1N≤0不成立,
?cNT+cBTB?1N=?[0,0]+[?1,3][1001]?1[?1211]=[4,1]-c_N^T+c_B^TB^{-1}N=-[0,0]+[-1,3]\left[ \begin{matrix} 1&0\\0&1 \end{matrix} \right]^{-1}\left[ \begin{matrix} -1&2\\1&1 \end{matrix} \right]=[4,1]?cNT?+cBT?B?1N=?[0,0]+[?1,3][10?01?]?1[?11?21?]=[4,1]
我們觀察AAA的部分,發(fā)現(xiàn)第一行第二列系數(shù)最大,因此我們用第二列替換第三列作為AAA的極大無關組,表格形式改寫為(對第三列到第六列的2、3行做行變換,目標是把第四列變成1,0,第一行根據(jù)公式?cNT+cBTB?1N-c_N^T+c_B^TB^{-1}N?cNT?+cBT?B?1N填充)
| x2x_2x2? | 0 | -1/2 | 1 | 1/2 | 0 | 3 |
| x4x_4x4? | 0 | 3/2 | 0 | -1/2 | 1 | 2 |
再觀察發(fā)現(xiàn)3/23/23/2最大,于是把x1x_1x1?換到x4x_4x4?的位置即可,最后會發(fā)現(xiàn)最優(yōu)點就是?x1+2x2=6,x1+x2=5-x_1+2x_2=6,x_1+x_2=5?x1?+2x2?=6,x1?+x2?=5的交點。
總結
以上是生活随笔為你收集整理的UA SIE545 优化理论基础1 例题3 凸多面体的表示与线性规划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA SIE545 优化理论基础1 例题
- 下一篇: UA MATH523A 实分析1 度量空