# source:trunk/include/ClpPredictorCorrector.hpp@263

Last change on this file since 263 was 263, checked in by forrest, 16 years ago

Barrier + "improvements" in dual

• Property svn:eol-style set to `native`
• Property svn:keywords set to `Author Date Id Revision`
File size: 1.7 KB
Line
3
4/*
5   Authors
6
7   John Forrest
8
9 */
10#ifndef ClpPredictorCorrector_H
11#define ClpPredictorCorrector_H
12
13#include "ClpInterior.hpp"
14
15/** This solves LPs using the predictor-corrector method.
16
17    It is rather basic as Interior point is not my speciality
18
19    It inherits from ClpInterior.  It has no data of its own and
20    is never created - only cast from a ClpInterior object at algorithm time.
21
22*/
23
24class ClpPredictorCorrector : public ClpInterior {
25
26public:
27
28  /**@name Description of algorithm */
29  //@{
30  /** Primal Dual Predictor Corrector algorithm
31
32      Method
33
34      Big TODO
35  */
36
37  int solve();
38  //@}
39
40  /**@name Functions used in algorithm */
41  //@{
42  /// findStepLength.
43  //phase  - 0 predictor
44  //         1 corrector
45  //         2 primal dual
46  double findStepLength(const int phase);
47  /// findDirectionVector.
48  double findDirectionVector(const int phase);
49  /// createSolution.  Creates solution from scratch
50  void createSolution();
51  /// complementarityGap.  Computes gap
52  //phase 0=as is , 1 = after predictor , 2 after corrector
53  double complementarityGap(int & numberComplementarityPairs,
54                            const int phase);
55  /// setupForSolve.
56  //phase 0=affine , 1 = corrector , 2 = primal-dual
57  void setupForSolve(const int phase);
58  //method: sees if looks plausible change in complementarity
59  bool checkGoodMove(const bool doCorrector);
60  ///:  checks for one step size
61  bool checkGoodMove2(const double move);