cilib/cilib — pull request #47 by filinep (2012-06-11 08:13:56+00:00)
Title: Crossover and XPSO refactor

Crossover changes:
Each crossover strategy performs only crossover on the given parents.
The correct number of parents is expected.
Selection and crossover probability is now done through CrossoverOperator which takes a CrossoverStrategy, CrossoverProbability and a Selector.
The Selector picks the correct amount of parents to pass to the crossover strategy.

XPSO changes:
A composite crossover strategy was created to perform crossover on particles.
This is different from individuals because there are other members that need to be set for particles e.g. velocity, pbest, etc, to keep the particle in a usable state.
ParticleCrossoverStrategy takes in an OffspringVelocityProvider, OffspringPBestProvider, OffspringBestFitnessProvider and a crossover strategy.
Selection is done in the calling class.
The different strategies can be found in the pso.crossover package.