拉斯维加斯算法资料.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
拉斯维加斯算法资料

拉斯维加斯(Las Vegas)算法 ;学习要点 拉斯维加斯算法概述 N皇后问题 传统的回溯法 拉斯维加斯算法 拉斯维加斯算法的改进 整数因子分解;1. 拉斯维加斯算法概述;一个正确的LV算法,要求对每个实例x, p(x)0,更好的情况是: ;设t(x)是算法obstinate找到一个正确解所需的期望时间,则若要最小化t(x),则需在p(x), s(x)和e(x)之间进行某种折衷。;2. N后问题;2.1 回溯法(8后问题);;2.2 拉斯维加斯算法(8后问题);2.2 拉斯维加斯算法;//测试皇后k置于第x[k]列的合法性?;?bool?Queen::QueensLv(void)??//随机放置n个皇后的拉斯维加斯算法?? {?????? RandomNumber?rnd;? / /随机数产生器??? ? ?int?k?=?1;?????????????//下一个皇后的编号????? ? int?count?=?1;?????//在一列中,可以放置皇后的个数 ? while((k=n)(count0))????? ? {???????? ? ? count?=?0;??????? ? ??for(int?i=1;?i=n;?i++)?????????? {??????????? ?? ? x[k]?=?i; //位置????????????? if(Place(k))???????{??????????y[count++]?=?i;?????????}???????? ?? }?????? ??? if(count0)??????{??????x[k++]?=?y[rnd.Random(count)];?????}?????//随机位置 ?? ??}????? return?(count0);????????//count0?表示放置成功? ?}??;?void?nQueen(int?n)?//解n后问题的拉斯维加斯算法?? ?{????? ? Queen?X;???? ? X.n?=?n;??????? ? int?*p?=?new?int[n+1];????? for(int?i=0;?i=n;?i++)?? ???? {?????????? p[i]?=?0;?????? }?????? X.x?=?p;?????? X.y?=?new?int[n+1];? ?//反复调用随机放置n个皇后的L·V算法,直到放置成功 ???? while(!X.QueensLv());???? ?? ??for(int?i=1;?i=n;?i++)?????? {??????????coutp[i]?;??????}????? ? coutendl;???? ?? delete?[]p;?? }??; int?main()??//主函数 {??? ??? int?n=8;???????? coutn皇后问题的解为:endl;???????? nQueen(n);???????? return?0 ?};;问题? 消极:LV算法过于消极,一旦失败,从头再来。 乐观:回溯法过于乐观,一旦放置某个皇后失败,就进行系统回退一步的策略,而这一步往往不一定有效。 折中:会更好吗?一般情况下为此。 先用LV方法随机地放置前若干个结点,例如 k 个。然后使用回溯法放置后若干个结点,但不考虑重放前k个结点。 若前面的随机选择位置不好,可能使得后面的位置不 成功,如若前两个皇后的位置是1、3。 随机放置的皇后越多,则后续回溯阶段的平均时间就 越少,失败的概率也就越大。;实例;改进算法 QueensLV函数中: while((k=n)(count0))? while((k=stopVegas)(count0))???? ? nQueen函数中: while(!X.QueensLv(stopVegas)); //直到随机放好stopVegas个皇后 if(X. Backtrack(stop+1)) ?//算法的回溯搜索部分?? { ?? ? ?fo

文档评论(0)

bbnnmm885599 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档