Parallel Algorithms for Generating Subsets and Set Partitions

We present adaptive and cost-optimal parallel algorithms for generating 1) all subsets of the set {1,...,n}, 2) all limited size subsets (each subset has at most m elements for a given m), and 3) all partitions of the set. The algorithms are based on a simple model of parallel computation which assumes the existence of k individual processors operating synchronously without need to communicate among themselves. Parallel ranking and unranking procedures for each case are also presented. Applications of the parallel subset generation algorithm to subset-sum, knapsack and base-enumeration problems are subsequently presented.

[1]  E. Reingold,et al.  Combinatorial Algorithms: Theory and Practice , 1977 .

[2]  I. Semba An Efficient Algorithm for Generating All Partitions of the Set {1,2,…, n} , 1984 .

[3]  M. Er Lexicographic enumeration, ranking and unranking of permutations of r out of n objects , 1987 .

[4]  Benjamin W. Wah,et al.  Multiprocessing of Combinatorial Search Problems , 1985, Computer.

[5]  Ivan Stojmenovic,et al.  A Fast Iterative Algorithm for Generating Set Partitions , 1989, Comput. J..

[6]  Ellis Horowitz,et al.  Computing Partitions with Applications to the Knapsack Problem , 1974, JACM.

[7]  Z Qiang An O(ln n) parallel algorithm for the subset sum problem , 1986, SIGA.

[8]  Ichiro Semba An Efficient Algorithm for Generating All k-Subsets (1 <= k <= m <= n) of the Set { 1, 2, ..., n } in Lexicographical Order , 1984, J. Algorithms.

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

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

[11]  Mark B. Wells,et al.  Elements of Combinatorial Computing , 2014 .

[12]  Masahiro Miyakawa,et al.  On the number of clique Boolean functions , 1988 .

[13]  M. C. Er,et al.  A Fast Algorithm for Generating Set Partitions , 1988, Comput. J..

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

[15]  Peter Eades,et al.  Performance of Subset Generating Algorithms , 1985 .

[16]  C. Ribeiro Parallel Computer Models and Combinatorial Algorithms , 1987 .

[17]  Ivan Stojmenovic,et al.  Applications of a Subset-Generating Algorithm to Base Enumeration, Knapsack and Minimal Covering Problems , 1988, Comput. J..

[18]  Allen Van Gelder,et al.  Computer Algorithms: Introduction to Design and Analysis , 1978 .

[19]  Ehud D. Karnin,et al.  A Parallel Algorithm for the Knapsack Problem , 1984, IEEE Transactions on Computers.

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

[21]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

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

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

[24]  K. Mani Chandy Parallel program design , 1989 .

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

[26]  Benjamin W. Wah,et al.  Coping with Anomalies in Parallel Branch-and-Bound Algorithms , 1986, IEEE Transactions on Computers.

[27]  H. Fredricksen A Survey of Full Length Nonlinear Shift Register Cycle Algorithms , 1982 .

[28]  A. Nijenhuis Combinatorial algorithms , 1975 .

[29]  Sara Baase,et al.  Computer algorithms - introduction to design and analysis (2 ed.) , 1988 .

[30]  I. Semba A Note on Enumerating Combinations in Lexicographical Order , 1981 .