贪心算法
一、贪心算法
贪心算法是经过若干次贪心的选择而得到最优值(较优值)的求解问题策略,即贪心策略。
每次作出的选择都是在某种约束条件下的局部最优解、较优解,并不一定是全局的最优解或较优解。
二、贪心算法的特点
1.贪心选择
所谓贪心选择是指应用同一规则,将原问题变为一个相似的但规模更小的子问题,而后的每一步都是当前看似最佳的选择,且这种选择只依赖于已做出的选择,不依赖于未做出的选择。
2.最优子结构
执行算法时,每一次得到的结果虽然都是当前问题最优解(即局部最优解),但只有满足全局最优解包含局部最优解时,才能保证最终得到的结果是最优解。
三、几个简单的贪心实例
1.最优装载问题
2.部分背包问题
3.乘船问题
四、贪心算法的经典应用
1.选择不相交区间的问题
2.区间选点问题
3.区间覆盖问题
4.流水作业调度问题
5.带限期和罚款的单位时间任务调度