算法设计与分析ch10online算法课件_第1页
算法设计与分析ch10online算法课件_第2页
算法设计与分析ch10online算法课件_第3页
算法设计与分析ch10online算法课件_第4页
算法设计与分析ch10online算法课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章

On-lineAlgorithms第十章

10.1IntroductiontoOn-lineAlgorithms

10.1IntroductiontoOn-line前九章介绍的算法设计的条件在算法执行之前整个输入数据的细节都很清楚问题是在完全了解输入数据信息条件下解决的实际应用存在不满足上述条件的情况磁盘调度问题操作系统的页面调度问题

Datastreams前九章介绍的算法设计的条件On-line算法在算法设计阶段或执行之前无完全信息可用,输入数据往往是实时到达的.算法时而正确时而错误.实时算法难以给出正确解,一般是近似算法.实时最小生成树问题难以给出优化解,

“最小”需要放弃或改为“小”.On-line算法可能如下工作:当每次一个数据到达时,将其连接到最近的邻居节点.下边是一个六个实时到达节点的例子.On-line算法135264算法工作过程优化解135264135264算法工作过程优化解135264On-line算法的性能令Con表示On-line算法解的代价令Coff表示Off-line算法解的代价若Conf(n)Coff+c,c是常数,则称On-line算法的近似比为

f(n).这个算法称为f(n)-competitiveOn-line算法的性能10.2On-lineEuclideanSpanningTreeProblem问题的定义实时算法设计算法性能分析10.2On-lineEuclideanSpanni问题的定义

输入:

S={v1,v2,…,vn}是平面上的n个点的集合这n个点并非一次给定,是逐个出现的输出一个”最小”生成树求解最小生成树问题的On-line算法只能是近似算法问题的定义输入:求解最小生成树问题的On-line算法Greedy-On-line-ST(S)1.n=|S|;2.T=0;3.Whilen0Do4.Input(v);5.把v与V(T)之间最短边加入T;/*V(T)是T节点集合*/6.EndwhileOn-Line算法Greedy-On-line-ST(S)On-Line算法算法的时间复杂性3-6步需要的比较次数=1+2+…+(n-1)T(n)=O(n2)解的精确度Greedy-On-line-ST算法的近似比是O(logn)设Tonl是算法产生的生成树,

l是优化生成树的代价或长度,

下边我们来证明这个结论算法的性能分析算法的时间复杂性算法的性能分析引理1.Tonl中第k最长边的长度最多为2l/k,1kn-1.

证.

令Sk={v|v加入Tonl后,Tonl中出现长度大于2l/k的边}.

如果|Sk|<k,则Tonl中至多k-1条边的长度大于2l/k,即Tonl中第k最长边的长度最多为2l/k.

往证|Sk|<k.

由算法的Greedy方法可知,Sk中每个点对之间的距离必大于2l/k.

若不然,设u和v之间距离小于2l/k,则加入u(或v)以后,再加入v(或u)时,不会产生大于2l/k的边.引理1.Tonl中第k最长边的长度最多为2l/k,1

于是,Sk上TSP的优化解的长度大于

|Sk|2l/k.

由于任意点集上的TSP优化解的长度是其最小生成树长度的2倍,Sk的最小生成树的长度大于|Sk|l/k.

因为Sk上最小生成树长度l’不小于S上最小生成树长度,我们有,

|Sk|l/k<l’

l,即|Sk|l/k<l,或

|Sk|<k.

于是,Tonl中第k最长边的长度最多为2l/k.

定理1.Greedy-On-line-ST算法的近似比是O(logn).

证.由引理1,Tonl的长度L

1kn-12l/k=2l1kn-11/k=2lH(n-1)=O(logn).

于是,算法的近似比为L/lO(logn).于是,Sk上TSP的优化解的长度大于|Sk|2l10.3On-lineAlgorithmforConvexhullproblems

问题的定义

On-line算法的基本思想

On-line算法算法的性能分析10.3On-lineAlgorithmforCo问题定义输入平面上的n个点的集合Q

n个点逐个到达,并非同时出现输出CH(Q):Q的convexhull

Q的convexhull是一个凸多边形P,

