00001 // Copyright (C) 2003, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 00004 /* 00005 Authors 00006 00007 John Forrest 00008 00009 */ 00010 #ifndef ClpPredictorCorrector_H 00011 #define ClpPredictorCorrector_H 00012 00013 #include "ClpInterior.hpp" 00014 00024 class ClpPredictorCorrector : public ClpInterior { 00025 00026 public: 00027 00037 int solve(); 00039 00042 00043 //phase - 0 predictor 00044 // 1 corrector 00045 // 2 primal dual 00046 double findStepLength(const int phase); 00048 double findDirectionVector(const int phase); 00050 void createSolution(); 00052 //phase 0=as is , 1 = after predictor , 2 after corrector 00053 double complementarityGap(int & numberComplementarityPairs, 00054 const int phase); 00056 //phase 0=affine , 1 = corrector , 2 = primal-dual 00057 void setupForSolve(const int phase); 00058 //method: sees if looks plausible change in complementarity 00059 bool checkGoodMove(const bool doCorrector); 00061 bool checkGoodMove2(const double move); 00063 //returns number fixed 00064 int updateSolution(); 00066 double affineProduct(); 00068 00069 }; 00070 #endif