收藏 分享(赏)

浅析非完美算法在信息学竞赛中的应用.ppt

上传人:qcjlxh 文档编号:4575711 上传时间:2019-01-03 格式:PPT 页数:29 大小:466.50KB
下载 相关 举报
浅析非完美算法在信息学竞赛中的应用.ppt_第1页
第1页 / 共29页
浅析非完美算法在信息学竞赛中的应用.ppt_第2页
第2页 / 共29页
浅析非完美算法在信息学竞赛中的应用.ppt_第3页
第3页 / 共29页
浅析非完美算法在信息学竞赛中的应用.ppt_第4页
第4页 / 共29页
浅析非完美算法在信息学竞赛中的应用.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、非完美算法,长郡中学 胡伟栋,在信息学竞赛中的应用,浅析,计算机科学中非完美的例子,图片、音频、视频的压缩 很多压缩率比较高的压缩方法都是有损压缩密码验证 很多都是多对一,通过验证的不一定是正确的搜索引擎 不一定能搜索到所有匹配的内容,较小的磁盘空间,安全、实用,方便、快捷,非完美算法,在信息学乃至整个计算机科学领域,不一定绝对正确的算法就是最好的算法,有可能一个在绝大多数情况下正确的算法(非完美算法)比一个完全正确的算法更有前途。 时间使用较少 空间使用较少 实现较容易 容易被接受,非完美算法的一些常见方法,随机贪心抽样测试部分忽略, 周咏基论随机化算法的原理与设计 ,(*),(*),抽样测

2、试法,抽样:从统计总体中,任意抽出一部分单位作为样本,并以其结果推算总体的相应指标。,抽样测试法,s,满足条件A,具有性质P,抽样测试法,10000个元素,100个满足条件,只要少量抽样就能取 得较高的正确率,抽样测试法,在抽样测试时,有时总体中存在一些特殊的元素,这些元素满足条件的概率往往与其他元素满足条件的概率相差较大。如果特别的在这些元素中抽取一些进行测试,则可以加快出解的速度或增大解的正确率。,特殊抽样,抽样测试法特殊抽样,=A,B,C,Z,总体:的所有子集,条件:含A,B,C,G的集合,取特殊元素即满足条件!,质数判定,朴素的质数判定方法: 用2 试除。O(n0.5)抽样测试法: 在

3、2 中抽取k个试除。,Strong Pseudoprime,对于奇数n和正整数a,设n-1=d2s(d为奇数),若: ad1 (mod n) 或 存在0rs,使 -1 (mod n)则称n是以a为底的强伪质数(Strong Pseudoprime)。,判断: O(log2n),质数测试,当a不是n的整数倍时,质数n必然是以a为底的强伪质数。 在所有可能的a中,一个合数至多有 的机会为强伪质数。抽样测试:随机抽取k个不同的a进行测试。 正确率大于14k 时间复杂度为O(klog2n)。,抽样测试,质数测试抽样测试,特殊抽样:让a取最小的若干个质数。 只用2测试:最小的强伪质数为2047,在小于2

4、.51010中有4842个强伪质数。 只用2,3测试:最小强伪质数大于1.3106。 只用2,3,5测试:最小强伪质数大于2.5107。 只用2,3,5,7测试:最小强伪质数大于3.2109。,质数测试抽样测试,一般情况下,只要用2,3,5,7进行测试就能正确的判断一个数是否为质数。时间复杂度:O(log2n),抽样测试法,明显降低时间复杂度!,抽样测试法,部分忽略法,在信息学中,可能会遇到这样情况:一个题的分类非常多,同时某些情况的处理非常复杂,但这些情况往往不是主要情况(即出现的概率很小或不处理这些情况对答案不会造成很大的影响)。有时,忽略这些复杂却对结果影响不大的情况仍然可以达到令人满意

5、的结果。,部分忽略法,Problem,A,B,D,30%,40%,正确率:,99%,C,29%,1%,少,多,少,非常多,情况,出现率,处理用时,判断点是否在多边形内,给出一个点和一个简单多边形(设点不在多边形的边上),判断点是否在多边形内。方法:,判断点是否在多边形内,特殊情况:,忽略特殊情况,!,?,A,B,C,D,判断点是否在多边形内,射线经过多边形的顶点是一种非常特殊的情况。 而我们取的是一条非常特殊的射线与x轴平行的射线。 经验表明,特殊的射线经过多边形的顶点的几率会大于一般的射线! 解决方法:,取一条一般的射线!,判断点是否在多边形内,A,B,C,D,判断点是否在多边形内,多取几条

6、!,将出现次数最多的结果作为正确结果,设取一条射线,其经过多边形顶点的概率为x,取n条,所得结果的正确率不小于1-xn/2,部分忽略,部分忽略法能减轻我们的思维负担和编程复杂性。部分忽略法通常要加入一些小小的技巧。使,被忽略的情况对结果影响尽量小!,非完美算法,共同点: 不完全性,优点 时空消耗低 编程复杂度低 思维复杂度低 能减少编程错误,缺点 不完全正确,总结,在信息学竞赛以及实际应用中,并不是完全正确的算法就一定比非完美的算法表现得好,因为非完美算法的不完全性,反而使非完美算法在一些方面比正确算法表现得更好。因此,合理的使用非完美算法能取得非常令人满意的结果。,忠告,在能用完全正确的算法

7、时要尽量使用完全正确的算法,只有当确实难想到很好的方法或时间比较紧时才使用非完美算法。,结束语,想了解更多,欢迎阅读我的论文。里面还有一些更好玩的例子,如:NOIP2003的传染病控制、ACM的直觉主义逻辑以及IOI2004的Polygon。,谢 谢,RP类问题,对于一个判定类问题,如果存在一个随机算法,当此算法判定结果为否时,原问题的结果必为否,同时,当此算法的判定结果为是时,原问题的结果为是的概率大于50%,那么这个问题属于RP类问题。该算法称为Monte-Carlo算法。如果一个问题是RP类问题,可以通过多次运行它的一个Monte-Carlo算法而得到“几乎每次都是正确”的算法。,与Monte-Carlo算法,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报