算法合集之浅析非完美算法在信息学竞赛中应用

算法合集之浅析非完美算法在信息学竞赛中应用

ID:36635480

大小:172.61 KB

页数:17页

时间:2019-05-13

算法合集之浅析非完美算法在信息学竞赛中应用_第1页
算法合集之浅析非完美算法在信息学竞赛中应用_第2页
算法合集之浅析非完美算法在信息学竞赛中应用_第3页
算法合集之浅析非完美算法在信息学竞赛中应用_第4页
算法合集之浅析非完美算法在信息学竞赛中应用_第5页
资源描述:

《算法合集之浅析非完美算法在信息学竞赛中应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、非完美算法在信息学竞赛中的应用胡伟栋浅析非完美算法在信息学竞赛中的应用湖南省长沙市长郡中学胡伟栋【目录】摘要2关键字2正文2引言2非完美算法的一些基本方法3随机贪心法3抽样测试法4部分忽略法8完美算法的依据——RP类问题与Monte-Carlo算法11非完美算法的共性11非完美算法的优点与缺点12总结13感谢13参考文献13附录13第17页,共17页非完美算法在信息学竞赛中的应用胡伟栋【摘要】非完美算法就是用算法正确性的少量损失来换取时间、空间效率以及编程复杂度的算法。本文介绍了非完美算法的几种重要方法及非完美算法的优缺点,从中

2、,可以看出:并不是完全正确的算法就一定好过非完美算法,有可能因为非完美算法的不完全性,反而使不正确的算法在很多方面比正确算法表现得更好。【关键字】非完美算法随机化贪心法抽样测试法部分忽略法【正文】一、引言在平时,我们研究的算法基本都是完全正确的算法,我们所追求的,也是尽量使我们的算法正确。但在实际应用中,有很多情况都不会对数据进行天衣无缝的正确处理。如:图片、音频、视频的压缩存储,很多压缩率比较高的方法都是有损压缩;很多密码验证的方法都是采用多对一的运算方法,通过验证的不代表密码真正正确;搜索引擎所提供的搜索,并不能将所有满足条

3、件的都找到……显然,我们不会因为它们的不完美而不使用它们,它们的存在,有着它们的实际意义:图片、音频、视频的压缩存储,如果不损失一些,不可能将文件压缩得很小;密码验证虽是多对一,但找到两个所对的是同一个何尝容易;搜索引擎虽不能搜索到100%的结果,但其方便、快捷是无以伦比的……那么,在信息学竞赛中是否也可以用非完美算法解题呢?本文试图介绍一些比较有用的常见非完美算法,并希望读者能从此得到一些启发。在开始此文前,希望读者能认同一点:在信息学乃至整个计算机科学领域,不一定绝对正确的算法就是最好的算法,有可能一个在绝大多数情况下正确的

4、算法(非完美算法)第17页,共17页非完美算法在信息学竞赛中的应用胡伟栋比一个完全正确的算法更有前途。或者,由于它没有完全正确的算法考虑得全面,而使得它的空间或时间使用得较少;或者,由于它没有正确的算法那么严谨,使得编程实现时较容易;或者,由于所用的知识没有正确算法那么深奥,使得它更容易被接受。二、非完美算法的一些基本方法1.1随机化贪心随机化贪心在周咏基前辈的《论随机化算法的原理与设计》中有写过,为了此文的完整性,这里将通过一个实例简要的说明。法随机化贪心是目前用得较广泛的一种非完美算法。特别是对求较优解的题目,这种方法可以说

5、是首选。随机贪心,就是用随机与贪心结合,在算法的每一步,都尽量使决策取得优,但不一定是最优决策。通过多次运行,使得算法能取得一个较优的解。有时,由于决策的优劣判断较复杂,直接用多次随机也能得到较优的结果。例:传染病控制题目来源:NOIP2003,原题请见附录。Ø题目大意给出一棵传染病传播树,其中根结点是被感染结点。每个时刻,被感染结点都会将传染病传播到它的子结点。但是,如果某时刻t切段A与其父结点B之间的边,则时刻t以后,传染病不会从B传染给A(即A不会患病)。每个时刻,只能切断一条传播途径。问每个时刻怎样切段传播途径,使最少的

6、人被感染。Ø说明本题的标准算法是搜索。关于如何用搜索解决此题,请参见附件《传染病控制解题报告》,此解题报告由周戈林同学提供。Ø分析显然,如果某个结点已被感染,则以后没有必要切断它与它的父结点之间的传播途径,因为这样和不切断没有区别(即切断已被感染的结点与其父结点之间的传播途径是无效的);如果在一个时刻,切断A与A的父结点之间的传播途径是有效的,切断B与B的父结点之间的传播途径也是有效的,同时,B是A第17页,共17页非完美算法在信息学竞赛中的应用胡伟栋的子孙结点,则切断A与A的父结点的传播途径优于切断B与B的父结点的传播途径。由

7、于第t时刻被感染的显然只可能是前t层的。因此可得到,第t时刻切断的必然是第t层与第t+1层之间的传播途径。本题可以用随机贪心来做。根据经验,每次将一个结点数最多的子树从原树中切开,结果会比较好。但这样并不能适应所有情况,有时,选结点数第二多的或第三多的反而能使以后的最终结果要好一些。所以,可以多次贪心,每次都随机的选一个能切断的结点数较多的方案切(或者说每次使能切断的结点数多的方案数被切的几率大一些),这样,虽然大多数情况下其结果都比贪心要差,但只要随机到一定的数量,这中间出现正确答案的概率就很大了。上面加概率的随机贪心有一点难

8、处理的就是怎样设置每种情况被选择的概率。其实,对于此题,只要将每种情况被选到的概率都设成同样大(即被选中的概率与其子结点数无关)就可以了。这样,这种方法就变成了纯粹的随机法,这种方法也能使此题得到满分。小结随机贪心是信息学竞赛中的一个重要工具,由于一般情况下它都

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。