A genetic algorithm is an evolutionary algorithm that seeks to mimic elements of the theory of evolution of species by Charles Darwin. The idea that underpins genetic algorithms is the survival of the fittest individuals. This means that the fittest individuals have more chances of mating and passing their genes to the next generation. Despite the fact of being one of the first class of evolutionary algorithms devised, genetic algorithms have been extensively applied to difficult optimization problems. The basic genetic algorithm discussed in this chapter has been found capable of succeeding in the complex task of training deep convolutional neural networks in a variety of application domains.

This chapter introduces the reader to genetic algorithms, providing the background necessary for the user to successfully apply genetic algorithms to practical optimization problems. The presentation is complemented with examples and Python code.