第四章4贪心、动态).ppt

4.4 贪婪算法 贪婪算法(也叫贪心算法、登山法) 我们来看一个找硬币的例子: 例1:假设有四种硬币,它们的面值分别为二角五分、一角、五分和一分。现在要找给某顾客六角三分钱。 (要求:所拿出的硬币个数是最少 。) 这里,我们使用了这样的找硬币算法: 首先选出一个面值不超过六角三分的最大硬币,即二角五分;然后从六角三分中减去二角五分,剩下三角八分;再选出一个面值不超过三角八分的最大硬币,即又一个二角五分,如此一直做下去。总共用六枚硬币,事实说明这是最好的结果。这个找硬币的方法实际上就是贪婪算法。 贪心方法适合的问题: 有n个输入,而它的解就由这n个输入满足某些事先给定的约束条件的某个子集组成,而把满足约束条件的子集称为该问题的可行解。显然,可行解一般来说是不唯一的。那些使目标函数取极值(极大或极小)的可行解,称为最优解。 贪心方法是求解这一类需求取最优解的问题的一个直接有效的方法。贪心方法是一种分级处理方法,首先根据题意,选取一种量度标准。然后按这种量度标准对这n个输入排序,并按序一次输入一个量。如果这个输入量的加入,不满足约束条件,则不把此输入加到这部分解中。 4.4.1 可绝对贪婪问题 4.4.2 相对或近似贪婪问题 4.4.3 贪婪策略算法设计框

文档评论(0)

1亿VIP精品文档

相关文档