AgE 2.7 : Populations

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: