CouenneVarObject.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneVarObject.hpp 141 2009-06-03 04:19:19Z pbelotti $ */
00002 /*
00003  * Name:    CouenneVarObject.hpp
00004  * Authors: Pietro Belotti, Carnegie Mellon University
00005  * Purpose: Object for branching on variables
00006  *
00007  * (C) Carnegie-Mellon University, 2008.
00008  * This file is licensed under the Common Public License (CPL)
00009  */
00010 
00011 #ifndef COUENNEVAROBJECT_HPP
00012 #define COUENNEVAROBJECT_HPP
00013 
00014 #include "CouenneObject.hpp"
00015 
00016 class CouenneProblem;
00017 
00018 
00020 class CouenneVarObject: public CouenneObject {
00021 
00022 public:
00023 
00025   CouenneVarObject (CouenneProblem *p, 
00026                     exprVar *ref, 
00027                     Bonmin::BabSetupBase *base, 
00028                     JnlstPtr jnlst);
00029 
00031   CouenneVarObject (const CouenneVarObject &src):
00032   CouenneObject (src) {}
00033 
00035   ~CouenneVarObject () {}
00036 
00038   virtual OsiObject *clone () const
00039   {return new CouenneVarObject (*this);}
00040 
00046   virtual double infeasibility (const OsiBranchingInformation *info, int &way) const;
00047 
00050   virtual double checkInfeasibility (const OsiBranchingInformation * info) const;
00051 
00054   virtual OsiBranchingObject *createBranch (OsiSolverInterface*, 
00055                                             const OsiBranchingInformation*, int) const;
00056 
00058   virtual double feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const;
00059 
00061   virtual bool isCuttable () const;
00062 
00063 protected:
00064 
00066   CouNumber computeBranchingPoint (const OsiBranchingInformation *info, 
00067                                    int& bestWay, 
00068                                    const CouenneObject *&criticalObject) const;
00069 };
00070 
00071 #endif

Generated on Wed May 19 03:07:13 2010 for Couenne by  doxygen 1.4.7