00001
00002
00003
00004
00005
00006
00007
00008 #ifndef CbcBranchDefaultDecision_H
00009 #define CbcBranchDefaultDecision_H
00010
00011 #include "CbcBranchBase.hpp"
00018 class CbcBranchDefaultDecision : public CbcBranchDecision {
00019 public:
00020
00021 CbcBranchDefaultDecision ();
00022
00023
00024 CbcBranchDefaultDecision ( const CbcBranchDefaultDecision &);
00025
00026 virtual ~CbcBranchDefaultDecision();
00027
00029 virtual CbcBranchDecision * clone() const;
00030
00032 virtual void initialize(CbcModel * model);
00033
00053 virtual int betterBranch(CbcBranchingObject * thisOne,
00054 CbcBranchingObject * bestSoFar,
00055 double changeUp, int numInfUp,
00056 double changeDn, int numInfDn);
00058 virtual void setBestCriterion(double value);
00059 virtual double getBestCriterion() const;
00060
00067 virtual int
00068 bestBranch (CbcBranchingObject ** objects, int numberObjects, int numberUnsatisfied,
00069 double * changeUp, int * numberInfeasibilitiesUp,
00070 double * changeDown, int * numberInfeasibilitiesDown,
00071 double objectiveValue) ;
00072 private:
00073
00075 CbcBranchDefaultDecision & operator=(const CbcBranchDefaultDecision& rhs);
00076
00078
00080 double bestCriterion_;
00081
00083 double bestChangeUp_;
00084
00086 int bestNumberUp_;
00087
00089 double bestChangeDown_;
00090
00092 CbcBranchingObject * bestObject_;
00093
00095 int bestNumberDown_;
00096
00097 };
00098
00099 #endif
00100