IBM ILOG Solver User's Manual > Evolutionary Algorithms > Introduction and Basic Concepts > Overview of concepts |
Overview of concepts |
INDEX
![]() |
Evolutionary Algorithms (EA) are optimization algorithms whose design has been influenced by the observation of the adaptation of living organisms. This covers rather a broad range of algorithms including those which are influenced by Darwinian evolution, the food-finding abilities of ants and the behavior of immune systems. Such algorithms typically deal with a "population" of solutions and use adaptation, competition and communication to produce better solutions.
The class of algorithms known as Genetic Algorithms (GAs) more specifically simulates the processes of natural selection, genetic mutation and genetic combination. A GA starts with a population of "individuals" (which is a set of solutions to the problem), then continually selects, mutates, breeds, and replaces members of the population. How the GA carries out these processes depends on the type of GA and the qualities of the individuals. A GA must maintain a balance of diversity and quality in the population. Concentration on diversity at the expense of quality will result in diverse, but generally poor solutions, as exploitation of good solution features is too weak. The inverse can result in the population converging too quickly, usually well before the solutions can be sufficiently optimized. (Convergence is the term used to mean that all individuals in the population represent more or less the same solution; from this point there is little hope of further evolution.)
At the present time, the IBM® ILOG® Solver EA framework is primarily geared towards facilitating the implementation of GAs. The genetic operators provided in the framework work with the constraint programming provided by Solver. That is, genetic operators make use of the constraint model and constraint propagation to avoid generation of illegal solutions. A mutation or a combination operator is a constraint programming search for a new solution that encodes a maximal amount of genetic material from the parent(s) while respecting the problem constraints.
If you are familiar with genetic algorithms, you may notice that some of the concepts and class names used do not directly follow the parlance of the genetic algorithm community. Normally, the class names used are more abstract in keeping with the notion of generality of the library. For instance, "solution pools" are general objects which serve as holders for the population, offspring, and any solutions selected for replacement. Also, the concept of a "pool processor" encompasses objects that perform selection, mutation, combination, and replacement. These naming conventions are largely superficial and will become clearer in the forthcoming sections.
© Copyright IBM Corp. 1987, 2009. Legal terms. | PREVIOUS NEXT |