Wednesday, June 27, 2012

Genetic Algorithm - To find optimum solutions

Genetic Algorithm is an adaptive method to find an optimum solution for a problem. There are some real world problems for which we cannot find a solution using a particular algorithm. But those problems may have solutions. Genetic Algorithm is a suitable method for finding an optimum solution for such a problem.

Genetic Algorithm belongs to the category of Stochastic methods.  Stochastic methods never operate in the same way twice for a particular problem. They are involved with probabilistic operations.

By applying Genetic Algorithms we expect to achieve the "Survival of Fittest". That is among a population of solutions, Genetic Algorithm works in a way such that the fittest solutions are survived and further being improved.

In Genetic Algorithm terminology, "Chromosome" represents the whole solution for a particular problem. Genetic Algorithm operations start with defining a population of such chromosomes, which represent feasible solutions for the problem. A population is called a generation.

To generate the next generation from the first generation, the fitness of the chromosomes are evaluated. This is done using the "Fitness Function". The most fittest chromosomes become candidates for crossover operation, which creates new chromosomes by including the good features from its parent chromosomes. Then they are undergone through mutation, which introduce new features which are not included in the parent chromosomes. This operation is done to maintain genetic diversity.

Thus, the Genetic Algorithm runs through generations, until it achieves the defined optimum level. In each generation, it creates an improved solution compared to previous generation. So the quality of the solution increases through the generations.

There is a computational overhead due to the lot of operations performed on each and every chromosome in the population. So to achieve a considerable performance level, Genetic Algorithm needs some operations to perform in parallel.