So, I've been toying with genetic algorithms a bit. Making a genetic algorithm basically involves making a list of responses to every situation the algorithm might encounter. Typically you start with a random pool of algorithms, compete them, mutate and mix and match the winners' genomes to make a new generation, and then repeat indefinitely. (Does this process sound familiar?) The idea of encoding a response for every possible situation works well for some problems, but not for others. For instance, it would never work for teaching a computer to play go. ( Why not? )