Class AbstractLinearOptimizer

  • All Implemented Interfaces:
    LinearOptimizer
    Direct Known Subclasses:
    SimplexSolver

    public abstract class AbstractLinearOptimizer
    extends java.lang.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
    Version:
    $Revision: 925812 $ $Date: 2010-03-21 16:49:31 +0100 (dim. 21 mars 2010) $
    • Field Detail

      • DEFAULT_MAX_ITERATIONS

        public static final int DEFAULT_MAX_ITERATIONS
        Default maximal number of iterations allowed.
        See Also:
        Constant Field Values
      • linearConstraints

        protected java.util.Collection<LinearConstraint> linearConstraints
        Linear constraints.
        Since:
        2.1
      • nonNegative

        protected boolean nonNegative
        Whether to restrict the variables to non-negative values.
        Since:
        2.1
    • Constructor Detail

      • AbstractLinearOptimizer

        protected AbstractLinearOptimizer()
        Simple constructor with default settings.

        The maximal number of evaluation is set to its default value.

    • Method Detail

      • 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
      • incrementIterationsCounter

        protected void incrementIterationsCounter()
                                           throws OptimizationException
        Increment the iterations counter by 1.
        Throws:
        OptimizationException - if the maximal number of iterations is exceeded
      • doOptimize

        protected abstract RealPointValuePair doOptimize()
                                                  throws OptimizationException
        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