Q的点或者在P上或者在P内凸多边形P是具有如下性质多边形:连接P内任意两点的边都在P内问题定义输入凸多边形P是具有如下性质多边形:基本思想当k个节点已经到达后,我们得到一个部分CHOn-line算法的思想当第k+1个节点v到达时如果v落在CH内部,不需做任何事如果v落在CH外部,需要调整CH的边界关键是:记住和调整部分CH边界基本思想On-line算法的思想当第k+1个节点v到达时

平行线近似法用一组并行线记录、调整、近似CH需要平行移动这条线,不改变其斜率近似解平行线近似法需要平行移动这条线,不改变其斜率近似解平行线的一般形式取m对平行线,其斜率分别为:

0,tan(/m),tan(2/m),…,tan((m-1)/m).这m对平行线必须满足:每个输入节点必须在所有平行线对内;每对平行线必须尽可能的靠近平行线的一般形式输入节点序列p1,p2,…满足前面条件的m对平行线输出近似convexhull序列a1,a2,…ai是覆盖p1,p2,

…,pi的近似convexhullOn-line算法输入On-line算法算法A初始化:构造m对平行线,斜率为0,tan(/m),…,tan((m-1)/m);

搜索平行线相交在第一个点p1.第一步:对于任意一个新到达点pi,如果pi落在所有平行线对之间,不执行任何操作;否则,平移最接近pi的线到pi,

不改变其斜率,使pi成为该线的标记.第二步:沿逆时针方向连接每条平行线上的输入点,形成近似

convexhullai.第三步:如果不再有点输入,则停止;否则令i=i+1,接受下一个点pi,goto第一步.算法A时间复杂性O(mn)=O(n)

(因为m是常数)近似解精度三种相关的多边形E:由2m个平行线形成的多边形.C:输入点集合的Convexhull,即准确解.A:算法A给出的近似Convexhull.L(P)表示多边形P的总边长,则L(E)L(C)L(A).

近似解A的误差定义为

ERR(A)=(L(C)-L(A))/L(C)算法的性能分析P2mP2m-1P1P2P3P4A2mA1A2A3A4时间复杂性算法的性能分析P2mP2m-1P1P2P3P4A2定理1.ERR(A)sec(/2m)-1.

*定理1说明m越大(即平行线对越多),错误越小.

证.考虑下图:BACab’于是,AB+ACBCsec(/2).P2mP2m-1P1P2P3P4A2mA1A2A3A4定理1.ERR(A)sec(/2m)-1.BACab

考虑下图,P2mP2m-1P1P2P3P4A2mA1A2A3A4

由AB+ACBCsec(/2),我们有

L(E)=P2mA1+A1P1+P1A2+…+A2mP2m

sec(/2m)(P2mP1+P1P2+…+P2m-1P2m)=sec(/2m)L(A).

于是,Err(A)=(L(C)-L(A))/L(C)

(L(E)-L(A))/L(A)

sec(/2m)-1考虑下图,P2mP2m-1P1P2P3P4A2mA

10.4RandomizedOn-lineAlgorithmforMST

问题的定义随机On-line算法算法的性能分析

10.4RandomizedOn-lineAlg问题的定义输入

Euclidean空间上的n个点:v1,v2,…,vn

n个逐个出现输出由v1,v2,…,vn构成的最小生成树问题的定义输入AlgoritmR(m)T=0;input(m);input(v1);input(v2);把边(v1,v2)添加到T;Fork=3TonDo

input(vk);Ifkm+1

Then从(vk,v1),…,(vk,vk-1)中选择最小边加入T;Else从(vk,v1),…,(vk,vk-1)中随机地选择m条边,

把这m条边中最小边加入T;ReturnT.随机On-line算法R(n-1)是一个确定的贪心算法AlgoritmR(m)随机On-line算法R(n-1)算法的时间复杂性

时间复杂性每次考察需要O(m)时间需要O(n)次考察

T(n)=O(nm)算法的时间复杂性时间复杂性近似解的精确度定义1.随机On-line算法A称为c-competitive,如果存在一个常数b,使得

E(CA())cCopt()+b

其中,E(CA())是算法A在问题实例上产生的近似解的代价,Copt()是的优化解的代价.定理1.

如果m是固定常数,算法R(m)的competitive,

则比是(n).

证.近似解的精确度定义1.随机On-line算法A称为c-c

我们首先定义一组记号:

={1,2,…,n}输入点集合,输入顺序为1、2、…、n.

