ZRAM: a library of parallel search algorithms and its use in enumeration and combinatorial optimization

ZRAM is a software library which renders the power of parallel computers usable for combinatorial optimization and enumeration. It provides a set of parallel search engines for branch-and-bound, reverse search, backtrack¬ ing and tree-size estimation. These search engines hide the complexity of parallelism from the application programmer. ZRAM contains the first parallel implementation of the reverse-search al¬ gorithm and the first parallel branch-and-bound engine that can be restarted at checkpoints. It is the first search library containing a tree-size estimation tool, which proved to be valuable in allocating the limited CPU resources to the most promising problem instances. The combination of these elements, together with the efficiency of the implementation, allowed us to solve large enumeration and combinatorial optimization problems. These benchmarks include quadratic assignment instances which were previously unsolved and the enumeration of the vertices of complex high-dimensional polytopes. ZRAM has proved its flexibility during the development of a wide range of applications (e.g., quadratic assignment problem, vertex and facet enumer¬ ation, hyperplane arrangements, 15-puzzle, Euclidean spanning trees, con¬ nected induced subgraphs). Some of its users had little or no experience in parallel programming and got access to parallel computers only through ZRAM. The work on ZRAM has clarified what properties we require of a parallel search library and demonstrates that a four-layered structure (applications, search engines, common services, host systems) is a suitable architecture.

[1]  Mauro Dell'Amico,et al.  Annotated Bibliographies in Combinatorial Optimization , 1997 .

[2]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[3]  Panos M. Pardalos,et al.  Solving Combinatorial Optimization Problems in Parallel - Methods and Techniques , 1996 .

[4]  Jens Clausen,et al.  Joining forces in solving large-scale quadratic assignment problems in parallel , 1997, Proceedings 11th International Parallel Processing Symposium.

[5]  Reinhard Lüling,et al.  Load balancing for distributed branch & bound algorithms , 1992, Proceedings Sixth International Parallel Processing Symposium.

[6]  Victor J. Rayward-Smith,et al.  Branch-and-bound as a higher-order function , 1991, Ann. Oper. Res..

[7]  Andrew Sohn,et al.  H-PBS: a hash-based scalable technique for parallel bidirectional search , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[8]  Ramesh Subramonian,et al.  LogP: a practical model of parallel computation , 1996, CACM.

[9]  Afonso Ferreira,et al.  Parallel best-first branch-and-bound in discrete optimization: a framework , 1995, Solving Combinatorial Optimization Problems in Parallel.

[10]  David Avis,et al.  A pivoting algorithm for convex hulls and vertex enumeration of arrangements and polyhedra , 1991, SCG '91.

[11]  Teodor Gabriel Crainic,et al.  PARALLEL BRANCH-AND-BOUND ALGORITHMS: SURVEY AND SYNTHESIS , 1993 .

[12]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .

[13]  Ceder,et al.  Ground states of a ternary fcc lattice model with nearest- and next-nearest-neighbor interactions. , 1994, Physical review. B, Condensed matter.

[14]  Jakob Nielsen,et al.  The usability engineering life cycle , 1992, Computer.

[15]  Jürg Nievergelt,et al.  The parallel search bench ZRAM and its applications , 1999, Ann. Oper. Res..

[16]  Yuji Shinano,et al.  A generalized utility for parallel branch and bound algorithms , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[17]  Panos M. Pardalos,et al.  Parallel Search for Combinatorial Optimization : Genetic Algorithms , Simulated Annealing , Tabu Search and GRASP ? , 1995 .

[18]  Kien A. Hua,et al.  On random sampling for parallel simulated annealing , 1994, Proceedings of 8th International Parallel Processing Symposium.

[19]  Yves Crama,et al.  Local Search in Combinatorial Optimization , 2018, Artificial Neural Networks.

[20]  Yuji Shinano,et al.  Control schemes in a generalized utility for parallel branch-and-bound algorithms , 1997, Proceedings 11th International Parallel Processing Symposium.

[21]  Salah Dowaji,et al.  Building a parallel branch and bound library , 1996, Solving Combinatorial Optimization Problems in Parallel.

[22]  Roland Rühl A parallelizing compiler for distributed memory parallel processors , 1992 .

[23]  Jens Clausen,et al.  Solving Large-Scale QAP Problems in Parallel with the Search Library ZRAM , 1998, J. Parallel Distributed Comput..

[24]  Komei Fukuda,et al.  Double Description Method Revisited , 1995, Combinatorics and Computer Science.

[25]  Sartaj Sahni,et al.  Parallel Computing: Performance Metrics and Models , 1995 .

[26]  Stefan Thienel,et al.  ABACUS - a branch-and-CUt system , 1995 .

[27]  Alex M. Andrew,et al.  Modern Heuristic Search Methods , 1998 .

[28]  Reinhard Lüling,et al.  A general purpose distributed implementation of simulated annealing , 1992, [1992] Proceedings of the Fourth IEEE Symposium on Parallel and Distributed Processing.

[29]  Nora Sleumer,et al.  Output-Sensitive Cell Enumeration in Hyperplane Arrangements , 1998, Nord. J. Comput..

[30]  Udi Manber,et al.  DIB—a distributed implementation of backtracking , 1987, TOPL.

[31]  Friedemann Mattern,et al.  Experience with a New Distributed Termination Detection Algorithm , 1987, WDAG.

[32]  Anestis A. Toptsis Parallel bidirectional heuristic search with dynamic process re-direction , 1994, Proceedings of 8th International Parallel Processing Symposium.

[33]  Stefan Tschöke,et al.  A New Parallel Approach to the Constrained Two-Dimensional Cutting Stock Problem , 1995, IRREGULAR.

[34]  David Avis,et al.  Reverse Search for Enumeration , 1996, Discret. Appl. Math..

[35]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.