/* 120: */ /* 121: */ public PointValuePair doOptimize() /* 122: */ throws MaxCountExceededException, UnboundedSolutionException, NoFeasibleSolutionException /* 123: */ { /* 124:187 */ SimplexTableau tableau = new SimplexTableau( getFunction(), getConstraints(), getGoalType(), restrictToNonNegative(), this.epsilon, this.maxUlps); /* 125: */ /* 126: */ /* 127: */ /* 128: */ /* 129: */ /* 130: */ /* 131: */ /* 132:195 */ solvePhase1(tableau); /* 133:196 */ tableau.dropPhase1Objective(); /* 134:198 */ while (!tableau.isOptimal()) { /* 135:199 */ doIteration(tableau); /* 136: */ } /* 137:201 */ return tableau.getSolution(); /* 138: */ }
/** {@inheritDoc} */ @Override public RealPointValuePair doOptimize() throws OptimizationException { final SimplexTableau tableau = new SimplexTableau(f, constraints, goalType, restrictToNonNegative, epsilon); solvePhase1(tableau); tableau.discardArtificialVariables(); while (!isOptimal(tableau)) { doIteration(tableau); } return tableau.getSolution(); }
/** {@inheritDoc} */ @Override public PointValuePair doOptimize() throws MaxCountExceededException, UnboundedSolutionException, NoFeasibleSolutionException { final SimplexTableau tableau = new SimplexTableau( getFunction(), getConstraints(), getGoalType(), restrictToNonNegative(), epsilon, maxUlps); solvePhase1(tableau); tableau.dropPhase1Objective(); while (!tableau.isOptimal()) { doIteration(tableau); } return tableau.getSolution(); }