commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "AVIJIT BASAK (Jira)" <>
Subject [jira] [Created] (MATH-1620) Changes in Design and Data Structure of GeneticAlgorithm component
Date Sun, 01 Aug 2021 06:34:00 GMT
AVIJIT BASAK created MATH-1620:

             Summary: Changes in Design and Data Structure of GeneticAlgorithm component
                 Key: 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

View raw message