- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本次课程的主要内容 贪心算法 1、什么是贪心算法: 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。 2、基本思路 (1)建立数学模型来描述问题。 (2)把求解的问题分成若干个子问题。 (3)对每一子问题求解,得到子问题的局部最优解。 (4)把子问题的解局部最优解合成原来解问题的一个解。 3、算法实现。 (1)从问题的某个初始解出发。 (2)采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。 (3)将所有部分解综合起来,得到问题的最终解。 贪心算法-例题分析 贪心算法-例题分析 贪心算法-例题1代码 贪心算法-例题分析 贪心算法-活动安排例题分析 贪心算法-例题分析例题3:克鲁斯卡尔算法-最小生成树 人工模拟 算法难点 从刚才的演示过程,可知算法实现有两个难点: (1)边的选择要求从小到大选择,则开始显然要对边进行升序排序。 (2)选择的边是否需要,则从判断该边加入后是否构成环入手。 难点解决(一) (1)对边升序排序 方法可根据以前《数据结构》中选择合适的排序。 在此采用链式结构,通过插入排序完成。 每一结点存放一条边的左右端点序号、权值及后继结点指针。 难点解决(二) (2)边的加入是否构成环 一开始假定各顶点分别为一组,其组号为端点序号。 选择某边后,看其两个端点是否在同一组中,即所在组号是否相同,如果是,表示构成了环,则舍去。 如果两个端点所在的组不同,则表示可以加入,则将该边两端的组合并成同一组。 贪心算法-最小生成树代码 贪心算法 例题1、[背包问题] 有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 物品 :A?? B C D E F G?重量 :35?? 30?? 60?? 50? ?40?? 10?? 25??价值?:10?? 40?? 30 50?? 35? ?40?? 30? 分析:目标函数: ∑pi最大约束条件是装入的物品总重量不超过背包容量:∑wi=M( M=150) (1)根据贪心的策略,每次挑选价值最大的物品装入背包,得到的结果是否最优? (2)每次挑选所占空间最小的物品装入是否能得到最优解? (3)每次选取单位容量价值最大的物品,成为解本题的策略。 根据以上的分析我们就可以得到解决本题的策略。即单位容量最大的物品。 例题1算法实现: 在算法的实现上应该不是很难,只要我们算出每个物品在单位容量上的价值就行,然后再使用一个排序的算法,将其从大到小排序。然后再根据背包当前剩下的容量来选取本次物品的重量。如果背包的容量比当前武平的容量要大,那么就将当前物品全部装进去。如果不够,那么就将当前物品切割装进去。然后就可以跳出循环。这里我们在存储数据时为了方便起见可以使用一个结构体的方式来存储。结构体里面保存物品的重量,价值,以及单位质量的价值。然后使用sort函数来排序,排序时我们只要重写sort函数里面的比较函数即可。Sort(p,p+n,Up)。P使我们保存物品的结构体。N是物品的总数。Up使我们自定义的排序方法。 例题2:活动安排 题目: 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si fi 。要求设计程序,使得安排的活动最多。 分析: 活动安排问题要求安排一系列争用某一公共资源的活动。用贪心算法可提供一个简单、漂亮的方法,使尽可能多的活动能兼容的使用公共资源。设有n个活动的集合{0,1,2,…,n-1},其中每个活动都要求使用同一资源,如会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间starti和一个结束时间endi,且startiendi。如选择了活动i,则它在半开时间区间[starti,endi)内占用资源。若区间[starti,endi)与区间[startj,endj)不相交,称活动i与活动j是相容的。也就是说,当startj≥endi或starti≥endj时,活动i与活动j相容。活动安排问题就是在所给的活动集合中选出
您可能关注的文档
- BSD技术特性与应用.doc
- Buchwald反应最新进展.ppt
- C1 ICEM引擎块模型.ppt
- Car,admas,仿真.ppt
- CATIA在逆向工程应用高.ppt
- CDMA通信系统与研究与仿真.doc
- CDMA无线优化程序.ppt
- CH 6 金融投资决策.pdf
- ch.02超声波检测仪器、探头及试块.ppt
- ch2_电阻应变式传感器及其应用.ppt
- 2025深圳信息职业技术学院《形势与政策》期末考试题库及一套答案详解.docx
- 2025年兰州资源环境职业技术大学《形势与政策》期末考试题库试题含答案详解(模拟题).docx
- 2025昌吉职业技术学院《形势与政策》期末考试考试历年机考真题集含完整答案详解(网校专用).docx
- 2025应天职业技术学院《形势与政策》期末考试全真模拟模拟题附答案详解(达标题).docx
- 2025年随州职业技术学院《形势与政策》期末考试通关题库含完整答案详解【精选题】.docx
- 2025年贵州机电职业技术学院《形势与政策》期末考试考前冲刺测试卷及答案详解(网校专用).docx
- 2025年宜春幼儿师范高等专科学校《形势与政策》期末考试考前冲刺测试卷带答案详解(培优B卷).docx
- 2025年漯河职业技术学院《形势与政策》期末考试通关题库及参考答案详解【综合题】.docx
- 2025年四川现代职业学院《形势与政策》期末考试模拟题库附完整答案详解【名师系列】.docx
- 2025年江阴职业技术学院《形势与政策》期末考试模拟试题附参考答案详解(名师推荐).docx
最近下载
- 2017年全国二卷高考语文试题及答案.docx VIP
- 2025人教版初中八年级上册英语单词表汇总(含音标) .pdf VIP
- 2025年三支一扶考试时事政治试卷带解析附必背答案.docx VIP
- 2023广州市花都区事业单位考试历年真题.docx VIP
- 2023全国职业院校技能大赛(中职组)服装设计与工艺赛项备考试题库-上(单选题).docx VIP
- 《×××典当有限公司章程(范本)》.docx VIP
- 自考公安管理学笔记串讲预测-预测小抄.doc VIP
- 《面积单位间的进率》(教学设计)2023-2024学年三年级下册数学人教版.docx VIP
- 2016年高考全国2卷语文试题及答案.pdf VIP
- 强制性条文执行计划(完整版) .doc VIP
文档评论(0)