AbcBranchActual.h
Go to the documentation of this file.
1 /*===========================================================================*
2  * This file is part of the Abstract Library for Parallel Search (ALPS). *
3  * *
4  * ALPS is distributed under the Eclipse Public License as part of the *
5  * COIN-OR repository (http://www.coin-or.org). *
6  * *
7  * Authors: *
8  * *
9  * Yan Xu, Lehigh University *
10  * Ted Ralphs, Lehigh University *
11  * *
12  * Conceptual Design: *
13  * *
14  * Yan Xu, Lehigh University *
15  * Ted Ralphs, Lehigh University *
16  * Laszlo Ladanyi, IBM T.J. Watson Research Center *
17  * Matthew Saltzman, Clemson University *
18  * *
19  * *
20  * Copyright (C) 2001-2013, Lehigh University, Yan Xu, and Ted Ralphs. *
21  *===========================================================================*/
22 
23 #ifndef AbcBranchActual_h_
24 #define AbcBranchActual_h_
25 
26 //#############################################################################
27 // This file is modified from SbbBranchActual.hpp
28 //#############################################################################
29 
30 #include "AbcBranchBase.h"
31 
32 //#############################################################################
39 
40  public:
41  // Default Constructor
43 
44  // Copy constructor
46 
47  virtual ~AbcBranchDefaultDecision();
48 
50  virtual AbcBranchDecision * clone() const;
51 
53  virtual void initialize(AbcModel * model);
54 
77  virtual int betterBranch(int thisOne,
78  int bestSoFar,
79  double changeUp, int numInfUp,
80  double changeDn, int numInfDn);
81 
82  private:
83 
86 
90 
93 
95  double bestChangeUp_;
96 
99 
102 
105 
108 };
109 
110 
112 {
113  public:
114  int colInd_;
115  double upCost_;
116  int upNum_;
117  double downCost_;
118  int downNum_;
119 
120  public:
122  :
123  colInd_(-1),
124  upCost_(0.0), upNum_(0),
125  downCost_(0.0), downNum_(0) {}
126 
127  AbcPseudocost(const int ind,
128  const double uc,
129  const int un,
130  const double dc,
131  const int dn)
132  :
133  colInd_(ind),
134  upCost_(uc), upNum_(un),
135  downCost_(dc), downNum_(dn) {}
136 
137  void update(const int dir,
138  const double parentObjValue,
139  const double objValue,
140  const double solValue);
141 
142 };
143 
144 #endif
double bestChangeDown_
Change down for best.
int bestNumberDown_
Number of infeasibilities for down.
virtual AbcBranchDecision * clone() const
Clone.
int bestNumberUp_
Number of infeasibilities for up.
double bestChangeUp_
Change up for best.
virtual ~AbcBranchDefaultDecision()
AbcBranchDefaultDecision & operator=(const AbcBranchDefaultDecision &rhs)
Illegal Assignment operator.
AbcModel * model_
data Point to the model
virtual int betterBranch(int thisOne, int bestSoFar, double changeUp, int numInfUp, double changeDn, int numInfDn)
Compare two branching objects.
AbcPseudocost(const int ind, const double uc, const int un, const double dc, const int dn)
void update(const int dir, const double parentObjValue, const double objValue, const double solValue)
double bestCriterion_
"best" so far
int bestObject_
Index of the best branching integer variable.
Branching decision default class.
Abstract branching decision base class.
Definition: AbcBranchBase.h:50
Model class for ALPS Branch and Cut.
Definition: AbcModel.h:55
virtual void initialize(AbcModel *model)
Initialize, e.g. before the start of branch selection at a node.