Class SimplexSolver

  • All Implemented Interfaces:
    LinearOptimizer

    public class SimplexSolver
    extends AbstractLinearOptimizer
    Solves a linear problem using the Two-Phase Simplex Method.
    Since:
    2.0
    Version:
    $Revision: 812831 $ $Date: 2009-09-09 10:48:03 +0200 (mer. 09 sept. 2009) $
    • Field Detail

      • epsilon

        protected final double epsilon
        Amount of error to accept in floating point comparisons.
    • Constructor Detail

      • SimplexSolver

        public SimplexSolver()
        Build a simplex solver with default settings.
      • SimplexSolver

        public SimplexSolver​(double epsilon)
        Build a simplex solver with a specified accepted amount of error
        Parameters:
        epsilon - the amount of error to accept in floating point comparisons
    • Method Detail

      • doIteration

        protected void doIteration​(org.apache.commons.math.optimization.linear.SimplexTableau tableau)
                            throws OptimizationException
        Runs one iteration of the Simplex method on the given model.
        Parameters:
        tableau - simple tableau for the problem
        Throws:
        OptimizationException - if the maximal iteration count has been exceeded or if the model is found not to have a bounded solution
      • solvePhase1

        protected void solvePhase1​(org.apache.commons.math.optimization.linear.SimplexTableau tableau)
                            throws OptimizationException
        Solves Phase 1 of the Simplex method.
        Parameters:
        tableau - simple tableau for the problem
        Throws:
        OptimizationException - if the maximal number of iterations is exceeded, or if the problem is found not to have a bounded solution, or if there is no feasible solution