基于分治算法,核心:“分解的子问题,局部最优产生全局最优。”
本文参考3W学习方法来叙述内容。
一、What
1、什么是贪心算法?
所谓“贪心“,指期望分解后的每个子问题都求到最优解,最后可合成原问题的一个解。
2、什么是贪心选择性质
一个问题的整体最优解可通过一系列局部的最优解的选择达到,并且每次的选择可以依赖以前作出的选择,但不依赖于后面要作出的选择。这就是贪心选择性质。
3、什么是最优子结构性质
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。
二、Why
1、为什么需要掌握贪心算法?
处理最优解问题,特点是一步一步地进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况,省去了为找最优解要穷尽所有可能而必须耗费的大量时间。
三、How
1、实现步骤
(1)数学建模,判断是否满足“贪心选择性质”和“最优子结构性质”
(2)子问题分解
(3)对子问题求最优解
(4)合成原问题的一个解
2、应用场景
2.1 背包最大容量问题