Evolutionary algorithms or genetic algorithms are search techniques based upon the biological rules of evolution. Embedded within the algorithms are the rules of evolution or natural selection. Namely rules related to survival of the fittest, extinction of the least fit, breeding, and selection. Any optimization problem or search problem may be solved via evolutionary algorithms or genetic algorithms provided a genetic representation of the domain (or design variables) can be derived and a fitness function evaluated.
A brief note on the distinction between evolutionary algorithms and genetic algorithms. Typically a genetic algorithm is a fixed length, fixed set of rules to solve an optimization or search problem. An evolutionary algorithm actually derives algorithms to solve optimization or search problems. Whereas a genetic algorithm operates on chromosome respresentations, an evolutionary algorithm could operate on the chromosomes as well as the functions operating on the chromosomes.
Genetic algorithms are particularly well suited for global optimizaion problems. Genetic algorithms can be useful in difficult domains that have a complex fitness landscape with potnetially many local minima. In addition, genetic algorithms can be used where domain knowledge is scarce, where traditional optimization methods fail, and when no mathematical analysis is available.
The figure below shows the steps involved in a genetic algorithm After the problem is cast in terms of fitness functions and design variables, an initial population of candidate solutions is chosen at random. For each subsequent generation, the chromosomes are decoded, a cost or fitness function is evaluated, mates are selected, and reproduction occurs. The operators that govern the reproduction are pure reproduction, crossover, and mutation.
Evolutionary Algorithm Use
Ray has used genetic algorithms and evolutionary algorithms to solve a number of difficult optimization problems in his work. Minimization of the weight of a structure, enhanced damping of a space structure, and the test tuning of a finite element model to test data are examples of the application of genetic programming to engineering design and analysis problems. These examples show the practicality and usefullness of genetic algorithms to solve real engineering problems.
In practice, evolutionary algorithms sometimes guide one towards the right answer. The exact optimum selected by the evolutionary algorithm may not be able to be implemented in practice. But the final population set can provide design guidance for a satisfactory solution. Regarless, the evolutionary algorithm produces an average fitness much better than the starting fitness and the final population can provide a rich set of alternatives for a design implementation.
Ray is currently trying apply genetic algorithms and evolutionary programming techniques related to domestic violence prevention. He is using a genetic algorithm to derive patterns in data related to domestic violence and crime, geographical location, and previous criminal history patterns.
Contributions to Body of Knowledge
Ray has used genetic programs and evolutionary programming to solve some difficult engineering and social problems. His workis currently unpublished due to contractual restrictions.