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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析非完美算法在息学竞赛中的应用

非完美算法 计算机科学中非完美的例子 图片、音频、视频的压缩 很多压缩率比较高的压缩方法都是有损压缩 密码验证 很多都是多对一,通过验证的不一定是正确的 搜索引擎 不一定能搜索到所有匹配的内容 非完美算法 在信息学乃至整个计算机科学领域,不一定绝对正确的算法就是最好的算法,有可能一个在绝大多数情况下正确的算法(非完美算法)比一个完全正确的算法更有前途。 时间使用较少 空间使用较少 实现较容易 容易被接受 非完美算法的一些常见方法 随机贪心 抽样测试 部分忽略 …… 抽样测试法 抽样:从统计总体中,任意抽出一部分单位作为样本,并以其结果推算总体的相应指标。 抽样测试法 抽样测试法 抽样测试法 在抽样测试时,有时总体中存在一些特殊的元素,这些元素满足条件的概率往往与其他元素满足条件的概率相差较大。如果特别的在这些元素中抽取一些进行测试,则可以加快出解的速度或增大解的正确率。 抽样测试法——特殊抽样 质数判定 朴素的质数判定方法: 用2~  试除。O(n0.5) 抽样测试法: 在2~  中抽取k个试除。 Strong Pseudoprime 对于奇数n和正整数a,设n-1=d·2s(d为奇数),若: ad≡1 (mod n) 或 存在0≤rs,使  ≡-1 (mod n)  则称n是以a为底的强伪质数(Strong Pseudoprime)。 质数测试 当a不是n的整数倍时,质数n必然是以a为底的强伪质数。 在所有可能的a中,一个合数至多有 的机会为强伪质数。 抽样测试:随机抽取k个不同的a进行测试。 正确率大于1-4-k 时间复杂度为O(klog2n)。 质数测试——抽样测试 特殊抽样:让a取最小的若干个质数。 只用2测试:最小的强伪质数为2047,在小于2.5×1010中有4842个强伪质数。 只用2,3测试:最小强伪质数大于1.3×106。 只用2,3,5测试:最小强伪质数大于2.5×107。 只用2,3,5,7测试:最小强伪质数大于3.2×109。 质数测试——抽样测试 一般情况下,只要用2,3,5,7进行测试就能正确的判断一个数是否为质数。 时间复杂度:O(log2n) 抽样测试法 部分忽略法 在信息学中,可能会遇到这样情况:一个题的分类非常多,同时某些情况的处理非常复杂,但这些情况往往不是主要情况(即出现的概率很小或不处理这些情况对答案不会造成很大的影响)。有时,忽略这些复杂却对结果影响不大的情况仍然可以达到令人满意的结果。 部分忽略法 判断点是否在多边形内 给出一个点和一个简单多边形(设点不在多边形的边上),判断点是否在多边形内。 方法: 判断点是否在多边形内 特殊情况: 判断点是否在多边形内 射线经过多边形的顶点是一种非常特殊的情况。 而我们取的是一条非常特殊的射线——与x轴平行的射线。 经验表明,特殊的射线经过多边形的顶点的几率会大于一般的射线! 解决方法: 判断点是否在多边形内 判断点是否在多边形内 部分忽略 部分忽略法能减轻我们的思维负担和编程复杂性。 部分忽略法通常要加入一些小小的技巧。使 非完美算法 共同点: 不完全性 总结 在信息学竞赛以及实际应用中,并不是完全正确的算法就一定比非完美的算法表现得好,因为非完美算法的不完全性,反而使非完美算法在一些方面比正确算法表现得更好。因此,合理的使用非完美算法能取得非常令人满意的结果。 忠告 在能用完全正确的算法时要尽量使用完全正确的算法,只有当确实难想到很好的方法或时间比较紧时才使用非完美算法。 结束语 想了解更多,欢迎阅读我的论文。里面还有一些更好玩的例子,如:NOIP2003的《传染病控制》、ACM的《直觉主义逻辑》以及IOI2004的《Polygon》。 RP类问题 对于一个判定类问题,如果存在一个随机算法,当此算法判定结果为否时,原问题的结果必为否,同时,当此算法的判定结果为是时,原问题的结果为是的概率大于50%,那么这个问题属于RP类问题。该算法称为Monte-Carlo算法。 如果一个问题是RP类问题,可以通过多次运行它的一个Monte-Carlo算法而得到“几乎每次都是正确”的算法。 * * 在信息学竞赛中的应用 浅析 较小的磁盘空间 安全、实用 方便、快捷 —— 周咏基《论随机化算法的    原理与设计 》 (*) (*) s 满足条件A 具有性质P √ 10000个元素 100个满足条件 只要少量抽样就能取 得较高的正确率 ——特殊抽样 α={‘A’,’B’,’C’,……,’Z’} 总体:α的所有子集 条件:含{‘A’,’B’,’C’,……,’G’}的集合 取特殊元素α即满足条件! × 判断: O(log2n) ——抽样测试 明显降低时间复杂度! 抽样测试法 Problem A B D 30% 40% √

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档