Populations
Overview diagram
IPopulation
IPopulation<S extends ISolution>
is a general interface for describing populations, that is collections of solutions, along with their evaluations.
It is a parameterized type - its type parameter S
reflects the type of solutions being held in the population, E
is the type of evaluations.
Populations associate solutions' representation with some evaluation. This evaluation reflects the quality of the representation in the context of the problem being solved.
IPopulation
represents a mapping between solutions and their evaluations. A solution can then have multiple evaluations during its lifecycle - each is defined in the context of some population.
IPopulation allows you to access a list of its solutions, evaluations, or tuples of both. All these lists are guaranteed to have a consistent ordering.
The default implementation Population
is structurally immutable - you can't add or delete solutions from a population once it is created. However, you may be able to modify the solutions themselves, provided their representation is mutable. (see ISolution)
IPopulationFactory
IPopulationFactory<S extends ISolution>
is a factory and strategy interface for creating populations. It is parameterized just like the populations it creates.
Implementations should rely on ISolutionFactory<S>
instances to create the actual solutions. However, different strategies may be implemented in order to assemble populations out of such solutions, effectively defining initial conditions of the evolutionary algorithm.
Attachments:






