Genetic algorithms, described in Chapter 6, provide a novel optimization technique that can be applied to both numerical and symbolic problems. The subfield of genetic programming is further used to illustrate the creation of instruction sequences to solve problems in code generation. Sequences of instructions are evolved to solve mathematical functions, and it is demonstrated how these sequences can find novel strings that are both interesting and optimal given a simple virtual machine. The genetic programming algorithm and application can be found on the CD-ROM at ./software/ch6 .