Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-1620

Changes in Design and Data Structure of GeneticAlgorithm component

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Duplicate
    • 3.6.1
    • None
    • None
    • None

    Description

      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

       

       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              avijit.basak AVIJIT BASAK
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: