生成树.

Slides:



Advertisements
Similar presentations
index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
Advertisements

第二章 中药药性理论的现代研究 掌握中药四性的现代研究 掌握中药五味的现代研究 掌握中药毒性的现代研究 了解中药归经的现代研究.
公務員申領小額款項專案法紀宣導 法務部廉政署 編製
兵车行 杜甫 福州十一中语文组 林嵘臻.
Course 1 演算法: 效率、分析與量級 Algorithms: Efficiency, Analysis, and Order
小猪.
综合实践活动 设计与实践案例 ——《感恩父母》主题班会.
歷史建築清水國小宿舍群修復工程 施工說明會
11010: Tic-Tac-Tough ★★★★☆ 題組: Problem Set Archive with Online Judge
一、平面点集 定义: x、y ---自变量,u ---因变量. 点集 E ---定义域, --- 值域.
動畫與遊戲設計 Data structure and artificial intelligent
《高级人工智能》参考书目 马少平,朱小燕。人工智能。清华大学出版社。 蔡自兴,徐光祐。人工智能及其应用。清华大学出版社。
邰港生物科技公司參訪.
™ 全球,唯一支持第三方自动部署的交易系统 中国产权交易所有限公司 二〇一四年十月 超级交易系统V1.0
高考考试说明解读 --政治生活.
12* 假如没有灰尘.
管理学基本知识.
第十一章 真理与价值 主讲人:阎华荣.
滁州学院首届微课程教学设计竞赛 课程名称:高等数学 主讲人:胡贝贝 数学与金融学院.
贪心算法 入门.
Chapter 12 圖形結構 12.1 圖形的一些專有名詞 12.2 圖形資料結構表示法 12.3 圖形追蹤 12.4 擴展樹
第七章 固 定 资 产.
拾貳、 教育行政 一、教育行政的意義 教育行政,可視為國家對教育事務的管理 ,以增進教育效果。 教育行政,乃是一利用有限資源在教育參
第7章 图论基础与应用 PART A 《可视化计算》.
課程銜接 九年一貫暫行綱要( )  九年一貫課程綱要( ) 國立台南大學數學教育系 謝 堅.
2.4 二元一次方程组的应用(1).
友信不銹鋼工程有限公司 台北市康定路4號 工廠:台北縣三重市竹圍仔街22-3號
行政院國軍退除役官兵輔導委員會 嘉義榮民醫院.
Minimum Spanning Trees
第八章 第一节 日本 邹旭丹 滨河中学初中部 湘教版地理初一年级.
Chap5 Graph.
第8章 圖形結構(Graphs) 8-1 圖形的基本觀念 8-2 圖形的表示法 8-3 圖形的走訪 8-4 擴張樹
Chapter 6 Graph Chang Chi-Chung
The Greedy Method.
演算法方式總覽 The Divide-and-Conquer Strategy (個各擊破)(binary Searching、Quick Sort…. ) The Greedy Method(貪婪演算法) (Prim MST、Kruskal MST、Djikstra's algorithm) Dynamic.
圖論 (Graph Theory) B 電機四 大鳥 B 電機四 酋長 B 電機四 炫大
Graph 2 Michael Tsai 2012/5/1 連載: 學生上課睡覺姿勢大全
Course 9 NP Theory序論 An Introduction to the Theory of NP
语言及其文法.
Chapter 7 圖形與網路 資料結構導論 - C語言實作.
§7.4.2 最小生成树( Minimum Spanning Tree)
Chapter12 Graphs Definitions Applications Properties
Yuzhong Qu Nanjing University
Ch07 圖形與網路 淡江大學 周清江
第9章 基本图算法 本章内容将包含基本的图形表示法,以及先深搜寻,先广搜寻,拓朴排序,Strongly Connected Components。
公立學校教職員退休資遣撫卹條例重點說明 苗栗縣政府人事處編製 主講人:陳處長坤榮 107年5月2日.
数据结构概论 第7章 图 董黎刚 浙江工商大学信电学院 2019年4月8日.
定义7.5:设图G的顶点非空真子集为V1V, 在G中一个端点在V1中, 另一端点在V(G)-V1中的所有边组成的集合称为G的一个断集或称边割,记为 E(V1(V(G)-V1)), 简记为(V1, V(G)-V1)。 当|(V1, V(G)-V1)|=1时, (V1, V(G)-V1)中的那条边称为割边或.
计算机问题求解 – 论题 算法方法 2016年11月28日.
圖論的介紹 第二組 徐榮德 鄭又齊 陳俊嘉.
第3 语言翻译问题 [学习目标]:学习和掌握语言的语法的基本概念和基本要素,理解翻译的步骤;学习和掌握BNF文法。
图 (三).
Course 8 回溯、分枝與限制 Backtracking, Branch-and-Bound
鄧姚文 資料結構 第八章:圖(Graph) 鄧姚文
第三章 贪心方法 (Greedy Technique)
第三章 树 3.1 树的有关定义 给定一个图G=(V,E), 如果它不含任何回路, 我们就叫它是林, 如果G又是连通的, 即这个林只有一个连通支, 就称它是树. 定义3.1.1 一个不含任何回路的连通图称为树, 用T表示. T中的边称为树枝, 度为1的节点称为树叶.
生成树 离散数学─树 南京大学计算机科学与技术系.
The role of Algorithms in Computing
Advanced Competitive Programming
10107: What is the Median? ★★☆☆☆
Advanced Competitive Programming
圖形結構 Graph Structure chapter 9 德明科技大學資訊科技系.
Maximum Flow.
演講綱要 1. 簡介資料結構 2. Hashing (赫序) 模式 3. 如何存取小群的文字資料 4. 如何存取大群的文字資料
Graph 1 Michael Tsai 2012/4/24 連載: 學生上課睡覺姿勢大全
用加減消去法解一元二次聯立方程式 台北縣立中山國中 第二團隊.
圖 論 簡 介.
计算机问题求解---论题3-12 图中的匹配与因子分解
JAVA 程式設計與資料結構 第二十一章 Graph.
Presentation transcript:

生成树

回顾 表达式的(逆)波兰记法 二叉搜索树 前缀码与Huffman编码

提要 生成树 深度优先搜索 广度优先搜索 有向图的深度优先搜索 回溯 最小生成树算法

生成树 定义:若图G的生成子图是树,则该子图称为G的生成树。 无向图G连通 当且仅当 G有生成树 证明(充分性显然):

构造生成树:深度优先搜索 a c b e d f b f c a e d

深度优先搜索算法 Procedure DFS(G: 带顶点v1, …,vn的连通图) T:=只包含顶点v1的树; visit(v1); Procedure visit(v: G的顶点) for v每个邻居w { if w不在T中 then { 加入顶点w和边{v, w}到T; visit(w); }

回溯(八皇后) 在n×n格的棋盘上放置彼此不受攻击的n个皇后。 从空棋盘开始 尝试第1列,第1行,…n行; 尝试第2列,第1行,…n行; …. 尝试第k+1列,第1行,…n行; …

回溯(子集和) 给定一组正整数x1, …, xn ,和为M的一个子集? 从空子集开始 尝试添加一项, 和等于M,结束; 没有合适添加项,去掉和的最后一项,

回溯(子集和) 举例:{31, 27, 15, 11, 7, 5}, 和为39的子集?  {31} {27} {31, 7} {27, 11} {31, 5} {27, 7} {27, 7, 5}

构造生成树:广度优先搜索 a c b e d f c f b d a e

广度优先搜索算法 Procedure BFS(G: 带顶点v1, …,vn的连通图) T:=只包含顶点v1的树; L:=空表; 把v1放入表L中 While L非空 { 删除L中的第一个顶点v; for v的每个邻居w { if w既不在L中也不在T中 then { 加入w到L的末尾; 加入顶点w和边{v, w}到T; }

例 不同的生成树 Breadth first Breaking cycles Depth first

最小生成树 Minimum Spanning Tree 考虑边有权重的连通无向图。其生成树可能不 唯一。定义生成树的权重为其所含各边之和。 一个带权连通图的最小生成树是其权重最小的 生成树。 注意,这里的最小(Minimum)并不意味着唯一。 最小生成树有广泛的应用。

Prim算法(求最小生成树) 1: E={e}, e是权最小的边 2: 从E以外选择与E里顶点关联,又不会与E中的边构成回路的权最小的边加入E 3: 重复第2步,直到E中包含n-1条边 算法结束

Prim算法(举例) 铺设一个连接各个城市的光纤通信网络(单位:万元)。 f e b a c d 54 60 36 38 8 40 48 20 45 28 15 30 62 25 12 10 h g

Prim 算法的正确性 令T为Prim算法的输出,并假设T按照边被选择的顺序包含了边{t1,t2,…,tn-1}。定义Ti={t1,t2,…,ti}。 只需证明Ti在一个MST中。 假设Tk在一个MST T'中,如果tk+1不属于T',则T' + tk+1存在回路。 令sl为T'中不在Tk的最小边(index最小,显然sl的一个端点在Tk中)。这也就意味着,当选择tk+1时sl也可选而没有被选,即tk+1的权重不大于sl的权重。那么T' - sl + tk+1为包含Tk+1的MST。 tk+1 s1 sl sr-1 sr

Kruskal算法(求最小生成树) 1: E={ } 2: 从E以外选择不会与E中的边构成回路的权最小的边加入E 3: 重复第2步,直到E中包含n-1条边 算法结束

Kruskal算法(举例) f e b a c d h g 12 10 54 30 15 8 38 28 25 48 20 40 45 36 铺设一个连接各个城市的光纤通信网络(单位:万元)。 f e b a c d 54 60 36 38 8 40 48 20 45 28 15 30 62 25 12 10 h g

Kruskal算法(举例) 后面证明:Kruskal算法的正确性 B 26(9) 27 21(4) C A 42 E 36 29 D 34 25(8) 33 22 16(1) I 18(3) 21(5) 21(6) H F 25(7) J 28 17(2) 53 G 后面证明:Kruskal算法的正确性

引理(更换生成树的边) T与T'均是图G的生成树,若eET且eET’,则必有e'ET’, e'ET, 且T-{e}⋃{e'}和T'-{e'}⋃{e}均是G的生成树。 设e=uv, T-{e}必含两个连通分支,设为T1, T2。因T'是连通 图,T'中有uv-通路,其中必有一边满足其两个端点x,y分 别在T1, T2中,设其为e',显然T-{e}⋃{e'}是生成树。 而T’-{e’}中x,y分属两个不同的连通分支,但在T*=T’- {e’}⋃{e}中,xu-通路+e+vy通路是一条xy-通路,因此T’- {e’}⋃{e}连通,从而 T'-{e'}⋃{e}是生成树。 T1 T2 u x v y e e'

