© 2013

Combinatorial Search: From Algorithms to Systems

  • Summarizes the state of the art and proposes a clear architecture for solver and autonomous solvers

  • Case studies translate the theoretical ideas into real-world applications

  • Valuable for researchers and practitioners working on optimization, complexity theory, search, and constraints


Table of contents

  1. Front Matter
    Pages I-XIII
  2. Youssef Hamadi
    Pages 1-3
  3. Youssef Hamadi
    Pages 5-26
  4. Youssef Hamadi
    Pages 27-48
  5. Youssef Hamadi
    Pages 49-69
  6. Youssef Hamadi
    Pages 71-82
  7. Youssef Hamadi
    Pages 83-97
  8. Youssef Hamadi
    Pages 99-122
  9. Youssef Hamadi
    Pages 123-126
  10. Back Matter
    Pages 127-139

About this book


Although they are believed to be unsolvable in general, tractability results suggest that some practical NP-hard problems can be efficiently solved. Combinatorial search algorithms are designed to efficiently explore the usually large solution space of these instances by reducing the search space to feasible regions and using heuristics to efficiently explore these regions. Various mathematical formalisms may be used to express and tackle combinatorial problems, among them the constraint satisfaction problem (CSP) and the propositional satisfiability problem (SAT). These algorithms, or constraint solvers, apply search space reduction through inference techniques, use activity-based heuristics to guide exploration, diversify the searches through frequent restarts, and often learn from their mistakes.

In this book the author focuses on knowledge sharing in combinatorial search, the capacity to generate and exploit meaningful information, such as redundant constraints, heuristic hints, and performance measures, during search, which can dramatically improve the performance of a constraint solver. Information can be shared between multiple constraint solvers simultaneously working on the same instance, or information can help achieve good performance while solving a large set of related instances. In the first case, information sharing has to be performed at the expense of the underlying search effort, since a solver has to stop its main effort to prepare and commu

nicate the information to other solvers; on the other hand, not sharing information can incur a cost for the whole system, with solvers potentially exploring unfeasible spaces discovered by other solvers. In the second case, sharing performance measures can be done with little overhead, and the goal is to be able to tune a constraint solver in relation to the characteristics of a new instance – this corresponds to the selection of the most suitable algorithm for solving a given instance.

The book is suitable for researchers, practitioners, and graduate students working in the areas of optimization, search, constraints, and computational complexity.


Autonomous search Constraint networks Constraint programming (CP) Constraint satisfaction problem (CSP) Constraints Continuous search Knowledge sharing Machine learning Satisfiability problem (SAT) Search

Authors and affiliations

  1. 1.Microsoft Research CambridgeCambridgeUnited Kingdom

About the authors

Dr. Youssef Hamadi is the head of the Constraint Reasoning Group at Microsoft Research Cambridge, and his research interests include combinatorial optimization in alternative frameworks (parallel and distributed architectures); the application of machine learning to search; autonomous search; and parallel propositional satisfiability.

Bibliographic information

Industry Sectors
Chemical Manufacturing
IT & Software
Consumer Packaged Goods
Materials & Steel
Finance, Business & Banking
Energy, Utilities & Environment
Oil, Gas & Geosciences


“The book deals with combinatorial search algorithms for NP-hard problems, focusing on knowledge sharing in combinatorial search. … The diversity and originality of the proposed methods could be helpful for researchers, practitioner and graduate students working in optimization, search, and computational complexity.” (Smaranda Belciug, zbMATH 1317.68003, 2015)

“The focus of this book is knowledge sharing in combinatorial search, a topic that is of considerable current importance in the quest for solutions to NP-hard problems. … This is an exceptionally well-written book, which, while primarily presenting the author’s own research, also provides a context for that work and many useful insights for the reader. Researchers, and possibly also practitioners, will find it well worth reading.” (Amelia Regan, Computing Reviews, May, 2014)

“The main purpose of this book is to describe several aspects of combinatorial search algorithms and systems in a unified manner. … The book is well written and will be useful for researchers and graduate students in computer science, operations research, and applied mathematics.” (Petrica Pop, Computing Reviews, January, 2014)