普及讲座6基于贪心的算法和应用举例C版课件.pptx
《普及讲座6基于贪心的算法和应用举例C版课件.pptx》由会员分享,可在线阅读,更多相关《普及讲座6基于贪心的算法和应用举例C版课件.pptx(34页珍藏版)》请在三一办公上搜索。
1、江苏省大丰高级中学 陈鹏Peng Chen JiangSu DaFeng Senior High School,基于贪心的算法和应用举例GreedySelector Algorithm & Application,一贪心策略二应用举例三小结,2022年12月22日星期四,2,一贪心策略,引例1删数问题 键盘输入一个高精度的正整数n(n=240),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。【算法分析】 每一步总是选择一个使剩下的数最小的数字删去,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否
2、则删除第一个递减区间的首字符。,2022年12月22日星期四,3,一贪心策略,定义贪心 贪心算法是从问题的某一个初始状态出发,通过逐步构造最优解的方法向给定的目标前进,并期望通过这种方法产生出一个全局最优解的方法。 小球表示当前状态; 红箭头表示当前最优决策; 蓝箭头表示其他决策。,2022年12月22日星期四,4,一贪心策略,贪心标准选择:所谓贪心标准选择就是应用当前“最好”的标准作为统一标准,将原问题变为一个相似的但规模更小的子问题,而后的每一步都是当前看似最佳的选择。 最优子结构:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。,2022年12月22日星期四,5,一
3、贪心策略,引例2金银岛 某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同,分别为n1,n2,ns,同时每个种类的金属总的价值也不同,分别为v1,v2,vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割的,并且金属的价值和其重量成正比。,2022年12月22日星期四,6,一贪心策略,【算法分析】 有以下几种策略可供选择: (1)每次挑选价值最大的物品装入背包,得到的结果是否最优? (2)每次
4、挑选所占重量最小的物品装入是否能得到最优解? (3)每次选取单位重量价值最大的物品。,2022年12月22日星期四,7,一贪心策略,解题一般步骤: 1、设计数据找规律; 2、进行贪心猜想; 3、正确性证明(严格证明和一般证明) 一般证明:列举反例; 严格证明:数学归纳和反证法; 4、程序实现。,2022年12月22日星期四,8,二应用举例,例1三国游戏【问题描述】 小涵很喜欢一个叫做三国的游戏。在游戏中,小涵和计算机各执一方,组建各自的军队进行对战。游戏中共有N位武将(N为偶数且不小于4),任意两个武将之间有一个“默契值”,表示若此两位武将作为一对组合作战时,该组合的威力有多大。游戏开始前,所
5、有武将都是自由的(称为自由武将,一旦某个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的自由武将不属于任何一方。游戏开始,小涵和计算机要从自由武将中挑选武将组成自己的军队,规则如下:小涵先从自由武将中选出一个加入自己的军队,然后计算机也从自由武将中选出一个加入计算机方的军队。,2022年12月22日星期四,9,二应用举例,接下来一直按照“小涵计算机小涵”的顺序选择武将,直到所有的武将被双方均分完。然后,程序自动从双方军队中各挑出一对默契值最高的武将组合代表自己的军队进行二对二比武,拥有更高默契值的一对武将组合获胜,表示两军交战,拥有获胜武将组合的一方获胜。 已知计
6、算机一方选择武将的原则是尽量破坏对手下一步将形成的最强组合,它采取的具体策略如下:任何时刻,轮到计算机挑选时,它会尝试将对手军队中的每个武将与当前每个自由武将进行一一配对,找出所有配对中默契值最高的那对武将组合,并将该组合中的自由武将选入自己的军队。,2022年12月22日星期四,10,二应用举例,下面举例说明计算机的选将策略,例如,游戏中一共有6个武将,他们相互之间的默契值如下表所示 双方选将过程如下所示:,2022年12月22日星期四,11,武将相互之间的默契值:,双方选将过程入图所示:,二应用举例,小涵想知道,如果计算机在一局游戏中始终坚持上面这个策略,那么自己有没有可能必胜?如果有,在
7、所有可能的胜利结局中,自己那对用于比武的武将组合的默契值最大是多少? 假设整个游戏过程中,对战双方任何时候均能看到自由武将队中的武将和对方军队的武将。为了简化问题,保证对于不同的武将组合,其默契值均不相同。,2022年12月22日星期四,12,二应用举例,【算法分析】 由于计算机的贪心策略,每一个武将不可能与和他默契度最大的武将合作,但要与和他默契度次大的武将合作,变得非常容易,小涵只需要经过两次挑选。 只要小涵选出默契度次大值中最大的那对武将,那么他将稳操胜券。,2022年12月22日星期四,13,二应用举例,2022年12月22日星期四,14,33,32,二应用举例,2022年12月22日
8、星期四,15,1,8,7,6,5,4,3,2,二应用举例,2022年12月22日星期四,16,1,8,7,6,5,4,3,2,二应用举例,【算法分析】 将所有边按从大到小排序,检查每条边的两个顶点是否已出现过,有三种情况: (1)两个顶点都没有出现过,说明两个武将都是自由的,不能同时取到,放弃该边; (2)有一个顶点出现过,说明这个武将前面可以被小涵先取到,现在可以取另一个顶点,该边即为最大值; (3)两个顶点都出现过,说明这两个武将前面都可以被小涵分别先取到,该边即为最大值。,2022年12月22日星期四,17,二应用举例,【参考程序片断】const int N=505;inline int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 普及 讲座 基于 贪心 算法 应用 举例 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1870364.html