Results 1  10
of
41
A Survey of Combinatorial Gray Codes
 SIAM Review
, 1996
"... The term combinatorial Gray code was introduced in 1980 to refer to any method for generating combinatorial objects so that successive objects differ in some prespecified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing nbit binary numbers so that ..."
Abstract

Cited by 93 (2 self)
 Add to MetaCart
The term combinatorial Gray code was introduced in 1980 to refer to any method for generating combinatorial objects so that successive objects differ in some prespecified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing nbit binary numbers so that successive numbers differ in exactly one bit position, as well as work in the 1960's and 70's on minimal change listings for other combinatorial families, including permutations and combinations. The area of combinatorial Gray codes was popularized by Herbert Wilf in his invited address at the SIAM Discrete Mathematics Conference in 1988 and his subsequent SIAM monograph in which he posed some open problems and variations on the theme. This resulted in much recent activity in the area and most of the problems posed by Wilf are now solved. In this paper, we survey the area of combinatorial Gray codes, describe recent results, variations, and trends, and highlight some open problems. ...
Generating Linear Extensions Fast
"... One of the most important sets associated with a poset P is its set of linear extensions, E(P) . "ExtensionFast.html" 87 lines, 2635 characters One of the most important sets associated with a poset P is its set of linear extensions, E(P) . In this paper, we present an algorithm to generat ..."
Abstract

Cited by 40 (6 self)
 Add to MetaCart
