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 double
epsilon
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
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 void
doIteration(org.apache.commons.math.optimization.linear.SimplexTableau tableau)
Runs one iteration of the Simplex method on the given model.RealPointValuePair
doOptimize()
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
-
-
-
-
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
-
doOptimize
public RealPointValuePair doOptimize() throws OptimizationException
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
-
-