首页 > 试题广场 >

贪心法是一种通过多步选择,试图获得最优解的方法。贪心法每次选

[问答题]
贪心法是一种通过多步选择,试图获得最优解的方法。贪心法每次选择的原则是什么?请举例说明
贪心算法的本质原则是局部最优原则。
简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。
不同的问题选择当然会不同,但都是问题的最优解。

引例 [找零钱]

一个小孩买了价值少于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目不限的面值为2 5美分、1 0美分、5美分、及1美分的硬币。售货员分步骤组成要找的零钱数,每次加入一个硬币。选择硬币时所采用的贪婪准则如下:每一次选择应使零钱数尽量增大。为保证解法的可行性(即:所给的零钱等于要找的零钱数),所选择的硬币不应使零钱总数超过最终所需的数目

如果只有面值分为使找回的零钱的硬币数最小,不考虑找零钱的所有各种方案,而是从最大面值的币种开始,按递减的顺序考虑各币种,先尽量用大面值的币种,只当不足大面值币种的金额才会去考虑下一种较小面值的币种。这就是在采用贪婪法。这种方法在这里之所以总是最优,是因为银行对其发行的硬币种类和硬币面值的巧妙安排。为1,5和11单位的硬币,而希望找回总额为15单位的硬币,按贪婪算法,应找1个11单位面值的硬币和4个1单位面值的硬币,共找回5个硬币。但最优的解答应是3个5单位面值的硬币。


发表于 2017-10-13 09:06:33 回复(0)