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

- File List
- File Members

# /home/coin/SVN-release/Bcps-0.91.0/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   inline const double * optimalSolution() const
    00037   { return optimalSolution_;}
    00038
    00040   inline int numberColumns() const { return (numberColumns_) ; }
    00042   inline double optimalValue() const
    00043   { return optimalValue_;}
    00045
    00052   bool activate(const OsiSolverInterface & si, const char * model);
    00058   bool activate(const OsiSolverInterface & si, const double * solution);
    00060   void redoSolution(int numberColumns,const int * originalColumns);
    00062   int printOptimalSolution(const OsiSolverInterface & si) const;
    00064
    00071   bool onOptimalPath(const OsiSolverInterface & si) const;
    00073
    00076
    00077   bool active() const;
    00079
    00082
    00083   OsiRowCutDebugger ();
    00084
    00088   OsiRowCutDebugger (const OsiSolverInterface & si, const char * model);
    00089
    00090   // Constructor with full solution (only integers need be correct)
    00091   OsiRowCutDebugger (const OsiSolverInterface & si, const double * solution);
    00092
    00094   OsiRowCutDebugger (
    00095     const OsiRowCutDebugger &);
    00096
    00098   OsiRowCutDebugger &
    00099     operator=(
    00100     const OsiRowCutDebugger& rhs);
    00101
    00103   virtual
    00104     ~OsiRowCutDebugger ();
    00106
    00107 private:
    00108
    00109  // Private member methods
    00110
    00111
    00114
    00116
    00117   // Private member data
    00118
    00121
    00122   double optimalValue_;
    00124   int numberColumns_;
    00126   bool * integerVariable_;
    00128   double * optimalSolution_;
    00130 };
    00131
    00132 //#############################################################################
    00138 void
    00139 OsiRowCutDebuggerUnitTest(const OsiSolverInterface * siP,
    00140                           const std::string & mpsDir);
    00141
    00142 #endif