org.apache.commons.math3.optim.nonlinear.scalar
Class MultiStartMultivariateOptimizer
java.lang.Object
org.apache.commons.math3.optim.BaseOptimizer<PAIR>
org.apache.commons.math3.optim.BaseMultivariateOptimizer<PAIR>
org.apache.commons.math3.optim.BaseMultiStartMultivariateOptimizer<PointValuePair>
org.apache.commons.math3.optim.nonlinear.scalar.MultiStartMultivariateOptimizer
public class MultiStartMultivariateOptimizer
- extends BaseMultiStartMultivariateOptimizer<PointValuePair>
Multi-start optimizer.
This class wraps an optimizer in order to use it several times in
turn with different starting points (trying to avoid being trapped
in a local extremum when looking for a global one).
- Since:
- 3.0
- Version:
- $Id: MultiStartMultivariateOptimizer.java 7721 2013-02-14 14:07:13Z CardosoP $
Method Summary |
protected void |
clear()
Method that will called in order to clear all stored optima. |
PointValuePair[] |
getOptima()
Gets all the optima found during the last call to optimize . |
protected void |
store(PointValuePair optimum)
Method that will be called in order to store each found optimum. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MultiStartMultivariateOptimizer
public MultiStartMultivariateOptimizer(MultivariateOptimizer optimizer,
int starts,
RandomVectorGenerator generator)
throws NullArgumentException,
NotStrictlyPositiveException
- Create a multi-start optimizer from a single-start optimizer.
- Parameters:
optimizer
- Single-start optimizer to wrap.starts
- Number of starts to perform.
If starts == 1
, the result will be same as if optimizer
is called directly.generator
- Random vector generator to use for restarts.
- Throws:
NullArgumentException
- if optimizer
or generator
is null
.
NotStrictlyPositiveException
- if starts < 1
.
getOptima
public PointValuePair[] getOptima()
- Gets all the optima found during the last call to
optimize
.
The optimizer stores all the optima found during a set of
restarts. The optimize
method returns the best point only.
This method returns all the points found at the end of each starts,
including the best one already returned by the optimize
method.
The returned array as one element for each start as specified
in the constructor. It is ordered with the results from the
runs that did converge first, sorted from best to worst
objective value (i.e in ascending order if minimizing and in
descending order if maximizing), followed by null
elements
corresponding to the runs that did not converge. This means all
elements will be null
if the optimize
method did throw
an exception.
This also means that if the first element is not null
, it is
the best point found across all starts.
The behaviour is undefined if this method is called before
optimize
; it will likely throw NullPointerException
.
- Specified by:
getOptima
in class BaseMultiStartMultivariateOptimizer<PointValuePair>
- Returns:
- an array containing the optima sorted from best to worst.
store
protected void store(PointValuePair optimum)
- Method that will be called in order to store each found optimum.
- Specified by:
store
in class BaseMultiStartMultivariateOptimizer<PointValuePair>
- Parameters:
optimum
- Result of an optimization run.
clear
protected void clear()
- Method that will called in order to clear all stored optima.
- Specified by:
clear
in class BaseMultiStartMultivariateOptimizer<PointValuePair>
Copyright © 2016 CNES. All Rights Reserved.