org.apache.commons.math3.optim.linear

## Class LinearOptimizer

- 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
      - - org.apache.commons.math3.optim.linear.LinearOptimizer

Direct Known Subclasses:
  SimplexSolver

    public abstract class LinearOptimizer
    extends MultivariateOptimizer

Base class for implementing linear optimizers.

Since:
  3.1
Version:
  $Id: AbstractLinearOptimizer.java 1416643 2012-12-03 19:37:14Z tn $

### Field Summary

Fields
`private LinearObjectiveFunction` `function` Linear objective function.
`private java.util.Collection<LinearConstraint>` `linearConstraints` Linear constraints.
`private boolean` `nonNegative` Whether to restrict the variables to non-negative values.

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

`evaluations, iterations`

### Constructor Summary

Constructors
`protected` `LinearOptimizer()` Simple constructor with default settings.

### Method Summary

Methods
`protected java.util.Collection<LinearConstraint>` `getConstraints()`
`protected LinearObjectiveFunction` `getFunction()`
`protected boolean` `isRestrictedToNonNegative()`
`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.nonlinear.scalar.MultivariateOptimizer

`computeObjectiveValue, getGoalType`

### 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 LinearObjectiveFunction function

Linear objective function.

#### linearConstraints

    private java.util.Collection<LinearConstraint> linearConstraints

Linear constraints.

#### nonNegative

    private boolean nonNegative

Whether to restrict the variables to non-negative values.

### Constructor Detail

#### LinearOptimizer

    protected LinearOptimizer()

Simple constructor with default settings.

### Method Detail

#### isRestrictedToNonNegative

    protected boolean isRestrictedToNonNegative()

Returns:
  `true` if the variables are restricted to non-negative values.

#### getFunction

    protected LinearObjectiveFunction getFunction()

Returns:
  the optimization type.

#### getConstraints

    protected java.util.Collection<LinearConstraint> getConstraints()

Returns:
  the optimization type.

#### optimize

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

Stores data and performs the optimization.

Overrides:
  `optimize` in class `MultivariateOptimizer`
Parameters:
  `optData` - Optimization data. The following data will be looked for:
  - `MaxIter`
  - `LinearObjectiveFunction`
  - `LinearConstraintSet`
  - `NonNegativeConstraint`
Returns:
  a point/value pair that satifies the convergence criteria.
Throws:
  `TooManyIterationsException` - if the maximal number of iterations 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:
  - `LinearObjectiveFunction`
  - `LinearConstraintSet`
  - `NonNegativeConstraint`