(With apologies to Roger Alsing)

Essentials of Metaheuristics

Second Print Edition    (Online Version 2.2)Now out in paperback!

Sean Luke

Department of Computer Science
George Mason University

About the Book

This is an open set of lecture notes on metaheuristics algorithms, intended for undergraduate students, practitioners, programmers, and other non-experts. It was developed as a series of lecture notes for an undergraduate course I taught at GMU. The chapters are designed to be printable separately if necessary. As it's lecture notes, the topics are short and light on examples and theory. It's best when complementing other texts. With time, I might remedy this.

What is a Metaheuristic?

A common but unfortunate name for any stochastic optimization algorithm intended to be the last resort before giving up and using random or brute-force search. Such algorithms are used for problems where you don't know how to find a good solution, but if shown a candidate solution, you can give it a grade. The algorithmic family includes genetic algorithms, hill-climbing, simulated annealing, ant colony optimization, particle swarm optimization, and so on.

How to Buy the Book

Essentials of Metaheuristics, Second Edition is available at these fine internet retailers:

How to Download the Book

To download the PDF file (about 5 megabytes), please fill out the form below. To justify giving this sucker away for free, I need aggregate (and only aggregate) statistics on how many people are using it and in what way. I'm a professor, and am not in the business of abusing personal data. Help me out: fill out the form.
















Or if you are without honor, you may skip this step and simply download the text as a PDF (5MB) or as a ZIP file (4MB).

Reviews

Genetic Programming and Evolvable Machines, one of the major journals in the field, has published a kind review of the first edition.

Translations

With permission, and the awe of the author, Yuri Tsoy is translating the entire text into Russian.

Feedback

This book relies on your feedback to improve it. If you have any complaints, bug-fixes, or suggestions, send email to metaheuristics@cs.gmu.edu . If you have a particularly major change to make, I can be convinced to provide you with the original LaTeX source for the document to enable you to make suggested changes freely.

How to Cite the Book

Because it's an online text, you need to be careful with your citation. The correct citation is:
Sean Luke, 2013, Essentials of Metaheuristics, Lulu, second edition, available for free at http://cs.gmu.edu/~sean/book/metaheuristics/

Please always include the URL—it's the only unique identifier to the text! Note the lack of edition number: I expect these to change very rapidly, and Google Scholar and Citeseer both have trouble with fast-changing editions. If you prefer BibTeX:

@Book{ Luke2013Metaheuristics, 
       author =    { Sean Luke }, 
       title =     { Essentials of Metaheuristics },
       edition =   { second },
       year =      { 2013 }, 
       publisher = { Lulu },
       note =      { Available for free at http://cs.gmu.edu/$\sim$sean/book/metaheuristics/ } 
     }

Open License

The text is licensed under the Creative Commons Attribution-No Derivative Works 3.0 United States License, except for certain portions of the work licensed under more liberal licenses as mentioned in the frontmatter of the text. A quick license summary:
  1. You are free to redistribute this document.
  2. You may not modify, transform, or build upon the document except for personal use.
  3. You must maintain the author's attribution of the document at all times.
  4. You may not use the attribution to imply that the author endorses you or your document use.

This summary is just informational: if there is any conflict in interpretation between the summary and the actual license, the actual license always takes precedence.

Note that this license does not extend to the source files used to produce the document. Those are still mine (for now).

Software

A number of the algorithms described in this book have been implemented in ECJ, the author's Java-based evolutionary computation toolkit.

Support

This book is based upon work supported in part by the National Science Foundation under Grant Number 0916870. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).