Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
This issue refers to classes in package optimization.direct.
Currently the class NelderMead inherits from DirectSearchOptimizer. However the method doOptimize is implemented in DirectSearchOptimizer. This is backwards from the intended design (where an "optimizer" is defined as a class that implements a specific algorithm within doOptimize). According to this "terminology", DirectSearchOptimizer is the optimizer whereas NelderMead could be considered as a specific way to construct a simplex. Indeed, that's what seems intended since it overrides the abstract method iterateSimplex.
I suggest to create 2 classes that will make it clear the separation between the "optimizer" and the "simplex manager".