filename : th12699 entry : phdthesis author : Ambros Marzetta title : ZRAM: A Library of Parallel Search Algorithms and Its Use in Enumeration and Combinatorial Optimization school : ETH Zürich year : 1998 address : Institute of Theoretical Computer Science pages : 119 keywords : parallel computing, combinatorial optimization, enumeration, branch and bound, reverse search language : English month : June note : abstract : 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, backtracking 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 algorithm 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 enumeration, hyperplane arrangements, 15-puzzle, Euclidean spanning trees, connected 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.