/home/coin/SVN-release/OS-2.0.1/Couenne/src/branch/CouenneChooseStrong.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneChooseStrong.hpp 141 2009-06-03 04:19:19Z pbelotti $ */
00002 /*
00003  * Name:    CouenneChooseStrong.hpp
00004  * Authors: Andreas Waechter, IBM Corp.
00005  * Purpose: Strong branching object for Couenne
00006  *
00007  * (C) Carnegie-Mellon University, 2006-08.
00008  * This file is licensed under the Common Public License (CPL)
00009  */
00010 
00011 #ifndef COUENNECHOOSESTRONG_HPP
00012 #define COUENNECHOOSESTRONG_HPP
00013 
00014 #include "BonChooseVariable.hpp"
00015 #include "CouenneJournalist.hpp"
00016 
00017 
00018 // Forward declaration
00019 class CouenneProblem;
00020 class CouenneSolverInterface;
00021 
00022 //namespace Bonmin {
00023 
00024 class CouenneChooseStrong : public Bonmin::BonChooseVariable  {
00025 
00026   public:
00027 
00029   CouenneChooseStrong (Bonmin::BabSetupBase& b, CouenneProblem* problem, JnlstPtr jnlst);
00030 
00032     CouenneChooseStrong (const CouenneChooseStrong &);
00033 
00035     CouenneChooseStrong & operator= (const CouenneChooseStrong& rhs);
00036 
00038     virtual OsiChooseVariable * clone() const;
00039 
00041     virtual ~CouenneChooseStrong ();
00042 
00045     virtual int setupList (OsiBranchingInformation *info, bool initialize);
00046 
00058     virtual int doStrongBranching( CouenneSolverInterface * solver, 
00059                                    OsiBranchingInformation *info,
00060                                    int numberToDo, int returnCriterion);
00061 
00063     virtual bool feasibleSolution (const OsiBranchingInformation * info,
00064                                    const double * solution,
00065                                    int numberObjects,
00066                                    const OsiObject ** objects);
00067 
00069     virtual int chooseVariable (OsiSolverInterface * solver,
00070                                 OsiBranchingInformation *info,
00071                                 bool fixVariables);
00072 
00074     static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
00075 
00076   private:
00077 
00079     CouenneChooseStrong ();
00080     
00081   protected:
00082 
00084     CouenneProblem *problem_;
00085 
00089     bool pseudoUpdateLP_;
00090 
00092     JnlstPtr jnlst_;
00093   };
00094 //}
00095 
00096 #endif

Generated on Thu Oct 8 03:02:55 2009 by  doxygen 1.4.7