Search:

# AI Basics

#### Genetic Algorithms

Genetic algorithms are good ways to create high-quality solutions to difficult problems. Using the principles of selection and evolution, they search through a myriad of possible solutions until they find one that works best.

Charles Darwin conceived the concepts of selection and evolution on a voyage to the Galapagos Islands in 1831. He noticed that the species of finches on each island developed traits that would let the birds survive best in their given environments. For instance, finches that ate seeds had small beaks, while those that needed to open nuts had strong , thick beaks. He postulated that one flock of birds were blown there countless generations ago, and over time, the species changed based on the type of food sources found on the surrounding islands. The birds themselves never “morphed” into anything else, but after a while, those that were best suited for their surroundings grew stronger and reproduced. Darwin hypothesized that this was true for other creatures as well, including humans. Darwin named this the natural selection theory. John Holland took this a step further in creating by developing a concept that would apply this theory to computers. It was thus that , inventing genetic algorithms were born.

Roulette wheel selection uses the concept of natural selection when charged with evaluating parameters for a given problem and determining the best option to choose from a large pool of choices. The program decides how well each bit piece of data “fits” the problem, and each bit piece is assigned a probability. The computer chooses two “parent” data pieces based on their probabilities and combines them to create an “offspring” data piece. If the new data works well with the program, it replaces a piece with a lower probability in the pool of data. The process repeats itself until the computer/program finds several good ways to solve the problem.

Genetic algorithms are useful when teaching robots to respond to their environments. They can also simulate living beings in artificial life programs. They can search through large bodies of information with relative ease, but they have trouble with complicated solutions. They also spend a lot of time looking at sub-optimal conditions, so at times, a simpler non-algorithmic approach may be speedier.