Textbook in PDF format
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.
Table of contents
Introduction
Boosting Distributed Constraint Networks
Parallel Tree Search for Satisfiability
Parallel Local Search for Satisfiability
Learning Variable Dependencies
Continuous Search
Autonomous Search
Conclusion and Perspectives