贪心算法课件1.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《贪心算法课件1.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪心 算法 课件
- 资源描述:
-
1、贪心方法的基本思想 贪心是一种解题策略,也是一种解题思想 使用贪心方法需要注意局部最优与全局最优的关系,选择当前状态的局部最优并不一定能推导出问题的全局最优 利用贪心策略解题,需要解决两个问题:该题是否适合于用贪心策略求解 如何选择贪心标准,以得到问题的最优解 【引例引例】在一个NM的方格阵中,每一格子赋予一个数(即为权),规定每次移动时只能向上或向右。现试找出一条路径,使其从左下角至右上角所经过的权之和最大。我们以23的矩阵为例:若按贪心策略贪心策略求解,所得路径为:1346;若按动态规划动态规划求解,所得路径为:12106。贪心法的特点贪心法的特点 1.贪心选择性质:贪心选择性质:算法中每
2、一步选择都是当前看似最佳的选择,这种选择依赖于已做出的选择,但不依赖于未做的选择。2.最优子结构性质:最优子结构性质:算法中每一次都取得了最优解(即局部最优解),要保证最后的结果最优,则必须满足全局最优解包含局部最优解。但并不是所有具有最优子结构的问题都可以用贪心策略求解。因为贪心往往是盲目的,需要使用更理性的方法动态规划(例如“0-1背包问题”与“部分背包问题”)【问题问题1】部分背包问题部分背包问题 给定一个最大载重量为M的卡车和N种食品,有食盐,白糖,大米等。已知第i种食品的最多拥有Wi公斤,其商品价值为Vi元/公斤,编程确定一个装货方案,使得装入卡车中的所有物品总价值最大。【分析分析】
3、因为每一个物品都可以分割成单位块,单位块的利益越大,显然总收益越大,所以它局部最优满足全局最优,可以用贪心法解答。方法如下:先将单位块收益按从大到小进行排列,然后用循环从单位块收益最大的取起,直到不能取为止便得到了最优解。【问题问题2】0/1背包问题背包问题 给定一个最大载重量为M的卡车和N种动物。已知第i种动物的重量为Wi,其最大价值为Vi,设定M,Wi,Vi均为整数,编程确定一个装货方案,使得装入卡车中的所有动物总价值最大。【分析分析】按贪心法:每次选价格最大的装载。很明显有反例:设N=3,卡车最大载重量是100,三种动物A、B、C的重量分别是40,50,70,其对应的总价值分别是80、1
4、00、150。贪心策略与其他算法的区贪心策略与其他算法的区别别 1.贪心与递推:贪心与递推:与递推不同的是,贪心法中推进的每一步不是依据某一固定的递推式,而是当前看似最佳的贪心决策,不断的将问题归纳为更加小的相似的子问题。所以归纳、分析、选择正确合适的贪心策略,是正确解决贪心问题的关键。2.贪心与动态规划:贪心与动态规划:与动态规划不同的是,贪心是鼠目寸光;动态规划是统揽全局。几个简单的贪心例子几个简单的贪心例子 例题例题1:删数问题:删数问题 键盘输入一个高精度的正整数n(n从取3张牌放到(9 11 10 10)-从取1张牌放到(10 10 10 10)。【试题分析试题分析】我们要使移动次数
5、最少,就是要把浪费降至零。通过对具体情况的分析,可以看出在某相邻的两堆之间移动两次或两次以上,是一种浪费,因为我们可以把它们合并为一次或零次。【思路点拨思路点拨】如果你想到把每堆牌的张数减去平均张数,题目就变成移动正数,加到负数中,使大家都变成0,那就意味着成功了一半!从第i堆移动-m张牌到第i+1堆,等价于从第i+1堆移动m张牌到第i堆,步数是一样的。注意最左边的0和最右边的0不能算在内,如0,0,1,-3,4,0,-1,0,0 若题目中的纸牌排成一个环状,应如何处理呢?其中n=1000。有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。求使所
6、有人获得均等糖果的最小代价。【数据规模数据规模】对于30%的数据n=1000;对于100%的数据n=1000000 贪心的经典应用贪心的经典应用(一)、三个区间上的问题(一)、三个区间上的问题 1、选择不相交区间问题、选择不相交区间问题 2、区间选点问题、区间选点问题 3、区间覆盖问题、区间覆盖问题(二)、两个调度问题(二)、两个调度问题 1、流水作业调度问题、流水作业调度问题 2、带限期和罚款的单位时间任务调度、带限期和罚款的单位时间任务调度(三)(三)Huffman编码编码(四)最优合并问题最优合并问题 给定给定n个开区间个开区间(ai,bi),选择尽量多个区间,使,选择尽量多个区间,使得
展开阅读全文