commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (MATH-428) Simplify "DirectSearchOptimizer"
Date Sat, 23 Oct 2010 02:47:19 GMT

    [ https://issues.apache.org/jira/browse/MATH-428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923407#action_12923407
] 

Gilles edited comment on MATH-428 at 10/22/10 10:45 PM:
--------------------------------------------------------

The attachment contains:
* "SimplexOptimizer.java" (replacement of "DirectSearchOptimizer.java")
* "AbstracSimplex.java" (base class for simplex management)
* "NelderMeadSimplex.java" (replacement of "NelderMead.java")
* "SimplexOptimizerTest.java" (replacement of  "NelderMeadTest.java")

The main change with this refactoring is that the simplex class must be passed to the optimizer
before any call to the {{optimize}} method:
{code}
SimplexOptimizer optimizer = new SimplexOptimizer(1e-10, 1e-30);
optimizer.setSimplex(new NelderMeadSimplex(new double[] { 0.2, 0.2 }));
{code}

Also the new design is somewhat less forgiving in that the dimension of the simplex _must_
match the dimension of the problem (whereas before, a new default simplex was automatically
reconstructed whenever the dimensionality of the problem didn't match).


      was (Author: erans):
    The attachment contains:
* "SimplexOptimizer.java" (replacement of "DirectSearchOptimizer.java")
* "AbstracSimplex.java" (base class for simplex management)
* "NelderMeadSimplex.java" (replacement of "NelderMead.java")
* "SimplexOptimizerTest.java" (replacement of  "DirectSearchOptimizerTest.java")

The main change with this refactoring is that the simplex class must be passed to the optimizer
before any call to the {{optimize}} method:
{code}
SimplexOptimizer optimizer = new SimplexOptimizer(1e-10, 1e-30);
optimizer.setSimplex(new NelderMeadSimplex(new double[] { 0.2, 0.2 }));
{code}

Also the new design is somewhat less forgiving in that the dimension of the simplex _must_
match the dimension of the problem (whereas before, a new default simplex was automatically
reconstructed whenever the dimensionality of the problem didn't match).

  
> Simplify "DirectSearchOptimizer"
> --------------------------------
>
>                 Key: MATH-428
>                 URL: https://issues.apache.org/jira/browse/MATH-428
>             Project: Commons Math
>          Issue Type: Improvement
>            Reporter: Gilles
>            Assignee: Gilles
>            Priority: Minor
>             Fix For: 3.0
>
>         Attachments: opt_direct.tar.gz
>
>
> 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".

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message