Generally, optimizers are algorithms that will either
minimize or
maximize
a scalar function, called the
objective
function.
For some scalar objective functions the gradient can be computed (analytically
or numerically). Algorithms that use this knowledge are defined in the
org. package.
The algorithms that do not need this additional information are located in
the org. package.
Some problems are solved more efficiently by algorithms that, instead of an
objective function, need access to a
model function: such a model predicts a set of values which the
algorithm tries to match with a set of given
target values.
Those algorithms are located in the
org. package.
Algorithms that also require the
Jacobian matrix of the model are located in the
org. package.
The non-linear least-squares optimizers are a specialization of the the latter,
that minimize the distance (called cost or χ2)
between model and observations.
For cases where the Jacobian cannot be provided, a utility class will
convert a (vector) model into a (scalar) objective function.
This package provides common functionality for the optimization algorithms.
Abstract classes (org. and
org.) contain
boiler-plate code for storing evaluations and iterations
counters and a user-defined
convergence checker.
For each of the optimizer types, there is a special implementation that wraps an optimizer instance and provides a "multi-start" feature: it calls the underlying optimizer several times with different starting points and returns the best optimum found, or all optima if so desired. This could be useful to avoid being trapped in a local extremum.
| Modifier and Type | Interface and Description |
|---|---|
| public interface | ConvergenceChecker<
Type of the (point, objective value) pair. PAIR>This interface specifies how to check if an optimization algorithm has converged. |
| public interface | OptimizationData
Marker interface. |
| public interface | OptimizationProblem<
The type of value the PAIR>convergence
checker will operate on. It should include the value of the model
function and point where it was evaluated.Common settings for all optimization problems. |
| Modifier and Type | Class and Description |
|---|---|
| public abstract class | AbstractConvergenceChecker<
Type of (point, value) pair. PAIR>Base class for all convergence checker implementations. |
| public abstract class | AbstractOptimizationProblem<
Type of the point/value pair returned by the optimization algorithm. PAIR>Base class for implementing optimization problems. |
| public abstract class | BaseMultiStartMultivariateOptimizer<
Type of the point/value pair returned by the optimization
algorithm. PAIR>Base class multi-start optimizer for a multivariate function. |
| public abstract class | BaseMultivariateOptimizer<
Type of the point/value pair returned by the optimization
algorithm. PAIR>Base class for implementing optimizers for multivariate functions. |
| public abstract class | BaseOptimizer<
Type of the point/value pair returned by the optimization
algorithm. PAIR>Base class for implementing optimizers. |
| public class | InitialGuess
Starting point (first guess) of the optimization procedure. |
| public class | MaxEval
Maximum number of evaluations of the function to be optimized. |
| public class | MaxIter
Maximum number of iterations performed by an (iterative) algorithm. |
| public class | PointValuePair
This class holds a point and the value of an objective function at that point. |
| public class | PointVectorValuePair
This class holds a point and the vectorial value of an objective function at that point. |
| public class | SimpleBounds
Simple optimization constraints: lower and upper bounds. |
| public class | SimplePointChecker<
Type of the (point, value) pair.
The type of the "value" part of the pair (not used by this class). PAIR extends PairSimple implementation of the |
| public class | SimpleValueChecker
Simple implementation of the |
| public class | SimpleVectorValueChecker
Simple implementation of the |