电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

简单的贪心算法

17页
  • 卖家[上传人]:101****457
  • 文档编号:89304140
  • 上传时间:2019-05-23
  • 文档格式:PPT
  • 文档大小:570KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、2019/5/23,1,贪心算法简谈与应用举例,组员: 学院:通信与信息工程,2019/5/23,2,简谈: 算法思想 算法过程 算法分析 应用举例: 常见应用,2019/5/23,3,算法思想,找钱的方法: 25+25+10+5+1+1 我们有种直觉的倾向: 在找零钱时,直觉告诉我们使用面值大的硬币,剩余的金额就越少,这样找的硬币数目最少。,假设提供了数目不限的面值为2 5美分、1 0美分、5美分、及1美分的硬币。 假设一个小孩买了33美分的糖果(需要找给小孩67美分)。,引例找零钱,2019/5/23,4,算法思想,在现实生活中,我们经常为下意识的做贪心的选择,例如在购买商品时候总是寻求物美价廉的物品,在质量相同情况下,价格低的首选。 贪心抱歉我找不到更好的词去形容是个好东西。贪心是对的,贪心是奏效的。 电影华尔街,2019/5/23,5,算法思想,将问题的求解过程看作是一系列选择,每次选择一个输入,每次选择都是当前状态下的最好选择(局部最优解)。每作一次选择后,所求问题会简化为一个规模更小的子问题。从而通过每一步的最优解逐步达到整体的最优解。,2019/5/23,6,算法过程,顾

      2、名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。,找的硬币总数最少使剩余金额最少,找硬币的时候:,【标准转化】,贪心猜想(贪心策略),原,现,2019/5/23,7,算法过程,贪心算法步骤,从问题的某一初始解出发; while 能朝给定总目标前进一步 do 求出可行解的一个解元素; 由所有解元素组合成问题的一个可行解;,真正意义要求解原问题,将原问题变成更小子问题的步骤,理解,2019/5/23,8,算法过程,【贪心算法一般步骤】,1、设计数据找规律 2、进行贪心猜想 3、正确性证明(严格证明和一般证明) 严格证明:数学归纳和反证法 一般证明:列举反例 4、程序实现,2019/5/23,9,算法分析,【适用问题】 具备贪心选择和最优子结构性质的最优化问题 【常见应用】会议安排问题,哈夫曼编码问题, 等等 【算法优点】求解速度快,时间复杂性有较低的阶. 【算法缺点】需证明是最优解.,整体的最优解可通过一系列局部最优解达到. 每次的选择可以依赖以前作出的选择, 但不能依赖于后面的选择,问题的整体最优解中包含着它

      3、子问题的最优解,2019/5/23,10,常见应用,1、会议安排问题,【问题陈述】设有n个会议E=1,2,n要使用同一资源,同一时间内只允许一个会议使用该资源. 设会议i的起止时间区间si, fi) ,如果选择了会议i,则它在时间区间si, fi)内占用该资源;若si, fi)与sj, fj)不相交 , 则称会议 i 与 j 是 相容 的 . 求解目标是在所给的会议集合中选出最大相容会议子集. 【算法思路】将n个会议按结束时间非减序排列,依次考虑会议i, 若i与已选择的会议相容,则添加此会议到相容会议子集. 【例】设待安排的11个会议起止时间按结束时间的非减序排列,2019/5/23,11,常见应用,会议安排问题贪心算法: void GreedySelector(int n, Type s, Type f, bool A) A1=true; int j=1; for (int i=2;i=fj) Ai=true; j=i; else Ai=false; ,2019/5/23,12,2019/5/23,12,常见应用,2、哈夫曼编码,【问题陈述】哈夫曼编码是广泛地用于数据文件压缩的十分有

      4、效的编码方法。其压缩率通常在20%90%之间。哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。 【算法思路】 (1)以n个字母为结点构成n棵仅含一个点的二叉树集合,字母的频率即为结点的权。 (2)每次从二叉树集合中找出两个权最小者合并为一棵二叉树: 增加一个根结点将这两棵树作为左右子树。新树的权为两棵子树的权之和。 (3)反复进行步骤(2)直到只剩一棵树为止。,a: 0000 b :11 c: 1000 d: 1001 e: 101 f :01 g: 0001 h:001,有八种字符:a b c d e f g h ,其在通信联络中出现的概率分别为:0.05 0.29 0.07 0.08 0.14 0.23 0.03 0.11 ,试设计哈夫曼编码。 设权 w = ( 5 , 29 , 7 ,8 , 14 , 23 ,3 , 11) n = 8 构造过程:,5,29,7,8,14,23,3,11,5,3,8,7,8,15,11,19,14,29,23,42,29,58,100,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2019/5/23

      5、,14,谈谈自己的想法,2019/5/23,15,选择需慎重 贪心算法在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解。,eg:数字三角形问题:有一个数字三角形(如右图)。现有一只蚂蚁从顶层开始向下走,每走下一级时,可向左下方向或右下方向走。求走到底层后它所经 过的数的最大值。 解:如果用贪心法,每次向最大的方向 走,得到结果为1+6+8+2+3=20。可是明明还有另一条路,1+3+6+6+7=23。 问题出在哪?每次的选择对后面的步骤会有影响!第三级选了8,就选不到第四、五级较大的数了。,1 6 3 8 2 6 2 1 6 5 3 2 4 7 6,2019/5/23,16,综述,贪心算法是一种分级处理方法,它得到某种度量意义下一个问题的最优解,所做的每一次选择都是当前状态下的贪心选择,通过一系列的选择来得到最终解。这种策略是一种很简洁的方法,适用于许多问题,但并不能依赖于它,因为它还有一下不足: (1)不能保证求得的最后解是最佳的,由于贪心策略总 是从局部看来是最优的选择,因此从整体上考虑并不一定是最优解; (2)贪心算法只能用来求某些最大或最小解的问题; (3)贪心算法只能确定某些问题的可行性范围。 因此,贪心算法具有局限性,并不是总能得到最优解。,2019/5/23,17,欢迎老师和同学们批评指正! 谢谢观看,

      《简单的贪心算法》由会员101****457分享,可在线阅读,更多相关《简单的贪心算法》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.