第12章概率算法说课.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
个人认为sherwood算法严格意义上不是一个算法,而是一个随机处理过程,我将原始算法经过sherwood处理后的算法称为sherwood算法。使用Sherwood处理后的算法能够平滑不同输入实例的执行时间。 sherwood是一种概率算法思想,使得算法的复杂度不依赖于实例,而是依赖于概率。 * 算法设计与分析 清华大学出版社 第12章 概率算法 12.1 概 述 12.2 舍伍德(Sherwood)型概率算法 12.3 拉斯维加斯(Las Vegas)型概率算法 12.4 蒙特卡罗(Monte Carlo)型概率算法 12.5 实验项目——随机数发生器 12.1 概 述 前面讨论的算法都是针对确定性算法,即算法的每一步都明确指定下一步该如何进行,对于任何合理的输入,确定性算法都必须给出正确的输出。 概率算法把“对于所有合理的输入都必须给出正确的输出”这一求解问题的条件放宽,允许算法在执行过程中随机选择下一步该如何进行,同时允许结果以较小的概率出现错误,并以此为代价,获得算法运行时间的大幅度减少。 12.1.1 概率算法的设计思想 解读藏宝图要4天,不允许出发后解读; 另外一个人每天会拿走一部分宝藏; 有一个小精灵可告诉你如何解读,但需支付相当于那个人3天拿走的宝藏。 问题:如何做才能得到更多的宝藏? 5天 5天 5天 12.1.1 概率算法的设计思想 假设得到藏宝图时剩余宝藏价值是x,知道藏宝地点的那个人每天拿走宝藏价值是y,并且x9y,可行方案有: 用4天时间解读藏宝图,用5天时间到达藏宝地点,可获得宝藏价值x-9y; 接受小精灵的条件,用5天时间到达藏宝地点,并支付给小精灵宝藏价值3y,则可获宝藏价值x-5y-3y=x-8y; 投掷硬币决定首先前往哪个地点,如果发现地点是错的,就前往另一个地点。这样有一半的机会获得宝藏价值x-5y,另一半机会获得宝藏价值x-10y,这样最终可获宝藏价值是x-7.5y。 当面临选择时,如计算正确选择的时间大于随机确定一个选择的时间,那么应该随机选择一个。当算法执行过程中面临一个选择,有时候随机选择算法的执行动作可能比花费时间计算哪个是最优选择更好。 12.1.1 概率算法的设计思想 概率算法把“对于所有合理的输入都必须给出正确的输出”这一求解问题的条件放宽,把随机性的选择注入到算法中,在算法执行某些步骤时,可以随机地选择下一步该如何进行,同时允许结果以较小的概率出现错误,并以此为代价,获得算法运行时间的大幅度减少。 如果一个问题没有有效的确定性算法可以在一个合理的时间内求解,但是该问题能接受小概率的错误,那么采用概率算法就可以快速找到问题的解。 例如,判断表达式f(x1, x2, …, xn)是否恒等于0。 概率算法首先生成一个随机n元向量(r1, r2, …, rn),并计算f(r1, r2, …, rn)的值,如果f(r1, r2, …, rn)≠0,则f(x1, x2, …, xn)不恒等于0;如果f(r1, r2, …, rn)=0,则或者f(x1, x2, …, xn)恒等于0,或者是(r1, r2, …, rn)比较特殊,如果这样重复几次,继续得到f(r1, r2, …, rn)=0的结果,那么就可以得出f(x1, x2, …, xn)恒等于0的结论,并且测试的随机向量越多,这个结果出错的可能性就越小。 一般情况下,概率算法具有以下基本特征: (1)概率算法的输入包括两部分,一部分是原问题的输入,另一部分是一个供算法进行随机选择的随机数序列; (2)概率算法在运行过程中,包括一处或若干处随机选择,根据随机值来决定算法的运行; (3)概率算法的结果不能保证一定是正确的,但可以限定其出错概率; (4)概率算法在不同的运行中,对于相同的输入实例可以有不同的结果,因此,对于相同的输入实例,概率算法的执行时间可能不同。 同一输入实例运行同一概率算法求解两次可能得到完全不同的效果(结果和所需时间),所以一旦概率算法失败了,只需重启算法又有成功的希望。另外运行几次概率算法,有可能得到几个不同的答案。 对于确定性算法,通常分析在平均情况下以及最坏情况下的时间复杂性。对于概率算法,通常分析在平均情况下以及最坏情况下的期望时间复杂性,即由概率算法反复运行同一输入实例所得的平均运行时间。 概率算法的时间性能 需要强调的是,“随机”并不意味着“随意”。如手工运行算法,可通过掷骰子来得到一个随机结果,在计算机中则通过随机数发生器来实现。 11.1.2 随机数发生器 目前,在计算机上产生随机数还是一个难题,因为在原理上,这个问题只能近似解决。 计算机中产生随机数的方法通

文档评论(0)

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

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

1亿VIP精品文档

相关文档