Chapter 5. Genetic algorithms

 

Genetic algorithms are not used for everyday programmatic problems. They are called upon when traditional algorithmic approaches are insufficient for arriving at a solution to a problem in a reasonable amount of time. In other words, genetic algorithms are usually reserved for complex problems without easy solutions. If you need a sense of what some of these complex problems might be, feel free to read ahead in section 5.7 before proceeding. One interesting example, though, is protein-ligand docking and drug design. Computational biologists need to design molecules that will bind to receptors to deliver drugs. There may be no obvious algorithm for designing a particular molecule, but as you will see, sometimes genetic algorithms can provide an answer without much direction beyond a definition of the goal of a problem.

5.1. Biological background

5.2. A generic genetic algorithm

5.3. A naive test

5.4. SEND+MORE=MONEY revisited

5.5. Optimizing list compression

5.6. Challenges for genetic algorithms

5.7. Real-world applications

5.8. Exercises