/home/coin/SVN-release/Bcp-1.2.1/Clp/src/ClpSimplexDual.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2002, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 
00004 /* 
00005    Authors
00006    
00007    John Forrest
00008 
00009  */
00010 #ifndef ClpSimplexDual_H
00011 #define ClpSimplexDual_H
00012 
00013 #include "ClpSimplex.hpp"
00014 
00022 class ClpSimplexDual : public ClpSimplex {
00023 
00024 public:
00025 
00117   int dual(int ifValuesPass,int startFinishOptions=0);
00126   int strongBranching(int numberVariables,const int * variables,
00127                       double * newLower, double * newUpper,
00128                       double ** outputSolution,
00129                       int * outputStatus, int * outputIterations,
00130                       bool stopOnFirstInfeasible=true,
00131                       bool alwaysFinish=false,
00132                       int startFinishOptions=0);
00134   ClpFactorization * setupForStrongBranching(char * arrays, int numberRows, int numberColumns);
00136   void cleanupAfterStrongBranching();
00138 
00154   int whileIterating(double * & givenPi,int ifValuesPass); 
00162   int updateDualsInDual(CoinIndexedVector * rowArray,
00163                   CoinIndexedVector * columnArray,
00164                   CoinIndexedVector * outputArray,
00165                   double theta,
00166                   double & objectiveChange,
00167                         bool fullRecompute);
00171   void updateDualsInValuesPass(CoinIndexedVector * rowArray,
00172                   CoinIndexedVector * columnArray,
00173                   double theta);
00178   void flipBounds(CoinIndexedVector * rowArray,
00179                   CoinIndexedVector * columnArray,
00180                   double change);
00192   double dualColumn(CoinIndexedVector * rowArray,
00193                   CoinIndexedVector * columnArray,
00194                   CoinIndexedVector * spareArray,
00195                   CoinIndexedVector * spareArray2,
00196                   double accpetablePivot,
00197                   CoinBigIndex * dubiousWeights);
00199   int dualColumn0(const CoinIndexedVector * rowArray,
00200                   const CoinIndexedVector * columnArray,
00201                   CoinIndexedVector * spareArray,
00202                   double acceptablePivot,
00203                   double & upperReturn, double &bestReturn,double & badFree);
00210   void checkPossibleValuesMove(CoinIndexedVector * rowArray,
00211                                CoinIndexedVector * columnArray,
00212                               double acceptablePivot);
00219   void checkPossibleCleanup(CoinIndexedVector * rowArray,
00220                                CoinIndexedVector * columnArray,
00221                               double acceptablePivot);
00226   void doEasyOnesInValuesPass(double * givenReducedCosts);
00236   void dualRow(int alreadyChosen);
00245   int changeBounds(bool initialize,CoinIndexedVector * outputArray,
00246                    double & changeCost);
00249   bool changeBound( int iSequence);
00251   void originalBound(int iSequence);
00254   int checkUnbounded(CoinIndexedVector * ray,CoinIndexedVector * spare,
00255                      double changeCost);
00265   void statusOfProblemInDual(int & lastCleaned, int type,
00266                              double * givenDjs, ClpDataSave & saveData,
00267                              int ifValuesPass);
00270   int perturb();
00276   int fastDual(bool alwaysFinish=false);
00279   int numberAtFakeBound();
00280 
00286   int pivotResult();
00288   int nextSuperBasic();
00291   int startupSolve(int ifValuesPass,double * saveDuals,int startFinishOptions);
00292   void finishSolve(int startFinishOptions);
00293   void gutsOfDual(int ifValuesPass,double * & saveDuals,int initialStatus,
00294                   ClpDataSave & saveData);
00295   //int dual2(int ifValuesPass,int startFinishOptions=0);
00296   void resetFakeBounds();
00297   
00299 };
00300 #endif

Generated on Thu Jan 15 03:01:00 2009 for coin-Bcp by  doxygen 1.4.7