AVIJIT BASAK created MATH-1620:
----------------------------------

             Summary: Changes in Design and Data Structure of GeneticAlgorithm 
component
                 Key: MATH-1620
                 URL: https://issues.apache.org/jira/browse/MATH-1620
             Project: Commons Math
          Issue Type: Improvement
    Affects Versions: 3.6.1
            Reporter: AVIJIT BASAK


I would like to propose following changes for GeneticAlgorithm library.

*1) Introducing Elitism interface*: In current design ElitisticListPopulation 
introduces couple of new operations related to elitism without declaring them 
in any abstraction. Elitism interface would be introduced, which would be 
implemented by ElitisticListPopulation. 

Removed Components: None

New Components: Elitism

Affected Components: ElitisticListPopulation

*2) Change of Indirect encoding chromosome hierarchy*: The hierarchy of 
chromosome having indirect encoding would be changed. Currently the design only 
considers permutation chromosome for combinatorial optimization. The base 
interface is PermutationChromosome which is implemented by RandomKey 
chromosome. A more appropriate name(like IndirectEncoding) of 
PermutationChromosome can be used which will declare the decode() method. This 
interface will be implemented by RandomKey chromosome. Tt would be more 
meaningful for any other new indirectly encoded chromosome representing 
different domain to implement the new interface.

Removed Components: PermutationChromosome

New Components: IndirectEncoding

Affected Components: RandomKey

*3) Improvement of BinaryChromosome data structure*: Currently binary 
chromosome has been implemented as a list of Integer data where each binary bit 
is represent as Integer. This reduces the memory utilization to a considerable 
extent as 31 out of 32 bits are wasted. This needs to be implemented as an 
array of int data type with each integer representing 32 binary alleles. This 
would improve the memory utilization to 100%.  This will also impact the 
corresponding mutation and crossover operations.

Removed Components: o.a.c.m.g.BinaryChromosome

New Components: BinaryChromosome, OnePointBinaryCrossover, FlipMutation

Affected Components: None

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to