Chu-Liu/Edmonds’ Algorithm an introduction

Slides:



Advertisements
Similar presentations
Every edge is in a red ellipse (the bags). The bags are connected in a tree. The bags an original vertex is part of are connected.
Advertisements

Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.
1 Greedy 2 Jose Rolim University of Geneva. Algorithmique Greedy 2Jose Rolim2 Examples Greedy  Minimum Spanning Trees  Shortest Paths Dijkstra.
MIN-COST ABORESCENCES YQ Lu. Aborescence Definition: Given a directed graph G=(V,E) and a root r, an aborescence rooted at r is a subgraph T that each.
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 13 Minumum spanning trees Motivation Properties of minimum spanning trees Kruskal’s.
Graph Algorithms: Minimum Spanning Tree We are given a weighted, undirected graph G = (V, E), with weight function w:
Chapter 9 Graph algorithms Lec 21 Dec 1, Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 11 Instructor: Paul Beame.
1 Minimum Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting.
TECH Computer Science Graph Optimization Problems and Greedy Algorithms Greedy Algorithms  // Make the best choice now! Optimization Problems  Minimizing.
1 Minimum Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Graph Algorithms: Minimum.
Theory of Computing Lecture 10 MAS 714 Hartmut Klauck.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
2IL05 Data Structures Fall 2007 Lecture 13: Minimum Spanning Trees.
Spring 2015 Lecture 11: Minimum Spanning Trees
COSC 2007 Data Structures II Chapter 14 Graphs III.
Minimum Spanning Trees and Kruskal’s Algorithm CLRS 23.
7.1 and 7.2: Spanning Trees. A network is a graph that is connected –The network must be a sub-graph of the original graph (its edges must come from the.
EMIS 8374 Optimal Trees updated 25 April slide 1 Minimum Spanning Tree (MST) Input –A (simple) graph G = (V,E) –Edge cost c ij for each edge e 
Minimum spanning trees (MST) Def: A spanning tree of a graph G is an acyclic subset of edges of G connecting all vertices in G. A sub-forest of G is an.
Union-find Algorithm Presented by Michael Cassarino.
Minimum Spanning Trees CSE 373 Data Structures Lecture 21.
Minimum Bottleneck Spanning Trees (MBST)
Trees Dr. Yasir Ali. A graph is called a tree if, and only if, it is circuit-free and connected. A graph is called a forest if, and only if, it is circuit-free.
Graphs Upon completion you will be able to:
Graphs 2015, Fall Pusan National University Ki-Joune Li.
Lecture 12 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Minimum Spanning Tree. p2. Minimum Spanning Tree G=(V,E): connected and undirected w: E  R, weight function a b g h i c f d e
1 GRAPHS – Definitions A graph G = (V, E) consists of –a set of vertices, V, and –a set of edges, E, where each edge is a pair (v,w) s.t. v,w  V Vertices.
Greedy Algorithms General principle of greedy algorithm
Minimum Spanning Trees
Data Structures and Algorithms I Day 19, 11/3/11 Edge-Weighted Graphs
Introduction to Algorithms
Minimum Spanning Tree Chapter 13.6.
Minimum Spanning Trees
C.Eng 213 Data Structures Graphs Fall Section 3.
Lecture 12 Algorithm Analysis
Introduction to Graphs
Short paths and spanning trees
Autumn 2016 Lecture 11 Minimum Spanning Trees (Part II)
Minimum-Cost Spanning Tree
Minimum Spanning Trees
EMIS 8373: Integer Programming
Connected Components Minimum Spanning Tree
Minimum Spanning Tree.
Autumn 2015 Lecture 11 Minimum Spanning Trees (Part II)
Data Structures – LECTURE 13 Minumum spanning trees
2018, Fall Pusan National University Ki-Joune Li
Chapter 23 Minimum Spanning Tree
CS 583 Analysis of Algorithms
Lecture 12 Algorithm Analysis
CSE373: Data Structures & Algorithms Lecture 19: Spanning Trees
2017, Fall Pusan National University Ki-Joune Li
Minimum Spanning Trees
Chu-Liu/Edmonds’ Algorithm an introduction
Richard Anderson Lecture 10 Minimum Spanning Trees
Minimum Spanning Tree.
Minimum Spanning Trees
Fundamental Structures of Computer Science II
Lecture 12 Algorithm Analysis
Winter 2019 Lecture 11 Minimum Spanning Trees (Part II)
Analysis of Algorithms
Chapter 23: Minimum Spanning Trees: A graph optimization problem
Minimum-Cost Spanning Tree
INTRODUCTION A graph G=(V,E) consists of a finite non empty set of vertices V , and a finite set of edges E which connect pairs of vertices .
Minimum Spanning Trees
Autumn 2019 Lecture 11 Minimum Spanning Trees (Part II)
Presentation transcript:

Chu-Liu/Edmonds’ Algorithm an introduction Qingxia Liu 2018/12/8 yjydfnhc@126.com

A Quick Glance Chu-Liu/Edmonds’ Algorithm Contributors input output a weighted directed graph G(V,E) root r (reachable to every vertex of G) output a minimum spanning tree of G rooted at r Contributors Yoeng-jin Chu and Tseng-hong Liu (1965) Edmonds(1967) Bock(1971) Tarjan(1977): O(ElogV), O(V2) Gabow(1986): O(E+VlogV) ……

Basic Concepts Minimum Spanning Tees in directed graphs a spanning tree rooted at r a set of n-1 edges containing paths from r to every vertex of minimum total edge cost MINT ∑(u,v)∈T c(u,v)

Chu-Liu/Edmonds Algorithm Construct original S discard entering edges of r For i∈V\{r}, select the edge (k,i) of mink c(k,i) Let the selected n-1 edges be the set S. If no cycle formed, G(N,S) is a MST. Otherwise, deal with cycle.

Chu-Liu/Edmonds Algorithm Deal with Cycle For each cycle formed contract the cycle into a pseudo-node (k) for each edge(i,j) (i∈V\cycle, j∈cycle) modify the cost: c(i,k)=c(i,j)-(c(x(j),j)-min_{j}(c(x(j),j)) for each pseudo-node select the entering arc which has the smallest modified cost replace the arc which enters the same real node in S by the new selected arc. If no cycle formed, G(N,S) is a MST. else deal with cycle O(E) time where c(x(j),j) is the cost of the arc in the cycle which enters j. find the replacing arc(s) which has the minimum extra cost to eliminate cycle(s) if any

Example Construct original S 1 10 8 5 6 4 7 3 11 9 2 3 4 5 10 11 9 7 8 1 1 5 2 3 6 4 where c(x(j),j) is the cost of the arc in the cycle which enters j. find the replacing arc(s) which has the minimum extra cost to eliminate cycle(s) if any 5 4 3 6

Example Cycle Contract k 10 11 9 7 8 10 11 9 7 8 1 5 6 4 3 2 3 4 5 10 11 9 7 8 1 6 2 3 4 5 10 11 9 7 8 1 1 5 2 k 3 6 4 where c(x(j),j) is the cost of the arc in the cycle which enters j. find the replacing arc(s) which has the minimum extra cost to eliminate cycle(s) if any 5 4 3 6

Example Edge Replacing (5,4): min_{j}(c(x(j),j)=3 modify cost: c(i,k) = c(i,3)-(c(4,3)-3) or c(i,4)-(c(5,4)-3) or c(i,5)-(c(3,4)-3) Edge Replacing 1 6 2 3 4 5 10 11 9 7 8 1 1 1 5 1 9 2 2 7 5 3 3 6 6 4 7 where c(x(j),j) is the cost of the arc in the cycle which enters j. find the replacing arc(s) which has the minimum extra cost to eliminate cycle(s) if any 5 5 4 4 3 3 8 2 9 6 6

Example Minimum Spanning Tree ∑(u,v)∈T c(u,v)=23 10 11 9 7 8 10 11 9 7 6 2 3 4 5 10 11 9 7 8 1 6 2 3 4 5 10 11 9 7 8 where c(x(j),j) is the cost of the arc in the cycle which enters j. find the replacing arc(s) which has the minimum extra cost to eliminate cycle(s) if any

Implementation Tarjan (1977) O(mlogn) Camerini et.al.(1979) repaired an error where c(x(j),j) is the cost of the arc in the cycle which enters j. find the replacing arc(s) which has the minimum extra cost to eliminate cycle(s) if any

Implementation Tarjan (1977) First step: of any vertex v, choose the edge (u,v) of largest value among its entering edges, add to set H General step: for each root component S in G(H) find the largest unexamined entering edge (u,v) (v∈S) if u∈S, discard the edge; else, let W be the weakly connected component of G(H) that v∈W. if u∈W, add (u,v) to H; root component: no entering edge

Implementation Tarjan (1977) Disjoint Set Priority Queue else u∉S, u∈W, find the cycle c(between S1……Sk) formed by (u,v), let (i,j) be the minimum edge on the cycle, modify unexamined edge (x,y) y∈Si as c(x,y)=c(x,y)-c(a,y’)+c(i,j) add (u,v) to H Disjoint Set record weakly/strongly connected component Priority Queue keep track of entering edges of each strongly connected compnent root component: no entering edge

Implementation Gabow (1986) O(nlogn+m) improvement on the first phase: depth-first strategy: growth path root component: no entering edge

References Tarjan, Robert Endre. "Finding optimum branchings." Networks 7.1 (1977): 25-35. H. N. Gabow, Z. Galil, T. Spencer, and R. E. Tarjan, “Efficient algorithms for finding minimum spanning trees in undirected and directed graphs,” Combinatorica 6 (1986), 109-122. Camerini, Paolo M., Luigi Fratta, and Francesco Maffioli. "A note on finding optimum branchings." Networks 9.4 (1979): 309-312. http://www.ce.rit.edu/~sjyeec/dmst.html

Thank You ~ Any questions?

Basic Concepts Branching Optimum Branching a branching B of G is a set of edges such that each vertex has at most one in-degree if (x1,y1),(x2,y2) are distinct edges of B, then y1 != y2 no cycle Optimum Branching a branching that ∑(u,v)∈B c(u,v) is maximum/minimum

Example Minimum Spanning Tree ∑(u,v)∈T c(u,v)=23 10 11 9 7 8 10 11 9 7 6 2 3 4 5 10 11 9 7 8 1 6 2 3 4 5 10 11 9 7 8 where c(x(j),j) is the cost of the arc in the cycle which enters j. find the replacing arc(s) which has the minimum extra cost to eliminate cycle(s) if any