A simple derivation of Edmonds' algorithm for optimum branchings

Edmonds [1] has given an algorithm for constructing a maximum-weight branching in a weighted directed graph. His proof that the algorithm is correct is based on linear programming theory, and establishes as a by-product that a certain polyhedron has integer vertices. Here we give a direct combinatorial proof of the correctness of the algorithm.