一、概念
- 原理:一种启发式策略,在每个决策点作出在当时看来最佳的选择,即总是遵循某种规则,做出局部最优的选择,以推导出全局最优解(局部最优解->全局最优解)
- 求解最优化问题的两个关键要素:贪心选择性质+最优子结构
①贪心选择性质:进行选择时,直接做出在当前问题中看来最优的选择,而不必考虑子问题的解;
②最优子结构:如果一个问题的最优解包含其子问题的最优解,则称此问题具有最优子结构性质; - 解题关键:贪心策略的选择
贪心算法不是对所有问题都能得到整体最优解的,因此选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
二. 算法步骤:
- 1)有一个以优化方式来求解的问题。 为了构造问题的解决方案,有一个候选的对象的集合C,如活动安排问题中的活动集合E ={1,2,3,…,n}。
- 2)随着问题求解过程的进行,这个集合将逐步被划分为两个集合: 一个包含已经被考虑过并被选择的候选对象集合S;另一个包含已经被考虑过但被丢弃的候选对象。
- 3 )有一个函数solution(S)来检查一个所选择的对象集合是否提供了问题的解答。该函数不考虑此时的解决方法是否最优。如活动安排问题中所有活动是否已经被考察。
- 4)还有一个函数feasible(S)检查是否一个所选对象的集合是可行的ÿ