- 1
- 0
- 约 76页
- 2016-11-30 发布于湖北
- 举报
* 1、最小生成树性质 用贪心算法设计策略可以设计出构造最小生成树的有效算法。本节介绍的构造最小生成树的Prim算法和Kruskal算法都可以看作是应用贪心算法设计策略的例子。尽管这2个算法做贪心选择的方式不同,它们都利用了下面的最小生成树性质: 设G=(V,E)是连通带权图,U是V的真子集。如果(u,v)?E,且u?U,v?V-U,且在所有这样的边中,(u,v)的权c[u][v]最小,那么一定存在G的一棵最小生成树,它以(u,v)为其中一条边。这个性质有时也称为MST性质。 * 2、Prim算法 设G=(V,E)是连通带权图,V={1,2,…,n}。 构造G的最小生成树的Prim算法的基本思想是:首先置S={1},然后,只要S是V的真子集,就作如下的贪心选择:选取满足条件i?S,j?V-S,且c[i][j]最小的边,将顶点j添加到S中。这个过程一直进行到S=V时为止。 在这个过程中选取到的所有边恰好构成G的一棵最小生成树。 思考?Prim算法和dijkstra算法的共通性? * 利用最小生成树性质和数学归纳法容易证明,上述算法中的边集合T始终包含G的某棵最小生成树中的边。因此,在算法结束时,T中的所有边构成G的一棵最小生成树。 例如,对于右图中的带权图,按Prim算法选取边的过程如下页图所示。 * * 3、Kruskal算法 Kruskal算法构造G的最小生成树的基本思想是,首先将G的n个顶点看成n个孤立的连通分支。将所有的边按权从小到大排序。然后从第一条边开始,依边权递增的顺序查看每一条边,并按下述方法连接2个不同的连通分支:当查看到第k条边(v,w)时,如果端点v和w分别是当前2个不同的连通分支T1和T2中的顶点时,就用边(v,w)将T1和T2连接成一个连通分支,然后继续查看第k+1条边;如果端点v和w在当前的同一个连通分支中,就直接再查看第k+1条边。这个过程一直进行到只剩下一个连通分支时为止。 * 例如,对前面的连通带权图,按Kruskal算法顺序得到的最小生成树上的边如下图所示。 例题3.POJ2784 题目大意:有n个城市,初始有些城市之间已经连通,最多只有8个城市集合连通,你可以选择一些集合,但 要花费一定得费用。同时连接任意两个城市也要花费一定的费用,问最后连通n个城市的最小费用。 Sample Input 7 3 2 4 1 2 3 3 3 6 7 3 9 2 4 5 0 2 4 0 2 0 4 2 1 3 0 5 4 4 Sample Output 14 * 思考?如何解决? 由于只有8个城市集合,因此我们可以枚举所有的购买情况,一共是2^8=256。每一次都求一遍最小生成树,去最小的即可。 问题的关键是我们怎么去求这颗最小生成树? 如果256次prim,那么复杂度是256*n^2,这个显然太高了。考虑kruskal,一次排序后那么每次求生成树的复杂度平摊下来可以到o(n)。 思考?在不同的情况下如果有效的选择两种算法来获取最好的效果? 3.图论中的圈和块 SCC的概念 有向图中, u可达v不一定意味着v可达u. 相互可达则属于同一个强连通分量(Strongly Connected Component, SCC) 有向图和它的转置的强连通分量相同 所有SCC构成一个DAG 一、Kosaraju算法 算法步骤 调用DFS(G), 计算出每个结点的f[u] 计算GT 调用DFS(GT), 在主循环中按照f[u]递减的顺序执行DFS-VISIT, 则得到的每个DFS树恰好对应于一个SCC 运行时间:O(n+m) 算法示例: 先把f[u]排序成postI数组, 然而在GT上DFS 当按照f值排序以后, 第二次DFS是按照SCC的拓扑顺序进行(以后所指d[u]和f[u]都是第一次DFS所得到的值) 记d(C)和f(C)分别表示集合C所有元素的最早发现时间和最晚完成时间, 有如下定理: 定理: 对于两个SCC C和C’, 如果C到C’有边, 则f(C)f(C’) 情况一: d(C) d(C’), 考虑C中第一个被发现的点x, 则C’全为白色, 而C到C’有边, 故x到C’中每个点都有白色路径. 这样, C和C’全是x的后代, 因此f(C) f(C’) 情况二: d(C) d(C’). 由于从C’不可到达C, 因此必须等C’全部访问完毕才能访问C. 因此f(C) f(C’) 推论:对于两个SCC C和C’, 如果在GT中C到C’有边, 则f(C)f(C’) Kosaraju算法的正确性 首先考虑f(C)最大的强连通分量. 显然, 此次DFS将访问C的所有点, 问题是是否可能访问其他连通分量的点? 答案是
您可能关注的文档
- 2016财务报表与编写汇编.ppt
- 2015年中考数学分类:相交线平行线平移分解.doc
- AC-DC变换技术试卷.ppt
- 2015年中考物理:内能与内能的利用分解.doc
- 2015年中考物理电学综合分解.doc
- A-chap04化学反应的速率试卷.ppt
- 2016初三圆复习汇编.ppt
- 2016初中物理总复习-热现象汇编.ppt
- 2016初中物理总复习-声现象汇编.ppt
- 2015年中考物理分考点——03物态变化分解.doc
- 弹性滚子间油膜热流体动力润滑特性的深度解析与优化策略.docx
- 解析罗非鱼幼鱼杂种优势遗传密码及其早期生长调控机制.docx
- 基于多技术融合的油田远程监测系统上位机软件深度剖析与创新实践.docx
- 概念整合理论:翻译认知与实践的深度融合.docx
- 基于多技术融合的三维仿真电子沙盘系统设计与实现研究.docx
- 大理旅游汉英交替传译:实践洞察与策略探究.docx
- 抗氧化剂对梗阻性黄疸大鼠中枢神经系统氧化应激损伤的干预效应与机制探究.docx
- 表观遗传修饰对HOXB13基因转录的调控:机制解析与生物学意义.docx
- 非纯CO₂与原油体系特性及作用机制的实验剖析.docx
- 大鼠嗅球内细胞可塑性的交互机制:球旁细胞对僧帽细胞的调节作用.docx
原创力文档

文档评论(0)