运筹学中的计算复杂性
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Karmarkar 标准型
mi nCX
X S
s.t.其中 X AX 0 线性子空间
S X eT X 1, X 0 单纯形
或 minZ CX 其中:
AX 0
s.t.n xi 1
X=( x1, xn )T,
e = (1 , 1 , … , 1 )T
i 1
X
0
(2) Karmarkar 方法的势函数:
与l1 相切于C点; 包含Ei被直线l 割出的介于l 与l1 的半个椭圆。
ar1x1+ar2x2=br A
C p
X(i+1) Xi
l1
l B
图3 从{X(i),Ei}得到{X(i+1),Ei+1}的过程
(3)用上述办法做出来的一系列椭圆有下面的关系:
Ei+1的面积=CEi的面积,其中0〈 C〈1,且
• Хачьян算法虽然是多项式算法,为什麽解具体问 题并不十分有效?而且远不如单纯形法?
• 解决问题的途径:
A . 走 Хачьян的路,继续进行改进——试图寻找与 L无关的强多项式算法;
B . 改造单纯形法,试图使之成为好算法。
比如:设计各种行列法则,以寻求到达最优 点的最短路;
二、Karmarkar算法
n
无效!但是人们发现,加上 logxj 函数,能 j 1
改变方向进入内部,若能克服步长太小走得太 慢的问题,把方向对准,步长加大,就有可能 得到改善。
另外, 如果约束条件很多,接近一个球,而把 初始点放在球心,则一步就可以到达最优点,因 此可以想办法把约束条件规范化。
Karmarkar的贡献
1、找到了一种将约束标准化的投影变换; 2、定义了一个势函数 –logxj ;
1、问题的提出
有无可能从目前的初始可行解通过可行域内
部到达最优点,而不要先到边界上去?
1955年 Frish找到了一个单调下降趋于零的 非负序列,选目标函数及约束条件如下:
mi n
1 r
k
CX
n
log x j
j 1
s.t. AX b
去掉变量的非负条件,走的路穿过多面体 内部通向最优解,可惜的是:走得太慢,算法
L
m i 1
n
log2 (
j 1
aij
1)
m i 1
log2 (bi 1)
l og2
nm
1(4)
L大致等于把不等式组(2)的所有系数都化 为二进制数时的位数,称L为问题(2)的输入 长度,可大体上说明问题(2)的规模大小。
综上,求解LP(L)可以转化成求解不等式组:
a11 x1 a12 x2 a1n xn b1
这个著名的例子是:
max Z xd
x1 r1
s.t
.
x1 xj
s1 1
x j1
rj
0
x
j
x j1
sj
1
j 2,3 d
x
j
,
r j
,
s
j
0
j 1, , d
X3
图 3
三
维
立
方
体
及 其
x2
摄
动
x1
那麽,能否找到一种解LP的多项式算法?
1979年春,前苏联科学家Хачьян( L.G.khachian)证明了:
P 0R
①的解集合在圆 ≤X2L内的部分
P的面积至少是 2-(n+1)L。
Хачьян算法也是一种迭代算法,
在迭代过程中的每一个阶段都有一个以某一 个点Xi为中心的椭圆Ei,第一个椭圆E1就是圆
X≤2L ,它的中心X(1)是原点,迭代过程就 是从{X(1),E1}得到{X(2),E2},…,其特 点是,事先可以肯定:最多迭代6n2L次。
两者相结合生成一种新算法!
2、一些基本概念和重要结果
(1)Karmarkar 标准型 假设 ①目标函数的最小值Z*=0; ②R=Ω∩S≠Φ,单纯形S的中心
X0=(1,1,…1)T/n =e/n ∈R使得AX0=0;
③给定精度2-q,若找到了可行解X*,使得
CX*≤2 - qCX0,则停止计算,X*就是最优解。
LP有一个多项式时间算法!
其结果建立在其他数学工作者关于 NLP工作的基础上,方法与以前解决LP的 途径截然不同,几乎完全不管LP的组合性 质.
2、椭球算法的思想
Хачьян首先提出了将求LP最优解归结为 解严格不等式组的问题,解不等式组的多项式 算法也是一种迭代算法,迭代的每一步都要产 生一个点X(K)和以该点为中心的一个椭球 EK=(X(K),BK),其中BK是与第K个椭球方程
(1)n=2时,严格不等式组为
ai1x1+ai2x2〈 bi i=1,…,m 其解集合为若干个半平面的公共部分。
用 X表示原点(0,0)与点X=(x1,x2)之
间的距离,即 X=
x2 , x而2
1
2
≤R代X表以原点
为圆心,R为半径的圆。
可以证明,如果①有解,则在圆 ≤X2L内一定有 ①的解,且①的解集合在圆≤2L内的部分P的面 积至少是 2-(n+1)L。
ar1x1+ar2x2≥br ②
利用②来构造新的椭圆:
第一步,过椭圆的中心X(i)画一条直线l与直线
ar1x1+ar2x2=br平行,就把椭圆Ei分成了两个 “半椭圆”,设与Ei交于A、B两点。 第二步,再画直线l1 与l平行,且与椭圆Ei相切。要 求l1和l要在直线ar1x1+ar2x2=br的两侧,设l1 与 Ei相切于C点。 第三步,作椭圆Ei+1,满足: 经过A、B、C三个点;
AX≥b
X≥0
YA≤C (1)
Y≥0
CX≤Yb
若已求得(1)的一个最优解(X*,Y*),则 X*就是(L)问题的一个最优解。若(1)无解, 则问题(L)没有最优解。所以,求LP问题的最 优解可以转化为求解线性不等式组(1)。而不 等式组(1)总可以改写成如下形式:
AX≤-b -X≤0 YA≤C -Y≤0 CX-Yb≤0
C (e n2(为n11不) 等式组中未知数的个数)
每一个Ei都包含解集合在圆 ≤X2L的部分P。
(4)综上,可以证明这种迭代方法最多只要进 行6n2L次,其计算复杂性为O(6n2L2)。
6、对椭球算法的评价
(1)是理论上的重大突破;
解决了LP理论上一个长期悬而未决的 问题——是否存在解LP的多项式算法? (2)由此提出了许多新的研究课题 • 单纯形法不是多项式算法,为什麽用于解具体 的LP却很有效? Smale从概率论角度证明 了单纯形法所需的计算步数的概率平均为O(m), 从而对算法分析产生深远影响。
2、OR对计算复杂性产生极大影响
最突出的就是80年代以来产生的哈奇 扬(Хачьян)算法和卡马卡 (Karmarkar)算法。
二、椭球算法
1、问题的提出
1947年Dantzig创立了单纯形法 1972年,V.Klee & G.Minty构 造了一个反例,它含有n个变量,m=2n 个不等式约束,若用单纯形法求解,必 须检验约束条件中不等式组所确定的 凸多面体的所有顶点,才能获得最优解, 计算次数等于2n -1,因此说明了单纯 形法不是“好算法”!
(4)梯度投影
整个算法就等于对势函数f实行梯度投影法。
3、Karmarkar算法的基本思想
给定可行域(超凸多面体)P的一个内点 a=(a1,…,an)T,即a∈P,且a>0,首先通过一个投 影变换把P和a分别变成S和a‘,使a’是S的中 心,而且以a‘为中心包含S的最小球的半径与 以a’为中心包含在P‘中的最大球的半径之比 为O(n),然后在变换之后的以a’为心的球上, 求得LP的解为b’,接着利用投影变换把b'返回 到原决策空间中去.
(L为输入长度,n为未知数个数,本例中 n=2),如果迭代了6n2L次还没有找到① 的解,就可以判定①一定没有解。
(2)从{X(i),Ei}得到{X(i+1),Ei+1}的过程:
首先将X(i)代入不等式组①中去试验,看 是否满足,是,则X(i)就是①的解,计算停 止。
若不是,将X(i)=(x1(i),x2(i))代入 ①中,至少有一个不等式不成立,不妨设为 第r个,则有
(1)'
为了书写简洁,总可以将(1)'写为下面的形式:
aiX≤bi i=1,2,…,m
(2)
其中,ai是系数矩阵的第i个行向量ai=(ai1,ai2,…, ain),bi是右端向量的第i个分量.
Хачьян证明了如果整系数不等式组 aiX<bi+2*2-L i=1,…,m (3)有 解,则整系数不等式组(2)也有解。其中,
(X-X(K))TBK(X-X(K))≤1
对应的n阶方阵,而X(1)=0,E1是一个以X(1)为 球心的n维超球.
3、LP与线性不等式的关系
设要求的LP问题是:
minZ CX
( L)
s.t .
AX b X 0
对偶问题
maxW Yb ( D) s.t.YYA0C
若X、Y分别是它们的可行解,则由弱对偶 定理,必有CX≥Yb;由最优性准则定理:若 X*,Y*分别是上述问题的可行解,且CX*=Y*b, 则X*,Y*分别为(L)和(D)的最优解。 要求解(L),可以先解如下的线性不等式组:
专题二 《计算复杂性和运筹学》
1、OR是计算复杂性的生成基础
从计算复杂性发展历史来看:
第一阶段——从形式语言→形式语言 类的理论
第二阶段——1971年 COOK在逻辑、 递归理论的研究中发现了NP完全类, 证明了适定性问题是NP完备的。
第三阶段——从事OR研究的Karp在网络、 组合优化方面颇有建树,在研究了判断逻 辑表达式伪真的证明后,发现OR中(比 如组合优化中)就有很多NP完全类,从 而提供了计算复杂性理论的生成基础。
n
f(X)
f (X,c)
nlog 2
cX
l
og 2
x j
j 1
(3)投影变换
S到S的投影变换T: X'=D-1X / eTD-1X 或
x' i
xi
/
xk i
n
, i 1, , n
xj
/
xk j
j 1
1
xk 1
其中 D=
xk 2
ห้องสมุดไป่ตู้
,
xk n
xk 1
D1
1
xk 2
1
xk n
a21
x1
a22
x2
a2n xn
b2
am1 x1 am2 x2 amn xn bm
(*)
4、Хачьян(哈奇扬)算法的计算步骤 5、Хачьян(哈奇扬)算法的几何解释
作一个椭球,将可行域所有顶点包 住,看球心是否在可行域内部?如果不 是,用分离定理作超平面,再作一个缩 小了的椭球,把问题化为一个不等式组 是否有解的问题。
4、Karmarkar算法的基本步骤
(略)
5、简单的算法分析和算法评价
计算复杂性为O(n4L2), 若采用某些技巧则可达到O(n3.5L2)。