11 #ifndef ClpPredictorCorrector_H 12 #define ClpPredictorCorrector_H 65 CoinWorkDouble
complementarityGap(
int &numberComplementarityPairs,
int &numberComplementarityItems,
71 void solveSystem(CoinWorkDouble *region1, CoinWorkDouble *region2,
72 const CoinWorkDouble *region1In,
const CoinWorkDouble *region2In,
73 const CoinWorkDouble *saveRegion1,
const CoinWorkDouble *saveRegion2,
76 bool checkGoodMove(
const bool doCorrector, CoinWorkDouble &bestNextGap,
77 bool allowIncreasingGap);
79 bool checkGoodMove2(CoinWorkDouble move, CoinWorkDouble &bestNextGap,
80 bool allowIncreasingGap);
87 void debugMove(
int phase, CoinWorkDouble primalStep, CoinWorkDouble dualStep);
int solve()
Primal Dual Predictor Corrector algorithm.
This solves LPs using interior point methods.
bool checkGoodMove2(CoinWorkDouble move, CoinWorkDouble &bestNextGap, bool allowIncreasingGap)
: checks for one step size
int updateSolution(CoinWorkDouble nextGap)
updateSolution. Updates solution at end of iteration
CoinWorkDouble complementarityGap() const
ComplementarityGap.
void setupForSolve(const int phase)
setupForSolve.
void solveSystem(CoinWorkDouble *region1, CoinWorkDouble *region2, const CoinWorkDouble *region1In, const CoinWorkDouble *region2In, const CoinWorkDouble *saveRegion1, const CoinWorkDouble *saveRegion2, bool gentleRefine)
Does solve.
void debugMove(int phase, CoinWorkDouble primalStep, CoinWorkDouble dualStep)
See exactly what would happen given current deltas.
This solves LPs using the predictor-corrector method due to Mehrotra.
CoinWorkDouble findDirectionVector(const int phase)
findDirectionVector.
int createSolution()
createSolution. Creates solution from scratch (- code if no memory)
CoinWorkDouble affineProduct()
Save info on products of affine deltaT*deltaW and deltaS*deltaZ.
CoinWorkDouble findStepLength(int phase)
findStepLength.
bool checkGoodMove(const bool doCorrector, CoinWorkDouble &bestNextGap, bool allowIncreasingGap)
sees if looks plausible change in complementarity