Cbc  2.10.10
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CbcBranchAllDifferent.hpp
Go to the documentation of this file.
1 // $Id$
2 // Copyright (C) 2004, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 // Edwin 11/13/2009-- carved out of CbcBranchCut
7 
8 #ifndef CbcBranchAllDifferent_H
9 #define CbcBranchAllDifferent_H
10 
11 #include "CbcBranchBase.hpp"
12 #include "OsiRowCut.hpp"
13 #include "CoinPackedMatrix.hpp"
14 #include "CbcBranchCut.hpp"
15 
22 
23 public:
24  // Default Constructor
26 
29  CbcBranchAllDifferent(CbcModel *model, int number, const int *which);
30 
31  // Copy constructor
33 
35  virtual CbcObject *clone() const;
36 
37  // Assignment operator
39 
40  // Destructor
42 
44  virtual double infeasibility(const OsiBranchingInformation *info,
45  int &preferredWay) const;
46 
48  virtual CbcBranchingObject *createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way);
49 
50 protected:
52 
56  int *which_;
57 };
58 #endif
59 
60 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
61 */
CbcObject::preferredWay
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
Definition: CbcObject.hpp:258
CbcBranchAllDifferent::infeasibility
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5.
CbcBranchAllDifferent::numberInSet_
int numberInSet_
data
Definition: CbcBranchAllDifferent.hpp:54
CbcBranchAllDifferent::CbcBranchAllDifferent
CbcBranchAllDifferent()
CbcBranchCut.hpp
CbcBranchCut
Define a cut branching class.
Definition: CbcBranchCut.hpp:17
CbcBranchAllDifferent
Define a branch class that branches so that it is only satsified if all members have different values...
Definition: CbcBranchAllDifferent.hpp:21
CbcBranchAllDifferent::~CbcBranchAllDifferent
~CbcBranchAllDifferent()
CbcModel
Simple Branch and bound class.
Definition: CbcModel.hpp:100
CbcBranchAllDifferent::which_
int * which_
Which variables.
Definition: CbcBranchAllDifferent.hpp:56
CbcBranchingObject
Abstract branching object base class Now just difference with OsiBranchingObject.
Definition: CbcBranchingObject.hpp:51
CbcObject
Definition: CbcObject.hpp:67
CbcBranchBase.hpp
CbcBranchAllDifferent::createCbcBranch
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
CbcBranchAllDifferent::operator=
CbcBranchAllDifferent & operator=(const CbcBranchAllDifferent &rhs)
CbcObject::model
CbcModel * model() const
Return model.
Definition: CbcObject.hpp:252
CbcBranchAllDifferent::clone
virtual CbcObject * clone() const
Clone.