- 1
- 0
- 约8.22千字
- 约 10页
- 2018-08-25 发布于上海
- 举报
——算法设计与分析
——算法设计与分析
— 穷举法、贪心法、分枝限界法讲稿
讲解人:
一、穷举法(枚举法)
(一)算法思路
就是从可能的解的集合中一一枚举各元素,用题目给定的检验条件,判定哪些是无用的,哪些是有用的。能使命题成立,即为其解。
(二)例子(第二章介绍过的货郎担问题)
假定以编号为1的城市为始发城市,那么就会有4!=24个不同的路线,我们只要列举出每一条路线并分别计算出相应的费用即可。从中就可以找出最小费用及对应的路线。
(三)算法复杂度:O(n!)
(四)算法评价
优点:可得到精确值。当n较小时,是可行的;
缺点:较笨拙,由于须列举所有情况,且记录下每次的情况,需要大量的机时和内存空间。当n较大时,该算法是不可行性的。
二、贪心法
贪心法是一种对某些求最优解问题的更简单、更迅速的设计方法。
(一)引言
在给出贪心法的具体定义和算法步骤之前,我们先来看两个例子。
例1 假设有4种硬币,它们的面值分别为1角、5分、2分和1分。现要找给某顾客3角7分钱,这时,我们几乎不假思索地拿出3个l角、1个5分和1个2分的硬币交给顾客。我们不仅能很快决定要拿哪些硬币,而且与其它找法相比.我们拿出的硬币的个数肯定是最少的。
在这里,我们实际使用了这样的算法:首先选出一个面值不超过3角7分的最大硬币(1角),然后从3角7分中减去1角,剩下2角7分再选出一个不超过2角7分的最大硬币(另一个1角),如此做下去,直到找足3角7分。
例2 如图1—1,其中,顶点可解释为城市,边上的代价可解释为两城市问的里程。在图中找一条经过所有结点一次的回路,并使里程的总和为最小。这同样还是货郎担问题。在解此题时,我们可以按这样一个想法去做:
首先在图中选一条代价最小的边。为了选择下一条边,先要检查一下候选边与已选入的边之间是否满足以下两点:
1)不会有三条边(候选边及已入选边)与同一顶点相关联。
2)不会使入选边形成回路,除非入选边的个数已等于图中的顶点总数。
在满足以上两点的候选边中,挑选最短的边作为入选边。如此做下去,直到得到一个经过所有顶点的回路。
图1-1
最后求得的回路是1—2—5—3—4—1,代价是14。实际图1—1最小代价的回路是1—2—5—4—3一1,代价是10。
在这两个例子中,我们使用的方法就是贪心法。
(二)问题的定义
事实上,贪心法是我们经常自觉使用的一种方法。下面我们从一般意义上再来认识一下贪心法。在现实世界中,有这样的一类问题,它有n个输入,而它的解由这n个输入的某个子集组成,只是这个子集必须满足某些事先给定的条件。我们把那些必须满足的条件称为约束条件,而把满足约束条件的子集称为该问题的可行解。显然,满足约束条件的子集可能不止一个,因此,可行解一般来说是不唯一的。为了衡量可行解的优劣,事先也给出了一定的标准。这些标准一般以函数形式给出,这些函数称为目标函数。那些使目标函数取极值(极大或极小)的可行解,称为最优解。对于这一类需求最优解的问题,又可以根据描述约束条件和目标函数的数学模型的特性或求解问题方法的不同进而细分为线性规划、整数规划、非线性规划和动态规划等问题。尽管各类规划问题都有求解本类问题的一些基本方法,但对于其中的某些问题,则可用一种更直接的方法来设计求解,这种方法就是贪心法。
(三)算法思想
从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止,得到问题的一个解。
(四)实现该算法的过程
贪心法是一种改进了的分级处理方法。它首先根据题意,选取一种量度标淮。然后将这n个输入排成这种量度标准所要求的顺序,按这种顺序一次输入一个量。如果这个输入和当前已构成在这种量度意义下的部分最优解加在一起不能产生一个可行解,则不把此输入加到这部分解中。要注意的是,对于一个给定的问题。往往可能有好几种量度标准。初看起来,这些量度标准似乎都是可取的。但实际上,用其中的大多数量度标准作贪心处理所得到该量度意义下的最优解并不是问题的最优解,而是次优解。尤其值得指出的是,把目标函数作为量度标准所得到的解也不一定是问题的最优解。因此,选择能产生问题最优解的最优量度标准是使用贪心法的核心问题。在一般情况下,要选出最优量度标准并不是一件容易的事,不过,一旦对某问题能选择出最优量度标准。用贪心法求解则特别有效。贪心法可以用下面的抽象过程来描述。
Procedure Greedy (A,n);
{A[1...n]包含n个输入}
begin
solution? {将解向量solution 初始化为空}
for i?1 to n do
[x?select (A);
if feasible (solutioin ,x) then
您可能关注的文档
最近下载
- 《海上风电场工程风电机组基础设计规范》.pdf VIP
- 数学试卷答案【新高考I卷】【山东卷】【高考真题】山东省2025年山东省普通高等学校招生全国统一考试(新I卷)(6.7-6.9).docx VIP
- 桑黄编制说明.doc VIP
- 复变函数1省公开课金奖全国赛课一等奖微课获奖课件.pptx VIP
- 316L 不锈钢收缩率实验报告.docx VIP
- 中油《炼油化工企业污水回用管理导则》.doc VIP
- 《黄土高原》参考2省公开课金奖全国赛课一等奖微课获奖PPT课件.pptx VIP
- 黄土高原参考课件2.pptx VIP
- 人教版高中生物选择性必修二全册教学课件.pptx
- 上行社会比较量表.docx VIP
原创力文档

文档评论(0)