第7章+概率算法-2018-all.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

****注意到,在一个完全跳跃表中,具有i级指针的结点中有一半同时具有i+1级指针。为了维持跳跃表的平衡性,可以事先确定一个实数0p1,并要求在跳跃表中维持在具有i级指针的结点中同时具有i+1级指针的结点所占比例约为p。为此目的,在插入一个新结点时,先将其结点级别初始化为0,然后用随机数生成器反复地产生一个[0,1]间的随机实数q。如果qp,则使新结点级别增加1,直至q?p。*其中n是当前跳跃表中结点个数。当前跳跃表中任一结点的级别不超过求得的解总是正确的,但有时拉斯维加斯算法可能始终找不到解。一般情况下,求得正确解的概率随计算时间的增加而增大。因此,为了减少求解失败的概率,可以使用一个拉斯维加斯算法对同一实例,重复多次执行该算法。拉斯维加斯型概率算法的一个显著特征是,它所做的随机性选择有可能导致算法找不到问题的解,即算法运行一次,或者得到一个正确的解,或者无解。因此,需要对同一输入实例反复多次运行算法,直到成功地获得问题的解。但是,拉斯维加斯型概率算法的随机特性可以接受失败,只要这种行为出现的概率不占多数。当出现失败时,只要在相同的输入实例上再次运行概率算法,就又有成功的可能。**蒙特卡罗(MC)算法:每次调用都给出一个解,且一般情况下可以保证对问题的所有实例都以高概率给出正确解,但是通常无法判定一个具体解是否正确。该法用于求问题的准确解(或者说是精确解而不是近似解),但不保证所求得的解是正确的,也就是说,蒙特卡罗算法求得的解有时是错误的。不过,由于可以设法控制这类算法得到错误解的概率,并因它的简单高效,是很有价值的一类随机算法。一般情况下,蒙特卡罗算法求得正确解的概率随计算时间的增加而增大。但无论如何不能保证解的正确性,而且通常无法有效地判断所求得的解究竟是否正确,这是蒙特卡罗算法的缺陷。*若A中有一半以上的元素与x相同,就称x是数组A的主元素。例如:在序列1,3,2,3,3,4,3中,元素3就是该序列的主元素。*关键是怎么去选a的问题**应在跳跃表的哪些结点增加附加指针,以及在该结点处应增加多少指针完全采用随机化方法来确定。这使得跳跃表可在O(logn)平均时间内支持关于有序集的搜索、插入和删除等运算。*在一般情况下,给定一个含有n个元素的有序链表,可以将它改造成一个完全跳跃表,使得每一个k级结点含有k+1个指针,分别跳过2k-1,2k-1-1,…,20-1个中间结点。第i个k级结点安排在跳跃表的位置i*2k处,i?0。这样就可以在时间O(logn)内完成集合成员的搜索运算。在一个完全跳跃表中,最高层次的结点是?logn?级结点。*完全跳跃表与完全二叉搜索树的情形非常类似。它虽然可以有效地支持搜索运算,但不适应于集合频繁动态变化的情况。集合元素的插入和删除都会破坏完全跳跃表原有的平衡状态,影响日后搜索的效率。*跳跃表*跳跃表产生新结点的级别为0的概率为1-p,级别为1的概率为p(1-p),…,级别为i的概率为pi(1-p)。如此产生的新结点的级别有可能是一个很大的数,甚至远远超过表中元素的个数。为了避免这种情况,用作为新结点级别的上界。*7.4拉斯维加斯(LasVegas)算法拉斯维加斯算法可以改进算法的有效性,它的显著特征是所作的随机性决策有可能导致算法找不到所需的解,因此需要反复运行,直到获得解为止。templateclassV,classUvoidobstinate(Vx,Uy){//反复调用拉斯维加斯算法LV(x,y),//直到找到问题的一个解ybooleansuccess=false;while(!success)success=lv(x,y);}*假设p(x)是对输入x调用拉斯维加斯算法获得解的概率。一个正确的拉斯维加斯算法应该对所有输入x均有p(x)0。在某些情况下,可以指定一个δ,使得p(x)δ。7.4拉斯维加斯(LasVegas)算法*实例分析:n皇后问题对于n皇后问题的任何一个解,每一个皇后在棋盘上的位置无任何规律,不具有系统性,而更如同随机放置,由此容易联想到采用拉斯维加斯算法。在棋盘的各行中随机地摆放皇后棋子,并保证新摆放的棋子不会与已摆放的棋子产生冲突,直至n个皇后都摆放好,或没有可摆放的位置为止。*算法——八皇后问题1.将数组x[8]初始化为0;试探次数count初始化为0;2.for(i=1;i=8;i++)2.1产生一个[1,8]的随机数j;2.2coun

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档