ACM+DP+算法++大集合
8页1、第 27 讲 贪心与动态规划贪心和动态规划在算法设计求解中均有着广泛的应用,因为它们都属于最优化问题的求解,因此这里将它们放在同一章节加以介绍。虽然都是求解最优化问题,但是贪心和动态规划还是有很大的区别的。前者是从问题的源出发每一步都采取最优的选择,最终找到问题的解;而后者则从考虑问题的子问题入手,通过比较划分后的独立子问题的解,来确定当前问题的最优解。相对而言,贪心法的形式非常多样,不容易对它做具体的分类,许多算法之中都蕴含了贪心的思想,而动态规划则可以大致分出一些应用较多的独立模型。因此在这一章节,我们会把笔墨侧重于后者。第一部分 贪心(Greedy)在求解最优化问题时,有这样一种自然的想法,希望每一步都则采取最优的策略,最终得到全局的最优解,这就是贪心思想。它的最大特点就是运行速度快,效率高,因此备受程序设计员的喜爱。当然,由此也带来了贪心法的最大问题,如何证明其正确性?因为在很多时候,局部最优解的选择往往最终得不到全局最优解。于是,我们在运用贪心思想解决问题时,就需要格外的小心。事实上,许多成熟的算法中都蕴含了贪心思想,比如求解最小生成树的Bellman-Ford 算法,单源最
2、短路径的 Dijkstra 算法,求解二分图匹配的匈牙利算法等等。很多时候,贪心法虽然得不到最优解,但是仍具有重要的最用。比如,利用贪心法得到的近似解可以为搜索法提供较强的剪枝策略。就用一个例子来看看贪心法的应用吧:例 1, POJ 2287 田忌赛马田忌赛马的故事想必已经被大家所熟知了,孙膑“以君之下驷彼上驷,取君上驷与彼中驷,取君中驷与彼下驷”的策略使得田忌最终“一不胜而再胜”。如今,田忌与齐王决定再战一场,这一回双方决定用 n (n 1000)匹马较量一番。每一回合,先到的马将为主人赢得 200 美元,如果打平双方均无需指出。假设双方马匹的速度已给出,而田忌仍然能够提前知道齐王马匹的出场顺序,那么他最多能赢多少钱呢?分析 乍看下去,似乎没有很好的贪心思路,倒是可以利用二分图匹配的方法解题,可是时间复杂度相对较高,改进得的匈牙利算法也匹配需要 O(n 3)的时间,即使 Hopcraft 算法,也需要 O( 2n)的时间复杂度。那么,真的不能运用贪心法吗?当年田忌获胜的方法或许能够给我们一些启迪。用下等马匹配齐王的上等马,虽然输掉了局部,却赢下了全局。也就是说,在最终的最优选择中,将
3、有一些场次会输掉比赛。那么,既然是这样,我们何不学习田忌,用那些“下等马”输掉这些比赛,而让获胜者,均为齐王的“上等马”呢?这样的改进不会比原先的最优选择更差。设A n为田忌的马,且按速度排序 A1 A2 An ,Bn为齐王的马,同样按速度排序 B1 B2 Bn ,假设 Ap会输给它的对手,而 Aq(p q)则输给了它的对手,那么将再二者的对手对调,结果仍不会次于调换前。于是,调换后见下图:A1A2.An-1AnB1B2.Bn-1BnA1A2.An-1AnB1 红线代表输的场次B2 为了看得更清晰, . 红线间若有交叉可通过. 调整将其变为一组平行Bn-1 线,不会影响结果Bn图 1-1 最优策略 图 1-2 改进后既然改进前是最优策略,那么改进后它必然也是最优策略。而改进后的图与田忌赛马有着异曲同工之处,那么顺着它的思路,我们似乎又有了另一个改进策略。在图 1-2 中除去所有输掉比赛的A以及它们的对手,剩下的图中所有的“交叉”都可以去掉。即假设 Ap的对手为 Br,Aq的对手为 Bs,而 pq,那么我们可以对调双方的对手,显然结果不会变差。于是,改进后的图变成了如下: A1A2.An
4、-1AnB1B2.Bn-1Bn图 1-3 最终策略显然,这个最终策略仍然是最优策略。于是,我们只需要枚举输掉的比赛场次,逐个判断是否满足上述策略的要求,就能够找到最优解。第二部分 动态规划(Dynamic Programming)动态规划是解决最优化问题的重要手段,它的优美精巧的结构特点深得程序设计员的喜爱,一段短小精悍的代码就能解决长长的回溯法所不能解决的问题,这是动态规划最吸引人的特点。动态规划是通过合并子问题的解来解决最优化问题的。许多时候,一个问题的若干子问题往往不是独立存在的,而和其它问题的子问题相同,于是对这些公共子问题的采取先计算求解并存值得方式,以便为将来反复调用时直接提供值,就成了动态规划的主体思想。可以看到,实现动态规划需要满足如下条件:1) 最优子结构性质,也就是说问题最优解与子问题的最优解有关。2) 无后效性,就是说问题的解只与已求得的子问题的解有关,与尚未求得的问题的解无关联。可以看到,这就需要问题的求解具有明显的层次性。因此,在求解此类问题时,我们需要将其划分成若干个层次,并找到层与层之间的关联,即“状态转移方程”。随后自底向上逐层求解。动态规划的一般形如:
《ACM+DP+算法++大集合》由会员飞***分享,可在线阅读,更多相关《ACM+DP+算法++大集合》请在金锄头文库上搜索。
人教版一年级下册数学第二单元20以内的退位减法测试卷精品【考试直接用】
人教版一年级下册数学第二单元20以内的退位减法测试卷(实用)word版
人教版一年级下册数学第二单元20以内的退位减法测试卷及答案(夺冠)
人教版一年级下册数学第二单元20以内的退位减法测试卷(典型题)
人教版一年级下册数学第二单元20以内的退位减法测试卷精品(a卷)
人教版一年级下册数学第二单元20以内的退位减法测试卷及答案【精品】
部编版二年级上册道德与法治期中测试卷 (考试直接用)
部编版二年级上册道德与法治期中测试卷 带答案(培优)
部编版二年级上册道德与法治期中测试卷 含答案(精练)
部编版二年级上册道德与法治期中测试卷 及答案【各地真题】
部编版二年级上册道德与法治期中测试卷 及完整答案【名校卷 】
部编版二年级上册道德与法治期中测试卷 【考点精练】
部编版三年级上册道德与法治期末测试卷 (重点)
部编版三年级上册道德与法治期末测试卷 (模拟题)word版
部编版三年级上册道德与法治期末测试卷 附答案(预热题)
部编版三年级上册道德与法治期末测试卷 附参考答案(b卷 )
部编版三年级上册道德与法治期末测试卷 答案下载
部编版三年级上册道德与法治期末测试卷 含答案【夺分金卷 】
部编版三年级上册道德与法治期末测试卷 含完整答案【网校专用】
部编版三年级上册道德与法治期末测试卷 及答案(最新)
2024-04-28 28页
2024-04-28 41页
2024-04-28 41页
2024-04-28 12页
2024-02-23 134页
2024-02-20 32页
2024-02-20 18页
2024-02-20 36页
2024-02-20 1页
2024-02-20 26页