算法设计与分析ch8随机算法.ppt
《算法设计与分析ch8随机算法.ppt》由会员分享,可在线阅读,更多相关《算法设计与分析ch8随机算法.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章第八章 Randomized AlgorithmsRandomized Algorithms8.1 Introduction to Randomized Introduction to Randomized AlgorithmsAlgorithms随机算法的基本概念随机算法的基本概念随机算法的分类随机算法的分类随机算法的性能分析方法随机算法的性能分析方法随机算法的基本概念随机算法的基本概念随机算法的分类随机算法的分类随机算法的性能分析方法随机算法的性能分析方法什么是随机算法什么是随机算法随机算法是一种使用概率和统计方法在其执行随机算法是一种使用概率和统计方法在其执行过程中对于下一计算步骤
2、作出随机选择的算法过程中对于下一计算步骤作出随机选择的算法随机算法的优越性随机算法的优越性对于有些问题对于有些问题:算法简单算法简单对于有些问题对于有些问题:时间复杂性低时间复杂性低对于有些问题对于有些问题:同时兼有简单和时间复杂性低同时兼有简单和时间复杂性低随机算法的随机性随机算法的随机性对于同一实例的多次执行对于同一实例的多次执行,效果可能完全不同效果可能完全不同时间复杂性的一个随机变量时间复杂性的一个随机变量解的正确性和准确性也是随机的解的正确性和准确性也是随机的随机算法的基本概念随机算法的基本概念随机算法的分类随机算法的分类随机数值算法随机数值算法主要用于数值问题求解主要用于数值问题求
3、解算法的输出往往是近似解算法的输出往往是近似解近似解的精确度与算法执行时间成正比近似解的精确度与算法执行时间成正比Monte Carlo算法算法主要用于求解需要准确解的问题主要用于求解需要准确解的问题算法可能给出错误解算法可能给出错误解获得精确解概率与算法执行时间成正比获得精确解概率与算法执行时间成正比Las Vegas算法算法一旦找到一个解一旦找到一个解,该解一定是正确的该解一定是正确的找到解的概率与算法执行时间成正比找到解的概率与算法执行时间成正比增增加加对对问问题题反反复复求求解解次次数数,可可是是求求解解无无效效的概率任意小的概率任意小Sherwood算法算法一定能够求得一个正确解一定
4、能够求得一个正确解确确定定算算法法的的最最坏坏与与平平均均复复杂杂性性差差别别大大时时,加入随机性加入随机性,即得到即得到Sherwood算法算法消除最坏行为与特定实例的联系消除最坏行为与特定实例的联系随机算法分析的特征随机算法分析的特征仅依赖于随机选择仅依赖于随机选择,不依赖于输入的分布不依赖于输入的分布确定算法的平均复杂性分析确定算法的平均复杂性分析:依赖于输入的分布依赖于输入的分布对于每个输入都要考虑算法的概率统计性能对于每个输入都要考虑算法的概率统计性能随机算法分析的目标随机算法分析的目标平均时间复杂性平均时间复杂性:时间复杂性随机变量的均值时间复杂性随机变量的均值获得正确解的概率获得
5、正确解的概率获得优化解的概率获得优化解的概率解的精确度估计解的精确度估计随机算法的性能分析随机算法的性能分析 8.2 Randomized Numerical Randomized Numerical AlgorithmsAlgorithms计算计算 值值计算定积分计算定积分计算计算 值值数学基础数学基础设有一个半径为设有一个半径为r的园及其外切四边形的园及其外切四边形向正方形随机地投掷向正方形随机地投掷n个点个点,设设k个点落入园内个点落入园内投掷点落入园内的概率为投掷点落入园内的概率为(r2)/(4r2)=/4.用用k/n逼近逼近/4,即即k/n /4,于是于是 (4k)/n.我们可以令我
6、们可以令r=1用投掷用投掷n个点的方法计算个点的方法计算 算法算法K=0;For i=1 To n 随机地产生四边形中的一点随机地产生四边形中的一点(x,y);If x2+y2 1 Then k=k+1;EndforReturn (4k)/n时间复杂性时间复杂性=O(n)不是输入的大小不是输入的大小,而是随机样本的大小而是随机样本的大小解的精确度解的精确度随着随机样本大小随着随机样本大小n增加而增加增加而增加 计算计算定积分定积分问题问题 计算积分计算积分数学基础数学基础令令f(x)是是区区间间a,b上上的的一一组组独独立立、同同分分布布的的随随机机变变量量 i的任意密度函数的任意密度函数令令
7、g*(x)=g(x)/f(x),则则g*()是是密密度度为为f(x)的的随随机机变变量集合量集合,而且而且由强大数定律由强大数定律我们可以用我们可以用 来近似计算来近似计算I令令 f(x)=1/(b-a)a x b索求积分可以由如下索求积分可以由如下I来近似计算来近似计算I算法算法I=0;For i=1 To n 随机产生随机产生a,b中点中点x;I=I+g(x);EndforReturn (b-a)*I/n时间复杂性时间复杂性=O(n)不是输入的大小不是输入的大小,而是随机样本的大小而是随机样本的大小解的精确度解的精确度随着随机样本大小随着随机样本大小n增加而增加增加而增加 8.3 Rand
8、omized Selection AlgorithmsRandomized Selection Algorithmsl问题的定义问题的定义l随机算法随机算法l算法的性能分析算法的性能分析问题的定义问题的定义 输入输入:S=x1,x2,xn,整数整数k,1 k n.输出输出:S中第中第k个最小元素个最小元素.记号记号 Rank(Q,t)=集合集合Q中的元素中的元素t的的rank (第第k小元素的小元素的rank是是k)min(Q,i)=集合集合Q中第中第i个最小元素个最小元素.随机算法随机算法 基本思想基本思想 从从S中随机地抽取中随机地抽取n3/4个样本存入个样本存入R,排序排序R S中第中第
9、k最小元素可能成为最小元素可能成为R中中x=kn3/4/n最小元素最小元素 为了解决误差问题为了解决误差问题,我们考察区间我们考察区间x-n1/2,x+n1/2x xr rl lr rh hr r1 1r rn n3/43/4l lh hL LHH 把把S中属于中属于L,H数据存入数据存入P 在在P中查找中查找min(S,k)LAZYSELECT(S,k)1.R=独立、均匀、可放回地从独立、均匀、可放回地从S随机选取的随机选取的n3/4元素元素;2.在在O(nlogn)时间内排序时间内排序R;3.x=(k/n)n3/4;/*(/*(k/nk/n)n n3/43/4=knkn-1/4-1/4*/
10、*/4.l=max ,0;h=min ,n3/4;5.L=min(R,l);H=min(R,h);6.Lp=Rank(S,L),Hp=Rank(S,H);/*/*L L和和和和HH与与与与S S元素比较元素比较元素比较元素比较*/7.P=y S|L y H;8.If min(S,k)P and|P|4n3/4+1 /*/*max(S,kmax(S,k)P P可由可由可由可由L Lp p k k HHp p确定确定确定确定*/9.Then 排序排序P,min(S,k)=min(P,(k-Lp),算法结束算法结束;10.ELSE goto 1.数学基础数学基础数学期望数学期望离散随机变量离散随机变
11、量离散随机变量离散随机变量X X的数学期望的数学期望的数学期望的数学期望E E X X=i i i i P(X=i)P(X=i)若若若若f(x)f(x)是定义在整数集上的实数值函数是定义在整数集上的实数值函数是定义在整数集上的实数值函数是定义在整数集上的实数值函数,则则则则 E E f(X)f(X)=i i f(i)f(i)P(X=i)P(X=i).Markov不等式不等式P P(Y Y t t)E E Y Y/t t,其中其中其中其中Y Y为非负随机变量为非负随机变量为非负随机变量为非负随机变量,t t 0.0.算法的性能分析算法的性能分析方差的性质与方差的性质与Chebyshev不等式不等
12、式方差方差方差方差 x x2 2=E E(X-X-x x)2 2,x x为随机变量为随机变量为随机变量为随机变量X X的数学期望的数学期望的数学期望的数学期望 x x称为标准差称为标准差称为标准差称为标准差ChebyshevChebyshev不等式不等式不等式不等式:P P(|(|X-X-x x|t t x x)1/1/t t2 2如果随机变量如果随机变量如果随机变量如果随机变量X X满足满足满足满足P P(X=1X=1)=)=p p,P P(X=0X=0)=)=1-p1-p,则则则则 x x2 2=p p(1-p1-p).).若若若若X X=1 1 i i n n X Xi i,x x2 2
13、=1 1 i i n n x xi i2 2,X Xi i是独立随机变是独立随机变是独立随机变是独立随机变量量量量若随机变量若随机变量若随机变量若随机变量X Xi i满足满足满足满足P P(X Xi i=1)=1)=p p,P P(X Xi i=0)=0)=1-p1-p,则则则则 x x2 2=np(1-p)np(1-p).算法的性能分析算法的性能分析定理定理定理定理.算法执行算法执行算法执行算法执行1-91-9步一遍就可求出步一遍就可求出步一遍就可求出步一遍就可求出min(S,k)min(S,k)的概率是的概率是的概率是的概率是1-O(n1-O(n-1/4-1/4),即算法需要即算法需要即算
14、法需要即算法需要2n+O(n2n+O(nloglogn)n)次比较就可求出次比较就可求出次比较就可求出次比较就可求出min(S,k)min(S,k)的概率的概率的概率的概率 是是是是1-O(n1-O(n-1/4-1/4).证明证明证明证明.若算法执行若算法执行若算法执行若算法执行1-91-9一遍可求出一遍可求出一遍可求出一遍可求出min(S,k)min(S,k),则第则第则第则第6 6步需步需步需步需2n2n次比较次比较次比较次比较,其他步需其他步需其他步需其他步需O(nO(nloglogn)n)次比较次比较次比较次比较,总需总需总需总需2n+O(n2n+O(nloglogn)n)次比较次比较
15、次比较次比较.往证算法执行往证算法执行往证算法执行往证算法执行1-91-9一遍可求出一遍可求出一遍可求出一遍可求出min(S,k)min(S,k)的概率是的概率是的概率是的概率是1-O(n1-O(n-1/4-1/4).算法执行算法执行算法执行算法执行1-91-9一遍可求出一遍可求出一遍可求出一遍可求出min(S,k)min(S,k)的条件是的条件是的条件是的条件是:(1).(1).min(S,k)min(S,k)在在在在L L和和和和HH之间即之间即之间即之间即P P包含包含包含包含min(S,k)min(S,k),(2).|(2).|P P|4n4n3/43/4+1.+1.我们首先来计算上述
16、两个条件失败的概率我们首先来计算上述两个条件失败的概率我们首先来计算上述两个条件失败的概率我们首先来计算上述两个条件失败的概率.A.A.计算条件计算条件计算条件计算条件(1)(1)不成立的概率不成立的概率不成立的概率不成立的概率条件条件条件条件(1)(1)不成立当且仅当不成立当且仅当不成立当且仅当不成立当且仅当L L min(S,k)min(S,k)或或或或HH min(S,k)min(S,k),X,Xl l.如果如果如果如果HH min(S,k)min(S,k)=)=P P(X X l l)=)=P P(X X n n1/21/2),),P P(HH hXh)+)+P P(X=hX=h)=)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 ch8 随机
限制150内