optimization: linear programming - zhejiang …...content linear programming (线性规划)...
TRANSCRIPT
Optimization:
Linear programming
Hongxin Zhang
2015-04-07
前3次作业的回顾
曲线拟合
PCA
MOG – EM算法
Content
Linear programming (线性规划)
Non-linear optimization (非线性优化)
Text books
《线性规划》
张建中,许绍吉,科学出版社
《最优化理论与方法》
袁亚湘,孙文瑜,科学出版社
《数学规划》
黄红选,韩继业,清华大学出版社
一、线性规划
在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。
1947年G. B. Dantzig 求解线性规划的单纯形方法
现有的计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了。
运筹学
数学规划
线性规划(Linear Programming,LP)
$利益驱动$
1. 基本理论
1.1 问题定义
(linear programming, LP)
某手游计算机公司开发运营大型手游,有A, B, C三个技术团队 RPG类手游系统
每套开发运营的利润4000万元
需用A、B两个技术团队协作实施
A团队2个月,B团队1个月;
社交类手游 每套开发运营的利润3000万元
需用A, B, C三个技术团队协作实施
每个团队各需1个月
2014~2015年度,A队可工作10个月,B队8个月、C队7个月
问:怎样的开发运营策略能使总利润最大?
1.1 问题定义
(linear programming, LP)
设可开发x1个RPG游戏, x2个社交游戏
目标函数
约束条件
2134max xxz
0,
7
8
102
21
2
21
21
xx
x
xx
xx
附加条件:x1和x2是整数
讨论?!?
1.1 问题定义
(linear programming, LP)
在一组线性的等式或不等式约束下,求一个线性函数的最小值或最大值。
形式化的定义:
min c1x1+…+ cnxn
s. t.
a11x1+…+ a1nxn ≤b1
…
am1x1+…+ amnxn ≤bm
x1,…, xn ≥ 0
1.1 问题定义
(linear programming, LP)
在一组线性的等式或不等式约束下,求一个线性函数的最小值或最大值。
形式化的定义:
min cTx
s.t. Ax ≤b
x ≥ 0
目标函数
objective function
c: 价值向量,cost vector
A: 约束矩阵,constraint matrix
b: 右端向量,right-hand-side vector
1.1 问题定义
(linear programming, LP)
X:满足约束条件,称为可行解或可行点 (feasible point)
D:所有可行点的集合,称为可行区域 (feasible region)
LP问题: D = Ø, 无解或不可行
D ≠ Ø,但目标函数在D上无上界:无界
D ≠ Ø,且目标函数有限的最优解:有最优解
线性规划的图解法
0 2 4 6 8 100
1
2
3
4
5
6
7
8
9
10
x2=7
2x1+x2=10
x1+x2=8
z=12
(2,6)
2134max xxz
0,
7
8
102
21
2
21
21
xx
x
xx
xx
线性规划在Matlab中的实现方法
Matlab中规定线性规划的标准形式为:
其中:
c和x为n维列向量,
b为m维列向量,
A为m×n矩阵
http://www.mathworks.cn/cn/help/optim/ug/linprog.html
bAxxc
x
t.s. minT
线性规划在Matlab中的实现方法
基本函数形式为
linprog(c, A, b)
返回值是向量x的值
调用举例:
[x,fval]=linprog(c, A, b, Aeq, beq, LB, UB, X0, OPTIONS)
fval返回目标函数的值,
Aeq、beq对应等式约束,Aeq X = beq
LB、UB分别是变量X的下界和上界, X0是X的初始值
OPTIONS是控制参数。
线性规划在Matlab中的实现方法
例: Matlab代码 c=[2,3,-5];
a=[-2,5,-1];
b=-10;
aeq=[1,1,1];
beq=7;
x=linprog(
-c,a,b,aeq,beq,
zeros(3,1))
value=c'*x
321532max xxxz
0,,
1052
7
321
321
321
xxx
xxx
xxx
线性规划在python中的实现方法
CVXOPT :
http://abel.ee.ucla.edu/cvxopt/index.html
1.2 标准LP问题
从实际中总结出来的LP形式不完全一样: 目标函数是最大值或最小值
约束条件是等式约束或不等式约束
变量有上界或下界或无界
min z = cTx
s.t. Ax = b
x≥0
标准形式的LP问题
标准化
目标函数的转换 max z min (-z)
约束条件的转换(引入松弛变量)
变量的非负约束
min z = cTx
s.t. Ax = b
x≥0
0
1
1
in
n
j
iinjij
n
j
ijij
x
bxxabxa
jjjjjjlxyylx ,0
jjjjjjvuxvux ,0,0自由变量
标准形式的LP问题
标准化
目标函数的转换 min |x1| + |x2|?
变量代换
min z = cTx
s.t. Ax = b
x≥0
0,0
jjjxxx 自由变量
j
jj
j
jxxxz
1.3 可行区域D
下面讨论可行区域 D={x | Ax = b, x≥0} 的结构
首先讨论集合 K={ x | Ax = b }
0 2 4 6 8 100
1
2
3
4
5
6
7
8
9
10
x2=7
2x1+x2=10
x1+x2=8
z=12
(2,6)
1.3.1 仿射集
仿射集:对于集合SEn,如果对任意x, yS, λE1, 都有
λx+(1-λ)yS,
则称S为仿射集
例:
E3中的直线和平面都是仿射集,空集Ø也是仿射集
S是En中的子空间的充要条件是S为包含原点的仿射集
每一非空的仿射集S都平行于唯一的子空间L
集合的平移:S +p={ x + p | x S }
非空仿射集S的维数定义为与它平行的子空间的维数,dim(S)
1.3.1 仿射集
维数为0,1和2的仿射集也称为点、直线和平面
En中的n-1维仿射集称为超平面(hyperplane)
给定bE1及非零向量 a En,则集合
H={ x | aTx=b }
是En中的一个超平面,并且En中的任一超平面都能表示成这种形式。
a称为H的法向量
当a固定,b取不同值时,aTx=b表示En中的一族平行的超平面
1.3.1 仿射集
一般仿射集的特征:
给定 mxn 实矩阵 A 和 bEm,则 K={xEn | Ax=b} 为 En
中的仿射集,并且En中的任一仿射集均可表成此种形式。
集合 K={ x | Ax = b }为 En 仿射集
若 rank(A) = m,
则 dim(K) = n – m
1.3.2 凸集(Convex Set)
对任意的 x, y C,λ(0,1),有
λx+(1-λ)y C,
则C为凸集
En中有限个闭半空间的交是凸集,称为多面凸集,可表示成{x | Ax ≤b }形式
可行区域 D={ x | Ax=b, x≥0 } 为凸集。
凸集 非凸集
1.3.2 凸集与界面
凸集C的非空凸子集C’若满足:
如果uC’,且u是C的一个线段的内点,即存在x,yC,使u(x,y),
则可推出x,yC’,就称C’是C的一个界面。
显然C本身也是一个界面。
1.3.3 界面、极点与极方向
定理:可行区域 D的子集D’为D的一个界面当且仅当存在指标集合
Q{1,…,n},使得
D’={x|Ax=b,x≥0,且xj=0当jQ}
若dim(D)= n-m, D’为D的界面,且dim(D’)=n-m-k,则|Q|≥k.
凸集C的1维界面称为边(edge), 0维界面称为极点(extreme point)。
若两个极点在同一条边上,称它们是相邻的。
极点的等价定义:xC 为极点, 若 x=λx1+(1-λ)x2, 其中x1, x2 C 且
λ(0, 1),则必有x1 = x2 = x.
直观的说,极点不是C中任一线段的内点。
极方向
设C≠ Ø为En中的一个凸集,dEn,d≠0。若对任一
xC 及λ>0,均有x+λd C,则称d为C的一个方向。
如果一个方向d不能表成两个方向的正线性组合,
就称d是C的极方向(extreme direction)
d是D={x | Ax=b, x≥0}≠Ø的方向等价于
d满足条件Ad=0, d≥0, d≠0
1.4 基本可行解
假定rank(A)=m,则A中必有m个线性无关的列向量——构成满秩方阵B,A中其余各列组成子阵N,即A=(B, N)。相应的x=(xB, xN),则Ax=b可改写成
Ax = BxB+NxN=b.
因为B为满秩,则B-1存在,那么
xB = B-1b-B-1NxN
任给一组值xN,则可得到相应的xB,
(xB, xN)
为Ax=b的一个解。
令xN=0, 则xB=B-1b, x=(B-1b, 0)称为约束方程组的基本解。
min z = cTx
s.t. Ax = b
x≥0
1.4 基本可行解
设 rank(A)=m
A中m个线性无关的列向量构成满秩方阵B
A中其余各列组成子阵N
A=(B, N)
x=(xB, xN)
Ax=b 可改写成 BxB + NxN =b
B称为基,B中的m个线性无关的列向量称为基向量,xB的m个分量称为基变量,其余的变量称为非基变量。
基本解不一定满足非负条件,故不一定是可行解。对于非负的基本解,称为基本可行解,此时B称为可行基。
1.4 基本可行解
证明:(充分性)
为基本可行解。线性无关,从而故
为极点矛盾。与
然而则因为
。充分小时容易验证当
,则取
有:则对任一正实数
使得非零反证。若相关,则存在
线性无关。应的列个分量取正值,欲证对的极点,设前为设
xaa
xxxx
xx
xx
yxxyxx
ba
a
y
aax
k
k
j
jjj
k
j
jj
T
k
k
y
D
yx
y
yy
kD
,...,
,2
1
2
1
,,0
,
,
.0
,)0,...0,,...,(
,...,
1
21
21
21
21
1
1
1
1
证明:(必要性)
为极点。则
。从而线性无关。故为基本可行解,因为
可得,。由,则有时,因为
-
,使得,及在个分量取正值。假设存为基本可行解,设前设
x
xxxxxaax
0a
bxx
xxx
xxx
2121
1
1
21
2121
21
21
),,...,1(,...,
001
1
10,
kj
xx
AAxxxkj
Dk
jjk
k
j
jjj
jjj
退化
基本可行解x,若它所有的基变量都取正值,则x为非退化的(non-degenerated); 反之,为退化的。
一个可行基对应一个基本可行解;反之,若一个基本可行解是非退化的,则它也对应着唯一的可行基。
若一个基本可行解是退化的,则它可以由不止一个可行基得到。
对应一个LP问题,如果它的所有基本可行解都是非退化,就说该问题是非退化的,否则为退化的。
可行区域的极方向
极方向的代数性质: D={x | Ax=b, x≥0}的方向d有k个非零分量,则d为D的极方向的充要条件是d的非零分量对应的列向量组秩为k-1
极方向的几何性质:d为D的极方向的充要条件是d为D的某个半直线界面方向
如果D有极方向,显然D为无界集;反之若D为无界集,则D有方向,且有极方向
1.5 线性规划基本定理
使得
和的充要条件是存在一组则为
所有极方向的所有极点为定理:设
),...,1(),...,1(,,...,
,,...,0,|
1
1
ljkiDx
AD
ji
l
k
dd
xxxbxx
基本定理1(表示定理)
k
i
i
ji
l
j
j
j
k
i
i
i
ljki
1
11
1
,...,1,0;,...,1,0
,
dxx
极点 极方向
基本定理2
给定LP问题
min z = cTx
s.t. Ax = b
x ≥ 0
(1)若存在有限最优值(即有最优解),则最优值必在可行
区域D的某个极点上达到。
(2)目标函数存在有限最优值的充要条件是对D的所有极方向
dj,均有cdj≥0
最优值。
上达到点最小值。即证明了在极,即使得目标函数达到=其余的
。于是令则可知目标函数不小于设
或不存在极方向。
就需要所有的要目标函数存在下界,可以任意地大,那么若因为
问题。的和问题转换成关于的则将关于
可表示为则由表示定理可知任意为
所有极方向的所有极点为证明:设
pi
p
pip
j
j
ji
k
i
i
l
j
j
j
k
i
i
i
k
i
i
ji
l
j
j
j
k
i
i
i
l
k
ki
lj
ljki
LPLP
ljki
D
AD
x
xcxcxc
dc
dcxc
x
dxx
xdd
xx0xbxx
0
1},1|min{
,...,1 0
,...,1,0 ;,...,1,0 ;1 s.t.
min
1
,...,1,0 ;,...,1,0
,
,,...,
,,...,,|
1
11
1
11
1
1
定理的注释与理解
定理说明: 标准LP问题的目标函数的最优值必可在某个基本可行解处达
到。
求解标准LP问题,只需要在基本可行解的集合中进行搜索。
求出并比较所有基本可行解的方法通常不可行。且原因在于当n较大时,基本可行解个数将很大。
通常的方法根据一定的规则在基本可行解的一个子集中计算搜索,这就是单纯形法。
2. 单纯形方法
(Simplex Method)
2.1 基本单纯形方法
主要思想:先找一个基本可行解,判断它是否为最优解。若不是,就找一个更好的基本可行解,在进行检验。如此迭代,直至最后找到最优解,或判定无界。
两个主要问题:
寻找初始解
如何判别和迭代(先考虑)
判别和迭代
假定 rank(A) = m<n, 且假定已找到一个非退化的基本可行解,即找到一个基B。则Ax=b可写成
xB+B-1NxN=B-1b (1)
1
1
1
1
1
1
( , ..., )
( , ..., ) , 1, ...,
( , ..., )
1 2
2
m
T
j j j m j
T
m
B N
B a a
B a a j n
B b b
N B N
N
B
a a
b b
x x b
记
则 上 式 可 写 成
显 然 , 不 同 的 基 对 应 的 方 程 表 达 式 也 不 同 。
式 称 为 基 的 典 则 方 程 组 , 简 称 典 式 。
判别和迭代
1
0
0
2 2
2
0 , 2 .0
(3 )
B N
n
B B N N B B j j j
j m
B
N
B
z N c
z
z
x x b
bb x
cx c b c c x c b c a x
x
c x c b
-
显 然 , 不 同 的 基 对 应 的 方 程 表 达 式 也 不 同 。
式 称 为 基 的 典 则 方 程 组 , 简 称 典 式 。
若 则 式 就 对 应 着 基 本 可 行 解
将 目 标 函 数 也 做 相 应 的 变 换 ,
用 表 示 在 基 本 可 行 解 处 的 目 标 函 数 值 ,
则 有 = ( 即 上 式 的 常 数 项 )
判别和迭代
1
1 1
, ...
1, ...,
0 .
, 1, ...,
( , ) ( , )
(3) .
m
B j j
j B j j
B B N B N
B
j m
c
c j n
B A B N
z
a a
c a
c a
c c ζ ζ 0 c c
c b ζx
因 为 是 线 性 无 关 向 量 ,
故 当 时
引 入 记 号
或 用 向 量 形 式
=
则 式 改 写 成
判别和迭代
0
1
,
m in (4 )
. . , (5 )
.
B
B N
z
L P
z z
s t B N
c b ζx
ζx
x x b
x 0
经过变量变换后, 问题可叙述成
2 .1 : 4 0
2 .2 : 4 0
2 .3 : 4 0
ˆ ˆ,
k k
k k
ζ
ζ
ζ x
ζ a 0
a
x cx c x
定 理 若 ( ) 中 , 则 为 最 优 解 。
定 理 若 ( ) 中 存 在 某 一 分 量 , 且 ,
则 原 问 题 无 解 。
定 理 若 ( ) 中 有 , 且 至少 存 在 一 个 正 分 量 ,
则 能 找 到 基 本 可 行 解 使 得 。
),(),(11
NBNBBNBAB cc0ζζccζ
=
1
ˆ
m in 0, 1, ..., 0
ˆ .0 0
ˆ (5)
ˆ ˆ ˆ ˆ.( (0 , ..., , 0 ..0 ))
ˆ ˆ0
i r
ik
ik rk
k k
k k
n
B N k j j k k N
j m
b ba i m
a a
N x x
x
a b ax x e e
x
x x b a a b a a b
x x
构 造 ( 更 好 的 基 本 可 行 解 ) 。 令
下 面 将 证 明 是 可 行 解 。 带 入 式 ,
注 意 到
根 据 的 构 造 , 显 然 可 知 。 故 是 可 行 解 。
判别和迭代
线性无关。故只需要证明
而由于这里
的各分量为是基本解。下面再证明
mrkr
kr
i
rkkk
ikrkrii
aaaaa
xx
kjnmjx
abx
miaabbx
,...,,,,...,
,0ˆ0ˆ
.,,...,1,0ˆ
/ˆ
,...,1,/ˆ
ˆˆ
111
xx
判别和迭代
1
1,
1
1
1,
1
0 0 0
{ , ... }
1
,
( )
0 , ...
ˆ ˆ( ) .
m
k
m
k i i
i i r
m
k k k k ik i
i
m
rk r ik i i
i i r
rk m
k
m
y
B B a
a a y
a
z z z ζ z
a a
a
a a
a a a a a
a a 0
a a
x ζx
反 证 法 。 若 相 关 , 则 因 为 是 线 性 无 关 的 ,
从 而 必 是 其 余 的 个 向 量 的 线 性 组 合 。
即
又 故 =
两 式 相 减 得
因 为 , 故 线 性 无 关 , 引 出 矛 盾 。
最 后
线性无关证明mrkr
aaaaa ,...,,,,...,111
相关
单纯形法的计算步骤
.2 .7
0min .6
, .5
0 .4
},...,1|max{ .3
; .2
; .1
得到新的基,回到代替以
=求最小比
停止,原问题无界。若
及最优值,停止。已找到最优解若
求
求出对应的典式
找初始的可行基
Brk
ik
ik
i
rk
r
k
B
N
B
k
jk
aa
b
a
b
z
nj
aa
0a
bc0
b
x
xx
进入基。所对应的列向量一般取最大的分量
得较快,则为了使目标函数下降
有不止一个正分量,在迭代过程中,如果
称之为检验向量。
kkζ a
ζ
ζ
2.2 单纯形表
mnmkmmm
rnrkrmr
nkm
nkmmr
rk
mrkrm
r
k
baaa
baaa
baaa
xxxxxx
B
xx
BB
x
x
,,1,
,,1,
1,1,11,1
11
111
......1...0...0
......0...1...0
......0...0...1
............
*
*
.,...,,,...,ˆ,...,
ˆ
阵为下,典式的系数增广矩在基
为离基变量。称为进基变量,
换基变换
变成另一个基等价地,基
)。值为零(变成非基变量同时使原来的基本变量
,变成取正值的基本变量即使原来的非基变量
——改进的基本可行解的构造方式可知,得到和根据
aaaaaaa
x
xr与xk的地位互换。
第k列通过初等变换变成单位向量er.
riaabbbabb
B
ari
arii
aar
ikrkriirkrr
ik
T
r
ik
T
r
T
i
T
r
T
i
rk
T
r
T
rrk
T
r
,)/(ˆ,/ˆ
ˆ
ˆ
ˆˆ)2
/ˆ,)1
所对应的基本可行解。最后一列正是基
乘以行行减去新的第即第
,)行(对第
除以行第
a
aaaa
aaa
。式中一同进行初等变换看成一个方程,放在典
=+,或=+
将上式的等价形式
。换成将也要做相应的调整,即换基时,目标函数
0
1
ˆ
zzNBz
BBNz
NNBNNB
NNBB
xζbcxcc
xccbc
mnmkmmmm
rnrkrmrr
nkm
nkm
nkmmr
baaax
baaax
baaax
zz
RHSxxxxxxz
,,1,
,,1,
1,1,11,11
01
11
1000
0100
0010
0001
单纯形表
b0x
ζ0
xx
NI
zz
RHSz
B
N
NB
01
单纯形表可简记为
上述变换又称之为旋转(pivot),类似于解线性方程组的主元消去法.
转轴元 转轴行
转轴列
2.3 初始解:两阶段法
.0min00
,)1,...,1(
0,
..
min
,,...,
)( ..
min
1
gDDD
DD
Ats
g
xxm
Ats
a
a
a
T
mnna
xxx
1
xx
bxx
1x
x
0x
0bbx
cx
。而显然
,辅助问题的可行域为。设原问题的可行域为其中
考虑如下辅助问题个人工变量引入
设原问题为
2.3 初始解:两阶段法
题的一个可行解。把它除去后即得到原问。这是自然有
。说明
能:求解,其结果有两种可于是可进行单纯形迭代
,个基本可行解是对于辅助问题来说,一
考虑如下辅助问题个人工变量
,00min)2
.0min)1
.0min0
0,
..
min
,,...,1
a
a
a
a
a
T
mnna
g
Dg
gD
Ats
g
xxm
x
b
0
x
x
x
xx
bxx
1x
x
2.3 初始解:两阶段法
工变量。去掉该行以及对应的人个元素都为零,则直接行的前若第
。本量消除了人工变量进入基变量,同时从基则非人工变量
为转轴元进行变换,个元素中不为零的元素行的前取第
为人工变量,设基变量
。去基变量中的人工变量否则,进行旋转变换消
本可行解。是非基变量,则解为基若此时所有人工变量都
nr
xx
anr
x
rs
rs
r
.0min0
0,
..
min
,,...,1
gD
Ats
g
xxm
a
a
a
T
mnna
x
xx
bxx
1x
x 得到辅助问题个人工变量
2.4 初始解:大M法
法求解。,因此总可以用单纯形而新问题有初始解
是新问题的最优解。是原问题的最优解
说取得足够大,那么可以。只要其中
+
得到新问题如下及足够大的正数引入
设原问题为
b
0
x
1
xx
bxx
1xcx
x
0x
0bbx
cx
0
)1,...,1(
0,
..
min
,
)( ..
min
x
M
Ats
M
ME
Ats
a
a
a
m
a
2.5 退化与防止循环
若单纯形表中右端向量存在分量为0,即出现退化解的情况下,可能出现循环。为了避免循环,需要再补充一些旋转规则。
字典序方法
Bland规则
字典序方法
行。的第为其中
后,令进基变量字典序法就是在选定了
记为:
最小的。为该组向量中按字典序则称=均有使得对所有有若一组
按字典序大于等于则称=若对向量
。=非负,记为非负的,称为按字典序并且第一个非零分量是非零向量
iBmiaa
lexa
x
lex
iik
ik
i
rk
r
k
it
ttiiti
1,,,...,1,0min
.min
,,,,
.,,,
,
bppp
xx
xxxxxx
yx0yxyx
0xx
Bland规则
0minmin
)2
)1
ik
ik
i
rk
r
rk
r
l
kk
aa
b
a
brl
a
bx
x
作为离基变量。即下标最小的那个基变量
达到最小,就选其中个的确定:如果同时有几离基变量
作为进基变量。所对应的非基变量选下标最小的正检验数
Bland规则的优点是简单易行,但缺点是只考虑最小下标,而不考虑目标函数值下降的快慢。故其效率比字典序或原来单纯形法低。
在实际中,退化是常见的,但退化不一定产生循环。事实上,产生循环是较罕见的。
2.6 修改单纯形法
当LP问题的规模很大时,如何减少存储量和计算时间,就是一个必须加以考虑的问题。在实际中,大多采用修改单纯形法。
逆矩阵法
的修改单纯形表。
了对应于基为转轴元旋转,就得到以添加一列的修改单纯形表的右边定理:对应基
满意。则计算量显然难以令人从构造如果每一次迭代都必须
的修改单纯形表。最后构造对应于得到新的基量,用最小比确定离基变再求
为进基变量确定非基变量进行迭代计算。由根据这张表和原始数据
表。,该表称为修改单纯形
形表,仅存贮下列数据逆矩阵法对每一张单纯
一般单纯形表为
B
ζB
B
BBxB
xxc
BB
BB
B
z
BNBI
BNBz
RHSz
rk
k
k
rkk
kjjjk
BBo
B
BNB
NB
ˆ
,
,
ˆ,ˆ,
|max
1
1
1
11
11
1
11
11
aa
aa
wa
b
bcc
b
w
b0x
bccc0
xx
3. 最优性条件
和对偶理论
对偶性
对于每一个线性规划P,总存在着另一个线性规划D,两者之间存在着密切的联系,人们可以通过求解对偶规划D来获得原规划P的最优解。
3.1 Karush-Kuhn-Tucker条件 定理
0,0)(
,,
,
,,
min
,,,
**
**
*
xvbxw
0v0w0vwc
0xbx
vw
0x
bx
xc
xxcb
A
A
A
KKTEE
As.t.
LPEEEnmA
nm
nnm
条件得到满足使得下列存在的最优解的充要条件是
问题为则阶矩阵,为设
0)( 0)(
**
**
xcwbxw
0wcw
0xbx
0vwcv
AA
A
A
KTTA
,
,
,
条件的另一种形式),可得消去(利用若将
3.1 Kuhn Tucker条件
.0)(
,
0
,
,
xcw
cw
0xbx
vx
0v0vwc
0xbx
b
bxbx
A
A
A
A
A
TKA
AA
TKLP
=
或等价的
=
条件,可推出相应的改写成只要将
条件问题的对于标准形式的
3.1 Kuhn Tucker条件
.
,,0,
,
)(),(),()(
0.0 0
0)(
11
1
1
0ζ0
0v
ccwcvcwv
ccwcv
cw
0vwc
0wc
0,0vvwcc0vwc
vxxvxvvx
ζ0b0
b
x
x
vv
TK
NBNB
x
NBN
B
N
B
NB,A
TK
BNNNBB
BNNN
B
NN
B
NBNB
BBNNBB
N
B
的取法,易知而根据
。外,其余条件都已满足条件除了的
如果取本可行解这就是说,若给一个基
,于是有可改写为条件
,可知,且=+由
是什么关系呢?和
,验向量为最优的充要条件是检一个基本可行解
3.2 对偶理论
对偶问题可被看作是原始问题的“行列转置”
对偶问题是:
其中y1和y2分别表示对应于约束Ax>=b和-Ax<=B的对偶变量组。
令y=y1-y2
0,s.t.min xbAxxcT
0, s.t. min
x
b
bx
A
Axc
T
cy
yAA
y
ybb
TTTT
2
1
2
1 s.t.max
cyA yb TT
s.t. max
对偶定理
设x和w分别为(P)和(D)的可行解,则有cx≥wb.
设x*和w*分别为(P)和(D)的可行解,则x*和w*分别为(P)和
(D)的最优解的充要条件是cx*=w*b.
推论:若(P)有最优解x*,则(D)有最优解w*,且cx*=w*b;
若(P)无界,则(D)无解。反之亦然。
互补松弛性:设x*和w*分别为(P)和(D)的最优解,则有
w*(Ax*-b)=0, (c-w*A)x*=0。
(互补松弛性),
(对偶可行性)
(原始可行性),
条件
0)( 0)(
,
:
**
**
xcwbxw
0wcw
0xbx
AA
A
A
TK
对偶定理
从K-T条件与单纯形方法中的最优准则的关系中可以
看出:在单纯形方法中,除了K-T条件的v≥0外,其余
都得到满足。即单纯形法就是保持了原始可行性、互
补松弛性、c-wA-v=0得到满足的条件下逐步改善基本
可行解,使得对偶可行性中的v=c-wA≥0得到满足。
启发:也可以在保证对偶可行性和互补松弛性满足的
条件下,改善解使得原始可行性得到满足。
3.3 对偶单纯形法
0
..
max)( min)(
x
cwx
wbcx
As.t. bAts
DP
性法。这种方法称为对偶单纯
解。行性时,也就找到最优,即正则解满足原始可增加,直到=函数
目标代到另一个正则解,使从一个正则解开始,迭地,求解原规划目标函数值增加。等价
使得到另一个基本可行解,的一个基本可行解迭代从对偶规划同单纯形法一样,求解
。的正则解是一一对应的的基本可行解和,称为正则基。容易验证此时的基
的正则解。为问题则称
对应的检验向量的一个基本解的正则解:若原问题
的基本可行解。为,则称若
的基本解,为的解为满秩方阵,则,其中=的基本可行解:设
0
)(
)()(
)(
,),(0
)(
)(
)(),(
11
1
1
1
bcxbcwb
x
0cc0ζb
x
wcw
cwcw
BBz
P
DD
PDB
P
NBB
PP
DN
DBBBNBAD
B
NB
N
BB
3.3 对偶单纯形法
0
..
max)( min)(
x
cwx
wbcx
As.t. bAts
DP
。为转转轴元旋转,返回。以
否则令
停止,原问题无解;。若
否则令
最优解;,停止,已找到原问题。若
,建立单纯形表。。找一个正则基
24
}0|min{
,03
}.,...,1|min{
02
1
1
rk
rj
rj
j
rk
k
r
ir
a
aaa
mibb
B
B
a
bb
3.4 原始-对偶单纯形法
同时对对偶问题和第一阶段地辅助问题求解。从对偶问题的任意可行解开始,同时在迭代过程中保持对偶可行性和互补松弛性以及x≥0的情况下,通过剔除人工变量使Ax=b成立。
)。(等价于剔除人工变量
所减少的限定问题的最优值有较对应于的限定问题的最优值将对应于
同时目标函数值有所增加,,使得的另一个基本可行解,找若
且满足互补松弛性)。
的可行解,和分别是和的最优解(因为为问题,则=若
解。的辅助问题的基本可行,则它是,得到最优解求解问题
的限定问题。称为对应于。问题其中
,于是辅助问题为(当
将令,为保持互补松弛性的一个可行解若已知
到辅助问题中引入人工变量后,得在
ww
w0x
wxx0x
x
x
waw
0x
bxx
1x
aw
0cwxw
0xx
bbxx
1x
x
cwx
wbcx
ˆ
)(ˆ)(
)()()(
)()(
)(},...,1,|{
,0
,0
.
min)(
)0
),)(()(
,
)0( .
min
)(
0
..
max)( min)(
DD
DPP
PP
PnjcjQ
Qjx
Qjx
Ats
gP
cx
AD
Ats
g
P
As.t. bAts
DP
a
a
a
jj
a
j
j
a
a
jjj
a
a
a
。。。的限定问题。如此循环来求解对应于可以使用它来作为初值
可行解,因此的限定问题的一个基本还是对应于满足要求。同时,可以证明
--=
其中+=构造
无解。原问题
,故。由于就是辅助问题的最优解解,于是问题的对偶问题的最优
还是辅助,则说明,都要有的为其最优解。如对于所令
的对偶问题考虑
w
wx
xw
avav
aw
vww
xx
x
v0avv
1v
va
vb
ˆ
ˆˆ
.,...,1,0min
,ˆ
)(
0
,...,1
,0 ..
max)(
)()(
a
j
j
jj
a
a
j
j
njc
P
nj
Qjts
D
DP
。,返回+=,并且构造-
-=
;否则令,则停止,原问题无解。若
。解为其对偶问题并令其最优题的最优解;否则,求,停止,以及找到原问若它的最优值
的限定问题。求解。令
作为初始解)=时,可取。(当,满足的初始解的形式。找其对偶规划
。变求解的规划为
2,...,1,0min
3
0
,0
,0
.
min
},...,1,|{2
00
0
..
min
1
vwwavav
aw
0v
v
0x
bxx
1x
waw
wccww
x
x
cx
njc
A
g
Qjx
Qjx
Ats
g
njcjQ
A
bAts
j
j
jj
a
j
j
a
a
jj
3.5 对偶初始解 对偶单纯形法和原始-对偶单纯形法都需要一个对偶可行解。而
且对偶单纯形法还要求是一个基本可行解。
一点均是最优解。半直线界面,其上任意则表示可行区域的一个而
也是基本可行解。此时),令解。否则(
还是一个基本可行为原问题的最优解。若为原问题最优值,。=
。问题无界。当
了)会变的可以任意充分大。(否则充分大,故一定有。由于
且行解。这时原问题一定有可,最优值为。扩充问题有最优解
原问题无解。。扩充问题无解
计算结果有两种可能:
解。-对偶单纯形法开始求用对偶单纯形法或原始正则解。于是可以开始
个,则新单纯形表对应一纯形表。因为为转轴旋转得到新的单以设
扩充问题有可行解)对于充分大的题有可行解问题。(可证明:原问增加约束后,称为扩充
问题)从而这一约束不影响原是一个充分大的参数(否则,增加一个约束
题的一个基本可行解则说明已经找到对偶问此时若
并化为典式。消去法找到一个基问题,总可以使用高斯对应任意一个
},|{
},0|min{0
,000 (ii)
,0 (i)
ˆ0ˆ
,ˆ2
1
0,max
10
001
,
,
.,
,
021
0210212
2102
02
221
21021
,1
1
0
1
1
MMM
MMMM
zzz
zMz
zMMzz
MzzzM
a
Mx
NI
zz
RHSxz
M
MM
Bcw
BLP
o
kmik
n
B
N
nNB
N
BN
xxxx
xxxxxx
xxx
xcxc
xxxx
ζ
10
b00x
ζ
xx
1x
0ζ
The End
新浪微博:@浙大张宏鑫
微信公众号: