贪心法概述

一、贪心法概念
1、引例:
最小生成树单源最短路径
①当前已有的信息
②(某种意义上)局部最优
2、贪心法
贪心法在解决问题的策略上一般只根据当前已有的信息就做出选择,而且一旦做出了选择,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。
贪心算法对许多问题能产生整体最优解(Optimal Solution),如(单源)最短路经问题,最小生成树问题等。
贪心算法并不总能获得整体最优解,但通常能获得近似最优解(Near-Optimal Solution) 。如果一个问题的最优解只能用蛮力法穷举得到,则贪心法不失为寻找问题近似最优解的一个较好办法。
3、贪心法举例
在这里插入图片描述
在这里插入图片描述
二、贪心法的设计思想
1、贪心法的设计思想
使用贪心选择策略,把一个复杂的问题,分解为一系列较为简单的局部最优选择,每一步选择都是对当前解的一个扩展,直到获得问题的完整解。
2、贪心法求解的问题特征:
(1)最优子结构性质
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质,也称此问题满足最优性原理。
(2)贪心选择性质
所谓贪心选择性质是指问题的
全局最优解可以通过局部最优得到
,即存在一个最优解是以贪心选择开始的
3、贪心选择性质证明
(1)假设问题的一个整体最优解;
(2)证明可以将这个整体最优解修改成从贪心选择开始,此时,原问题就简化成为一个相似的、规模较小的子问题;
(3)用数学归纳法证明,通过每一步的贪心选择, 最终可得到问题的整体最优解。
4、与动态规划方法的比较
共同点:最优子结构性质。
不同点:
(1)求解思路
①动态规划:自底向上求解,求解过程依赖于子问题的解,在求出相关子问题的解后,再做出选择。
②贪心方法:自顶向下求解,求解过程不依赖于子问题的解,仅在当前状态下做出最好选择,即局部最优选择。
(2)适用问题
①动态规划:最优子结构、重叠子问题
②贪心方法:最优子结构、贪心选择性质
三、贪心法的求解过程
①建立数学模型来描述问题;
②把求解的问题分成若干个子问题;
③对每一子问题进行贪心选择求解,得到子问题的局部最优解;
④把子问题的解局部最优解合成原来解问题的一个解。
四、贪心法的求解过程
1、有关概念
(1)候选集合C:为了构造问题的解决方案,有一个候选集合C作为问题的可能解,即问题的最终解均取自于候选集合C。例如,在付款问题中,各种面值的货币构成候选集合。
(2)解集合S:随着贪心选择的进行,解集合S不断扩展,直到构成一个满足问题的完整解。例如,在付款问题中,已付出的货币构成解集合。
(3)解决函数solution: 检查解集合S是否构成问题的完整解。例如,在付款问题中,解决函数是已付出的货币金额恰好等于应付款。
(4)选择函数select:即贪心选择策略,这是贪心法的关键,它指出哪个候选对象最有希望构成问题的解,选择函数通常和目标函数有关。例如,在付款问题中,贪心选择策略就是在候
选集合中选择面值最大的货币。
(5)可行函数feasible:检查解集合中加入一个候选对象是否可行,即解集合扩展后是否满足约束条件。例如,在付款问题中,可行函数是每一步选择的货币和已付出的货币相加不超过应付款。
2、贪心法的一般过程
贪心算法的求解过程通常包括三个步骤:
分解 将原问题求解过程划分为连续的若干个决策阶段;
决策 在每一个阶段依据贪心策略进行贪心决策,得到局部的最优解,并缩小待求解问题的规模;
合并 将各个阶段的局部解合并为原问题的一个全局最优解
在这里插入图片描述

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值