![cdebaee4be45ad2be1d7017ccabcac59.png](https://img-blog.csdnimg.cn/img_convert/cdebaee4be45ad2be1d7017ccabcac59.png)
贪心法是把一个复杂问题分解为一系列较为简单的局部最优选择,每一步选择都是对当前解的一个扩展,直到获得问题的完整解。贪心法的典型应用是求解最优化问题,而且对许多问题都能得到整体最优解,即使不能得到整体最优解,通常也是最优解的很好近似。
## 概述
### 贪心法的设计思路
贪心法目光短浅,并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优,这种局部最优选择并不总能获得整体最优解,但通常能获得近似最优解。
用贪心法求解的问题一般有两个最重要的性质:最优子结构性质和贪心选择性质。
1)最优子结构性质:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质,也称此问题满足最优性原理,问题的最优子结构性质是该问题可以用动态规划法或贪心法求解的关键特征。
2)贪心选择性质:所谓贪心选择性质是指问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来得到,贪心法通常以自顶向下的方式作出一系列的贪心选择。确定是否有贪心选择性质
- 通常先考察问题的一个整体最优解,并证明可修改这个最优解,使其从贪心选择开始
- 作出贪心选择后,原问题简化为规模较小的类似子问题
- 用数学归纳法证明,通过每一步贪心选择,最终可得到问题的整体最优解
### 贪心法的求解过程
贪心法通常用来求解最优化问题,从某一个初始状态出发,根据当前的局部最优策略,以满足约束方程为条件,以使目标函数增长最快(最慢)为准则,在候选集合中进行一系列的选择,以便尽快构成问题的可行解。
## 图问题中的贪心法
### TSP问题
TSP问题是指旅行家要旅行n个城市,要求各个城市经历且仅经历一次,然后回到出发城市,并要求所走的路程最短。
贪心法求解TSP问题的贪心策略有两种
1. 最近邻点策略:从顶点出发,每次选择相邻的同时又是距离最短的。该方案的最终结果难以保证,所以pass。
2. 最短链接策略:每次在整个图的范围内选择最短边加入到解集合中,但是,要保证加入解集合中的边最终形成一个哈密顿回路。因此,当从剩余边集E'中选择一条边(u,v)加入解集合S中,应满足以下条件:
- 边(u,v)是边集E'中代价最小的边