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

- File List
- File Members

# /home/coin/svn-release/Alps-1.5.0/Osi/src/Osi/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