An Optimal Minimum Spanning Tree Algorithm

Slides:



Advertisements
Similar presentations
Course 1 演算法: 效率、分析與量級 Algorithms: Efficiency, Analysis, and Order
Advertisements

第八章 連結分析 Link Analysis.
算法分析(3) 重要的数据结构.
動畫與遊戲設計 Data structure and artificial intelligent
我们会赞叹生命之花的绚丽和多姿,也会歌颂生命之树的烂漫和青翠,但是生命是如此脆弱……
Chap 8 空间复杂度 可根据 提供的PPT素材+参考以前同学的报告, 修改成为有自己见解的讨论报告 建议: 底色用浅色(象牙白, 浅黄, 白色等) 适合色盲 色弱 观众 字体颜色选择余地大 在投影机 效果差时 也还能能看见.
資料結構與C++程式設計進階 資料結構概論 講師:林業峻 CSIE, NTU 6/ 7, 2010.
XI. Hilbert Huang Transform (HHT)
Minimum Spanning Trees
Euler’s method of construction of the Exponential function
-Artificial Neural Network- Adaline & Madaline
Linear Programming: Introduction and Duality
Large-Scale Malware Indexing Using Function-Call Graphs
Population proportion and sample proportion
Chap4 Tree.
Tree(樹) 什麼是「樹」? 「樹」的範例 「樹」的定義 「樹」的表示法.
Chap5 Graph.
Chapter 4 歸納(Induction)與遞迴(Recursion)
Chapter 4 Spanning Trees
Chap5 Graph.
樹狀結構 陳怡芬 2018/11/16 北一女中資訊專題研究.
SAT and max-sat Qi-Zhi Cai.
第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
Graph Theory Graph theory is the study of the properties of graph structures. It provides us with a language with which to talk about graphs.
第十一章 Heap 結構.
Chapter 7 圖形與網路 資料結構導論 - C語言實作.
Top-k search的实现技术 邵菲 MF /12/25.
计算机问题求解 – 论题 有限与无限 2017年12月14日.
Chapter12 Graphs Definitions Applications Properties
Yuzhong Qu Nanjing University
樹 2 Michael Tsai 2013/3/26.
Ch07 圖形與網路 淡江大學 周清江
Chapter 2 Basic Concepts in Graph Theory
Advisor : Prof. Frank Y.S. Lin Presented by Yen-Yi, Hsu
感謝同學們在加分題建議. 我會好好研讀+反省~
105-1 Data Structure Exam /12/27.
每周三交作业,作业成绩占总成绩的15%; 平时不定期的进行小测验,占总成绩的 15%;
第三章 暴力法.
计算机问题求解 – 论题 算法方法 2016年11月28日.
圖論的介紹 第二組 徐榮德 鄭又齊 陳俊嘉.
第15讲 路与回路, 图的连通性 主要内容: 1.路与回路. 2.图的连通性..
Tournament (graph theory)
Course 10 削減與搜尋 Prune and Search
生成树.
Disjoint Sets Michael Tsai 2013/05/14.
鄧姚文 資料結構 第八章:圖(Graph) 鄧姚文
Efficient Query Relaxation for Complex Relationship Search on Graph Data 李舒馨
最短通路问题.
唐常杰 四川大学计算机学院 计算机科学技术系
赵才荣 同济大学,电子与信息工程学院,智信馆410室
SLIQ:一种快速可伸缩分类器 Manish Mehta, Rakesh Agrawal, Jorma Rissanen IBM Almaden Research Center, 1996 报告人:郭新涛
计算机问题求解 – 论题 图的连通度 2018年11月13日.
Konig 定理及其证明 杨欣然
Data Structure.
Advanced Competitive Programming
Advanced Competitive Programming
圖形結構 Graph Structure chapter 9 德明科技大學資訊科技系.
Maximum Flow.
11506: Angry Programmer ★★★★☆ 題組:Contest Set Archive with Online Judge
Graph 1 Michael Tsai 2012/4/24 連載: 學生上課睡覺姿勢大全
JAVA 程式設計與資料結構 第十七章 Tree.
计算机问题求解---论题3-12 图中的匹配与因子分解
JAVA 程式設計與資料結構 第二十一章 Graph.
Presentation transcript:

An Optimal Minimum Spanning Tree Algorithm Seth Pettie and Vijaya Ramachadran Journal of the ACM Vol. 49, No. 1 January 2002, pp. 16-34

Outline Preliminary Overview of the Algorithm Cut and Cycle DJP Algorithm MST in Dense Case Overview of the Algorithm Key Lemma and the Partition Algorithm Decision Tree Conclusion

Overview of the Algorithm Precompute the optimal decision trees for all graphs with ≤ log(3) n vertices Partition the original graph into small subgraphs soft heap Find the MST of each subgraph decision tree Use the small MSTs to construct the MST of the original graph dense case

G

GM C5 C1 C4 C6 C2 C7 C3

