Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

ClpSimplexDual.hpp

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 
00116   int dual(int ifValuesPass);
00125   int strongBranching(int numberVariables,const int * variables,
00126                       double * newLower, double * newUpper,
00127                       double ** outputSolution,
00128                       int * outputStatus, int * outputIterations,
00129                       bool stopOnFirstInfeasible=true,
00130                       bool alwaysFinish=false);
00132 
00148   int whileIterating(double * & givenPi); 
00156   int updateDualsInDual(CoinIndexedVector * rowArray,
00157                   CoinIndexedVector * columnArray,
00158                   CoinIndexedVector * outputArray,
00159                   double theta,
00160                   double & objectiveChange,
00161                         bool fullRecompute);
00165   void updateDualsInValuesPass(CoinIndexedVector * rowArray,
00166                   CoinIndexedVector * columnArray,
00167                   double theta);
00172   void flipBounds(CoinIndexedVector * rowArray,
00173                   CoinIndexedVector * columnArray,
00174                   double change);
00186   void dualColumn(CoinIndexedVector * rowArray,
00187                   CoinIndexedVector * columnArray,
00188                   CoinIndexedVector * spareArray,
00189                   CoinIndexedVector * spareArray2,
00190                   double accpetablePivot,
00191                   CoinBigIndex * dubiousWeights);
00199   int checkPossibleValuesMove(CoinIndexedVector * rowArray,
00200                                CoinIndexedVector * columnArray,
00201                               double acceptablePivot,
00202                               CoinBigIndex * dubiousWeights);
00207   void doEasyOnesInValuesPass(double * givenReducedCosts);
00217   void dualRow(int alreadyChosen);
00226   int changeBounds(bool initialize,CoinIndexedVector * outputArray,
00227                    double & changeCost);
00230   bool changeBound( int iSequence);
00232   void originalBound(int iSequence);
00235   int checkUnbounded(CoinIndexedVector * ray,CoinIndexedVector * spare,
00236                      double changeCost);
00246   void statusOfProblemInDual(int & lastCleaned, int type,
00247                              ClpSimplexProgress * progress,
00248                              double * givenDjs);
00250   void perturb();
00256   int fastDual(bool alwaysFinish=false);
00259   int numberAtFakeBound();
00260 
00266   int pivotResult();
00268   int nextSuperBasic();
00269   
00271 };
00272 #endif

Generated on Wed Dec 3 14:37:34 2003 for CLP by doxygen 1.3.5