常用的算法思想——2

贪心算法

贪心算法也被成为“贪婪算法”,它在求解问题时总想用当前看来是最好的方法来实现。这种算法不从整体最优上考虑问题,仅仅是在某种意义上的局部最优求解。

贪心算法基础

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

贪心算法的问题

1.不能保证最后的解是最优解

2.不能用来求最大或最小解问题

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

贪心算法的基本思路

1.建立数学模型来描述问题

2.把求解的问题分成若干个子问题

3.对每一个子问题求解,得到子问题的局部最优解

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

实现过程

1.从问题的某一初始解出发

2.while能向给定总目标前进一步

3.求出可行解的一个解元素

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

案例

“装箱”问题

假设有编号分别为0,1…,n-1的n种物品,体积分别为V0,V1…,Vn-1。将这n种物品装到容量都为V的若干箱子里,约定这n种物品体积都不超过V,即对于0<=i<n,有0<V1<=V。不同的装箱方案所需要箱子可能不同。装箱问题要求用最少的箱子装下这n种物品

算法分析


-------------本文结束❤️感谢您的阅读-------------
ボ wechat
扫描二维码,可获得菜鸡一枚
打赏测试
0%