- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Osi-0.98.1/Osi/src/OsiRowCutDebugger.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2000, International Business Machines
    00002 // Corporation and others.  All Rights Reserved.
    00003 #ifndef OsiRowCutDebugger_H
    00004 #define OsiRowCutDebugger_H
    00005
    00006 #include <string>
    00007
    00008 #include "OsiCuts.hpp"
    00009 #include "OsiSolverInterface.hpp"
    00010
    00012 class OsiRowCutDebugger {
    00013   friend void OsiRowCutDebuggerUnitTest(const OsiSolverInterface * siP,
    00014                                         const std::string & mpsDir);
    00015
    00016 public:
    00017
    00030   virtual int validateCuts(const OsiCuts & cs, int first, int last) const;
    00031
    00033   virtual bool invalidCut(const OsiRowCut & rowcut) const;
    00034
    00036   const double * optimalSolution() const
    00037   { return optimalSolution_;}
    00038
    00040   int numberColumns() const { return (numberColumns_) ; }
    00042
    00049   bool activate(const OsiSolverInterface & si, const char * model);
    00055   bool activate(const OsiSolverInterface & si, const double * solution);
    00057   void redoSolution(int numberColumns,const int * originalColumns);
    00059
    00066   bool onOptimalPath(const OsiSolverInterface & si) const;
    00068
    00071
    00072   bool active() const;
    00074
    00077
    00078   OsiRowCutDebugger ();
    00079
    00083   OsiRowCutDebugger (const OsiSolverInterface & si, const char * model);
    00084
    00085   // Constructor with full solution (only integers need be correct)
    00086   OsiRowCutDebugger (const OsiSolverInterface & si, const double * solution);
    00087
    00089   OsiRowCutDebugger (
    00090     const OsiRowCutDebugger &);
    00091
    00093   OsiRowCutDebugger &
    00094     operator=(
    00095     const OsiRowCutDebugger& rhs);
    00096
    00098   virtual
    00099     ~OsiRowCutDebugger ();
    00101
    00102 private:
    00103
    00104  // Private member methods
    00105
    00106
    00109
    00111
    00112   // Private member data
    00113
    00116
    00117   int numberColumns_;
    00119   bool * integerVariable_;
    00121   double * optimalSolution_;
    00123 };
    00124
    00125 //#############################################################################
    00131 void
    00132 OsiRowCutDebuggerUnitTest(const OsiSolverInterface * siP,
    00133                           const std::string & mpsDir);
    00134
    00135 #endif