- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a1n
M
(
A1 ,
A2
,
..,
An
),
amn
可行域 D x Rn | Ax b, x 0 .
R( A) m ( n),
假设已找到一个非退化的基本可行解 x ,令其所对应的一个基为
B. 不失一般性,设 A (B, N ) , x (xBT , xNT )T ,则有
xm
0
…
0
…
1 … … am,m1
a mk
a mn
bm
完整的单纯形表
将 目 标 函 数 z 看 成 变 量 , 由 于 z cBB1b T x 等 价 于
z (cBTB1N cNT )xN cB b ,则将其系数及右端项添加到单纯形
表的最上面作为第 0 行,同时加上 z 对应的列,所得到新的
值
先找到一个初始基本可行 解,判断它是否最优,如果不 是,就找一个更好的基本可行 解,再进行判断.如此迭代下
去,直至找到最优的基本可行
解,或者判定该问题无界.
求新的 基本可行解
单纯形法是一种迭代的算法.
单纯形法的关键步骤
• 初始基本可行解的确定 • 最优性检验与判别 • 基变换
如何得到第一个 基本可行解?
z
x1 ... … 0 ... ... … … ... … …
b1
xr ... … 1 … ... … … ark … …
br
xm ... … 0 … ... … … ... … …
bm
x1 … xr … xm xm+1 … xk … xn
0
…
(3.2) (典式)
若 b 0 ,则(3.2)对应基本可行解 x (b, 0)T .
记 cT
(cBT
,
c
T N
)
,则目标函数
z
cTx
cBT xB
c
T N
x
N
cBT (b B1NxN ) cNT xN
cBT b (cBT B1N cNT ) xN
(3.3)
设 > 0 为任一正数,考察向量 x d .
由于 Ax d Ax Ad b,并且 x d 0 ,因此
x d 是一个可行解.
c x d c x cBT
cNT
B 1 0
Ak
ek
r
…
0
m1
…
0
…
n
z
br ark
k
xˆ1
... … ...
...
...
…
…
0
…
…
bi
br ark
aik
1
xˆk ... … ark … ... … … 1 … …
br a rk
xˆ m
... … ... … ...
…
…
br
br ark
ark
0;
(3)
xˆ k
0
br ark
(
0);
(4) xˆ j 0, 当 i m 1,..,k 1,k 1,..,n ,
可见 xˆ 0 ,它是可行解.
x1 … xr … xm xm+1 … xk … xn
0 … 0 … 0 m+1 … k … n
0
…
…
bm
br ark
amk
下面证明 xˆ 是基本可行解. 由定理 2.2,只需证明 xˆ 的正分量所对应的 A 中的列
向量线性无关.
由上述分析,xˆ 的正分量只可能出现在 xˆ1 , …, xˆr1 , xˆ k , xˆ r1 , …, xˆm 中.因此,若能证明列向量 A1, ..., Ar 1, Ak,
定理 3.1 若检验数向量 0 ,则对应的基本可行
解 x 为原问题的最优解.
(最优性准则)
证明:
由于 T 0 ,因此对任意一个可行解 x 0 ,其目标 函数值
z cT x z0 T x z0 cT x.
定理3.2:判定LP无界
定理 3.2 如果检验数向量 的第 k 个分量 k 0 ,
止;
Step 5 如果 Ak 0 ,则原问题无界,停止;
Step 6 Step 7
令r
argm
in
bi aik
| aik
0, i
1,2,...,m
;
以 Ak 替代 B 中的第 r 列,得到一个新的基 B,
转 Step 2.
2. 单纯形表
下面我们将单纯形法的全部计算过程放在在一个 类似增广矩阵的表格(即单纯形表)上进行.
可行解
x
移动到另一个“更好”的基本可行解
x
.
• 新旧基本可行解的差别在于原来的非基变量xk代
替原来的基变量xr而成为第r个基变量,而xr变为非
基变量.
• 整个过程称为换基,或为进行了一次迭代,称Ar 为退出基列,Ak为进入基列,而迭代前后相同的m-1 个列向量,称它们为相邻基.另外,称xr为离基变量, xk为进基变量.
假设当前的基 B A1, A2,L , Am ,将约束方程组 Ax b变
换为典式后的单纯形表为:
x1 … xr … xm xm1 … xk … xn RHS
x1
1
…
0
…
0
… … a1,m1
a1k
a1n
b1
xr
0
…
1
…
0
… a r ,m 1
a rk
… arn
br
的第 k 个分量 k 0 ,而其所对应的向量 Ak 至少有一个正分量,
则可以找到一个新的基本可行解 xˆ 使得 c xˆ c x .
证明: 只需要将 xˆ 找出来
设 A (B N ) ,且 m 1 k n.
令
d
ቤተ መጻሕፍቲ ባይዱ
Ak 0
ek
,其中
ek
为单位向量,则
由于 ark 0 ,因此,A1, ..., Am 线性相关,与它们是 x 的基
矛盾.
由定理 3.2 的证明,c xˆ c x k .由于 0, k 0 ,
故目标函数值 c xˆ c x .
定理3.3的几点说明:
• 定理3.3的证明过程实质上给出了如何从一个基本
单纯形表为:
z x1 … xr … xm xm1 … xk … xn RHS
z
1
0
…
0
…
0
… m1
k
… n
cBb
x1
0
1
…
0
…
0
… … a1,m1
a1k
a1n
b1
xr
0
0
…
1
…
0
… ar ,m1
a rk
… arn
br
xm
0
0
…
0
…
1 … … am,m1
Ar + 1, ..., Am 线性无关,则 xˆ 为基本可行解.
反证 假设它们线性相关,由于 A1, A2, …, Am 本来 是线性无关的(它们是 x 的基),这表明 Ak 可由 A1, ..., Ar 1, Ar + 1, ..., Am 线性表出.
设存在 m 1 个数 yi , i 1, ..., m, i r ,使得
min s.t.
z z0 T x
xB B1NxN b x0
称为基本可行
解 x 的检验数向
量,它的各个分量称 为检验数
(3.4)
1. 单纯形法的基本原理
定理 3.1(最优性准则) 如果检验数向量 0,
则基本可行解 x 为原问题的最优解.
定理 3.2 如果检验数向量 的第 k 个分量 k 0 ,
a mk
a mn
bm
目标函数值
给定基 B,由于
因此
Tx 0
T N
xBT 0
0
,
z0 cB b T x cB b ,
即单纯形表右上角的
cB
b
就是当前基本可行解
x
的目标
函数值.
实际使用的单纯形表
在对单纯形表进行行初等变换时,变量 z 所对应的 列各元素不会改变,因此可将表格中变量 z 的列去掉, 得到新的单纯形表:
令
m
in
bi aik
_
| aik
0,
1
i
m
br ark
,由于
x
b 0
是
非退化的,可知 b 0 ,因此 0.
故
(1) xi bi aik ( 0), 当 i 1,..,r 1,r 1,..,m ;
(2)