Genetic programming is pretty neat
In ordinary programming, programmers write every line of code, and the process from input through to output is, in theory, transparent to inspection. By contrast, programmers using genetic programming (and “evolutionary programming,” the programming family it belongs to) describe the problem to be solved, and let natural selection do the rest. The results can be startling.
The program “evolves” solutions that computer scientists cannot readily reproduce. A genetic program creates bits of code that represent a breeding generation. The most fit are crossbred—chunks of their code are swapped, creating a new generation. The fitness of a program is determined by how closely it comes to solving the problem the programmer set out for it. The unfit are thrown out and the best are bred again. Throughout the process the program throws in random changes in a command or variable— these are mutations. Once set up, the genetic program runs by itself. It needs no more human input. The code is inscrutable.