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.

Attachments: