- Edmonds's algorithm
In
graph theory , a branch of mathematics, Edmonds's algorithm or Chu–Liu/Edmonds's algorithm is analgorithm for finding a maximum or minimum branchings. When nodes are connected by weighted edges that are directed, aminimum spanning tree algorithm cannot be used. Instead an optimum branching algorithm should be applied using the algorithm proposed independently first by Chu and Liu (1965) and then by Edmonds (1967). To find a maximum path length, the largest edge value is found and connected between the two nodes, then the next largest value, and so on. If an edge creates a loop, it is erased. A minimum path length is found by starting from the smallest value.Conditions
Let BV be a vertex bucket and BE be an edge bucket. Let "v" be a vertex and "e" be an edge of maximum positive weight that is incident to "v." Ci is a circuit. G0 = (V0,E0) is the original digraph. "ui" is a replacement vertex for Ci.
Execution
i=0
A: if then goto B for some vertex and { find an edge such that w(e) = max{ w(w,y)|(w,y) Ei} if w(e) ≤ 0 then goto A } if contains a circuit { i=i+1 construct by shrinking to modify BE, BV and some edge weights } goto A
B: while i ≠ 0 { reconstruct and rename some edges in BE if was a root of an out-tree in BE { and }else{ and } i=i-1 } Maximum branching weight =To author: modify BE, BV and some edge weights - how?
- what is
?
References
* Y. J. Chu and T. H. Liu, "On the Shortest Arborescence of a Directed Graph", "Science Sinica", vol. 14, 1965, pp. 1396-1400.
* J. Edmonds, “Optimum Branchings”, "J. Res. Nat. Bur. Standards", vol. 71B, 1967, pp. 233-240.
* Alan Gibbons "Algorithmic Graph Theory," Cambridge University press, 1985 ISBN: 0-521-28881-9External links
* [http://www.ce.rit.edu/~sjyeec/dmst.html The Directed Minimum Spanning Tree Problem ] Description of the algorithm summarized by Shanchieh Jay Yang, May 2000.
* [http://edmonds-alg.sourceforge.net/ Edmonds's algorithm ( edmonds-alg )] - An
open source implementation of Edmonds's algorithm written inC++ and licensed under theMIT License * [http://algowiki.net/wiki/index.php/Edmonds%27s_algorithm AlgoWiki - Edmonds's algorithm] - A public-domain implementation of Edmonds's algorithm written in Java.
Wikimedia Foundation. 2010.