commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <>
Subject [jira] [Created] (MATH-874) New API for optimizers
Date Sun, 07 Oct 2012 17:56:02 GMT
Gilles created MATH-874:

             Summary: New API for optimizers
                 Key: MATH-874
             Project: Commons Math
          Issue Type: Improvement
    Affects Versions: 3.0
            Reporter: Gilles
            Assignee: Gilles
            Priority: Minor
             Fix For: 3.1, 4.0

I suggest to change the signatures of the "optimize" methods in
* {{UnivariateOptimizer}}
* {{MultivariateOptimizer}}
* {{MultivariateDifferentiableOptimizer}}
* {{MultivariateDifferentiableVectorOptimizer}}
* {{BaseMultivariateSimpleBoundsOptimizer}}

Currently, the arguments are
* the allowed number of evaluations of the objective function
* the objective function
* the type of optimization (minimize or maximize)
* the initial guess
* optionally, the lower and upper bounds

A marker interface:
public interface OptimizationData {}
would in effect be implemented by all input data so that the signature would become (for {{MultivariateOptimizer}}):
public PointValuePair optimize(MultivariateFunction f,
                               OptimizationData... optData);

A [thread|] was started on the "dev" ML.
Initially, this proposal aimed at avoiding to call some optimizer-specific methods. An example
is the "setSimplex" method in "": it must be called
before the call to "optimize". Not only this departs form the common API, but the definition
of the simplex also fixes the dimension of the problem; hence it would be more natural to
pass it together with the other parameters (i.e. in "optimize") that are also dimension-dependent
(initial guess, bounds).

Eventually, the API will be simpler: users will
# construct an optimizer (passing dimension-independent parameters at construction),
# call "optimize" (passing any dimension-dependent parameters).

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message