# CouenneVarObject.hpp

Go to the documentation of this file.

    00001 /* $Id: CouenneVarObject.hpp 522 2011-03-07 21:13:46Z 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-11.
    00008  * This file is licensed under the Eclipse Public License (EPL)
    00009  */
    00010
    00011 #ifndef COUENNEVAROBJECT_HPP
    00012 #define COUENNEVAROBJECT_HPP
    00013
    00014 #include "CouenneObject.hpp"
    00015
    00016 namespace Couenne {
    00017
    00018 class CouenneProblem;
    00019
    00020
    00022 class CouenneVarObject: public CouenneObject {
    00023
    00024 public:
    00025
    00027   CouenneVarObject (CouenneCutGenerator *c,
    00028                     CouenneProblem *p,
    00029                     exprVar *ref,
    00030                     Bonmin::BabSetupBase *base,
    00031                     JnlstPtr jnlst,
    00032                     int varSelection); //< either OSI_SIMPLE or OSI_STRONG
    00033
    00035   CouenneVarObject (const CouenneVarObject &src):
    00036     CouenneObject (src),
    00037     varSelection_ (src.varSelection_) {}
    00038
    00040   ~CouenneVarObject () {}
    00041
    00043   virtual CouenneObject *clone () const
    00044   {return new CouenneVarObject (*this);}
    00045
    00051   virtual double infeasibility (const OsiBranchingInformation *info, int &way) const;
    00052
    00055   virtual double checkInfeasibility (const OsiBranchingInformation * info) const;
    00056
    00059   virtual OsiBranchingObject *createBranch (OsiSolverInterface*,
    00060                                             const OsiBranchingInformation*, int) const;
    00061
    00063   virtual double feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const;
    00064
    00066   virtual bool isCuttable () const;
    00067
    00068 protected:
    00069
    00073   int varSelection_;
    00074
    00076   CouNumber computeBranchingPoint (const OsiBranchingInformation *info,
    00077                                    int& bestWay,
    00078                                    const CouenneObject *&criticalObject) const;
    00079 };
    00080
    00081 }
    00082
    00083 #endif

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines