|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See:
Description
| Interface Summary | |
| Evolution | An interface for objects that make evolution happen. |
| EvolutionListener | |
| FitnessNumeric | The interface that declares a calculation method for fitness, with numeric parameters and a numeric result. |
| Individual | An interface representing the characteristics of one individual in the population. |
| Population | An interface to represent a collection of individuals. |
| Randomizer | An interface with the randomizing methods needed for most genetic algorithms. |
| Selection | The methods needed to select individuals and pairs from a population for breeding and mutation. |
| Trait | An interface to represent the characteristics of individuals that can vary in the population, and whose values potentially affect the ``fitness'' of the individuals, and therefore their chances to breed and survive. |
| Class Summary | |
| EvolutionBasic | An implementation of the Evolution interface that prepares an array of new individuals by performing a specified number of breeding and mutation events. |
| EvolutionEvent | |
| IndividualBasic | A class defining some utilities for individuals in genetic algorithm populations. |
| IndividualNumeric | A class that evaluates the individual's fitness by delegating the computation to a property that implements the FitnessNumeric interface. |
| IndividualOmega | Individual objects using an Omegahat expression to evaluate fitness, and a database to store traits by name. |
| PopulationOrdered | A population of individuals, maintained as a vector in order of increasing fitness. |
| RandomizerUtil | A class that uses the Java class java.util.Random to implement Randomizer. |
| SelectionSplit | Class that implements the selection methods by splitting the individuals with probability 0.5 at a specified fraction. |
| SummaryBasic | A primitive listener to EvolutionEvents. |
| TraitLevels | A trait class representing a choice from a finite set of alternatives (the levels). |
| TraitNumeric | Traits as a numeric array. |
Interfaces and classes to perform operations using the Genetic Algorithm approach to combinatorial optimization and exploration.
The package is organized around three conceptual levels: populations containing individuals containing traits. A population of individuals evolves, each individual representing one set of characteristics. Optimality is associated with a fitness criterion, possibly but not necessarily numeric. The population evolves through breeding new individuals, mutating single individuals, and selecting (i.e., killing off) individuals. The breeding and mutating of individuals are defined as operations on the traits of each individual. A trait is similar to what is called a ``chromosome'' in some approaches to genetic algorithms, but more general and easier to type.
The classes in this package can be used with the Optimizers package to perform a fairly conventional optimization. In this context, traits correspond to model parameters and evolution becomes a sequence of iterations of the optimizer. The fitness is numeric and corresponds to the objective function for optimization (except that fitness is usually maximized and optimization often defined as minimization). Some suitable convergence criterion will be defined for the population values of fitness.
Use of the package for optimization is narrower than necessary, however. Genetic algorithms are more naturally thought of as evolving a population (a set of parameter values in optimization terms) to reflect good objective function values without necessarily reducing to a single best set of parameters. In this sense genetic algorithms are better than conventional local optimizers for exploring complicated objectives.
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||