Hi All

        Please find the proposed changes for the Genetic Algorithm library
in commons.maths.
Changes in Model:
1) GeneticAlgorithm class is broken into a hierarchy to accommodate commons
implementation in an Abstract class AbstractGeneticAlgorithm. New
AdaptiveGeneticAlgorithm class has also been introduced.
2) Introduced Elitism interface which is implemented by
ElitisticListPopulation.
3) Interface Fitness has been removed.
4) Interface FitnessCalculator has been introduced.
5) Chromosome has been updated with FitnessCalculator interface and
accessor.
6) Operations in AbstractChromosome has been updated with FitnessCalculator
as interface.
7) New BinaryChromosome class has been added.
8) Interface PermutationChromosome has been replaced by
IndirectlyEncodedChromosome as the interface primarily represents
chromosomes with indirect encoding. A more appropriate name can be
suggested.
9) RandomKey class operations have been updated with FitnessCalculator.
10) I would like to include a new class PermutationChromosome as we have
corresponding crossover operators like OrderedCrossover.
11) crossover method in CrossoverPolicy interface has been updated with
additional argument probability to support dynamic probability generation.
This would impact all implementation classes.
12) mutate method in MutationPolicy has been added another argument
probability to support dynamic probability generation. This would impact
all implementation classes.
13) Two new evolution StoppingCondition has been added UnchangedAvgFitness
and UnchangedBestFitness.
14) An interface ProbabilityGenerator has been introduced with few
selective implementations to be used by AdaptiveGeneticAlgorithm class. The
signature of the probability generation method has been kept generic to
keep strategies interchangeable.

      I have few more queries related to repository structure.
1) Do we need to keep package name as *math4* and not *math*. Using a
version-independent name would ease version migration for developers for
future releases.
2) Can we have the stat module out of legacy component. This can be useful
to calculate population statistics if required.

Kindly share your thoughts.

Thanks & Regards
--Avijit Basak
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to