Osi  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
OsiRowCutDebugger.hpp
Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 // This code is licensed under the terms of the Eclipse Public License (EPL).
00004 
00005 #ifndef OsiRowCutDebugger_H
00006 #define OsiRowCutDebugger_H
00007 
00014 #include <string>
00015 
00016 #include "OsiCuts.hpp"
00017 #include "OsiSolverInterface.hpp"
00018 
00042 class OsiRowCutDebugger {
00043   friend void OsiRowCutDebuggerUnitTest(const OsiSolverInterface * siP,    
00044                                         const std::string & mpsDir);
00045 
00046 public:
00047   
00059   virtual int validateCuts(const OsiCuts & cs, int first, int last) const;
00060 
00066   virtual bool invalidCut(const OsiRowCut & rowcut) const;
00067 
00074   bool onOptimalPath(const OsiSolverInterface &si) const;
00076 
00088   bool activate(const OsiSolverInterface &si, const char *model) ;
00089 
00101   bool activate(const OsiSolverInterface &si, const double* solution,
00102                 bool keepContinuous = false) ;
00103 
00105   bool active() const;
00107 
00110 
00111   inline const double * optimalSolution() const
00112   { return knownSolution_;}
00113 
00115   inline int numberColumns() const { return (numberColumns_) ; }
00116 
00118   inline double optimalValue() const { return knownValue_;}
00119 
00130   void redoSolution(int numberColumns, const int *originalColumns);
00131 
00133   int printOptimalSolution(const OsiSolverInterface & si) const;
00135 
00138 
00139   OsiRowCutDebugger ();
00140 
00145   OsiRowCutDebugger(const OsiSolverInterface &si, const char *model) ;
00146 
00151   OsiRowCutDebugger(const OsiSolverInterface &si, const double *solution,
00152                     bool enforceOptimality = false) ;
00153  
00155   OsiRowCutDebugger(const OsiRowCutDebugger &);
00156 
00158   OsiRowCutDebugger& operator=(const OsiRowCutDebugger& rhs);
00159   
00161   virtual ~OsiRowCutDebugger ();
00163       
00164 private:
00165   
00166   // Private member data
00167 
00170 
00171   double knownValue_;
00172 
00177   int numberColumns_;
00178 
00180   bool * integerVariable_;
00181 
00183   double * knownSolution_;
00185 };
00186   
00187 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines