This book is divided into the following parts:
(1) Introduction to Optimization and the Simplex Algorithm for Linear Programming. (Chapters 1 to 4)
(2) Primal Dual Algorithms for Network Problems: Max-Flow and Shortest Path. (Chapters 5 to 7)
(3) Algorithms and Complexity: Ellipsoid Algorithm (Chapter 8)
(4) Other Algorithms for the Max-Flow, Matching and Minimum Spanning Tree Problems. (Chapters 9 to 12)
(5) Integer Linear Programming Algorithms (Chapters 13 and 14)
(6) NP-Complete Problems. (Chapters 15 and 16)
(7) Heuristic Methods: Approximation, Branch and Bound, and Local Search Algorithms. (Chapters 17 to 19)
This book discusses combinatorial optimization algorithms for network (or graph theory) type problems. It is well written and provides an excellent introduction to the topics listed above. I would like to highlight some areas of the book that I thought were exceptionally well done: introduction to optimization, particularly the discussion of neighborhoods; Khachiyan’s ellipsoid algorithm for linear programming; NP-complete problems and polynomial algorithms; and heuristic methods, particularly local search.
The discussion of heuristic methods is very important for solving many real world problems. Showing that a problem is NP-complete just means that it is hard to solve. The heuristic methods presented here provide a practical way to find the optimal solution.