1 / 17

Chu-Liu/Edmonds’ Algorithm an introduction

Chu-Liu/Edmonds’ Algorithm an introduction. Qingxia Liu. A Quick Glance. Chu-Liu/Edmonds’ Algorithm input 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)

edithgarcia
Télécharger la présentation

Chu-Liu/Edmonds’ Algorithm an introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chu-Liu/Edmonds’ Algorithman introduction Qingxia Liu yjydfnhc@126.com

  2. A Quick Glance • Chu-Liu/Edmonds’ Algorithm • input • 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) • ……

  3. 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)

  4. 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.

  5. 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

  6. Example • Construct original S 1 1 10 8 2 3 1 5 6 4 1 7 5 3 4 2 3 11 5 6 9 4 2 6 5 4 3 6

  7. Example • Cycle Contract 1 1 1 1 10 10 8 8 2 2 3 1 5 5 3 6 6 4 4 1 7 7 5 5 3 3 4 4 2 k 11 11 5 3 6 9 4 2 2 9 6 6 5 4 3 6

  8. Example • (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 1 10 8 2 3 1 1 5 6 4 1 7 1 9 5 3 4 2 2 7 5 11 5 3 3 6 6 9 4 7 2 6 5 5 4 4 3 3 8 2 9 6 6

  9. Example • Minimum Spanning Tree 1 1 ∑(u,v)∈T c(u,v)=23 1 1 10 10 8 8 2 2 3 5 5 3 6 6 4 4 7 7 5 5 3 3 4 4 11 11 9 9 2 2 6 6

  10. Implementation • Tarjan (1977) • O(mlogn) • Camerini et.al.(1979) repaired an error

  11. 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;

  12. Implementation • Tarjan (1977) 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

  13. Implementation • Gabow (1986) • O(nlogn+m) • improvement on the first phase: • depth-first strategy: growth path

  14. 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

  15. Thank You ~ Any questions?

  16. Basic Concepts • 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

  17. Example • Minimum Spanning Tree 1 1 ∑(u,v)∈T c(u,v)=23 1 5 1 10 10 2 8 2 3 6 2 5 6 4 8 7 5 7 11 3 4 3 4 11 6 9 2 6 5 9 3 4

More Related