- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贪心方法 长沙市第一中学 曹利国 贪心方法的基本思想 贪心是一种解题策略,也是一种解题思想 使用贪心方法需要注意局部最优与全局最优的关系,选择当前状态的局部最优并不一定能推导出问题的全局最优 利用贪心策略解题,需要解决两个问题: 该题是否适合于用贪心策略求解 如何选择贪心标准,以得到问题的最优解 适用于贪心策略求解的问题的特点 适用于贪心策略求解的问题必须具有最优子结构的性质,但并不是所有具有最优子结构的问题都可以用贪心策略求解。因为贪心往往是盲目的,需要使用更理性的方法——动态规划(例如“0-1背包问题”与“部分背包问题”) 贪心方法的应用 例题1:节点网络。 现有一个N!个节点的网络,每个节点的编号都是编号(A1A2A3…AN)序列的一个置换。对于任意两个节点S和T,如果T的编号是由S编号的首位与除首位外的编号中任一位交换所得 ,则S和T之间有一条边,求从给定节点S走到节点(A1A2A3…AN)所需经过的最少边数。其中,n≤100。 贪心方法的应用 贪心方法的应用 【分析】从题意表面上看,本题是一个求最短路径的问题,但题设中的N≤100,也就是说图中最多有100!个节点,采用二维关系的图结构根本无法存贮这众多的状态。通过问题的本质分析,可以将问题转化为一个序列的最优转化问题。 贪心方法的应用 采用贪心策略: 每次让一个节点归位或为下一步工作做准备。 其具体步骤为: 若序列中第一个点为Ax (x≠1),则将第一个点和第x个点交换。这便完成了让一个点归位的工作; 若第一个是A1,则任找一个编号与位置不相符的点,并与之交换。这样下一步便可让交换到1号位置的点归位。 贪心方法的应用 贪心方法的应用 例题2:d-规则问题。 对任意给定的m(m∈N+)和n(n∈N+),满足m n,构造一初始集合:P={x|m≤x≤n,x∈N+}(m,n≤100) 现定义一种d规则如下:若存在a∈P,且存在K∈N+ ,K 1,使得K?a∈P,则修改P为:P=P-{y|y=s?a,s∈N+ } ,并称该d规则具有分值a。现要求编制一个程序,对输入的m,n值,构造相应的初始集合P,对P每应用一次d规则就累加其相应的分值,求能得到最大累加分值的d规则序列,输出每次使用d规则时的分值和集合p的变化过程。 贪心方法的应用 【分析】 初看这一问题,很容易想到用贪心策略来求解,即选择集合中最大的可以删除的数开始删起,直到不能再删除为止,而且通过一些简单的例子来验证,这一贪心标准似乎也是正确的,例如,当m=2,n=10时,集合P={2,3,…,10},运用上述“贪心标准”可以得到这一问题的正确的最优解d=5+4+3=12,即其d-规则过程如下: 1. a=5 P={2,3,4,6,7,8,9} d=5 2. a=4 P={2,3,6,7,9} d=5+4=9 3. a=3 p={2,7} d=5+4+3=12 贪心方法的应用 但是,如果再仔细地分析一个例子,当m=3,n=18时,如果还是使用上述“贪心标准”,则得到问题的d-规则总分为d=35,其d-规则序列为(9,8,7,6,5),而实际上可以得到最大d-规则总分为d=38,其对应的d-规则序列为(9,8,7,6,3,5)。 为什么会出现这样的反例呢?这是因为,问题中要使得d-规则总分d值越大,不光是要求每一个d分值越大越好,也要求取得的d分值越多越好。 因此,本题不能采用纯粹的贪心策略求解。 贪心方法的应用 【改进】 将原算法基础上进行改进。下面给出新的算法: 建立集合P={m..n} 从n div 2到m每数构造一个集合c[i],包含该数在P中的所有倍数(不包括i本身) 从n div 2起找到第一个元素个数最少但又不为空的集合c[i] 在d分值中加上i 把i及c[i]集合从P集中删除,更新所有构造集合的元素 检查所有构造集合,若还有非空集合,则继续3步骤,否则打印、结束 贪心方法的应用 下面看m=3, n=18时的推演过程: 初始P={2..18} 找到i=9, c[i]={18}, P={3..8,10..17} 找到i=8, c[i]={16}, P={3..7,10..15,17} 找到i=7, c[i]={14}, P={3..6,10..13,15,17} 找到i=6, c[i]={12}, P={3..5,10,11,13,15,17} 找到i=3, c[i]={15}, P={4,5,10,11,13,17} 找到i=5, c[i]={10}, P={4,11,13,17} 到此所有构造集合全部为空,d=9+8+7+6+3+5=38 贪心方法的应用 讨论: 能否证明此贪心策略是正确的? 能否找到其他更好的算法? 贪心方法的应用 例题3:射击竞赛 射击的目标是
您可能关注的文档
最近下载
- 蔬菜配送合同.docx VIP
- 2024年3月16日四川省绵阳市直遴选笔试真题及解析.docx VIP
- 2025年新人教版数学二年级上册全册课件.pptx
- 电气测量技术(完整课件).pdf VIP
- 中国国家标准 GB/T 22749-2022饮食加工设备 电动设备 切片机.pdf
- 2022变应性支气管肺曲霉病诊治专家共识修订版(完整版).docx VIP
- 高中班级管理制度以及实施细则.doc
- 《HBZ112-1986-材料疲劳试验统计分析方法》.pdf VIP
- 个人简历——【标准模板】.doc VIP
- 2013 kid box 3 yle单元测试答案键test answer key.pdf VIP
文档评论(0)