当前位置:文档之家› 第4章贪心算法解读

第4章贪心算法解读

2
找硬币
假设有四种硬币,面值分别为
二角五分
一角
五分
一分
现在要找给某顾客六角三分钱,哪种找钱方法拿出 的硬币个数最少呢?
首先选出一个面值不超过六角三分的最大硬 币二,角五即分二二角角五五分分;一然角后从六一分角三分一中分 减去一二分角五 分,剩下三角八分;再选出一个面值不超过三角 八分的最大硬币,即又一个二角五分,如此一直 做下去。这种方法实际上就是贪心算法。
2020/11/17
计算机算法设计与分析
3
再找硬币
若硬币的面值改为一分、五分和一角一分3 种,而要找给顾客的是一角五分钱。
还用贪心算法,将找个顾客1个一角一分的 硬币和4个一分的硬币。
然而,3个五分的硬币显然才是最好的找法。
2020/11/17
计算机算法设计与分析
4
贪心算法的适用情形
设待求解问题有N个输入,根据必须满 足的条件和目标函数,希望从问题的所 有允许解中求出最优值。
D 60
A 300
50 E 90
2020年11月17日
B 70
A 300
C 50 80
D
E
B 70 C
D
13
最小生成树的贪心选择性质
令G中权最小的边为e1。首先必定有图G的一棵 最小生成树包含了e1。
若选G定的第任一何条最边小e1生以成后树,都该不如包何含选e择1。第设二T条为边G的呢? 最P依r小i据m生算各成法条树的边,做的e法权1:重T在。,保于依证是次连T选+通出e1是的权一前重个提较有下轻回依的路次n –的选1
2020/11/17
计算机算法设计与分析
7
煤气管道的铺设
某新建小区着手铺设煤气管道,已知每一 幢楼的接入位置和距离,请求出最短的铺 设方案。
2020年11月17日
8
最优布线问题
学校有n台计算机,为了方便数据传输, 现要将它们用数据线连接起来。两台计算 机被连接是指它们之间有数据线连接。由 于计算机所处的位置不同,因此不同的两 台计算机的连接费用往往是不同的。
2020/11/17
计算机算法设计与分析15PFra bibliotekim算法的示例
给定一个连通带权图如下:
1
6
5
2
1 55
4
3
36 4 2
56 6
初始时S={1},T= Φ; 第一二三四五次选择:
∵(13625, 3642)权最小 ∴ S={1, 3}, 6}, ,4}, ,2}, ,5},
T= {(1, 3)}, (;3, 6)}, (;6, 4)}, ; (3(2, 2, )3)(}2,;5)} ;
这种局部最优选择并不总能获得整体最优解, 但通常能获得近似最优解。
2020/11/17
计算机算法设计与分析
6
贪心算法的一般框架
GreedyAlgorithm(parameters){ 初始化; 重复执行以下的操作: 选择当前可以选择的(相容)最优解; 将所选择的当前解加入到问题的解中; 直至满足问题求解的结束条件。 }
如果G的一个子图G’是一棵包含G的所有顶点 的树,则称G’为G的生成树。
生成树的各边的权的总和称为该生成树的耗费。 在G的所有生成树中,耗费最小的生成树称为
G的最小(优)生成树。
2020/11/17
计算机算法设计与分析
11
树的基本性质
连通无回路的图G称为树。 树是点比边多一的连通图,G连通且q=p–1 。 树是点比边多一的无回路图:G无回路且q=p–1 树若添条边就有回路:G无回路,但对任意的u,
2020/11/17
计算机算法设计与分析
5
贪心算法的特点
贪心算法总是作出在当前来看是最好的选择。
就是说,贪心算法并不从整体最优上来考虑, 所作出的选择只是某种意义上的局部最优选择。
贪心法在解决问题的策略上目光短浅,只根据 当前已有的信息就做出选择,而且一旦做出了 选择,不管将来有什么结果,这个选择都不会 改变。
2020/11/17
计算机算法设计与分析
14
Prim算法
基本思想:在保证连通的前提下依次选出权重 较小的n – 1条边。
G=(V, E)为无向连通带权图,令V={1, 2, …, n}。 设置一个集合S ,初始化S = {1},T = Φ。 贪心策略:如果V–S中的顶点j与S中的某个点i
连接且(i, j) 的权重最小,于是就选择j(将j加入 S),并将(i, j) 加入T中 。 重复执行贪心策略,直至V–S为空。
第四章
贪心算法
2020/11/17
计算机算法设计与分析
1
学习要点
• 理解贪心算法的概念。 • 掌握贪心算法的基本要素 :
(1)最优子结构性质(2)贪心选择性质 • 理解贪心算法的一般理论 • 通过应用范例学习贪心设计策略。
(1)最小生成树; (2)单源最短路径; (3)旅行商问题; (4)活动安排问题; (5)最优装载问题;
2020年11月17日
9
最优通信网
若要在n个城市之间建设通信网络,只需 要架设n-1条线路即可。如何以最低的经 济代价建设这个通信网,是一个网的最 小生成树问题。
2020年11月17日
10
最小生成树
设G = (V, E)是一个无向连通带权图,即一个网 络。E的每条边(v, w)的权为c[v][w]。
v∈V(G),若uvE(G),则G+uv中恰有一条回路 树若减条边就不连通:G连通,但对e∈E(G),
G–e不连通。 n个顶点的连通图的生成树含有n – 1条边。
2020/11/17
计算机算法设计与分析
12
实例
A 300
50 80 200
E 90
B 70
A
75
C 50 80
D 60
E
B 70 C
图出条且权边该重。回较这路小n –中的1包n条–含边1e条必1。边定该(包回在括路实了中现G必的中有n体个条现顶不为点是n。个e1这 的顶样边点就e的得i。选到令择了T)G’=的{。T一+e棵1}最–e小i。生T’成也树是。G的生成树。
又c矛K次不 要 是这(Trc盾选行 保 连u’样()sT。≤k择! 证 通’做ca)故(l权因 这 的=算T是)必c重为 或n,法(否T–定较不者T的)1’可有+小能是条是做c图以的保无边G(法e的G1n证回构呢:)的–最–这路成在?1最c小条的n(树保e小生–i边。,证),生1成。必条无c成树(须边回e树1且使)构路包≤含这成的c含有(n树前e了i边–)?提,e1e1条下从1。。边依而
相关主题