一、概念解析
利用贪心算法对问题求解时,总是做出在当前情况下最好的选择。也就是说,贪心算法不是从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解。
贪心算法没有固定的框架,该算法的关键是贪心策略的选择。贪心算法的基本思路如下:
- 建立数学模型以描述问题;
- 把求解的问题分成若干个子问题;
- 把每个子问题进行求解,得到子问题局部最优解;
- 把子问题的局部最优解合并成原来问题的解。
贪心算法不能保证求的的最后解是最优解,所以贪心策略的前提是:局部最优策略能产生全局最优解。
贪心算法的实现框架:
while(超给顶目标前进一步)
{
利用可行的决策,求出可行解的第一个解元素;
}
由所有的届组合成问题的解;
为了更方便大家理解,我引出几个例题。
二、例题分析
【题目内容】小明去超市购物,放到购物车中的食品如下。但小明当前能够拎回家的最大重量W=15斤,则小明如何选择最多的食物拎回家?
【思路分析】
食物 | 牛奶 | 面包 | 方便面 | 苹 |