optrees (version 1.0)

msArborEdmonds: Minimum cost arborescence with Edmonds' algorithm

Description

Given a connected weighted and directed graph, msArborEdmonds uses Edmonds' algorithm to find a minimum cost arborescence.

Usage

msArborEdmonds(nodes, arcs, source.node = 1, stages.data = FALSE)

Arguments

nodes
vector containing the nodes of the graph, identified by a number that goes from $1$ to the order of the graph.
arcs
matrix with the list of arcs of the graph. Each row represents one arc. The first two columns contain the two endpoints of each arc and the third column contains their weights.
source.node
source node of the graph. It's node $1$ by default.
stages.data
logical value indicating if the function returns data of each stage. Is FALSE by default.

Value

msArborEdmonds returns a list with:
tree.nodes
vector containing the nodes of the minimum cost arborescence.
tree.arcs
matrix containing the list of arcs of the minimum cost arborescence.
stages
number of stages required.

Details

Edmonds' algorithm was developed by the mathematician and computer scientist Jack R. Edmonds in 1967. Previously, it was proposed in 1965 by Yoeng-jin Chu and Tseng-hong Liu.

References

Chu, Y. J., and Liu, T. H., "On the Shortest Arborescence of a Directed Graph", Science Sinica, vol. 14, 1965, pp. 1396-1400.

Edmonds, J., "Optimum Branchings", Journal of Research of the National Bureau of Standards, vol. 71B, No. 4, October-December 1967, pp. 233-240.

See Also

A more general function getMinimumSpanningTree.