Genetic Algorithms
   - Genetic algorithms are based around genes that are solutions to
       a problem.
 
   - Genes encode a solution.
 
   - Each solution is given a value by an evaluation function.
 
   - A population of genes can breed to produce new solutions.
 
   - Breeding involves cross-over (combining parts of two genes),
       mutation, and other operations.
 
   - If certain properties hold, successive generations will tend to 
       have better solutions.