One of the most important sets associated with a poset P is its set of linear extensions, E(P) . "ExtensionFast.html" 87 lines, 2635 characters One of the most important sets associated with a poset P is its set of linear extensions, E(P) . In this paper, we present an algorithm to generate all of the linear extensions of a poset in constant amortized time; that is, in time O(e(P)) , where e ( P ) =  E(P) . The fastest previously known algorithm for generating the linear extensions of a poset runs in time O(n e(P)) , where n is the number of elements of the poset. Our algorithm is the first constant amortized time algorithm for generating a ``naturally defined'' class of combinatorial objects for which the corresponding counting problem is #Pcomplete. Furthermore, we show that linear extensions can be generated in constant amortized time where each extension differs from its predecessor by one or two adjacent transpositions. The algorithm is practical and can be modified to efficiently count linear extensions, and to compute P(x < y) , for all pairs x,y , in time O( n^2 + e ( P )).
Generating Linear Extensions of Posets by Transpositions
 J. Combinatorial Theory (B
, 1992
"... This paper considers the problem of listing all linear extensions of a partial order so that successive extensions differ by the transposition of a single pair of elements. A necessary condition is given for the case when the partial order is a forest. A necessary and sufficient condition is given f ..."
Abstract

Cited by 27 (2 self)
 Add to MetaCart
This paper considers the problem of listing all linear extensions of a partial order so that successive extensions differ by the transposition of a single pair of elements. A necessary condition is given for the case when the partial order is a forest. A necessary and sufficient condition is given for the case where the partial order consists of disjoint chains. Some open problems are mentioned. 1 Introduction Many combinatorial objects can be represented by permutations subject to various restrictions. The set of linear extensions of a poset can be viewed as a set of permutations of the elements of the poset. If the Hasse diagram of the poset consists of two disjoint chains, then the linear extension permutations correspond to combinations. If the poset consists of disjoint chains, then the linear extension permutations correspond to multiset permutations. The extensions of the poset that is the product of a 2element chain with an nelement chain correspond to "ballot sequences" of ...
Generating Necklaces
, 1992
"... A kcolor, nbead necklace is an equivalence class of kary ntuples under rotation. In this paper, we analyze an algorithm due to Fredricksen, Kessler, and Maiorana (FKM), to show that necklaces can be generated in constant amortized time. We also present a new approach to generating necklaces whic ..."
Abstract

Cited by 20 (6 self)
 Add to MetaCart
A kcolor, nbead necklace is an equivalence class of kary ntuples under rotation. In this paper, we analyze an algorithm due to Fredricksen, Kessler, and Maiorana (FKM), to show that necklaces can be generated in constant amortized time. We also present a new approach to generating necklaces which we conjecture can also be implemented in constant amortized time. The FKM algorithm generates a list of ntuples which includes, among other things, the lexicographically smallest element of each kcolor, nbead necklace. Previously it had been shown only that the list contains at most O(n \Delta N (k; n)) elements, where N (k; n) is the number of kcolor, nbead necklaces, and that successive elements can be generated in worst case time O(n), giving a bound of O(n 2 \Delta N (k; n)) on the time for the algorithm. We show that the number of elements generated by the FKM algorithm approaches (k=(k \Gamma 1)) \Delta N (k; n) and the total time is only O(N (k; n)). A byproduct of our anal...
Fractal Symbolic Analysis
, 2001
"... Modern compilers perform wholesale restructuring of programs to improve their efficiency. Dependence analysis is the most widely used technique for proving the correctness of such transformations, but it suffers from the limitation that it considers only the memory locations read and written by a st ..."
Abstract

Cited by 15 (2 self)
 Add to MetaCart
Modern compilers perform wholesale restructuring of programs to improve their efficiency. Dependence analysis is the most widely used technique for proving the correctness of such transformations, but it suffers from the limitation that it considers only the memory locations read and written by a statement, and does not assume any particular interpretation for the operations in that statement. Exploiting the semantics of these operations permits more transformations to be proved correct, and is critical for automatic restructuring of codes such as LU with partial pivoting.
Parametric and sliced causality
 In Computer Aided Verification (CAV
, 2007
"... Abstract. Happenbefore causal partial order relations have been widely used in concurrent program verification and testing. In this paper, we present a parametric approach to happenbefore causal partial orders. All existing variants of happenbefore relations can be obtained as instances of the pa ..."
Abstract

Cited by 15 (3 self)
 Add to MetaCart
Abstract. Happenbefore causal partial order relations have been widely used in concurrent program verification and testing. In this paper, we present a parametric approach to happenbefore causal partial orders. All existing variants of happenbefore relations can be obtained as instances of the parametric framework for particular properties on the partial orders. A novel causal partial order, called sliced causality, is defined also as an instance of the parametric framework, which loosens the obvious but strict happensbefore relation by considering static and dynamic dependence information about the program. Sliced causality has been implemented in a concurrent runtime verification tool for Java, named jPredictor, and the evaluation results show that sliced causality can significantly improve the capability of concurrent verification and testing on multithreaded Java programs. 1
Offline Algorithms for The List Update Problem
, 1996
"... Optimum offline algorithms for the list update problem are investigated. The list update problem involves implementing a dictionary of items as a linear list. Several characterizations of optimum algorithms are given; these lead to optimum algorithm which runs in time \Theta2 n (n \Gamma 1)!m, wh ..."
Abstract

Cited by 14 (2 self)
 Add to MetaCart
Optimum offline algorithms for the list update problem are investigated. The list update problem involves implementing a dictionary of items as a linear list. Several characterizations of optimum algorithms are given; these lead to optimum algorithm which runs in time \Theta2 n (n \Gamma 1)!m, where n is the length of the list and m is the number of requests. The previous best algorithm, an adaptation of a more general algorithm due to Manasse et al. [9], runs in time \Theta(n!) 2 m. 1 Introduction A dictionary is an abstract data type that stores a collection of keyed items and supports the operations access, insert, and delete. In the sequential search or list update problem, a dictionary is implemented as simple linear list, either stored as a linked collection of items or as an array. An access is done by starting at the front of the list and examining each succeeding item until either finding the item desired or reaching the end of the list and reporting the item not present...
Gray Codes for Reflection Groups
 Graphs and Combinatorics
, 1989
"... This paper appeared in "Graphs and Combinatorics", vol. 5 (1989), pp. 315325.  2  We call (1) a Gray code for G. It is wellknown that any group generated by reflections can be described by a Coxeter diagram ([7], [14], [15], [31]). The finite reflection groups for which the Coxeter d ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
This paper appeared in "Graphs and Combinatorics", vol. 5 (1989), pp. 315325.  2  We call (1) a Gray code for G. It is wellknown that any group generated by reflections can be described by a Coxeter diagram ([7], [14], [15], [31]). The finite reflection groups for which the Coxeter diagram is a connected graph are ([7], p. 193, Theorem 1) the groups ! n (n ³ 1),
A Gray Code for Necklaces of Fixed Density
 SIAM J. Discrete Math
, 1997
"... A necklace is an equivalence class of binary strings under rotation. In this paper, we present a Gray code listing of all nbit necklaces with d ones so that (i) each necklace is listed exactly once by a representative from its equivalence class and (ii) successive representatives, including the las ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
A necklace is an equivalence class of binary strings under rotation. In this paper, we present a Gray code listing of all nbit necklaces with d ones so that (i) each necklace is listed exactly once by a representative from its equivalence class and (ii) successive representatives, including the last and the first in the list, differ only by the transposition of two bits. The total time required is O(nN (n; d)), where N (n; d) denotes the number of nbit binary necklaces with d ones. This is the first algorithm for generating necklaces of fixed density which is known to achieve this time bound. 1 Introduction In a combinatorial family, a Gray code is an exhaustive listing of the objects in the family so that successive objects differ only in a small way [Wil]. The classic example is the binary reflected Gray code [Gra], which is a list of all nbit binary strings in which each string differs from its successor in exactly one bit. By applying the binary Gray code, a variety of problems...
Loopless generation of multiset permutations using a constant number of variables by prefix shifts
 In SODA ’09: The Twentieth Annual ACMSIAM Symposium on Discrete Algorithms
, 2009
"... This paper answers the following mathematical question: Can multiset permutations be ordered so that each permutation is a prefix shift of the previous permutation? Previously, the answer was known for the permutations of any set, and the permutations of any multiset whose corresponding set contains ..."
Abstract

Cited by 6 (6 self)
 Add to MetaCart
This paper answers the following mathematical question: Can multiset permutations be ordered so that each permutation is a prefix shift of the previous permutation? Previously, the answer was known for the permutations of any set, and the permutations of any multiset whose corresponding set contains only two elements. This paper also answers the following algorithmic question: Can multiset permutations be generated by a loopless algorithm that uses sublinear additional storage? Previously, the best loopless algorithm used a linear amount of additional storage. The answers to these questions are both yes.