- 4
- 0
- 约1.31万字
- 约 15页
- 2017-02-07 发布于江苏
- 举报
非完美算法的应用
——河北唐山一中 任一恒
在平时的练习和考试中,我们都是尽量设计出完全正确的算法来解决问题。可是,实际中很多问题都是不能完美解决的,还有很多问题完美解决所需要的时间空间是根本无法接受的,所以,非完美的算法在实际中有着很广的应用。随着竞赛的题目越来越接近时际,以按优劣计分的题目为代表的考察非完美算法的题目越来越多,本文将讨论一些常用的非完美算法,希望给读者一些启发。
贪心算法
贪心算法的基本思路是从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。这样我们就得到了一个解,但是我们无法保证解是最优的。下面我们来看看贪心算法的表现。
例题1 NOI2007 追捕盗贼
某国家要追捕一个大盗,该国家的城市网络是一棵树,现在要你通过在某城市空降警察,让警察从某城市移动到有道路连接的城市,收回某警察来达到捕捉到盗贼的目的。用到的警察越少越好。
这道题的标准算法用到了很多高等知识,而且实现也是相当复杂的,在限定的时间内完美的解决这道题可以说是不能完成的任务,那么我们贪心算法在这道题上的表现如何呢?
我们不妨将原树想象为一棵有根的树,先在根结点空降一个警察,然后再次在根结点空降一个警察,让这个警察走向某棵子树,对这棵子树重复上面的过程,这样一棵子树一棵子树的排除,直到整棵树被排除。这里可以采取一个十分有效的优化就是在只剩一棵子树的时候,不用再安排新的警察,直接让一直守在根结点的那个警察走过去即可。所以不妨安排需要警察最多的那颗子树最后走,这样可以使结果得到很大优化。由于结点数不超过1000,所以我们可以枚举每个结点为根结点,找出其中需要警察最少的那个。
这个算法虽然存在着反例,但是由于那个十分有用的优化,可以使结果十分接近标准结果。通过数据试验的结果,有90%的结果和标准算法产生的结果一致,10%不一致的相差也是十分的小。可以说贪心算法在这道题目上发挥的很好。
贪心算法的优点在于实现容易,时间效率高,而其缺点则是在很多时候和标准算法的差距过大,精确度不够。所以我们要尽量优化贪心算法。优化贪心算法主要从两个方面来着手:1、多和完美算法结合,可以通过在部分使用完美算法而总体使用贪心的方法,通过贪心来结合若干部分的最优结果,尽量的接近真正最优的结果;2、贪心权值的选择,一个贪心算法的关键就是所选的策略,所以在选择权值时我们要尽可能的包含更多的能对全局产生影响的信息,使最终解能更加接近最优解。
二、随机算法
和上面的贪心算法相同,随机算法也是使用较多的一种算法。下面我们来看一道例题。
例题2 SPOJ1481 Yet another computer network problem
给你一个n个点,m条边的无向图,让你构建一棵生成树,但是每个点的度数不能超过一个给定的限制b,求所能构建的最小生成树。(1=n=10^4,1=m=10^5,1=b=n)
如果没有度数的限制,那么这道题就是一个十分简单的最小生成树,有了这道题之后我们应该如何处理呢?我们不妨在考虑每个点连出的边选取不超过b的前提下用kruskal算法计算出一棵生成树。然后,能对结果产生优化的变化必然是用一条由度数已经达到b的点连出的一条边和某条边替换另一条由该度数达到b的点连出的边和另一条边。所以我们不妨随机一个度数达到b的点,随机选取它的一条被选中的边和未被选中的边交换,然后添加一条边,这时图中产生了一个环,在环中删除长度最长的边,如果结果比之前更优则保留结果。实践证明,此方法对于该题目能产生十分优秀的结果。
其实,随机算法很少单独应用,更多时候是和其它算法相结合,来使我们的非完美算法产生更加优秀的解。
三、抽样测试法
抽样,即从统计总体中,任意抽出一部分单位作为样本,并以其结果推算总体的相应指标。在某些问题中,需要让我们检查一系列测试元s,如果s中的某个测试元满足了某个条件,那么则说s满足了某个性质。在大度数情况下,我们需要将s中的测试元一个一个的进行验证,才能确定s是否满足该性质。但是如果s满足如下性质,要不s中不含满足条件的测试元,要不满足某条件的测试元很多,则可以直接选取几个具有代表性的测试元进行测试,通过这几个测试元来确定s是否满足该性质。
例题3 SPOJ919 Prime Checker
存在一个数列,第一项为1,以后各项根据公式ai=(ai-1+1234567890) mod 231推出,问这个数列的各项是否为质数。如果是质数的就输出0,是合数的就输出1,在时间限制内输出的越多,得到的分数越多。
看到这个题目,我们首先想到的是最为朴素的做法,先求出1-100000的素数表,然后对于每个数ai,用1-trunc(sqrt(ai))间质数去除这个数,如果某个质数能够整除ai,则ai为合数,如
您可能关注的文档
- 火灾后钢筋混凝土节点钢筋粘结滑移模拟.doc
- 计量器具普查名词解释与填表说明.doc
- 计算机辅助软件工程(CASE).ppt
- 坚持走中国特色社会主义工会发展道路.ppt
- 兼顾激励与保健薪酬管理体系.doc
- 检测工艺样板(10级).doc
- 进一步完善资本市场功能(周小全).doc
- 近红外反射光谱法-土壤性质主成分回归的分析-NIRS–PCR.doc
- 近几年北京动物园动物生存状况调研报告【上传】.docx
- 阔永红老师-信号处理智能方法的分析.ppt
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
原创力文档

文档评论(0)