CbcBranchAllDifferent.hpp
Go to the documentation of this file.
1 // Edwin 11/13/2009-- carved out of CbcBranchCut
2 #ifndef CbcBranchAllDifferent_H
3 #define CbcBranchAllDifferent_H
4 
5 #include "CbcBranchBase.hpp"
6 #include "OsiRowCut.hpp"
7 #include "CoinPackedMatrix.hpp"
8 #include "CbcBranchCut.hpp"
9 
17 
18 public:
19 
20  // Default Constructor
22 
25  CbcBranchAllDifferent (CbcModel * model, int number, const int * which);
26 
27  // Copy constructor
29 
31  virtual CbcObject * clone() const;
32 
33  // Assignment operator
35 
36  // Destructor
38 
40  virtual double infeasibility(const OsiBranchingInformation * info,
41  int &preferredWay) const;
42 
44  virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
45 
46 
47 protected:
49 
53  int * which_;
54 };
55 #endif
56 
Abstract branching object base class Now just difference with OsiBranchingObject. ...
virtual CbcObject * clone() const
Clone.
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
Definition: CbcObject.hpp:235
int * which_
Which variables.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
CbcBranchAllDifferent & operator=(const CbcBranchAllDifferent &rhs)
Define a cut branching class.
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5.
CbcModel * model() const
Return model.
Definition: CbcObject.hpp:230
Define a branch class that branches so that it is only satsified if all members have different values...
Simple Branch and bound class.
Definition: CbcModel.hpp:98