Page 17 - 49A Field Guide to Genetic Programming
P. 17
1.3 Prerequisites 3
1: Randomly create an initial population of programs from the available
primitives (more on this in Section 2.2).
2: repeat
3: Execute each program and ascertain its fitness.
4: Select one or two program(s) from the population with a probability
based on fitness to participate in genetic operations (Section 2.3).
5: Create new individual program(s) by applying genetic operations with
specified probabilities (Section 2.4).
6: until an acceptable solution is found or some other stopping condition
is met (e.g., a maximum number of generations is reached).
7: return the best-so-far individual.
Algorithm 1.1: Genetic Programming
The best way to begin is obviously by reading this book, so you’re off to
a good start. We included a wide variety of references to help guide people
through at least some of the literature. No single work, however, could claim
to be completely comprehensive. Thus Appendix A reviews a whole host of
books, videos, journals, conferences, and on-line sources (including several
freely available GP systems) that should be of assistance.
We strongly encourage doing GP as well as reading about it; the dy-
namics of evolutionary algorithms are complex, and the experience of trac-
ing through runs is invaluable. In Appendix B we provide the full Java
implementation of Riccardo’s TinyGP system.
1.3 Prerequisites
Although this book has been written with beginners in mind, unavoidably
we had to make some assumptions about the typical background of our
readers. The book assumes some working knowledge of computer science
and computer programming; this is probably an essential prerequisite to get
the most from the book.
We don’t expect that readers will have been exposed to other flavours of
evolutionary algorithms before, although a little background might be useful.
The interested novice can easily find additional information on evolutionary
computation thanks to the plethora of tutorials available on the Internet.
Articles from Wikipedia and the genetic algorithm tutorial produced by
Whitley (1994) should suffice.