9 research outputs found

    A Fast Algorithm for Enumerating Bipartite Perfect Matchings

    Full text link
    Abstract: In this paper, we propose an algorithm for enumerating all the perfect matchings included in a given bipartite graph G =(V,E). The algorithm is improved by the approach which we proposed at ISAAC98. Our algorithm takes O(log |V |) time per perfect matching while the current fastest algorithm takes O(|V |) time per perfect matching

    All your bases are belong to us : listing all bases of a matroid by greedy exchanges

    Get PDF
    You provide us with a matroid and an initial base. We say that a subset of the bases "belongs to us" if we can visit each one via a sequence of base exchanges starting from the initial base. It is well-known that "All your base are belong to us". We refine this classic result by showing that it can be done by a simple greedy algorithm. For example, the spanning trees of a graph can be generated by edge exchanges using the following greedy rule: Minimize the larger label of an edge that enters or exits the current spanning tree and which creates a spanning tree that is new (i.e., hasn't been visited already). Amazingly, this works for any graph, for any labeling of its edges, for any initial spanning tree, and regardless of how you choose the edge with the smaller label in each exchange. Furthermore, by maintaining a small amount of information, we can generate each successive spanning tree without storing the previous trees. In general, for any matroid, we can greedily compute a listing of all its bases matroid such that consecutive bases differ by a base exchange. Our base exchange Gray codes apply a prefix-exchange on a prefix-minor of the matroid, and we can generate these orders using "history-free" iterative algorithms. More specifically, we store O(m) bits of data, and use O(m) time per base assuming O(1) time independence and coindependence oracles. Our work generalizes and extends a number of previous results. For example, the bases of the uniform matroid are combinations, and they belong to us using homogeneous transpositions via an Eades-McKay style order. Similarly, the spanning trees of fan graphs belong to us via face pivot Gray codes, which extends recent results of Cameron, Grubb, and Sawada [Pivot Gray Codes for the Spanning Trees of a Graph ft. the Fan, COCOON 2021]

    Traversing combinatorial 0/1-polytopes via optimization

    Get PDF
    In this paper, we present a new framework that exploits combinatorial optimization for efficiently generating a large variety of combinatorial objects based on graphs, matroids, posets and polytopes. Our method relies on a simple and versatile algorithm for computing a Hamilton path on the skeleton of any 0/1-polytope \conv(X), where X\seq \{0,1\}^n. The algorithm uses as a black box any algorithm that solves a variant of the classical linear optimization problem~min{wxxX}\min\{w\cdot x\mid x\in X\}, and the resulting delay, i.e., the running time per visited vertex on the Hamilton path, is only by a factor of logn\log n larger than the running time of the optimization algorithm. When XX encodes a particular class of combinatorial objects, then traversing the skeleton of the polytope~\conv(X) along a Hamilton path corresponds to listing the combinatorial objects by local change operations, i.e., we obtain Gray code listings. As concrete results of our general framework, we obtain efficient algorithms for generating all (cc-optimal) bases and independent sets in a matroid; (cc-optimal) spanning trees, forests, matchings, maximum matchings, and cc-optimal matchings in a general graph; vertex covers, minimum vertex covers, cc-optimal vertex covers, stable sets, maximum stable sets and cc-optimal stable sets in a bipartite graph; as well as antichains, maximum antichains, cc-optimal antichains, and cc-optimal ideals of a poset. Specifically, the delay and space required by these algorithms are polynomial in the size of the matroid ground set, graph, or poset, respectively. Furthermore, all of these listings correspond to Hamilton paths on the corresponding combinatorial polytopes, namely the base polytope, matching polytope, vertex cover polytope, stable set polytope, chain polytope and order polytope, respectively. As another corollary from our framework, we obtain an \cO(t_{\upright{LP}} \log n) delay algorithm for the vertex enumeration problem on 0/1-polytopes {xRnAxb}\{x\in\mathbb{R}^n\mid Ax\leq b\}, where ARm×nA\in \mathbb{R}^{m\times n} and~bRmb\in\mathbb{R}^m, and t_{\upright{LP}} is the time needed to solve the linear program min{wxAxb}\min\{w\cdot x\mid Ax\leq b\}. This improves upon the 25-year old \cO(t_{\upright{LP}}\,n) delay algorithm due to Bussieck and L\"ubbecke

    A New Approach for Speeding Up Enumeration Algorithms and Its Application for Matroid Bases

    No full text
    corecore