Gilles Sadowski created MATH-1655:
-------------------------------------

             Summary: Refactoring of GA functionality
                 Key: MATH-1655
                 URL: https://issues.apache.org/jira/browse/MATH-1655
             Project: Commons Math
          Issue Type: Improvement
          Components: legacy
    Affects Versions: 4.0-beta1
            Reporter: Gilles Sadowski
             Fix For: 4.0


As discussed extensively on the "dev" ML[1][2], there are two competing designs 
(please review them on the [dedicated git 
branch|https://gitbox.apache.org/repos/asf?p=commons-math.git;a=shortlog;h=refs/heads/feature__MATH-1563__genetic_algorithm])
 for the refactoring of the basic functionality currently implemented in the 
[{{org.apache.commons.math4.legacy.genetics}}|https://gitbox.apache.org/repos/asf?p=commons-math.git;a=tree;f=commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/genetics;h=693aa6b1b746b65e27774f720a3655315d0f43f6;hb=HEAD]
 "legacy" package.

TL;DR;
* The discussion has pointed to major (from a maintenance POV) issues of the 
design proposed by the OP.
* The alternative (much simpler) design has been implemented as 
proof-of-concept (indicating that some corner might have been cut).
* The OP mentioned correctness issues in the "simple" design but did neither 
fix them nor provided answers on the LM to that effect.
* Questions concerning other possible "bloat" (e.g. on using a custom 
representation of the "binary chromosome" concept instead of the 
[{{BitSet}}|https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html] 
available from the JDK) were also left dangling.
* Refactoring of the "basic" GA functionality (the purpose of the 
"proof-of-concept") must be decoupled from the new feature which the OP wanted 
to implement ("adaptive probability generation").
* Unit tests (a.o. all those from the "legacy" code) must demonstrate that the 
refactored code does (or does not) behave correctly, and bugs should be fixed 
on the "simple" implementation, before implementing the new feature on top of 
it.

[1] https://markmail.org/message/qn7gq2y7xjoxukzp
[2] https://markmail.org/message/f66iii3a4kmjaprr




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to