贪心算法之初见ppt课件.ppt
《贪心算法之初见ppt课件.ppt》由会员分享,可在线阅读,更多相关《贪心算法之初见ppt课件.ppt(30页珍藏版)》请在三一办公上搜索。
1、贪心算法,武松打老虎,问题描述:曾经因打虎而闻名的武松在x年后接到了景阳冈动物园的求助信,信上说:最近我们动物园逃跑了几只老虎,请您把它们抓回来,thank you!武松接到信后立刻上了山。正当他到半山腰是,suddenly!跳出n只猛虎来。每只老虎都有一块虎牌,牌上写着的是每一只虎最大拥有的体力,当武松与老虎PK时,若老虎的体力先用完,那么老虎over,否则武松over。求武松在over之前最多能干掉几只老虎?(注:老虎是一只只上的)输入文件:第一行两个数字n(n50000),t0(武松的体力)。第二行n个数字,分别代表每只老虎的体力。所有变量都不超过long int范围。输出文件:一行,最
2、多能干掉的老虎数。样例输入:6 10 1 5 3 2 4 6样例输出:4,分析,题目所求:最多能干掉的老虎数目已知武松体力,每只老虎的体力,每干掉一只老虎,都会消耗相应体力。为了干掉更多的老虎,每次干掉体力最少的老虎,老虎体力:,排序后体力:,武松体力,10,第一轮PK:10-1=9,第二轮PK:9-2=7,第三轮PK:7-3=4,第四轮PK:4-4=0,贪心算法(贪心策略):每次都作出在当前看来是最好的选择,不断循环,直到获得问题的完整解。,老虎体力:,当前看来是最好的选择:,打死体力最少的老虎!,贪心算法(贪心策略):每次都作出在当前看来是最好的选择,不断循环,直到获得问题的完整解。,老虎
3、体力:,武松体力:,10,打死老虎数目:,0,贪心算法(贪心策略):每次都作出在当前看来是最好的选择,不断循环,直到获得问题的完整解。,老虎体力:,武松体力:,9,打死老虎数目:,1,贪心算法(贪心策略):每次都作出在当前看来是最好的选择,不断循环,直到获得问题的完整解。,老虎体力:,武松体力:,7,打死老虎数目:,2,贪心算法(贪心策略):每次都作出在当前看来是最好的选择,不断循环,直到获得问题的完整解。,老虎体力:,武松体力:,4,打死老虎数目:,3,贪心算法(贪心策略):每次都作出在当前看来是最好的选择,不断循环,直到获得问题的完整解。,老虎体力:,武松体力:,0,打死老虎数目:,4,武
4、松的体力已经不能打死任何一头老虎了,已得到问题的完整解。,贪心算法一定能得到最优解吗?,要满足以下条件:,1、最优子结构;2、贪心选择性质;,最优子结构性质(最优化原理),定义:当问题的最优解包括了其子问题的最优解时,称该问题具有最优子结构性质。,例如图2中,若路线I和J是A到C的最优路径,则根据最优化原理,路线J必是从B到C的最优路线。这可用反证法证明:假设有另一路径J是B到C的最优路径,则A到C的路线取I和J比I和J更优,矛盾。从而证明J必是B到C的最优路径。,(最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最
5、优策略。简而言之,一个最优化策略的子策略总是最优的。),接下来证明刚才的问题是否具有最优子结构性质,最优子结构性质(最优化原理),定义:当问题的最优解包括了其子问题的最优解时,称该问题具有最优子结构性质。,每打死一只老虎的体力值为ai,要使打死的老虎总数最多,就要使武松剩下的体力t0-ai能打死更多的老虎。即一个与武松体力t0相关的问题,可以转换为t0-ai体力相关的问题。体力为t0-ai的是体力为t0的子问题。体力是t0时的最优解,包括了体力为t0-ai的最优解。该问题具备最优子结构。,最优子结构性质(最优化原理),定义:当问题的最优解包括了其子问题的最优解时,称该问题具有最优子结构性质。,
6、当武松体力值为t0时,打死一只体力值为ai的老虎,当武松体力值为t0-ai 时,子问题,最优解A方案,最优解B方案,此时的最优解,此时的最优解,包含于,若B不包含于A,那么当武松的体力值为t0-ai时,其最优解必定不是B。矛盾。所以,B一定是A的子集。,举个栗子,老虎体力:,武松体力,10,最优解为:,打死体力为:1,2,3,4的老虎,当打死一只体力为1的老虎后。,老虎体力:,武松体力,9,最优解为:,打死体力为:2,3,4的老虎,子集,贪心选择性质,定义:所求问题的整体最优解可以通过一些列局部最优的选择,即贪心选择来达到。,贪心选择:每次选择剩下的老虎中体力最少的。武松剩下的体力值越大,能打
7、死的老虎就越多。使用贪心选择(每次选择剩下的老虎中体力最少的),能使武松剩下的体力最大。这种贪心选择,能保证全局最优,即能保证打死最多数量的老虎。因此具备贪心选择性质。,贪心选择性质:所求问题的整体最优解可以通过一些列局部最优的选择,即贪心选择来达到。,确定贪心选择方法,非常重要!,武松打老虎的贪心选择为:,每次选择剩下的老虎中体力最少的。,当前看来是最好的选择,最大数,题目描述:设有n个正整数(n20),将它们联接成一排,组成一个最大的多位整数。输入描述:第一行一个正整数n。第二行n个正整数,空格隔开。输出描述:连接成的多位数样例输入:Sample 1:313 312 343样例输出:Sam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪心 算法 初见 ppt 课件

链接地址:https://www.31ppt.com/p-1365460.html