00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef COUENNEORBITOBJ_HPP
00012 #define COUENNEORBITOBJ_HPP
00013
00014 #include "BonBabSetupBase.hpp"
00015 #include "CoinFinite.hpp"
00016
00017 #include "exprVar.hpp"
00018 #include "CouenneJournalist.hpp"
00019 #include "OsiBranchingObject.hpp"
00020
00021 #include "CouenneOrbitObj.hpp"
00022
00023
00025
00026 class CouenneOrbitObj: public CouenneObject {
00027
00028 public:
00029
00031 CouenneOrbitObj ();
00032
00034 CouenneOrbitObj (CouenneCutGenerator *cutgen,
00035 CouenneProblem *p,
00036 exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst);
00037
00039 CouenneOrbitObj (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst);
00040
00042 ~CouenneOrbitObj () {}
00043
00045 CouenneOrbitObj (const CouenneOrbitObj &src);
00046
00048 virtual CouenneObject * clone () const
00049 {return new CouenneOrbitObj (*this);}
00050
00052 void setParameters (Bonmin::BabSetupBase *base);
00053
00056 virtual double infeasibility (const OsiBranchingInformation *info, int &way) const;
00057
00060 virtual double checkInfeasibility (const OsiBranchingInformation * info) const;
00061
00063 virtual double feasibleRegion (OsiSolverInterface*, const OsiBranchingInformation*) const;
00064
00067 virtual OsiBranchingObject *createBranch (OsiSolverInterface*,
00068 const OsiBranchingInformation*, int) const;
00069
00070 protected:
00071
00072 };
00073
00074 #endif