In this chapter
- Exploring the inspiration for evolutionary algorithms
- Solving problems with evolutionary algorithms
- Understanding the life cycle of a genetic algorithm
- Developing a genetic algorithm to solve optimization problems
Nothing on Earth popped into existence fully formed. Everything alive today is the result of a long chain of tiny changes that accumulated over millions of years. This implies that the physical and cognitive characteristics of every living organism are a result of the organism’s fitting to its environment for survival.
We often make the mistake of thinking that evolution is a neat line from primitive ancestor to modern form. In reality, evolution is messy, and it branches. Offspring aren’t perfect clones of their parents; they inherit a mix of genes with small random changes (mutations). At any moment, a species is a cloud of variants, not a single clean category. You see big, obvious differences only when you zoom far out in time and compare averages across thousands of generations. Figure 4.1 depicts the reality of evolution.
Figure 4.1 The idea of linear human evolution vs. actual human evolution
Evolution is both simple and wild: variation is produced constantly, most variants disappear, and some variants thrive. Nature essentially searches enormous spaces of possibility for the best fit.