最优化——单纯形法,单纯形表的求取

最优化——单纯形法

一般性线性规划标准型为对象总结其基本步骤
max ⁡ z  s.t.  P 1 x 1 + P 2 x 2 + ⋯ + P n x n = b ⃗ − − − ( 1 ) c 1 x 1 + c 2 x 2 + ⋯ + c n x n = z − − − ( 2 ) x j ≥ 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)xj0,1jn

步骤一:求广义基本可行解

已知一个可逆方阵 B = ( P j ( 1 ) , P j ( 2 ) , ⋯   , P j ( m ) ) B=\left(P_{j(1)}, P_{j(2)}, \cdots, P_{j(m)}\right) B=(Pj(1),Pj(2),,Pj(m)) 满足
B − 1 b ⃗ ≥ 0 B^{-1} \vec{b} \geq 0 B1b 0
其中 1 ≤ j ( i ) ≤ n , ∀ 1 ≤ i ≤ m , 1 \leq j(i) \leq n, \forall 1 \leq i \leq m, 1j(i)n,1im, B B B 是线性规划标准型 的可行基阵

B B B可以把线性约束(1) P 1 x 1 + P 2 x 2 + ⋯ + P n x n = b ⃗ P_{1} x_{1}+P_{2} x_{2}+\cdots+P_{n} x_{n}=\vec{b} P1x1+P2x2++Pnxn=b 改写为
⇔ ( P j ( 1 ) , ⋯   , P j ( m ) ) ( x j ( 1 ) ⋮ x j ( m ) ) + P j ( m + 1 ) x j ( m + 1 ) + ⋯ + P j ( n ) x j ( n ) = b ⃗ ⇔ ( x j ( 1 ) ⋮ x j ( m ) ) + ( B − 1 P j ( m + 1 ) ) x j ( m + 1 ) + ⋯ + ( B − 1 P j ( n ) ) x j ( n ) = B − 1 b ⃗ \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)+(B1Pj(m+1))xj(m+1)++(B1Pj(n))xj(n)=B1b
可以得到一个基本可行解 X = ( x 1 . . . x n ) T X=(x_1...x_n)^T X=(x1...xn)T的表达式:

X B = ( x j ( 1 ) ⋮ x j ( m ) ) , ( x j ( m + 1 ) . . . x j ( n ) ) = 0 X_{B}=\left(\begin{array}{c}x_{j(1)} \\ \vdots \\ x_{j(m)}\end{array}\right),(x_{j(m+1)}...x_{j(n)})=0 XB=xj(1)xj(m),(xj(m+1)...xj(n))=0

对应线性约束的表达式变为如下:
X B + P ^ j ( m + 1 ) x j ( m + 1 ) + ⋯ + P ^ j ( n ) x j ( 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+13
其中 P ^ j = B − 1 P j = ( p ^ 1 j ⋮ p ^ m j ) , ∀ 1 ≤ j ≤ n , P ^ n + 1 = B − 1 b ⃗ \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=B1Pj=p^1jp^mj,1jn,P^n+1=B1b

步骤二:求检验数

C B = ( c j ( 1 ) , ⋯   , c j ( m ) ) T , C_{B}=\left(c_{j(1)}, \cdots, c_{j(m)}\right)^{T}, CB=(cj(1),,cj(m))T,

C B C_{B} CB左乘(3) 得 C B T X B + C B T P ^ j ( m + 1 ) x j ( m + 1 ) + ⋯ + C B T P ^ j ( n ) x j ( n ) = C B T P ^ 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)用 C B C_{B} CB可以写成: C B T X B + c j ( m + 1 ) x j ( m + 1 ) + ⋯ + c j ( n ) x j ( 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 − C B T P ^ n + 1 = ( c j ( m + 1 ) − C B T P ^ j ( m + 1 ) ) x j ( m + 1 ) + ⋯ + ( c j ( n ) − C B T P ^ j ( n ) ) x j ( n ) − − − ( 6 ) z − z ^ = σ j ( m + 1 ) x j ( m + 1 ) + ⋯ + σ j ( n ) x j ( 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} zCBTP^n+1=(cj(m+1)CBTP^j(m+1))xj(m+1)++(cj(n)CBTP^j(n))xj(n)(6)zz^=σj(m+1)xj(m+1)++σj(n)xj(n)(7)
C B T P ^ n + 1 C_{B}^{T} \hat{P}_{n+1} CBTP^n+1就是第一步中 X X X所求得的一个可行基本解的目标函数值 z ^ \hat{z} z^,这个可以把 X B = ( x j ( 1 ) ⋮ x j ( m ) ) , ( x j ( m + 1 ) . . . x j ( n ) ) = 0 X_{B}=\left(\begin{array}{c}x_{j(1)} \\ \vdots \\ x_{j(m)}\end{array}\right),(x_{j(m+1)}...x_{j(n)})=0 XB=xj(1)xj(m),(xj(m+1)...xj(n))=0带入(4)和(5)就可以看出来。

步骤三:得到单纯形表

在这里插入图片描述

其中 ( P ^ j ( 1 ) , ⋯   , P ^ j ( m ) ) = I m , z ^ = C B T P ^ n + 1 = C B T B − 1 b ⃗ \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=CBTB1b

σ j = c j − C B T P ^ j = c j − C B T B − 1 P j , ∀ 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=cjCBTP^j=cjCBTB1Pj,1jn

σ 1 , ⋯   , σ n \sigma_{1}, \cdots, \sigma_{n} σ1,,σn 为检验数,可看出基变量检验数等于0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值