Kruskal算法的正确性 显然T是生成树。 按在算法中加边顺序,T中边是e1,e2,…ek-1, ek,…en-1。 假设T不是最小生成树。对于任意给定的一棵最小生成树T’, 存在唯一的k, 使得ekET’ ,且eiET’使得(1ik). 设T’是这样的一棵最小生成树,使得上述的k达到最大。 根据前述引理,T’中存在边e’ ,e’不属于T, 使得T*=T’-{e’}⋃{ek}也是生成树。 e’T’与e1,e2,…ek-1不会构成回路,因此w(e’)w(ek). 所以w(T*)w(T’), 即T*也是最小生成树。但T*包含e1,e2,…ek-1,ek,矛盾。 w(e’)w(ek):因为算法选择了ek

Generic Algorithm for MST Problem Input: G: a connected, undirected graph w: a function from VG to the set of real number Generic-MST(G,w) 1 A0 2 while A does not form a spanning tree 3 do find an edge (u,v) that is safe for A 4 AA{(u,v)} 5 return A 通用框架 Safe:an edge (u, v) is safe for A if and only if A ∪ {(u, v)} is also a subset of some MST Output: a minimal spanning tree of G

“避圈法”与“破圈法” 上述算法都是贪心地增加不构成回路的边,以求得最优树,通常称为“避圈法”; 从另一个角度来考虑最优树问题,在原连通带权图G中逐步删除构成回路中权最大的边,最后剩下的无回路的子图为最优树。我们把这种方法称为“破圈法”。

作业 见课程网站