Class AbstractLinearOptimizer

java.lang.Object
org.apache.commons.math.optimization.linear.AbstractLinearOptimizer
All Implemented Interfaces:
LinearOptimizer
Direct Known Subclasses:
SimplexSolver

public abstract class AbstractLinearOptimizer extends Object implements LinearOptimizer
Base class for implementing linear optimizers.

This base class handles the boilerplate methods associated to thresholds settings and iterations counters.

Since:
2.0
  • Field Details

    • DEFAULT_MAX_ITERATIONS

      public static final int DEFAULT_MAX_ITERATIONS
      Default maximal number of iterations allowed.
      See Also:
  • Method Details

    • setMaxIterations

      public void setMaxIterations(int maxIterations)
      Set the maximal number of iterations of the algorithm.
      Specified by:
      setMaxIterations in interface LinearOptimizer
      Parameters:
      maxIterations - maximal number of function calls
    • getMaxIterations

      public int getMaxIterations()
      Get the maximal number of iterations of the algorithm.
      Specified by:
      getMaxIterations in interface LinearOptimizer
      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 optimize method. It is 0 if the method has not been called yet.

      Specified by:
      getIterations in interface LinearOptimizer
      Returns:
      number of iterations
    • optimize

      public RealPointValuePair optimize(LinearObjectiveFunction f, Collection<LinearConstraint> constraints, GoalType goalType, boolean restrictToNonNegative) throws OptimizationException
      Optimizes an objective function.
      Specified by:
      optimize in interface LinearOptimizer
      Parameters:
      f - linear objective function
      constraints - linear constraints
      goalType - type of optimization goal: either GoalType.MAXIMIZE or GoalType.MINIMIZE
      restrictToNonNegative - 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