Genetic programming (GP) is a collection of evolutionary computation techniques that allow computers to solve problems automatically. Since its inception twenty years ago, GP has been used to solve a wide range of practical problems, producing a number of human-competitive results and even patentable new inventions. Like many other areas of computer science, GP is evolving rapidly, with new ideas, techniques and applications being constantly proposed. While this shows how wonderfully prolific GP is, it also makes it difficult for newcomers to become acquainted with the main ideas in the field, and form a mental map of its different branches. Even for people who have been interested in GP for a while, it is difficult to keep up with the pace of new developments.
Many books have been written which describe aspects of GP. Some provide general introductions to the field as a whole. However, no new introductory book on GP has been produced in the last decade, and anyone wanting to learn about GP is forced to map the terrain painfully on their own. This book attempts to fill that gap, by providing a modern field guide to GP for both newcomers and old-timers.
It would have been straightforward to find a traditional publisher for such a book. However, we want our book to be as accessible as possible to everyone interested in learning about GP. Therefore, we have chosen to make it freely available on-line, while also allowing printed copies to be ordered inexpensively from http://lulu.com. Visit http://www.gp-field-guide.org.uk for the details.
The book has undergone numerous iterations and revisions. It began as a book-chapter overview of GP (more on this below), which quickly grew to almost 100 pages. A technical report version of it was circulated on the GP mailing list. People responded very positively, and some encouraged us to continue and expand that survey into a book. We took their advice and this field guide is the result.