Cgl 0.59.7

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClpPredictorCorrector.hpp
Go to the documentation of this file.
1 /* $Id: ClpPredictorCorrector.hpp 1665 2011-01-04 17:55:54Z lou $ */
2 // Copyright (C) 2003, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 /*
6 Authors
7
8 John Forrest
9
10 */
11 #ifndef ClpPredictorCorrector_H
12 #define ClpPredictorCorrector_H
13
14 #include "ClpInterior.hpp"
15
37 class ClpPredictorCorrector : public ClpInterior {
38
39 public:
40
50 int solve();
52
55 //phase - 0 predictor
57 // 1 corrector
58 // 2 primal dual
59 CoinWorkDouble findStepLength( int phase);
61 CoinWorkDouble findDirectionVector(const int phase);
63 int createSolution();
65 //phase 0=as is , 1 = after predictor , 2 after corrector
66 CoinWorkDouble complementarityGap(int & numberComplementarityPairs, int & numberComplementarityItems,
67 const int phase);
69 //phase 0=affine , 1 = corrector , 2 = primal-dual
70 void setupForSolve(const int phase);
72 void solveSystem(CoinWorkDouble * region1, CoinWorkDouble * region2,
73 const CoinWorkDouble * region1In, const CoinWorkDouble * region2In,
74 const CoinWorkDouble * saveRegion1, const CoinWorkDouble * saveRegion2,
75 bool gentleRefine);
77 bool checkGoodMove(const bool doCorrector, CoinWorkDouble & bestNextGap,
78 bool allowIncreasingGap);
80 bool checkGoodMove2(CoinWorkDouble move, CoinWorkDouble & bestNextGap,
81 bool allowIncreasingGap);
83 //returns number fixed
84 int updateSolution(CoinWorkDouble nextGap);
86 CoinWorkDouble affineProduct();
88 void debugMove(int phase, CoinWorkDouble primalStep, CoinWorkDouble dualStep);
90
91 };
92 #endif
ClpInterior::complementarityGap
CoinWorkDouble complementarityGap() const
ComplementarityGap.
Definition: ClpInterior.hpp:236
ClpPredictorCorrector::solve
int solve()
Primal Dual Predictor Corrector algorithm.
ClpInterior
This solves LPs using interior point methods.
Definition: ClpInterior.hpp:72
ClpPredictorCorrector::checkGoodMove2
bool checkGoodMove2(CoinWorkDouble move, CoinWorkDouble &bestNextGap, bool allowIncreasingGap)
: checks for one step size
ClpPredictorCorrector::updateSolution
int updateSolution(CoinWorkDouble nextGap)
updateSolution. Updates solution at end of iteration
ClpInterior.hpp
ClpPredictorCorrector::setupForSolve
void setupForSolve(const int phase)
setupForSolve.
ClpPredictorCorrector::solveSystem
void solveSystem(CoinWorkDouble *region1, CoinWorkDouble *region2, const CoinWorkDouble *region1In, const CoinWorkDouble *region2In, const CoinWorkDouble *saveRegion1, const CoinWorkDouble *saveRegion2, bool gentleRefine)
Does solve.
ClpPredictorCorrector::debugMove
void debugMove(int phase, CoinWorkDouble primalStep, CoinWorkDouble dualStep)
See exactly what would happen given current deltas.
ClpPredictorCorrector
This solves LPs using the predictor-corrector method due to Mehrotra.
Definition: ClpPredictorCorrector.hpp:37
ClpPredictorCorrector::findDirectionVector
CoinWorkDouble findDirectionVector(const int phase)
findDirectionVector.
ClpPredictorCorrector::createSolution
int createSolution()
createSolution. Creates solution from scratch (- code if no memory)
CoinWorkDouble
double CoinWorkDouble
Definition: CoinTypes.hpp:53
ClpPredictorCorrector::affineProduct
CoinWorkDouble affineProduct()
Save info on products of affine deltaT*deltaW and deltaS*deltaZ.
ClpPredictorCorrector::findStepLength
CoinWorkDouble findStepLength(int phase)
findStepLength.
ClpPredictorCorrector::checkGoodMove
bool checkGoodMove(const bool doCorrector, CoinWorkDouble &bestNextGap, bool allowIncreasingGap)
sees if looks plausible change in complementarity