Python算法详解
上QQ阅读APP看书,第一时间看更新

3.4.1 贪心算法基础

贪心算法从问题的某个初始解出发,逐步逼近给定的目标,以便尽快求出更好的解。当达到算法中的某一步不能再继续前进时,就停止算法,给出一个近似解。由贪心算法的特点和思路可看出,贪心算法存在以下3个问题。

(1)不能保证最后的解是最优的。

(2)不能用来求最大解或最小解问题。

(3)只能求满足某些约束条件的可行解的范围。

贪心算法的基本思路如下。

(1)建立数学模型来描述问题。

(2)把求解的问题分成若干个子问题。

(3)对每一子问题求解,得到子问题的局部最优解。

(4)把子问题的局部最优解合并成原来问题的一个解。

实现该算法的基本过程如下。

(1)从问题的某一初始解出发。

(2)while能向给定总目标前进一步。

(3)求出可行解的一个解元素。

(4)由所有解元素组合成问题的一个可行解。