# CouenneChooseVariable.hpp

Go to the documentation of this file.

    00001 /* $Id: CouenneChooseVariable.hpp 792 2012-01-24 17:24:15Z pbelotti $
    00002  *
    00003  * Name:    CouenneChooseVariable.hpp
    00004  * Authors: Pierre Bonami, IBM Corp.
    00005  *          Pietro Belotti, Carnegie Mellon University
    00006  * Purpose: Branching object for choosing branching auxiliary variable
    00007  *
    00008  * (C) Carnegie-Mellon University, 2006.
    00009  * This file is licensed under the Eclipse Public License (EPL)
    00010  */
    00011
    00012 #ifndef COUENNECHOOSEVARIABLE_HPP
    00013 #define COUENNECHOOSEVARIABLE_HPP
    00014
    00015 #include "OsiChooseVariable.hpp"
    00016 #include "BonBabInfos.hpp"
    00017 #include "CouenneJournalist.hpp"
    00018 #include "BonRegisteredOptions.hpp"
    00019
    00020 namespace Couenne {
    00021
    00022 class CouenneProblem;
    00023
    00027 class CouenneChooseVariable: public OsiChooseVariable {
    00028
    00029 public:
    00030
    00032   CouenneChooseVariable ();
    00033
    00035   CouenneChooseVariable (const OsiSolverInterface *, CouenneProblem *, JnlstPtr jnlst);
    00036
    00038   CouenneChooseVariable (const CouenneChooseVariable &);
    00039
    00041   CouenneChooseVariable &operator= (const CouenneChooseVariable &);
    00042
    00044   virtual OsiChooseVariable *clone() const
    00045   {return new CouenneChooseVariable (*this);}
    00046
    00048   virtual ~CouenneChooseVariable () {}
    00049
    00053   virtual int setupList (OsiBranchingInformation *, bool);
    00054
    00056   virtual bool feasibleSolution (const OsiBranchingInformation * info,
    00057                                  const double * solution,
    00058                                  int numberObjects,
    00059                                  const OsiObject ** objects);
    00060
    00061   // choose object to branch based on earlier setup
    00062   //   virtual int chooseVariable (OsiSolverInterface * solver,
    00063   //                          OsiBranchingInformation *info,
    00064   //                          bool fixVariables);
    00065
    00067   static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
    00068
    00069 protected:
    00070
    00072   CouenneProblem *problem_;
    00073
    00075   JnlstPtr jnlst_;
    00076 };
    00077
    00078 }
    00079
    00080 #endif

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines