Class SimplexSolver
java.lang.Object
org.apache.commons.math.optimization.linear.AbstractLinearOptimizer
org.apache.commons.math.optimization.linear.SimplexSolver
- All Implemented Interfaces:
LinearOptimizer
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
FieldsModifier and TypeFieldDescriptionprotected final double
Amount 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
ConstructorsConstructorDescriptionBuild a simplex solver with default settings.SimplexSolver
(double epsilon) Build a simplex solver with a specified accepted amount of error -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doIteration
(org.apache.commons.math.optimization.linear.SimplexTableau tableau) Runs one iteration of the Simplex method on the given model.Perform the bulk of optimization algorithm.protected void
solvePhase1
(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
-
Field Details
-
epsilon
protected final double epsilonAmount of error to accept in floating point comparisons.
-
-
Constructor Details
-
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 Details
-
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
-
doOptimize
Perform the bulk of optimization algorithm.- Specified by:
doOptimize
in 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
-