最优化——单纯形法,单纯形表的求取
最优化——单纯形法
一般性线性规划标准型为对象总结其基本步骤
maxzs.t. P1x1+P2x2+⋯+Pnxn=b⃗−−−(1)c1x1+c2x2+⋯+cnxn=z−−−(2)xj≥0,∀1≤j≤n\begin{array}{ll} \max & z \\ \text { s.t. } & P_{1} x_{1}+P_{2} x_{2}+\cdots+P_{n} x_{n}=\vec{b}---(1) \\ & c_{1} x_{1}+c_{2} x_{2}+\cdots+c_{n} x_{n}=z ---(2)\\ & x_{j} \geq 0, \forall 1 \leq j \leq n \end{array} max s.t. zP1x1+P2x2+⋯+Pnxn=b−−−(1)c1x1+c2x2+⋯+cnxn=z−−−(2)xj≥0,∀1≤j≤n
步骤一:求广义基本可行解
已知一个可逆方阵 B=(Pj(1),Pj(2),⋯,Pj(m))B=\left(P_{j(1)}, P_{j(2)}, \cdots, P_{j(m)}\right)B=(Pj(1),Pj(2),⋯,Pj(m)) 满足
B−1b⃗≥0B^{-1} \vec{b} \geq 0 B−1b≥0
其中 1≤j(i)≤n,∀1≤i≤m,1 \leq j(i) \leq n, \forall 1 \leq i \leq m,1≤j(i)≤n,∀1≤i≤m, 即 BBB 是线性规划标准型 的可行基阵
由BBB可以把线性约束(1)P1x1+P2x2+⋯+Pnxn=b⃗P_{1} x_{1}+P_{2} x_{2}+\cdots+P_{n} x_{n}=\vec{b}P1x1+P2x2+⋯+Pnxn=b改写为
⇔(Pj(1),⋯,Pj(m))(xj(1)⋮xj(m))+Pj(m+1)xj(m+1)+⋯+Pj(n)xj(n)=b⃗⇔(xj(1)⋮xj(m))+(B−1Pj(m+1))xj(m+1)+⋯+(B−1Pj(n))xj(n)=B−1b⃗\begin{array}{l} \Leftrightarrow\left(P_{j(1)}, \cdots, P_{j(m)}\right)\left(\begin{array}{c} x_{j(1)} \\ \vdots \\ x_{j(m)} \end{array}\right)+P_{j(m+1)} x_{j(m+1)}+\cdots+P_{j(n)} x_{j(n)}=\vec{b} \\ \Leftrightarrow \quad\left(\begin{array}{c} x_{j(1)} \\ \vdots \\ x_{j(m)} \end{array}\right)+\left(B^{-1} P_{j(m+1)}\right) x_{j(m+1)}+\cdots+\left(B^{-1} P_{j(n)}\right) x_{j(n)}=B^{-1} \vec{b} \end{array} ⇔(Pj(1),⋯,Pj(m))⎝⎜⎛xj(1)⋮xj(m)⎠⎟⎞+Pj(m+1)xj(m+1)+⋯+Pj(n)xj(n)=b⇔⎝⎜⎛xj(1)⋮xj(m)⎠⎟⎞+(B−1Pj(m+1))xj(m+1)+⋯+(B−1Pj(n))xj(n)=B−1b
可以得到一个基本可行解X=(x1...xn)TX=(x_1...x_n)^TX=(x1...xn)T的表达式:
XB=(xj(1)⋮xj(m)),(xj(m+1)...xj(n))=0X_{B}=\left(\begin{array}{c}x_{j(1)} \\ \vdots \\ x_{j(m)}\end{array}\right),(x_{j(m+1)}...x_{j(n)})=0XB=⎝⎜⎛xj(1)⋮xj(m)⎠⎟⎞,(xj(m+1)...xj(n))=0
对应线性约束的表达式变为如下:
XB+P^j(m+1)xj(m+1)+⋯+P^j(n)xj(n)=P^n+1−−−(3)X_{B}+\hat{P}_{j(m+1)} x_{j(m+1)}+\cdots+\hat{P}_{j(n)} x_{j(n)}=\hat{P}_{n+1}---(3) XB+P^j(m+1)xj(m+1)+⋯+P^j(n)xj(n)=P^n+1−−−(3)
其中P^j=B−1Pj=(p^1j⋮p^mj),∀1≤j≤n,P^n+1=B−1b⃗\hat P_j=B^{-1}P_j=\left(\begin{array}{c}\hat{p}_{1 j} \\ \vdots \\ \hat{p}_{m j}\end{array}\right), \forall 1 \leq j \leq n,\hat{P}_{n+1}=B^{-1} \vec{b}P^j=B−1Pj=⎝⎜⎛p^1j⋮p^mj⎠⎟⎞,∀1≤j≤n,P^n+1=B−1b
步骤二:求检验数
记 CB=(cj(1),⋯,cj(m))T,C_{B}=\left(c_{j(1)}, \cdots, c_{j(m)}\right)^{T},CB=(cj(1),⋯,cj(m))T,
用CBC_{B}CB左乘(3) 得 CBTXB+CBTP^j(m+1)xj(m+1)+⋯+CBTP^j(n)xj(n)=CBTP^n+1−−−(4)C_{B}^{T} X_{B}+C_{B}^{T} \hat{P}_{j(m+1)} x_{j(m+1)}+\cdots+C_{B}^{T} \hat{P}_{j(n)} x_{j(n)}=C_{B}^{T} \hat{P}_{n+1}---(4)CBTXB+CBTP^j(m+1)xj(m+1)+⋯+CBTP^j(n)xj(n)=CBTP^n+1−−−(4)
目标函数(2)用CBC_{B}CB可以写成: CBTXB+cj(m+1)xj(m+1)+⋯+cj(n)xj(n)=z−−−(5)C_{B}^{T} X_{B}+c_{j(m+1)} x_{j(m+1)}+\cdots+c_{j(n)} x_{j(n)}=z---(5)CBTXB+cj(m+1)xj(m+1)+⋯+cj(n)xj(n)=z−−−(5)
用(5)-(4)得:
z−CBTP^n+1=(cj(m+1)−CBTP^j(m+1))xj(m+1)+⋯+(cj(n)−CBTP^j(n))xj(n)−−−(6)z−z^=σj(m+1)xj(m+1)+⋯+σj(n)xj(n)−−−(7)\begin{array}{c} z-C_{B}^{T} \hat{P}_{n+1}=\left(c_{j(m+1)}-C_{B}^{T} \hat{P}_{j(m+1)}\right) x_{j(m+1)}+\cdots+\left(c_{j(n)}-C_{B}^{T} \hat{P}_{j(n)}\right) x_{j(n)}---(6) \\ z-\hat{z}=\sigma_{j(m+1)} x_{j(m+1)}+\cdots+\sigma_{j(n)} x_{j(n)}---(7) \end{array}z−CBTP^n+1=(cj(m+1)−CBTP^j(m+1))xj(m+1)+⋯+(cj(n)−CBTP^j(n))xj(n)−−−(6)z−z^=σj(m+1)xj(m+1)+⋯+σj(n)xj(n)−−−(7)
CBTP^n+1C_{B}^{T} \hat{P}_{n+1}CBTP^n+1就是第一步中XXX所求得的一个可行基本解的目标函数值z^\hat{z}z^,这个可以把XB=(xj(1)⋮xj(m)),(xj(m+1)...xj(n))=0X_{B}=\left(\begin{array}{c}x_{j(1)} \\ \vdots \\ x_{j(m)}\end{array}\right),(x_{j(m+1)}...x_{j(n)})=0XB=⎝⎜⎛xj(1)⋮xj(m)⎠⎟⎞,(xj(m+1)...xj(n))=0带入(4)和(5)就可以看出来。
步骤三:得到单纯形表
其中 (P^j(1),⋯,P^j(m))=Im,z^=CBTP^n+1=CBTB−1b⃗\left(\hat{P}_{j(1)}, \cdots, \hat{P}_{j(m)}\right)=I_{m}, \hat{z}=C_{B}^{T} \hat{P}_{n+1}=C_{B}^{T} B^{-1} \vec{b}(P^j(1),⋯,P^j(m))=Im,z^=CBTP^n+1=CBTB−1b
σj=cj−CBTP^j=cj−CBTB−1Pj,∀1≤j≤n\sigma_{j}=c_{j}-C_{B}^{T} \hat{P}_{j}=c_{j}-C_{B}^{T} B^{-1} P_{j}, \quad \forall 1 \leq j \leq nσj=cj−CBTP^j=cj−CBTB−1Pj,∀1≤j≤n
称 σ1,⋯,σn\sigma_{1}, \cdots, \sigma_{n}σ1,⋯,σn 为检验数,可看出基变量检验数等于0
总结
以上是生活随笔为你收集整理的最优化——单纯形法,单纯形表的求取的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 最优化——线性规划中最大规划和最小规划之
- 下一篇: 强化学习4——无模型预测(蒙特卡洛法和T