版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能信息处理-贪心算法,贪心算法的定义 贪心算法的基本思想 贪心算法的实现思路 贪心算法的基本要素 贪心算法的特点 贪心算法存在的问题,贪心算法 (又称贪婪算法)可以简单描述为:对一组数据进行排序,找出最小值,进行处理,再找出最小值,再处理,也就是说贪心算法是一种依据某种贪心标准,从问题的初始状态出发,在每一步选择中都直接去求每一步的最优解,最终通过若干次的贪心选择得出整个问题的最优解的算法 。 贪心算法是一种能够得到某种度量意义下的最优解的分级处理方法,通过一系列的选择来得到一个问题的解,而它所做的每一次选择都是当前状态下某种意义的最好或最优的选择,即贪心选择,从而得到结果是最好或最优的算法
2、。,贪心的基本思想 用局部解构造全局解,即从问题的某一个初始解逐步逼近给定的目标,以尽可能快地求得更好的解。当某个算法中的某一步不能再继续前进时,算法停止。贪心算法思想的本质就是分治,或者说:分治是贪心的基础。每次都形成局部最优解,换一种方法说,就是每次都处理出一个最好的方案。 利用贪心策略解题,需要解决两个问题: (1)该题是否适合于用贪心策略求解; (2)如何选择贪心标准,以得到问题的最优/较优解。,贪心算法的实现思路,应用同一规则F,将原问题变为一个相似的、但规模更小的子问题; 从问题的某一初始解出发: while 能朝给定总目标前进一步 Do 求出可行解的一个解元素; 由所有解元素组合
3、成问题的一个可行解。,贪心算法的基本要素,贪心选择性质 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所做的贪心选择最终导致问题的整体最优解。首先考察问题的一个整体最优解,并证明可修改这个最优解,使其以贪心选择开始。做了贪心选择后,原问题简化为规模更小的类似子问题。然后,用数学归纳法证明,通过每一步做贪心选择,最终可得到问题的整体最优解。其中,证明贪心选择后的问题简化为规模更小的类似子问题的关键在于利用该问题的最优子结构性质。(先做选择,再解问题的自顶向下的方式),最优子结构性质,当一个问题
4、的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。运用贪心策略在每一次转化时都取得了最优解。问题的最优子结构性质是该问题可用贪心算法或动态规划算法求解的关键特征。贪心算法的每一次操作都对结果产生直接影响,而动态规划则不是。贪心算法对每个子问题的解决方案都做出选择,不能回退;动态规划则会根据以前的选择结果对当前进行选择,有回退功能。动态规划主要运用于二维或三维问题,而贪心一般是一维问题。,在动态规划算法中,每步所做的选择往往依赖于相关子问题的解。因而只有在解出相关子问题后,才能做出选择。而在贪心算法中,仅在当前状态下做出最好选择,即局部最优选择。然后再去解做出这个选择后产生的相应的子问
5、题。贪心算法所做的贪心选择可以依赖于以往所做过的选择,但决不依赖于将来所做的选择,也不依赖于子问题的解。正是由于这种差别,动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式做出相继的贪心选择,每做一次贪心选择就将所求问题简化为规模更小的子问题。,贪心算法的特点 贪心算法最大的特点就是快,但同时存在两大难点: (1)如何贪心 具有应当采用贪心算法的问题,当“贪心序列”中的每项互异且当问题没有重叠性时,看起来总能通过贪心算法取得(近似)最优解的。当一个问题具有多个最优解时,贪心算法并不能求出所有最优解。一般单纯的贪心算法是顺序处理问题的,而且每个结果是可
6、以在处理完一个数据后即时输出的。 (2)贪心的正确性 要证明贪心性质的正确性,才是贪心算法的真正挑战,因为并不是每次局部最优解都会与整体最优解之间有联系,往往靠贪心算法生成的解不是最优解。,贪心算法存在的问题,不能保证求得的最后解是最佳的。由于贪心策略总是采用从局部看来是最优的选择,因此并不从整体上加以考虑; 贪心算法只能用来求某些最大或最小解的问题; 贪心算法只能确定某些问题的可行性范围。,汽车加油问题,问题的提出 一辆汽车加满油后,可行使N千米。旅途中有若干个加油站。若要使沿途加油次数最少,设计一个有效算法,对于给定的N和k个加油站位置,指出应在哪些加油站停靠加油才能使加油次数最少。 编码
7、分析 把两加油站的距离放在数组中,a1.k表示从起始位置开始跑,经过k个加油站,ai表示第i-1个加油站到第i个加油站的距离。汽车在运行的过程中如果能跑到下一个站则不加油,否则要加油。,对于这个问题我们有以下几种情况:设加油次数为k,每个加油站间距离为ai;i=0,1,2,3n (1)始点到终点的距离小于N,则加油次数k=0; (2)始点到终点的距离大于N时: A 加油站间的距离相等,即i=aj=L=N,则加油次数最少k=n; B 加油站间的距离相等,即i=aj=LN,则不可能到达终点; C 加油站间的距离相等,即i=aj=LN,则加油次数k=n/N(n%N=0)或k=n/N+1(n%N!=0
8、); D 加油站间的距离不相等,即i!=aj,则加油次数k通过贪心算法求解。,贪心算法策略 由于汽车是由始向终点方向开的,我们最大的麻烦就是不知道在哪个加油站加油可以使我们既可以到达终点又可以使我们加油次数最少。(提出问题) 提出问题是解决的开始。为了着手解决遇到的困难,取得最优方案。我们可以假设不到万不得已我们不加油,即除非我们油箱里的油不足以开到下一个加油站,我们才加一次油。在局部找到一个最优的解。每加一次油我们可以看作是一个新的起点,用相同的递归方法进行下去。最终将各个阶段的最优解合并为原问题的解得到我们原问题的求解。,正确性证明,该题设在加满油后可行驶的N千米这段路程上任取两个加油站、
9、,且距离始点比距离始点近,则若在加油不能到达终点那么在加油一定不能到达终点,因为m+Nn+N,即在B点加油可行驶的路程比在A点加油可行驶的路程要长n-m千米,所以只要终点不在B、C之间且在C的右边的话,根据贪心选择,为使加油次数最少就会选择距离加满油得点远一些的加油站去加油,因此,加油次数最少满足贪心选择性质由于(b1,b2,bn)是这段路程加油次数最少的一个满足贪心选择性质的最优解,则易知若在第一个加油站加油时,b1=1,则(b2,b3,bn)是从a2到an这段路程上加油次数最少且这段路程上的加油站个数为(a2,a3,an)的最优解,即每次汽车中剩下的油不能在行驶到下一个加油站时我们才在这个加油站加一次油,每个过程从加油开始行驶到再次加油满足贪心且每一次加油后相当于与起点具有相同的条件,每个过程都是相同且独立,也就是说加油次数最少具有最优子结构性质。,总结,在对问题求解时,会选择当前看起来最有希望成功的边(任务)。一旦做出决定,它就不会再重新考虑,也不会关心后面会引发什么情况。也就是说,不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解。 贪心算法是一种能够得到某种度量意义下的最优解的分级处理方法,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江省衢州市单招职业倾向性考试模拟测试卷附答案
- 2026年广东省梅州市单招职业适应性测试题库及答案1套
- 2026年广西农业职业技术大学单招综合素质考试模拟测试卷及答案1套
- 2026年江苏省泰州市单招职业适应性测试模拟测试卷及答案1套
- 2026年政府保密知识测试题含答案
- 2025河南省医学科学院康复医学研究所第三批招聘工作人员13人参考题库附答案
- 2026中国旅游集团总部及所属企业岗位招聘9人笔试备考试题及答案解析
- 2026陕西师范大学西安市浐灞教育集团招聘笔试备考题库及答案解析
- 2025年湖南长沙市雨花区育新第二小学秋教师招聘笔试备考题库附答案
- 2025年四平市民族宗教事务服务中心等事业单位公开选调工作人员备考题库(17人)附答案
- 职高高二语文试卷及答案分析
- 2025届江苏省南通市高三下学期3月二模化学试题(含答案)
- 班主任安全管理分享会
- 消防救援预防职务犯罪
- 毕业论文答辩的技巧有哪些
- 酒店安全风险分级管控和隐患排查双重预防
- 2018年风电行业事故锦集
- 一体化泵站安装施工方案
- 《重点新材料首批次应用示范指导目录(2024年版)》
- 防水班组安全晨会(班前会)
- 全国职业院校技能大赛高职组(研学旅行赛项)备赛试题及答案
评论
0/150
提交评论