In this paper, we introduce the concept of b-branchings in digraphs, which is a generalization of branchings serving as a counterpart of b-matchings. Here b is a positive integer vector on the vertex set of a digraph, and a b-branching is defined as a common independent set of two matroids defined by b: an arc set is a b-branching if it has at most b(v) arcs sharing the terminal vertex v, and it is an independent set of a certain sparsity matroid defined by b. We demonstrate that b-branchings yield an appropriate generalization of branchings by extending several classical results on branchings. We first present a multi-phase greedy algorithm for finding a maximum-weight b-branching. We then prove a packing theorem extending Edmonds' disjoint branchings theorem, and provide a strongly polynomial algorithm for finding optimal disjoint b-branchings. As a consequence of the packing theorem, we prove the integer decomposition property of the b-branching polytope. Finally, we deal with a further generalization in which a matroid constraint is imposed on the b(v) arcs sharing the terminal vertex v.
IntroductionSince the pioneering work of Edmonds [12,14], the importance of matroid intersection has been well appreciated. A special class of matroid intersection is branchings (or arborescences) in digraphs. Branchings have several good properties which do not hold for general matroid intersection. The objective of this paper is to propose a class of matroid intersection which generalizes branchings and inherits those good properties of branchings.One of the good properties of branchings is that a maximum-weight branching can be found by a simple combinatorial algorithm [4,6,11,23]. This algorithm is much simpler than general weighted matroid intersection algorithms, and is referred to as a "multi-phase greedy algorithm" in the textbook by Kleinberg and Tardos [34].