- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计基础12_1_贪心法分析
12.1.3贪心法解题的一般步骤 上面三个任务所用的算法由一个共同点,就是在求最优解的过程中,每一步都采用一种局部最优的策略,把问题范围和规模逐渐缩小,最后把每一步的结果合并起来得到一个全局的最优解。 在例12.1中,每次选取删除的数字都是第一个递减区间的首位数字,也就是当前的删除可以保证在当前删除位数要求下的最优解,同时使剩下的数字串逐渐接近最后要求的目标最优解。 12.1.3贪心法解题的一般步骤 在例12.2中,每一次选取的时间都是满足条件的最早结束事件,向问题的解答前进一步,同时给剩余事件的选取留下了最多的不重叠时间;最后得到的事件序列,就是每一次选取的事件集合。 在例12.3中,每一步都将覆盖最大间隔的线段断开,使得线段总长度减少,同时使线段数目更接近最大数目限制;最后得到的最小线段总长度,其实是计算过程唯一确定的一种线段覆盖方式得到的。 归纳以上三个任务的求解过程,可以总结出运用贪心法解题的一般步骤是: 从问题的某个初始解出发; 采用循环语句,当可以向求解目标前进一步时,根据局部最优策略,得到一个部分解,缩小问题的范围或规模; 将所有部分解综合起来,得到问题的最终解。 第12章 贪心法与动态规划 12.1 贪 心 法12.2 动 态 规 划 问题:假设有面值为5元、2元、1元、5角、2角、1角的货币,需要找给顾客4元6角现金,为使付出的货币的数量最少,应如何找零? 找零问题 解决方法: 首先选出1张面值不超过4元6角的最大面值的货币,即2元; 再选出1张面值不超过2元6角的最大面值的货币,即2元; 再选出1张面值不超过6角的最大面值的货币,即5角; 再选出1张面值不超过1角的最大面值的货币,即1角; 总共付出4张货币。 找零问题 这就是贪心选择! 找零问题中的贪心 在付款问题每一步的贪心选择中,在不超过应付款金额的条件下,只选择面值最大的货币,而不去考虑在后面看来这种选择是否合理,而且它还不会改变决定:一旦选出了一张货币,就永远选定。 付款问题的贪心选择策略是尽可能使付出的货币最快地满足支付要求,其目的是使付出的货币张数最慢地增加,这正体现了贪心法的设计思想。 贪心法的思想 在实际生活中,经常会遇到类似求一个问题的可行解和最优解的要求,这就是所谓的最优化问题。每个最优化问题都包含一组限制条件和一个优化函数,符合限制条件的问题求解方案称为可行解,使优化函数取得最佳值的可行解称为最优解。 贪心法的思想 贪心法是求解这类问题最优解的一种常用算法: 它从问题的某个初始解出发,采用逐步构造最优解的方法向给定的目标推进。 在每个局部阶段,都做出一个看上去最优的决策(即某种意义下的、或某个标准下的局部最优解),并期望通过每次所做的的局部最优选择产生出一个全局最优解。 做出贪心决策的依据称为贪心准则(策略),决策一旦做出,就不可再更改。 贪心与递推的不同之处:贪心推进的每一步不是依据某一固定的递推式,而是做一个当时看似最佳的贪心选择(操作),不断地将问题实例归纳为更小的相似问题。贪心准则是正确解决贪心问题的关键。 贪心法的基本思路: (1)建立数学模型来描述问题; (2)把求解的问题分成若干个子问题; (3)对每一子问题求解,得到子问题的局部最优解。 (4)把子问题的解局部最优解合成原来解问题的一个解。 【例12.1】删数问题 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。 比如:n=178543,s=4 则输出 13 ,表示正整数178543,删除4位数字后得到的最小值是 13。 (1)由于给定的正整数有效位数是100位,用一般的整数类型(包括长整数)无法表示,可以考虑用字符串来存储正整数。 (2)如何决定哪s位数字被删除呢?被删除的是否是最大的s个数字呢?为了尽可能逼近目标,采用贪心法来解决问题, 选取的贪心策略为: ①把对s个数字的删除,看成是一个逐步实现的过程,每一步删除一个数字,用s步完成对s个数字的删除。 ②每一步总是选择一个使剩下的数最小的数字完成删除,也就是按照从高位到低位的顺序进行搜索,如果各位数字式递增的,则删除最后一位数字;否则,删除第一个递减区间的首位数字。这样选择一位数字并删除后,便得到一个新的数字串。 ③以后每一步回到上一步完成删除之后的数字串的串首,按照上述规则再删除下一个数字。执行s次后,便删除了s位数字,剩余的数字串便是问题的解。 例如:n=178543,s=4时的删除过程为: 第一步:n=178543,第一个递减区间为8543,删除其首位数字8; 第二步:n=17543,第一个递减区间为7543,删除其首位数字7; 第三步:n=154
您可能关注的文档
- 移动通信习题分析.doc
- 移动互联网技术及其应用分析.ppt
- 移动通信公司12月活动策划方案分析.ppt
- 积极准备成就高三分析.ppt
- 移项第二课时分析.ppt
- 移动高配置小区占比专题优化总结报告分析.doc
- 稀土冶金资料分析.ppt
- 稀土发光材料ppt分析.ppt
- 稀土永磁电机发展现状与市场预测分析.doc
- 程序员保值的4个秘密分析.docx
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- GB50150-2016 电气装置安装工程 电气设备交接试验标准 (2).pdf VIP
- GBT51121-2015 风力发电工程施工与验收规范.doc VIP
- 抗凝剂皮下注射技术临床实践指南(2024版)解读 2PPT课件.pptx VIP
- 腰椎解剖应用.ppt VIP
- 人教版高一数学上册《第一单元集合》同步练习题及答案.pdf VIP
- 紫外可见分光光度计招标文件.doc VIP
- 《Android-Jetpack开发-原理解析与应用实战》读书笔记思维导图.pptx VIP
- DB3706_T 74-2021 西洋梨生产技术规程.pdf
- 【精选】ICAO附件14.pdf
- JEP122G 半导体器件失效机理和模型.pdf VIP
文档评论(0)