This open access book demonstrates all the steps required to design heuristic algorithms for
difficult optimization. The classic problem of the travelling salesman is used as a common
thread to illustrate all the techniques discussed. This problem is ideal for introducing
readers to the subject because it is very intuitive and its solutions can be graphically
represented. The book features a wealth of illustrations that allow the concepts to be
understood at a glance. The book approaches the main metaheuristics from a new angle
deconstructing them into a few key concepts presented in separate chapters: construction
improvement decomposition randomization and learning methods. Each metaheuristic can then be
presented in simplified form as a combination of these concepts. This approach avoids giving
the impression that metaheuristics is a non-formal discipline a kind of cloud sculpture.
Moreover it provides concrete applications of the travelling salesman problem which
illustrate in just a few lines of code how to design a new heuristic and remove all ambiguities
left by a general framework. Two chapters reviewing the basics of combinatorial optimization
and complexity theory make the book self-contained. As such even readers with a very limited
background in the field will be able to follow all the content.