The latest book by Applegate, Bixby, Chvátal, and Cook provides an excellent survey of methods that kick-started the "engine of discovery in applied mathematics", known as the Travelling Salesman Problem (TSP). In more than 600 pages, the authors present a survey of methods used in their present-best TSP solver Concorde, almost to the exclusion of any other content. Chapters 1-4 describe the TSP and Chapters 5-6 provide a brief introduction to solving the TSP by using the branch and cut method. At the heart of the book are then Chapters 7-11, which survey various classes of cuts, in some cases first proposed by the authors themselves. Chapter 7 surveys cuts from blossoms and blocks, Chapter 8 presents cuts from combs and consecutive ones, and Chapter 9 introduces cuts from dominoes. Chapters 11 and 12 then describe in yet more detail separation and metamorphoses of strong valid inequalities. Other variants of the problem, such as the asymmetric TSP, and other solution approaches, including metaheuristics and approximation algorithms, are mentioned only in the passing. They are, however, well-covered elsewhere (Gutin & Punnen, 2002), and the seemingly narrow focus consequently enables the authors to provide an outstandingly in-depth treatment.
I cannot be stressed enough how much the treatment benefits from authors' extensive experience with development of Concorde (http://www.tsp.gatech.edu/). In many textbooks on combinatorial optimisation, primal heuristics are mentioned only in passing and cuts are presented in the very mathematical style of definition - proof of validity - proof of dimensionality. Not here. Chapter 6-11 suggest separation routines, exact or heuristic, alongside the description of strong valid inequalities, Chapter 12 is devoted to management of cuts and instances of linear programming, Chapter 13 describes pricing routines for column generation, and last but not least, Chapter 15 is devoted to primal (tour-finding) heuristics. "Implementation details", such as the choice of suitable data structures and trade-offs between heuristic and exact separation, are thoroughly discussed. This makes the book a wonderful introduction to the design of branch-and-cut/price in general.
Although narrow in scope, the book can be recommended to a surprisingly wide audience -- most likely to any researcher working in combinatorial optimisation, and anyone else with a keen interest in algorithm design for combinatorial optimisation.
For the full review, see DOI [...].