GM Partition(G,r,; M,C) 將問題分成 Ci裡面 & Ci外面 以DecisionTree求MSF C1 C2 C3

GM Partition(G,r,; M,C) 將問題分成 Ci裡面 & Ci外面 以DenseCase求MSF

Boruvka2: 將vertex數降為1/4 Gc: m降為1/4 OptimalMSF(Gc)

Key Lemma Lemma 3.2 Let M be a set of edges in a graph G. If C is a subgraph of G that is DJP-contractible w.r.t. GM, then MSF(G) is a subset of DJP-contractible w.r.t GM 即:在G上,使用SoftHeap, 以Prim algorithm長出來的子圖 Mc : corrupted edges with one endpoint in C Why can we decompose the MST problem like this?

欲證明: 證法: (1) (2) 要證明在(1)裡的每條edge, 在(2)都會存在 證明在(2)中不存在的edge, 也必不存在(1) 把(2)再拆成兩部分來看 a) In C, if an edge eMSF(C), then eMSF(G) b) In G\C, if an edge eMSF(G\CMC)MC, then eMSF(G) G C

In C, if an edge eMSF(C), then eMSF(G) 證明: eMSF(C) e must be the heaviest edge on some cycle in C. (cycle property) Such a cycle exists in G as well. So eMSF(G) G C

In G\C, if an edge eMSF(G\CMC)MC, then eMSF(G) b) 欲證明: In G\C, if an edge eMSF(G\CMC)MC, then eMSF(G) 證明: Let H=G\CMC, show that no edge in HMSF(H) is in MSF(G) Let eHMSF(H) e is the heaviest edge on some cycle  in H. 若  不包含C contract形成的那個點 若  包含C contract形成的那個點 (見下頁) 目標:證明 e is also the heaviest edge on a cycle in G  eMSF(G) G   C

證明 (續上頁): 目標:證明 e is also the heaviest edge on a cycle in G  eMSF(G) 2. 若  包含C contract形成的那個點 x, y, w, z: nodes (x,w) and (y,z): end edges of path P Since H includes no corrupted edges with on point in C, so: G-weight of these edges = (GM)-weight T: the spanning tree of CM Q: the path in T connecting x and y g: the heaviest edge in Q. w(e) > max(w(x,w), w(y,z)) (def. of e) > (GM)-weight of g (Lemma 2.1)  G-weights of all edges in Q. So, w.r.t. G-weights, e is the heaviest edge on a cycle PQ and cannot be in MSF(G). P w x e C Q y z

選定一個點為起點, 用DJP演算法長component Ci 長到 大於maxsize, 或 連到別的component Ci 就停下來 insert edges to Soft Heap

Partition & Key Lemma By applying Key Lemma repeatedly, we see that after Ci is built, the MSF of G is a subset of

Decision Trees 一個Decision Tree為一rooted tree,在每個internal node上都含有某些條件判斷式,不同的分支代表判斷式不同的結果。所有leaves各自代表了不同的決策,而自root到一leaf之間所經過的path即代表選擇此決策所需要的條件。

An Example of Decision Trees

MSF Decision Trees 每個internal node of MSF Decision Trees上的判斷式是一個edge-weight comparison(對於給定的graph G)。 每個internal node of MSF Decision Trees必恰好有兩個children,分別代表該edge-weight comparison為true或false。 MSF Decision Trees的leaves列出所有符合root到每一leaf之路徑上判斷式及其結果的一些spanning tree。

MSF Decision Trees (cont.) Correct MSF Decision Trees的條件為每一條從root到一個leaf的path可決定唯一的一個spanning tree為G的MSF。 Optimal MSF Decision Tree的條件為沒有比之深度更小的Correct MSF Decision Tree of G存在。 當我們有graph G的Optimal MSF Decision Trees,我們就可以將G的edge weight值代入其判斷式找出其MSF。

An Example of MSF Decision Tree

Find Optimal Decision Trees 簡單的說,是用brute force search (BFS) 去暴力搜尋所有可能性並驗證。 分析當我們要找出所有具r個vertices的graph之Optimal Decision Trees的時間複雜度: 因此若取 則整個處理為o(n) time。

Complexity 除了recursive的部分以外,這個演算法顯然是linear time

If T*(m,n) = O(m), then T(m,n)=O(m) Observations: If T*(m,n) = O(m), then T(m,n)=O(m) T(m,n)=O(T*(m,n)) for many natural functions for T* (including m(m,n)) Prove that: T(m,n)=O(T*(m,n)) holds, no matter what describing O(T*(m,n)) 除了recursive的部分以外,這個演算法顯然是linear time

Observations: If T*(m,n) = O(m), then T(m,n)=O(m) T(m,n)=O(T*(m,n)) for many natural functions for T* (including m(m,n)) Prove that: T(m,n)=O(T*(m,n)) holds, no matter what describing O(T*(m,n)) (Skip many propositions , lemmas and corollaries)