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 doubleAmount 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 voiddoIteration(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 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
-
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:
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
-