I always had difficulty when someone asked me what they should read to get started with Evolutionary Computation. As far as I can remember (and I might be forgetting things, it has been 20 years already), I learned EC by reading lots of papers, webpages, short texts, and talking to people, but not by actually reading a textbook. It makes it really difficult for me to help new students retrace my steps.
So I was very happy this week when I read “Evolutionary Computation, A Unified Approach”, by Kenneth A. De Jong (2006). This book is exactly what I would recommend to a new student wanting to learn about EC. It feels easy to read, and focuses on the components of the algorithms, instead of the algorithms itself.
The first chapter describes a very simple and generic EC algorithm, along with the key concepts of EC. The second chapter gives a historical overview of EC, covering ES, GA and EP. The third chapter dives on these algorithms in more detail, and the fourth chapter on the components of EC independently from the algorithms. I really like how the components are compared against each other, specially a discussion on problem representation, which I think is a topic usually overlooked on EC research. There are further chapters on specific problems, theory, and “advanced topics” (multi-objective, dynamic problems), which I haven’t read yet.
It is an old book, so recent algorithms such as CMA-ES, MOEA/D and NEAT are not covered. GP and Alife are also out of scope. I’m surprised that DE is not mentioned either, even though it was published in 97. That said, these things can be easily learned after the getting a solid understanding of the basic concepts, which I think the book delivers very quickly.
A funny thing is that the book has an appendix on code for the algorithms described in the book, but as far as I can tell there is almost no code in the appendix. It doesn’t really matter, since the algorithms are so simple that someone could (and should, for the sake of learning) implement them from scratch using the descriptions in the book.
I will probably try to prepare a short intro to EC summer lecture based on this!