Ignore:
Timestamp:
Jan 29, 2010 9:25:07 AM (10 years ago)
Author:
forrest
Message:

moving sandbox stuff to trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Clp/src/ClpPredictorCorrector.hpp

    r1370 r1502  
    33// Corporation and others.  All Rights Reserved.
    44
    5 /* 
     5/*
    66   Authors
    7    
     7
    88   John Forrest
    99
     
    2626    It is rather basic as Interior point is not my speciality
    2727
    28     It inherits from ClpInterior.  It has no data of its own and 
    29     is never created - only cast from a ClpInterior object at algorithm time. 
     28    It inherits from ClpInterior.  It has no data of its own and
     29    is never created - only cast from a ClpInterior object at algorithm time.
    3030
    3131    It can also solve QPs
    3232
    33    
     33
    3434
    3535*/
     
    3939public:
    4040
    41   /**@name Description of algorithm */
    42   //@{
    43   /** Primal Dual Predictor Corrector algorithm
     41    /**@name Description of algorithm */
     42    //@{
     43    /** Primal Dual Predictor Corrector algorithm
    4444
    45       Method
     45        Method
    4646
    47       Big TODO
    48   */
     47        Big TODO
     48    */
    4949
    50   int solve();
    51   //@}
     50    int solve();
     51    //@}
    5252
    53   /**@name Functions used in algorithm */
    54   //@{
    55   /// findStepLength.
    56   //phase  - 0 predictor
    57   //         1 corrector
    58   //         2 primal dual
    59   CoinWorkDouble findStepLength( int phase);
    60   /// findDirectionVector.
    61   CoinWorkDouble findDirectionVector(const int phase);
    62   /// createSolution.  Creates solution from scratch (- code if no memory)
    63   int createSolution();
    64   /// complementarityGap.  Computes gap
    65   //phase 0=as is , 1 = after predictor , 2 after corrector
    66   CoinWorkDouble complementarityGap(int & numberComplementarityPairs,int & numberComplementarityItems,
    67                             const int phase);
    68   /// setupForSolve.
    69   //phase 0=affine , 1 = corrector , 2 = primal-dual
    70   void setupForSolve(const int phase);
    71   /** Does solve. region1 is for deltaX (columns+rows), region2 for deltaPi (rows) */
    72   void solveSystem(CoinWorkDouble * region1, CoinWorkDouble * region2,
    73                    const CoinWorkDouble * region1In, const CoinWorkDouble * region2In,
    74                    const CoinWorkDouble * saveRegion1, const CoinWorkDouble * saveRegion2,
    75                    bool gentleRefine);
    76   /// sees if looks plausible change in complementarity
    77   bool checkGoodMove(const bool doCorrector,CoinWorkDouble & bestNextGap,
    78                      bool allowIncreasingGap);
    79   ///:  checks for one step size
    80   bool checkGoodMove2(CoinWorkDouble move,CoinWorkDouble & bestNextGap,
    81                       bool allowIncreasingGap);
    82   /// updateSolution.  Updates solution at end of iteration
    83   //returns number fixed
    84   int updateSolution(CoinWorkDouble nextGap);
    85   ///  Save info on products of affine deltaT*deltaW and deltaS*deltaZ
    86   CoinWorkDouble affineProduct();
    87   ///See exactly what would happen given current deltas
    88   void debugMove(int phase,CoinWorkDouble primalStep, CoinWorkDouble dualStep);
    89   //@}
     53    /**@name Functions used in algorithm */
     54    //@{
     55    /// findStepLength.
     56    //phase  - 0 predictor
     57    //         1 corrector
     58    //         2 primal dual
     59    CoinWorkDouble findStepLength( int phase);
     60    /// findDirectionVector.
     61    CoinWorkDouble findDirectionVector(const int phase);
     62    /// createSolution.  Creates solution from scratch (- code if no memory)
     63    int createSolution();
     64    /// complementarityGap.  Computes gap
     65    //phase 0=as is , 1 = after predictor , 2 after corrector
     66    CoinWorkDouble complementarityGap(int & numberComplementarityPairs, int & numberComplementarityItems,
     67                                      const int phase);
     68    /// setupForSolve.
     69    //phase 0=affine , 1 = corrector , 2 = primal-dual
     70    void setupForSolve(const int phase);
     71    /** Does solve. region1 is for deltaX (columns+rows), region2 for deltaPi (rows) */
     72    void solveSystem(CoinWorkDouble * region1, CoinWorkDouble * region2,
     73                     const CoinWorkDouble * region1In, const CoinWorkDouble * region2In,
     74                     const CoinWorkDouble * saveRegion1, const CoinWorkDouble * saveRegion2,
     75                     bool gentleRefine);
     76    /// sees if looks plausible change in complementarity
     77    bool checkGoodMove(const bool doCorrector, CoinWorkDouble & bestNextGap,
     78                       bool allowIncreasingGap);
     79    ///:  checks for one step size
     80    bool checkGoodMove2(CoinWorkDouble move, CoinWorkDouble & bestNextGap,
     81                        bool allowIncreasingGap);
     82    /// updateSolution.  Updates solution at end of iteration
     83    //returns number fixed
     84    int updateSolution(CoinWorkDouble nextGap);
     85    ///  Save info on products of affine deltaT*deltaW and deltaS*deltaZ
     86    CoinWorkDouble affineProduct();
     87    ///See exactly what would happen given current deltas
     88    void debugMove(int phase, CoinWorkDouble primalStep, CoinWorkDouble dualStep);
     89    //@}
    9090
    9191};
Note: See TracChangeset for help on using the changeset viewer.