Class SimplexSolver
- java.lang.Object
-
- org.apache.commons.math.optimization.linear.AbstractLinearOptimizer
-
- org.apache.commons.math.optimization.linear.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 Summary
Fields Modifier and Type Field Description protected doubleepsilonAmount of error to accept in floating point comparisons.-
Fields inherited from class org.apache.commons.math.optimization.linear.AbstractLinearOptimizer
DEFAULT_MAX_ITERATIONS, function, goal, linearConstraints, nonNegative
-
-
Constructor Summary
Constructors Constructor Description SimplexSolver()Build a simplex solver with default settings.SimplexSolver(double epsilon)Build a simplex solver with a specified accepted amount of error
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddoIteration(org.apache.commons.math.optimization.linear.SimplexTableau tableau)Runs one iteration of the Simplex method on the given model.RealPointValuePairdoOptimize()Perform the bulk of optimization algorithm.protected voidsolvePhase1(org.apache.commons.math.optimization.linear.SimplexTableau tableau)Solves Phase 1 of the Simplex method.-
Methods inherited from class org.apache.commons.math.optimization.linear.AbstractLinearOptimizer
getIterations, getMaxIterations, incrementIterationsCounter, optimize, setMaxIterations
-
-
-
-
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 OptimizationExceptionRuns 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 OptimizationExceptionSolves 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
-
doOptimize
public RealPointValuePair doOptimize() throws OptimizationException
Perform the bulk of optimization algorithm.- Specified by:
doOptimizein classAbstractLinearOptimizer- 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
-
-