On random and adaptive parallel generation of combinatorial objects

This paper describes functions mapping the interval [0 .. 1) into the set of combinatorial objects of certain kind, e.g. permutations, combinations, binary and t-ary trees, subsets, variations, combinations with repetitions, permutations of combinations and composition of integers. These mappings can be used for generating these objects at random, with equal probability of each object to be chosen. The novelty of the technique is that it avoids the use of very large integers and applies the random number generator only once at the same time (known methods either use counters that are exponential in the size of objects or make use of a series of random numbers). The advantage of the new method is that it can be applied for both random object generation and dividing all objects into desirable sized groups. The latter is exploited in designing adaptive algorithm for generating all combinations, permutationst-ary trees, or variations, on a parallel model of computation, where an algorithm runs adaptively if i...

[1]  Frank Ruskey,et al.  Generating Binary Trees Lexicographically , 1977, SIAM J. Comput..

[2]  Chau-Jy Lin Parallel Algorithm for Generating Permutations on Linear Array , 1990, Inf. Process. Lett..

[3]  I. Stomenovic An optimal algorithm for generating equivalence relations on a linear array of processors , 1990 .

[4]  Observations on the generation of permutations from random sequences , 1989 .

[5]  Ivan Stojmenovic,et al.  An Optimal Parallel Algorithm for Generating Combinations , 1989, Inf. Process. Lett..

[6]  Shmuel Zaks,et al.  Lexicographic Generation of Ordered Trees , 1980, Theor. Comput. Sci..

[7]  Gary D. Knott A numbering system for combinations , 1974, CACM.

[8]  M. Ronan Sleep,et al.  Uniform Random Generation of Balanced Parenthesis Strings , 1980, TOPL.

[9]  David Gries,et al.  Generating a random cyclic permutation , 1988, BIT Comput. Sci. Sect..

[10]  M. C. Er A Parallel Algorithm for Cost-Optimal Generation of Permutations of r out of n Items , 1988 .

[11]  Andrzej Proskurowski On the Generation of Binary Trees , 1980, JACM.

[12]  H. W. Martin,et al.  A random binary tree generator , 1989, CSC '89.

[13]  T. C. Hu,et al.  Combinatorial algorithms , 1982 .

[14]  Ivan Stojmenovic,et al.  Systolic generation of derangements , 1991, Algorithms and Parallel VLSI Architectures.

[15]  Aviezri S. Fraenkel,et al.  Permutation Generation on Vector Processors , 1982, Comput. J..

[16]  Gary D. Knott,et al.  A Numbering System for Permutations of Combinations , 1976, Commun. ACM.

[17]  Ivan Stojmenovic An optimal algorithm for generating equivalence relations on a linear array of processors , 1990, BIT Comput. Sci. Sect..

[18]  I. A Simple Systolic Algorithm for Generating Combinations in Lexicographic Order , 1992 .

[19]  Vidyadhar G. Kulkarni,et al.  Generating Random Combinatorial Objects , 1990, J. Algorithms.

[20]  Anthony E. Trojanowski Ranking and Listing Algorithms for k-ary Trees , 1978, SIAM J. Comput..

[21]  M. C. Er An Efficient Implementation of Permutation Backtracking in Lexicographic Order , 1987, Comput. J..

[22]  S. Sattolo An Algorithm to Generate a Random Cyclic Permutation , 1986, Inf. Process. Lett..

[23]  Marvin H. Solomon,et al.  A Note on Enumerating Binary Trees , 1980, JACM.

[24]  Selim G. Akl,et al.  Generating combinations in parallel , 1986, BIT Comput. Sci. Sect..

[25]  Jong-Chuang Tsay,et al.  A systolic generation of combinations , 1989, BIT Comput. Sci. Sect..

[26]  Selim G. Akl,et al.  Adaptive and Optimal Parallel Algorithms for Enumerating Permutations and Combinations , 1987, Comput. J..

[27]  G. P. Bhattacharjee,et al.  Parallel Generation of Permutations , 1983, Comput. J..

[28]  E. S. Page Errata: A Note on Generating Random Permutations , 1968 .

[29]  Gary D. Knott,et al.  A numbering system for binary trees , 1977, CACM.

[30]  Maw-Sheng Chern,et al.  Parallel generation of permutations and combinations , 1986, BIT Comput. Sci. Sect..

[31]  R. V. Oakford,et al.  Tables of Random Permutations , 1963 .

[32]  M. C. Er Lexicographic Listing and Ranking of t-Ary Trees , 1987, Comput. J..

[33]  Herbert S. Wilf,et al.  A Method and Two Algorithms on the Theory of Partitions , 1975, J. Comb. Theory, Ser. A.

[34]  Selim G. Akl,et al.  Design and analysis of parallel algorithms , 1985 .