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