D(a,b)=点a和b之间的距离.

N(a,k)=在已经出现的点中点a的第k最近点.

E(LR(m)(

))=算法R(m)产生的树的期望长度.

假定算法收到第i个输入点i.

如果2im+1,则i与前i-1个点中最近点连接,加入树中.

如果m+1in,则i与前i-1个点中第j最近点连接的概率为于是,我们有我们首先定义一组记号:于是,我们有我们来计算E(LR(m)())/L()的下界.L()是输入点集合为时的最小生成树的长度.构造一个特殊输入序列*,使得

E(LR(m)(*))/L(*)=(n)于是,E(LR(m)())/L()=(n)我们来计算E(LR(m)())/L()的上界.令D是n个输入点的直径.最小生成树的长度D.因每条边的长度D,任何On-line算法产生的树的长度(n-1)D.我们有,

E(LR(m)())/L()(n-1)D/D=n-1.于是,R(m)的competitive比是(n).我们来计算E(LR(m)())/L()的下界.算法设计与分析ch10online算法课件30第十章

On-lineAlgorithms第十章

10.1IntroductiontoOn-lineAlgorithms

10.1IntroductiontoOn-line前九章介绍的算法设计的条件在算法执行之前整个输入数据的细节都很清楚问题是在完全了解输入数据信息条件下解决的实际应用存在不满足上述条件的情况磁盘调度问题操作系统的页面调度问题

Datastreams前九章介绍的算法设计的条件On-line算法在算法设计阶段或执行之前无完全信息可用,输入数据往往是实时到达的.算法时而正确时而错误.实时算法难以给出正确解,一般是近似算法.实时最小生成树问题难以给出优化解,

“最小”需要放弃或改为“小”.On-line算法可能如下工作:当每次一个数据到达时,将其连接到最近的邻居节点.下边是一个六个实时到达节点的例子.On-line算法135264算法工作过程优化解135264135264算法工作过程优化解135264On-line算法的性能令Con表示On-line算法解的代价令Coff表示Off-line算法解的代价若Conf(n)Coff+c,c是常数,则称On-line算法的近似比为

f(n).这个算法称为f(n)-competitiveOn-line算法的性能10.2On-lineEuclideanSpanningTreeProblem问题的定义实时算法设计算法性能分析10.2On-lineEuclideanSpanni问题的定义

输入:

S={v1,v2,…,vn}是平面上的n个点的集合这n个点并非一次给定,是逐个出现的输出一个”最小”生成树求解最小生成树问题的On-line算法只能是近似算法问题的定义输入:求解最小生成树问题的On-line算法Greedy-On-line-ST(S)1.n=|S|;2.T=0;3.Whilen0Do4.Input(v);5.把v与V(T)之间最短边加入T;/*V(T)是T节点集合*/6.EndwhileOn-Line算法Greedy-On-line-ST(S)On-Line算法算法的时间复杂性3-6步需要的比较次数=1+2+…+(n-1)T(n)=O(n2)解的精确度Greedy-On-line-ST算法的近似比是O(logn)设Tonl是算法产生的生成树,

l是优化生成树的代价或长度,

下边我们来证明这个结论算法的性能分析算法的时间复杂性算法的性能分析引理1.Tonl中第k最长边的长度最多为2l/k,1kn-1.

证.

令Sk={v|v加入Tonl后,Tonl中出现长度大于2l/k的边}.

如果|Sk|<k,则Tonl中至多k-1条边的长度大于2l/k,即Tonl中第k最长边的长度最多为2l/k.

往证|Sk|<k.

由算法的Greedy方法可知,Sk中每个点对之间的距离必大于2l/k.

若不然,设u和v之间距离小于2l/k,则加入u(或v)以后,再加入v(或u)时,不会产生大于2l/k的边.引理1.Tonl中第k最长边的长度最多为2l/k,1

于是,Sk上TSP的优化解的长度大于

|Sk|2l/k.

由于任意点集上的TSP优化解的长度是其最小生成树长度的2倍,Sk的最小生成树的长度大于|Sk|l/k.

因为Sk上最小生成树长度l’不小于S上最小生成树长度,我们有,

|Sk|l/k<l’

l,即|Sk|l/k<l,或

|Sk|<k.

于是,Tonl中第k最长边的长度最多为2l/k.

