- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(算法合集之浅谈随机化思想在几何问题中的应用
感受随机的美
——浅谈随机化思想在几何问题中的应用
广东省中山一中 顾研
摘要
近几年来,可以使用随机化来解决的几何题目越来越多。本文将着重介绍两种在信息学竞赛中常见的随机几何算法:随机增量法与模拟退火法,以及和传统方法的比较,说明了随机化思想的优势。
关键字
随机化 随机增量算法 模拟退火算法 调整
目录
摘要 1
关键字 1
目录 1
正文 3
1 随机算法简介 3
1.1 数值概率算法 3
1.2 拉斯维加斯(Las Vegas)算法 3
1.3 蒙特卡罗(Monte Carlo)算法 3
1.4 舍伍德(Sherwood)算法 4
2 随机增量算法 5
2.1 增量算法 5
2.2 随机增量算法的一个例子 5
2.2.1 张角法 6
2.2.2 改进算法 6
2.3 随机增量算法的应用 8
2.3.1 蛮力算法 9
2.3.2 切割线段算法 10
2.3.3 随机增量算法 12
3 模拟退火(Simulated Annealing)算法 14
3.1 模拟退火算法介绍 14
3.1.1 模拟退火算法的原理 14
3.1.2 模拟退火算法的模型 14
3.2 例一:Run Away 14
3.3 例二:Empire strikes back 17
3.4 例三:激光坦克 19
3.5 小结 24
4 总结 24
感谢 25
参考文献 25
附录 25
附录1 蒙特卡罗抽样的步骤 25
附录2 2.2.2定理的证明 26
附录3 论文原题 28
附录3 参考程序 31
联系方式 31
正文
1 随机算法简介
随机算法是这样的一类算法:它在接受输入的同时,在算法中引入随机因素,即通过随机数选择算法的下一步。也就是说,一个随机算法在不同的运行中对于相同的输入可能有不同的结果,或执行时间有可能不同。
随机算法的特点:简单、快速、灵活和易于并行化,这些特点都会在本文中得到体现。随机算法可以理解为在时间、空间和精度上的一种的平衡。
常见的随机算法有四种:数值概率算法,蒙特卡罗(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法和舍伍德(Sherwood)算法。
1.1 数值概率算法
数值概率算法常用于数值问题的求解。这类算法所得到的往往是近似解。而且近似解的精度随计算时间的增加不断提高。在许多情况下,要计算出问题的精确解是不可能或没有必要的,因此用数值概率算法可得到满意的解。
举个例子:计算?的近似值时,我们可以在单位圆的外接正方形内随机撒n个点,设有k个点落在单位圆内,可以得到。
数值概率算法不是本文的重点,这里仅作简单介绍。有兴趣的同学可自行研究。
1.2 拉斯维加斯(Las Vegas)算法
拉斯维加斯算法不会得到不正确的解,也就是说,一旦用拉斯维加斯算法找到一个解,那么这个解肯定是正确的。但是有时候用拉斯维加斯算法可能找不到解。算法所用的时间越多,得到解的概率就越高。
1.3 蒙特卡罗(Monte Carlo)算法
又是一个以赌城命名的算法。通常所说的蒙特卡罗算法分为两类。
1.蒙特卡罗判定:蒙特卡罗算法总是能给出问题的解,但是偶尔也可能会产生非正确的解。求得正确解的概率依赖于算法所用的时间。蒙特卡罗判定的错误必须是“单边”的,即实际答案是YES(NO),算法给出的答案可能是NO(YES),但是实际答案是NO(YES),则算法给出的答案一定是NO(YES)。因此蒙特卡罗算法得到正确解的概率随着计算次数的增加而提高,即在时间和精度上的一种平衡。
最常见的蒙特卡罗判定是众所周知的Miller-Rabin素数测试字符串匹配的Rabin-Karp算法。
2.蒙特卡罗抽样:它的基本思想是,对于所求的问题,通过试验的方法,通过大样本来模拟,得到这个随机变量的期望值,并用它作为问题的解。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解的过程。
蒙特卡罗抽样的主要步骤可参考附录1。本文第三章的模拟退火算法就使用了蒙特卡罗抽样的思想。
1.4 舍伍德(Sherwood)算法
舍伍德算法总能求得问题的一个解,且所求得的解总是正确的。当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时,可以在这个确定算法中引入随机性将它改造成一个舍伍德算法,消除或减少问题的好坏实例之间的这种差别。舍伍德算法精髓不是避免算法的最坏情况的发生,而是设法消除这种最坏行为与特定实例之间的关联性。舍伍德算法最广泛的一个应用就是快速排序的随机化实现。
本文第二章的随机增量算法就是舍伍德算法的一种应用。
除了随机算法,国家集训队2006年论文:唐文斌《浅谈“调整”思想在信息学竞赛中的应用》中很多带有随机化的调整思想也可以用在几何问题中。比如Ural
文档评论(0)