算法设计与分析ch8随机算法_第1页
算法设计与分析ch8随机算法_第2页
算法设计与分析ch8随机算法_第3页
算法设计与分析ch8随机算法_第4页
算法设计与分析ch8随机算法_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

第八章RandomizedAlgorithms,8.1IntroductiontoRandomizedAlgorithms,什么是随机算法随机算法是一种使用概率和统计方法在其执行过程中对于下一计算步骤作出随机选择的算法随机算法的优越性对于有些问题:算法简单对于有些问题:时间复杂性低对于有些问题:同时兼有简单和时间复杂性低随机算法的随机性对于同一实例的多次执行,效果可能完全不同时间复杂性的一个随机变量解的正确性和准确性也是随机的,随机算法的基本概念,随机算法的分类,随机数值算法主要用于数值问题求解算法的输出往往是近似解近似解的精确度与算法执行时间成正比MonteCarlo算法主要用于求解需要准确解的问题算法可能给出错误解获得精确解概率与算法执行时间成正比,LasVegas算法一旦找到一个解,该解一定是正确的找到解的概率与算法执行时间成正比增加对问题反复求解次数,可是求解无效的概率任意小Sherwood算法一定能够求得一个正确解确定算法的最坏与平均复杂性差别大时,加入随机性,即得到Sherwood算法消除最坏行为与特定实例的联系,随机算法分析的特征仅依赖于随机选择,不依赖于输入的分布确定算法的平均复杂性分析:依赖于输入的分布对于每个输入都要考虑算法的概率统计性能随机算法分析的目标平均时间复杂性:时间复杂性随机变量的均值获得正确解的概率获得优化解的概率解的精确度估计,随机算法的性能分析,8.2RandomizedNumericalAlgorithms,计算值,数学基础设有一个半径为r的园及其外切四边形,向正方形随机地投掷n个点,设k个点落入园内投掷点落入园内的概率为(r2)/(4r2)=/4.用k/n逼近/4,即k/n/4,于是(4k)/n.我们可以令r=1用投掷n个点的方法计算,算法K=0;Fori=1Ton随机地产生四边形中的一点(x,y);Ifx2+y21Thenk=k+1;EndforReturn(4k)/n时间复杂性=O(n)不是输入的大小,而是随机样本的大小解的精确度随着随机样本大小n增加而增加,计算定积分,问题计算积分,数学基础令f(x)是区间a,b上的一组独立、同分布的随机变量i的任意密度函数令g*(x)=g(x)/f(x),则g*()是密度为f(x)的随机变量集合,而且,由强大数定律,我们可以用来近似计算I,令f(x)=1/(b-a)axb索求积分可以由如下I来近似计算I,算法I=0;Fori=1Ton随机产生a,b中点x;I=I+g(x);EndforReturn(b-a)*I/n时间复杂性=O(n)不是输入的大小,而是随机样本的大小解的精确度随着随机样本大小n增加而增加,8.3RandomizedSelectionAlgorithms,问题的定义随机算法算法的性能分析,问题的定义,输入:S=x1,x2,xn,整数k,1kn.输出:S中第k个最小元素.,记号Rank(Q,t)=集合Q中的元素t的rank(第k小元素的rank是k)min(Q,i)=集合Q中第i个最小元素.,随机算法,基本思想从S中随机地抽取n3/4个样本存入R,排序RS中第k最小元素可能成为R中x=kn3/4/n最小元素为了解决误差问题,我们考察区间x-n1/2,x+n1/2,把S中属于L,H数据存入P在P中查找min(S,k),LAZYSELECT(S,k)R=独立、均匀、可放回地从S随机选取的n3/4元素;在O(nlogn)时间内排序R;x=(k/n)n3/4;/*(k/n)n3/4=kn-1/4*/l=max,0;h=min,n3/4;L=min(R,l);H=min(R,h);Lp=Rank(S,L),Hp=Rank(S,H);/*L和H与S元素比较*/P=yS|LyH;Ifmin(S,k)Pand|P|4n3/4+1/*max(S,k)P可由LpkHp确定*/9.Then排序P,min(S,k)=min(P,(k-Lp),算法结束;10.ELSEgoto1.,数学基础数学期望离散随机变量X的数学期望EX=iiP(X=i)若f(x)是定义在整数集上的实数值函数,则Ef(X)=if(i)P(X=i).Markov不等式P(Yt)EY/t,其中Y为非负随机变量,t0.,算法的性能分析,方差的性质与Chebyshev不等式方差x2=E(X-x)2,x为随机变量X的数学期望x称为标准差Chebyshev不等式:P(|X-x|tx)1/t2如果随机变量X满足P(X=1)=p,P(X=0)=1-p,则x2=p(1-p).若X=1inXi,x2=1inxi2,Xi是独立随机变量若随机变量Xi满足P(Xi=1)=p,P(Xi=0)=1-p,则x2=np(1-p).,算法的性能分析定理.算法执行1-9步一遍就可求出min(S,k)的概率是1-O(n-1/4),即算法需要2n+O(nlogn)次比较就可求出min(S,k)的概率是1-O(n-1/4).证明.若算法执行1-9一遍可求出min(S,k),则第6步需2n次比较,其他步需O(nlogn)次比较,总需2n+O(nlogn)次比较.往证算法执行1-9一遍可求出min(S,k)的概率是1-O(n-1/4).算法执行1-9一遍可求出min(S,k)的条件是:(1).min(S,k)在L和H之间即P包含min(S,k),(2).|P|4n3/4+1.我们首先来计算上述两个条件失败的概率.,A.计算条件(1)不成立的概率条件(1)不成立当且仅当Lmin(S,k)或Hmin(S,k),Xmin(S,k)=P(Xn1/2),P(Hh)+P(X=h)=P(|X-x|n1/2)+(n3/4+1)-1.应用Chebyshev不等式,又由2n1/8xn1/2,我们有P(|X-x|n1/2)P(|X-x|2n1/8x)1/(2n1/8)2=O(n-1/4).于是P(Lmin(S,k)=P(Hmin(S,k)=O(n-1/4).,B.计算P包含min(S,k)但|P|4n3/4+1不成立的概率令kl=max0,k-2n3/4,kh=mink+2n3/4,n.“P包含min(S,k)但|P|4n3/4+1不成立”发生当且仅当Lmin(S,kh).类似与上面A中的分析,P(Lmin(S,kh)=O(n-1/4).由A和B,“算法执行1-9一遍就可以求出min(S,k)”不成立的概率是O(n-1/4).即,“算法执行1-9一遍就可以求出min(S,k)”的概率是1-O(n-1/4).,8.4RandomizedAlgorithmtoTestWhetherNumberisPrime,问题的定义随机算法设计算法的性能分析,输入一个正整数N输出N是否素数,问题的定义,基本思想对N进行m次测试如果有一次测试成功,则回答N是合数如果m次测试均失败,则回答N是素数回答N是合数时,答案百分之百正确回答N是素数时,答案正确的概率是1-2-m,随机算法的设计,随机算法随机地选择m个数b1,b2,bm,满足1b1,b2,bmN;Fori=1TomDoIfW(bi)成立ThenReturn(N是合数);Return(N是素数)W(bi)定义如下:(1)biN-11modN,或(2)j(N-1)/2j=k是整数,1(bik与N的最大公因子)N.,例1.给定N=12.选择测试数集2,3,7测试2:212-1=20481mod12,W(2)成立.N是合数.,例2.给定N=11,选择测试数集2,5,7测试2:211-1=1024=1mod11,令j=1,k=(N-1)/2j=10/2=5,gcd(2k-1,N)=gcd(31,11)=1,j=1是唯一使(N-1)/2j为整数的j,W(2)不成立.,测试5:511-1=9765625=1mod11,令j=1,k=(N-1)/2j=10/2=5,gcd(5k-1,N)=gcd(3124,11)=11=N,j=1是唯一使(N-1)/2j为整数的j,W(5)不成立.,测试7:711-1=282475249=1mod11,令j=1,k=(N-1)/2j=10/2=5,gcd(7k-1,N)=gcd(16806,11)=1,j=1是唯一使(N-1)/2j为整数的j,W(5)不成立.,结论:11可能是素数答案正确的概率为1-2-3,定理1.(1)如果对于任意1bN,W(b)成立,则N是合数.(2)如果N是合数,则(N-1)/2|b|1bN,W(b)|*(1)说明算法是正确的.*(2)说明,如果N是合数,则至少一半b(b2Do随机地从H(E)中选择一条边(x,y);F=F(x,y);H=H/(x,y);Cut=连接H中两个元节点的G的所有边.,例,Cut=(1,3),(2,3),定理1.如果算法的输入是具有n个节点的多重图,则算法的时间复杂性为O(n2).证明.一次边收缩需要O(n)时间.至多进行O(n)次收缩.于是,算法时间复杂性为O(n2).注意:我们仅证明了在O(n2)时间内算法能够求出一个Cut,但是这个Cut不一定是优化的.,算法的性能分析,引理1.如果k是min-cut的大小,则G至少有kn/2条边.证.如果|G(E)|kn/2,则存在一个度小于k的节点p.删除与p相关连的k条,把G划分为两个连通分量,其一是仅包含p.于是,与p相关连的边集合是一个cut.但是这个cut的大小k,与min-cut大小为k矛盾.引理2.算法输出的cut是连接两个剩余节点的没有被收缩过的边.证.从算法定义可以看到,算法输出的cu

温馨提示

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

评论

0/150

提交评论