单击此处编辑母版样式单击此处编辑幻灯片母版样式第二层第三层第四层第五层ACM 程序设计信息学院计算机应用系 余腊生4520221调课三周 (11611131120)4520222今天你 了吗AC4520223每周一星(5):枫冰叶子 4520224第六讲贪心算法(Greedy Algorithm)4520225还记得hdoj_1009吗FatMouse Trade4520226
#
引例1贪心选择性质:所谓贪心选择性质是指应用同一规则f将原问题变为一个相似的但规模更小的子问题而后的每一步都是当前看似最佳的选择这种选择依赖于已做出的选择但不依赖于未做出的选择从全局来看运用贪心策略解决的问题在程序的运行过程中无回溯过程2局部最优解:我们通过特点2向大家介绍了贪心策略的数学描述由于运用贪心策略解题在每一次都取得了最优解但能够保证局部最优解得不一定是贪心算法如大家所熟悉得动态规划算法
贪心法概述图问题中的贪心法组合问题中的贪心法例考虑用贪心法求解付款问题假设有面值为3元8角5角1角的货币需要找给顾客4元6角现金为使付出的货币的数量最少需要3张货币:1个3元和2个8角 而按贪心法找给顾客的是1个3元1个1元1个5角和1个1角共4张货币贪心法是一种简单有效的方法正如其名字一样贪心法在解决问题的策略上目光短浅只根据当前已有的信息就做出选择而且一旦做出了选择不管将来有什么结果这个选择都
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级贪心法贪心法又称登山法顾名思义运用这种方法去设计算法是要象登山或挖宝藏一样一步一步的去靠近问题的解贪心法存在问题:1. 不能保证求得的最后解是最佳的2. 不能用来求最大或最小解问题3. 只能求满足某些约束条件的可行解的范围也就是说贪心思想一般总能很快地得到问题的一个可行解但它并不总能得到问题的最佳解如果你用了贪心思想你必须证明
贪心与递推不同的是推进的每一步不是依据某一固定的递推式而是做一个当时看似最佳的贪心选择不断地将问题实例归纳为更小的相似子问题(与DP对比举例说明如最小代价子母树还有能用DP解决的问题是否都能用贪心法解决)在有些最优化问题中采用贪心法求解不能保证一定得到最优解(如何知道能否得到全局最优解)这时可以采取一些变形的贪心法或其他解决最优化问题的方法(如动态规划方法——为何采用DP就可以解决DP不是也要求具
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级贪心算法主讲人:张云聪目录什么是贪心算法1贪心算法典型例题2一些细节琐事3推荐题目4什么是贪心算法贪心算法(又称贪婪算法)是指在对问题求解时总是做出在当前看来是最好的选择也就是说不从整体最优上加以考虑他所做出的仅是在某种意义上的局部最优解贪心算法不是对所有问题都能得到整体最优解但对范围相当广泛的许多问题他能产生整体最优解或者是
2template<class Type>void GreedySelector(int n Type s[] Type f[] bool A[]){ A[1]=true int j=1 for (int i=2i<=ni) { if (s[i]>=f[j]) { A[i]=true j=i } else A[i]=false
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级贪心算法 ACM学习小组新生入门指导教程湘南学院ACM协会贪心算法学习目的:掌握贪心算法学习要求:熟练运用贪心算法解决以下问题 1.背包问题 2.活动会场安排问题 3.最小代价生成树 4.哈弗曼编码
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级贪心算法顾名思义贪心算法总是作出在当前看来最好的选择也就是说贪心算法并不从整体最优考虑它所作出的选择只是在某种意义上的局部最优选择当然希望贪心算法得到的最终结果也是整体最优的虽然贪心算法不能对所有问题都得到整体最优解但对许多问题它能产生整体最优解如单源最短路经问题最小生成树问题等在一些情况下即使贪心算法不能得到整体最优解其最终
违法有害信息,请在下方选择原因提交举报