Class PhasedSimplexSolver
java.lang.Object
org.ojalgo.optimisation.GenericSolver
org.ojalgo.optimisation.linear.LinearSolver
org.ojalgo.optimisation.linear.SimplexSolver
org.ojalgo.optimisation.linear.PhasedSimplexSolver
- All Implemented Interfaces:
Optimisation, Optimisation.Solver, UpdatableSolver
First runs the dual algorithm (with a possibly modified objective function) to establish feasibility, and
then the primal to reach optimality.
This is the primary sub-class of SimplexSolver and the one you would typically use. All the other
sub-classes are primarily there to help with testing.
-
Nested Class Summary
Nested classes/interfaces inherited from class SimplexSolver
SimplexSolver.Direction, SimplexSolver.EnterInfo, SimplexSolver.ExitInfo, SimplexSolver.IterDescrNested classes/interfaces inherited from class LinearSolver
LinearSolver.Builder, LinearSolver.Configuration, LinearSolver.ModelIntegration, LinearSolver.NewIntegration, LinearSolver.OldIntegrationNested classes/interfaces inherited from interface Optimisation
Optimisation.Constraint, Optimisation.ConstraintType, Optimisation.Integration<M,S>, Optimisation.Model, Optimisation.Objective, Optimisation.Options, Optimisation.ProblemStructure, Optimisation.Result, Optimisation.Sense, Optimisation.Solver, Optimisation.State -
Field Summary
Fields inherited from class LinearSolver
INTEGRATION, NEWER_DUAL_SOLVER, OLDER_PRIMAL_SOLVERFields inherited from class GenericSolver
options -
Constructor Summary
ConstructorsConstructorDescriptionPhasedSimplexSolver(Optimisation.Options solverOptions, SimplexStore simplexStore) -
Method Summary
Modifier and TypeMethodDescription(package private) voidsetup(SimplexStore simplex) Determine if non-basic variables are at their lower or upper bound (or if they are unbounded) Shift ranges/bounds so that (one of) the bound(s) is at zero Assumes that the ranges/bounds of basic variables are already defined this way.solve(Optimisation.Result kickStarter) Methods inherited from class SimplexSolver
basis, build, doDualIterations, doPrimalIterations, doSolveConvexAsDual, doSolveConvexAsPrimal, extractResult, fixVariable, generateCutCandidates, getEntityMap, isDualFeasible, isPrimalFeasible, prepareToIterate, shift, sizeOfDual, sizeOfPrimal, switchToPhase2, updateRangeMethods inherited from class LinearSolver
newBuilder, newBuilder, newGeneralBuilder, newGeneralBuilder, newSolver, newStandardBuilder, newStandardBuilder, solve, toObjectiveFunctionMethods inherited from class GenericSolver
countIterations, countTime, error, getClassSimpleName, getDuration, getState, incrementIterationsCount, isIterationAllowed, isLogDebug, isLogOff, isLogProgress, log, log, log, log, logProgress, printf, resetIterationsCount, setState, setValidator, validate, validateMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Optimisation.Solver
dispose, solveMethods inherited from interface UpdatableSolver
integers, isMapped
-
Constructor Details
-
PhasedSimplexSolver
PhasedSimplexSolver(Optimisation.Options solverOptions, SimplexStore simplexStore)
-
-
Method Details
-
solve
-
setup
Description copied from class:SimplexSolver- Determine if non-basic variables are at their lower or upper bound (or if they are unbounded)
- Shift ranges/bounds so that (one of) the bound(s) is at zero
- Assumes that the ranges/bounds of basic variables are already defined this way.
- Specified by:
setupin classSimplexSolver
-