计算机算法设计的基本方法(5)

计算机算法设计的基本方法(5)

贪心法

定义:是一种对某些求最优解问题的更简单、更迅速的设计技术。常以当前情况基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况,它省去了为找最优解要穷尽所有可能而必须耗费的大量时间,它采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择就将所求问题简化为一个规模更小的子问题, 通过每一步贪心选择,可得到问题的一个最优解,虽然每一步都要保证能获得局部最优解,但由此产生的全局解有时不一定是最优的。

思想:选取一种量度标准,然后将多个输入排成这种量度标准所要求的顺序,按这种顺序一次输入一个量,如果这个输入和当前已构成在这种量度意义下的部分最佳解加在一起不能产生一个可行解,则不把该输入加到这部分解中。

基本步骤:

第一步:根据题意,选择一种量度标准。

第二步:将多个输入排成这种量度标准所要求的顺序。

第三步:对于每种输入,如果该输入下的一次取值能和前面产生部分最佳解加在一起构成最优解,则选择该值;否则选该输入下的其它值。

第四步:当所有输入均考虑完,则得到解。

例3-9:在N行M列的正整数矩阵中,要求从每行中选出1个数,使得选出的总共N个数的和最大。

分析:

第一步:设初始求和变量sum=0。

第二步:对于矩阵的每一行,寻找改行的最大数m,将其累加到sum。

第三步:当所有行均计算完成,输出sum。

例3-9的N-S图:

计算机算法设计的基本方法(5)

Powered By 主机

 Theme By 服务器

Copyright 六六互联.Some Rights Reserved.www.ic.vip