greedydividedandconquersummary.docVIP

  • 3
  • 0
  • 约2.87万字
  • 约 40页
  • 2017-02-13 发布于江苏
  • 举报
greedydividedandconquersummary

A 3 -贪心、分治 学习小结 江苏省连云港市赣榆高级中学 仲晨 myheimu@ Myheimus Blog 关键词:【JSOI2005-2006第一轮函授 函授作业 A组 第3次 贪心、分治 学习小结A3-贪心、分治2005年6月3日318.00 KB 共 38页 ,合计26584字符 目录 按Ctrl+鼠标单击 前往 A 3 -贪心、分治 学习小结 1 一、作业要求 2 二、贪心总论 3 三、贪心策略探究 7 一各色的贪心策略 7 二贪心优化/启发式算法 14 三图论中的贪心 16 四、分治思想总论,分治与递推、递归 22 五、经典题题解 33 一、作业要求 贪心法、分治法 一、说明 本月的函授主要以《全国青少年信息学奥林匹克联赛培训教材(中学高级本)》的第三章、第四章为主,同时结合《全国青少年信息学奥林匹克联赛培训习题与解答(中学高级本)》的第三章、第四章的例题,要求营员认真、仔细地学习这些内容,不断总结、深入思考这些经典试题,为后面的竞赛及选拔打下良好的基础。 二、思考如下几个问题 1、 请结合1-2个题目谈谈贪心法的优点是什么?缺点是什么? 2、 在找到一个问题的贪心策略后重要的是如何证明你的贪心算法的正确性?在学习的过程中请注意体会这一点。 3、 如果不能严格证明你所采用的贪心策略的正确性,那么采用这种贪心算法编写的程序要尽可能地找各种可能性数据进行测试,以发现反例及时进行修补、重新考虑贪心策略、甚至改用其它算法求解!请结合1个题目谈谈这个问题。 4、 分而治之的思想是一种重要的解题思路!它能把看似复杂和规模很大的问题,用清晰的思路描述出来和求解。请结合《习题》31页的4.2 地毯填补问题体会这一点。 5、 分治与递推、递归有什么关系? 三、作业 结合以上思考题,从《高级本》或《高级本习题》中分别选择一道贪心法和分治法的题目,写一个详细的解题报告!必须是自己的东西,在6月3日之前上传给我。 四、另外,提供本次USCAO OPEN铜组和银组的比赛题目给大家自己做。过一段时间,我会把数据公布在网上,给大家自己测试。 二、贪心总论 首先,总结一下什么是贪心: 笔者认为,所谓贪心算法,就是对于一个初始状态,经过多次转化转化为某个状态,每一次转化都遵循一个特定的函数(即:贪心策略),保证整个过程最终结果和每一步都是某方面的最优解。 根据以上一句理解,贪心算法有这样几个特点,并与其他算法有着联系:÷ 贪心可以将一个问题变为一个相似的、但规模更小的子问题,而且每一步都是当前看似最佳的选择。 这种思想也就是分治,或者说:分治是贪心的基础。 这种选择依赖于已做出的选择,但不依赖于未做出的选择。也就是说它没有后效性。 运用贪心策略解决的问题在程序的运行过程中无回溯过程。 这一点决定了贪心算法一般是线性速度,即,所以贪心算法一般速度极快,不走弯路。 运用贪心策略在每一次转化时都取得了最优解,因此,它具有局部最优解(即最优子结构)。 但能够保证局部最优解的动态规划算法和广度优先搜索(BFS)却和贪心不同: 贪心的每一次操作都对结果产生直接影响,而动规则不是。打个比方:贪心是一条路走到底,动规是体育比赛中谁赢谁参加更高一级比赛。 在时间复杂度上,贪心一般是,而动规一般是;空间上贪心一般只需要一个存储单元,,而动规一般是 (有时可以优化为)。 当然,并不是贪心优于动规,动规主要运用于二维或三维问题,而贪心一般是一维问题,所以动规远比贪心复杂的多。但话又说会来了,动规=贪心+递推,贪心又是动规理论基础。 我上网时看到这样的事:“Hal Burch在1999年春天通过分析得出了一个惊人的发现,实际上只存在16种竞赛试题类型。而在IOI中,前几种就构成了约80%的问题 。贪心算法就是这“前几种”之一。” 可见贪心法的重要性! 贪心算法所作的选择可以依赖于以往所作过的选择,但决不依赖于将来的选择,也不依赖于子问题的解,这使得算法在编码和执行的过程中都有着一定的速度优势。如果一个问题可以同时用几种方法解决,贪心算法应该是最好的选择之一。 笔者参加竞赛或作题目时,一般是个人的经验来判断是否使用贪心算法、何时该使用贪心算法。因为贪心算法并不是对所有的问题都能得到整体最优解或最理想的近似解,与回溯法等通法比较,它的适用区域相对狭窄许多,因此正确的判断它的应用时机十分重要。总之,贪心算法并不深奥(虽说其贪心策略证明不是太容易),却可以解决许多看似深奥的问题,高级本上就有很多例子。 同样,贪心算法也存在很多问题,这些问题阻碍我们使用这种优秀的算法,我们可以绕过去,或者改造贪心算法。 该算法存在问题: 在有些时候不能保证求得的解是最佳的(这一条实际不是贪心算法本

文档评论(0)

1亿VIP精品文档

相关文档