随机化算法.pptx

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

随机化算法 成员:潘礼辉 杜涛 谢伟建学习要点: 掌握拉斯维加斯算法的思想掌握舍伍德算法思想拉斯维加斯概述拉斯维加斯算法找到正确解的概率随着它所用的计算时间的增加而提高。拉斯维加斯算法不会得到不正确的解。一旦用拉斯维加斯算法找到一个解,这个解就一定是正确解。但有时用拉斯维加斯算法找不到解。 浅层解析:试钥匙假如有一把锁,给我100把钥匙,只有1把是对的。于是我每次随机拿1把钥匙去试,打不开就再换1把。我试的次数越多,打开(最优解)的机会就越大,但在打开之前,那些错的钥匙都是没有用的。这个试钥匙的算法,就是拉斯维加斯的——尽量找最好的,但不保证能找到。利用拉斯维加斯算法解N皇后问题 动态演示:舍伍德算法概述 基本思想:在一般输入数据的程序里,输入多多少少会影响到算法的计算复杂度。这时可用舍伍德算法消除算法所需计算时间与输入实例间的这种联系。实例解析:线性时间选择算法 快速排序中,我们是以第一个元素为基准开始排序时,为了避免这样的情况,可以用舍伍德算法解决,也就是使第一个基准元素是随机的。动态演示: 算法解惑:bool Queen::Place(int k) // 测试皇后k置于第x[k]列的合法性bool Queen::Backtrack(int t) // 解n后问题的回溯法 bool Queen::QueensLV(int stopVegas){ // 随机放置n个皇后的拉斯维加斯算法 RandomNumber rnd; // 随机数产生器 int k = 1; // 下一个放置的皇后编号 int count = 1; // 1 = stopVegas = n 表示允许随机放置的皇后数 while((k = stopVegas) (count 0)){ count = 0; for(int i = 1; i=n; ++i){ // ----------- ① x[k] = i; if(Place(k)) y[count++] = i; } if(count 0) // -------------② x[k++] = y[rnd.Random(count)]; } // 随机位置 return (count 0); // count 0表示放置位置成功}}

文档评论(0)

bbnm58850 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档