Class AbstractLinearOptimizer
java.lang.Object
org.apache.commons.math.optimization.linear.AbstractLinearOptimizer
- All Implemented Interfaces:
LinearOptimizer
- Direct Known Subclasses:
SimplexSolver
Base class for implementing linear optimizers.
This base class handles the boilerplate methods associated to thresholds settings and iterations counters.
- Since:
- 2.0
- Version:
- $Revision: 925812 $ $Date: 2010-03-21 16:49:31 +0100 (dim. 21 mars 2010) $
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault maximal number of iterations allowed.protected LinearObjectiveFunctionLinear objective function.protected GoalTypeType of optimization goal: eitherGoalType.MAXIMIZEorGoalType.MINIMIZE.protected Collection<LinearConstraint> Linear constraints.protected booleanWhether to restrict the variables to non-negative values. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedSimple constructor with default settings. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract RealPointValuePairPerform the bulk of optimization algorithm.intGet the number of iterations realized by the algorithm.intGet the maximal number of iterations of the algorithm.protected voidIncrement the iterations counter by 1.optimize(LinearObjectiveFunction f, Collection<LinearConstraint> constraints, GoalType goalType, boolean restrictToNonNegative) Optimizes an objective function.voidsetMaxIterations(int maxIterations) Set the maximal number of iterations of the algorithm.
-
Field Details
-
DEFAULT_MAX_ITERATIONS
public static final int DEFAULT_MAX_ITERATIONSDefault maximal number of iterations allowed.- See Also:
-
function
Linear objective function.- Since:
- 2.1
-
linearConstraints
Linear constraints.- Since:
- 2.1
-
goal
Type of optimization goal: eitherGoalType.MAXIMIZEorGoalType.MINIMIZE.- Since:
- 2.1
-
nonNegative
protected boolean nonNegativeWhether to restrict the variables to non-negative values.- Since:
- 2.1
-
-
Constructor Details
-
AbstractLinearOptimizer
protected AbstractLinearOptimizer()Simple constructor with default settings.The maximal number of evaluation is set to its default value.
-
-
Method Details
-
setMaxIterations
public void setMaxIterations(int maxIterations) Set the maximal number of iterations of the algorithm.- Specified by:
setMaxIterationsin interfaceLinearOptimizer- Parameters:
maxIterations- maximal number of function calls
-
getMaxIterations
public int getMaxIterations()Get the maximal number of iterations of the algorithm.- Specified by:
getMaxIterationsin interfaceLinearOptimizer- Returns:
- maximal number of iterations
-
getIterations
public int getIterations()Get the number of iterations realized by the algorithm.The number of evaluations corresponds to the last call to the
optimizemethod. It is 0 if the method has not been called yet.- Specified by:
getIterationsin interfaceLinearOptimizer- Returns:
- number of iterations
-
incrementIterationsCounter
Increment the iterations counter by 1.- Throws:
OptimizationException- if the maximal number of iterations is exceeded
-
optimize
public RealPointValuePair optimize(LinearObjectiveFunction f, Collection<LinearConstraint> constraints, GoalType goalType, boolean restrictToNonNegative) throws OptimizationException Optimizes an objective function.- Specified by:
optimizein interfaceLinearOptimizer- Parameters:
f- linear objective functionconstraints- linear constraintsgoalType- type of optimization goal: eitherGoalType.MAXIMIZEorGoalType.MINIMIZErestrictToNonNegative- whether to restrict the variables to non-negative values- Returns:
- point/value pair giving the optimal value for objective function
- Throws:
OptimizationException- if no solution fulfilling the constraints can be found in the allowed number of iterations
-
doOptimize
Perform the bulk of optimization algorithm.- Returns:
- the point/value pair giving the optimal value for objective function
- Throws:
OptimizationException- if no solution fulfilling the constraints can be found in the allowed number of iterations
-