2 research outputs found
Generating Signed Permutations by Twisting Two-Sided Ribbons
We provide a simple and natural solution to the problem of generating all
signed permutations of . Our solution
provides a pleasing generalization of the most famous ordering of permutations:
plain changes (Steinhaus-Johnson-Trotter algorithm). In plain changes, the
permutations of are ordered so that successive permutations differ by
swapping a pair of adjacent symbols, and the order is often visualized as a
weaving pattern involving ropes. Here we model a signed permutation using
ribbons with two distinct sides, and each successive configuration is
created by twisting (i.e., swapping and turning over) two neighboring ribbons
or a single ribbon. By greedily prioritizing -twists of the largest symbol
before -twists of the largest symbol, we create a signed version of plain
change's memorable zig-zag pattern. We provide a loopless algorithm (i.e.,
worst-case -time per object) by extending the well-known
mixed-radix Gray code algorithm.Comment: 15 pages, 7 figure
Traversing combinatorial 0/1-polytopes via optimization
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~, and the resulting delay, i.e., the running time per visited vertex on the Hamilton path, is only by a factor of larger than the running time of the optimization algorithm.
When 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 (-optimal) bases and independent sets in a matroid; (-optimal) spanning trees, forests, matchings, maximum matchings, and -optimal matchings in a general graph; vertex covers, minimum vertex covers, -optimal vertex covers, stable sets, maximum stable sets and -optimal stable sets in a bipartite graph; as well as antichains, maximum antichains, -optimal antichains, and -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 , where and~, and t_{\upright{LP}} is the time needed to solve the linear program .
This improves upon the 25-year old \cO(t_{\upright{LP}}\,n) delay algorithm due to Bussieck and L\"ubbecke