定理1.Greedy-On-line-ST算法的近似比是O(logn).

证.由引理1,Tonl的长度L

1kn-12l/k=2l1kn-11/k=2lH(n-1)=O(logn).

于是,算法的近似比为L/lO(logn).于是,Sk上TSP的优化解的长度大于|Sk|2l10.3On-lineAlgorithmforConvexhullproblems

问题的定义

On-line算法的基本思想

On-line算法算法的性能分析10.3On-lineAlgorithmforCo问题定义输入平面上的n个点的集合Q

n个点逐个到达,并非同时出现输出CH(Q):Q的convexhull

Q的convexhull是一个凸多边形P,

Q的点或者在P上或者在P内凸多边形P是具有如下性质多边形:连接P内任意两点的边都在P内问题定义输入凸多边形P是具有如下性质多边形:基本思想当k个节点已经到达后,我们得到一个部分CHOn-line算法的思想当第k+1个节点v到达时如果v落在CH内部,不需做任何事如果v落在CH外部,需要调整CH的边界关键是:记住和调整部分CH边界基本思想On-line算法的思想当第k+1个节点v到达时

平行线近似法用一组并行线记录、调整、近似CH需要平行移动这条线,不改变其斜率近似解平行线近似法需要平行移动这条线,不改变其斜率近似解平行线的一般形式取m对平行线,其斜率分别为:

0,tan(/m),tan(2/m),…,tan((m-1)/m).这m对平行线必须满足:每个输入节点必须在所有平行线对内;每对平行线必须尽可能的靠近平行线的一般形式输入节点序列p1,p2,…满足前面条件的m对平行线输出近似convexhull序列a1,a2,…ai是覆盖p1,p2,

…,pi的近似convexhullOn-line算法输入On-line算法算法A初始化:构造m对平行线,斜率为0,tan(/m),…,tan((m-1)/m);

搜索平行线相交在第一个点p1.第一步:对于任意一个新到达点pi,如果pi落在所有平行线对之间,不执行任何操作;否则,平移最接近pi的线到pi,

不改变其斜率,使pi成为该线的标记.第二步:沿逆时针方向连接每条平行线上的输入点,形成近似

convexhullai.第三步:如果不再有点输入,则停止;否则令i=i+1,接受下一个点pi,goto第一步.算法A时间复杂性O(mn)=O(n)

(因为m是常数)近似解精度三种相关的多边形E:由2m个平行线形成的多边形.C:输入点集合的Convexhull,即准确解.A:算法A给出的近似Convexhull.L(P)表示多边形P的总边长,则L(E)L(C)L(A).

近似解A的误差定义为

ERR(A)=(L(C)-L(A))/L(C)算法的性能分析P2mP2m-1P1P2P3P4A2mA1A2A3A4时间复杂性算法的性能分析P2mP2m-1P1P2P3P4A2定理1.ERR(A)sec(/2m)-1.

*定理1说明m越大(即平行线对越多),错误越小.

证.考虑下图:BACab’于是,AB+ACBCsec(/2).P2mP2m-1P1P2P3P4A2mA1A2A3A4定理1.ERR(A)sec(/2m)-1.BACab

考虑下图,P2mP2m-1P1P2P3P4A2mA1A2A3A4

由AB+ACBCsec(/2),我们有

L(E)=P2mA1+A1P1+P1A2+…+A2mP2m

sec(/2m)(P2mP1+P1P2+…+P2m-1P2m)=sec(/2m)L(A).

于是,Err(A)=(L(C)-L(A))/L(C)

(L(E)-L(A))/L(A)

sec(/2m)-1考虑下图,P2mP2m-1P1P2P3P4A2mA

10.4RandomizedOn-lineAlgorithmforMST

问题的定义随机On-line算法算法的性能分析

10.4RandomizedOn-lineAlg问题的定义输入

Euclidean空间上的n个点:v1,v2,…,vn

n个逐个出现输出由v1,v2,…,vn构成的最小生成树问题的定义输入AlgoritmR(m)T=0;input(m);input(v1);input(v2);把边(v1,v2)添加到T;Fork=3TonDo

input(vk);Ifkm+1

Then从(vk,v1),…,(vk,vk-1)中选择最小边加入T;Else从(vk,v1),…,(vk,vk-1)中随机地选择m条边,

把这m条边中最小边加入T;Return

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论