Populations
Overview diagram
IPopulation
IPopulation<S extends ISolution>
is a general interface for describing populations, that is collections of solutions.
It is a parameterized type - its type parameter S reflects the type of solutions being held in the population.
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.