[]随机算法介绍及NP完全问题.ppt

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

第七章 随机算法及NP完全问题 7.1 随机算法引言 7.2 随机算法的类型 7.3 随机数发生器 7.4 数值概率算法 7.5 舍伍德(Sherwood)算法 7.6 拉斯维加斯(Las Vegas)算法 7.7 蒙特卡罗(Monte Carlo)算法 7.8 NP完全问题 7.1 随机算法引言 确定性的算法 : 算法的每一个计算步骤都是确定的, 对于相同的输出,每一次执行过程都会产生相同的输出。 随机算法:非形式描述 随机算法为使用随机函数产生器的算法。算法中的一些判定依赖于随机函数产生器的输出。 随机算法对于相同的输入,在不同的运行过程中会得到不同的输出。 对于相同的输入,随机算法的执行时间也可能随不同的运行过程而不同。 8.1 随机算法引言 随机算法的优点: 1、执行时间和空间,小于同一问题的已知最好的确定性算法; 2、实现比较简单,容易理解。 很多确定性的算法,其性能很坏。可用随机选择的方法来改善算法的性能。 某些方面可能不正确,对特定的输入,算法的每一次运行不一定得到相同结果。出现这种不正确的可能性很小,以致可以安全地不予理睬。 7.2 随机算法的类型 数值概率算法 拉斯维加斯(Las Vegas)算法 蒙特卡罗(Monte Carlo)算法 舍伍德(Sherwood)算法。 7.2 随机算法的类型 1、数值概率算法:用于数值问题的求解。所得到的解几乎都是近似解,近似解的精度随着计算时间的增加而不断地提高。 2、舍伍德(Sherwood)算法:很多具有很好的平均运行时间的确定性算法,在最坏的情况下性能很坏。引入随机性加以改造,可以消除或减少一般情况和最坏情况的差别。 7.2 随机算法的类型 3、拉斯维加斯(Las Vegas)算法:要么给出问题的正确答案,要么得不到答案。反复求解多次,可使失效的概率任意小。 4、蒙特卡罗(Monte Carlo)算法:总能得到问题的答案,偶然产生不正确的答案。重复运行,每一次都进行随机选择,可使不正确答案的概率变得任意小。 7.3 随机数发生器 产生随机数的公式: 产生0~65535的随机数 序列, b、c、d为正整数,称为所产生的随机序列的种子。 常数b、c,对所产生的随机序列的随机性能有很大的关系,b通常取一素数。 7.3 随机数发生器 #define MULTIPLIER 0x015A4E35L; #define INCREMENT 1; static unsigned long seed; void random_seed(unsigned long d) { if (d==0) seed = time(0); else seed = d; } unsigned int random(unsigned long low,unsigned long high) { seed = MULTIPLIER * seed + INCREMENT; return ((seed 16) % (high – low) + low); } 7.4 数值概率算法 例:用随机投点法计算?值 设有一半径为r的圆及其外切四边形。向该正方形随机地投掷n个点。设落入圆内的点数为k。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为 。所以当n足够大时,k与n之比就逼近这一概率。从而 7.4 数值概率算法 public double darts(int n) { // 用随机投点法计算?值 int k=0; for (int i=1;i =n;i++) { double x=dart.fRandom(); double y=dart.fRandom(); if ((x*x+y*y)=1) k++; } return 4*k/(double)n; } 7.5 舍伍德(Sherwood)算法 一、确定性算法的平均运行时间 TA(x) :确定性算法对输入实例的运行时间。 Xn :规模为的所有输入实例全体。 算法的平均运行时间: 存在实例 , 。 例:快速排序算法 当输入数据均匀分布时,运行时间是 。 当输入数据按递增或递减顺序排列时,算法的运行时间变坏 7.5 舍伍德(Sherwood)算法 二、舍伍德算法的基本思想 消除不同输入实例对算法性能的影响,使随机算法对规模为的每一个实例,都有: 三、期望运行时间: 当s(n

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档