org.apache.commons.math3.optim.nonlinear.scalar

## Class MultivariateOptimizer

- java.lang.Object
- - org.apache.commons.math3.optim.BaseOptimizer<PAIR>
  - - org.apache.commons.math3.optim.BaseMultivariateOptimizer<PointValuePair>
    - - org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer

Direct Known Subclasses:
  BOBYQAOptimizer, CMAESOptimizer, GradientMultivariateOptimizer, LinearOptimizer, PowellOptimizer, SimplexOptimizer

    public abstract class MultivariateOptimizer
    extends BaseMultivariateOptimizer<PointValuePair>

Base class for a multivariate scalar function optimizer.

Since:
  3.1
Version:
  $Id$

### Field Summary

Fields
`private MultivariateFunction` `function` Objective function.
`private GoalType` `goal` Type of optimization.

### Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer

`evaluations, iterations`

### Constructor Summary

Constructors
`protected` `MultivariateOptimizer(ConvergenceChecker<PointValuePair> checker)`

### Method Summary

Methods
`protected double` `computeObjectiveValue(double[] params)` Computes the objective function value.
`GoalType` `getGoalType()`
`PointValuePair` `optimize(OptimizationData... optData)` Stores data and performs the optimization.
`private void` `parseOptimizationData(OptimizationData... optData)` Scans the list of (required and optional) optimization data that characterize the problem.

### Methods inherited from class org.apache.commons.math3.optim.BaseMultivariateOptimizer

`getLowerBound, getStartPoint, getUpperBound`

### Methods inherited from class org.apache.commons.math3.optim.BaseOptimizer

`doOptimize, getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### function

    private MultivariateFunction function

Objective function.

#### goal

    private GoalType goal

Type of optimization.

### Constructor Detail

#### MultivariateOptimizer

    protected MultivariateOptimizer(ConvergenceChecker<PointValuePair> checker)

Parameters:
  `checker` - Convergence checker.

### Method Detail

#### optimize

    public PointValuePair optimize(OptimizationData... optData)
                            throws TooManyEvaluationsException

Stores data and performs the optimization.

Overrides:
  `optimize` in class `BaseMultivariateOptimizer<PointValuePair>`
Parameters:
  `optData` - Optimization data. The following data will be looked for:
  - `MaxEval`
  - `InitialGuess`
  - `SimpleBounds`
  - `ObjectiveFunction`
  - `GoalType`
Returns:
  a point/value pair that satifies the convergence criteria.
Throws:
  `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.

#### parseOptimizationData

    private void parseOptimizationData(OptimizationData... optData)

Scans the list of (required and optional) optimization data that characterize the problem.

Parameters:
  `optData` - Optimization data. The following data will be looked for:
  - `ObjectiveFunction`
  - `GoalType`

#### getGoalType

    public GoalType getGoalType()

Returns:
  the optimization type.

#### computeObjectiveValue

    protected double computeObjectiveValue(double[] params)

Computes the objective function value. This method must be called by subclasses to enforce the evaluation counter limit.

Parameters:
  `params` - Point at which the objective function must be evaluated.
Returns:
  the objective function value at the specified point.
Throws:
  `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.