Alps  2.0.2
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  * Aykut Bulut, Lehigh University *
11  * Ted Ralphs, Lehigh University *
12  * *
13  * Conceptual Design: *
14  * *
15  * Yan Xu, Lehigh University *
16  * Ted Ralphs, Lehigh University *
17  * Laszlo Ladanyi, IBM T.J. Watson Research Center *
18  * Matthew Saltzman, Clemson University *
19  * *
20  * *
21  * Copyright (C) 2001-2019, Lehigh University, Yan Xu, Aykut Bulut, and *
22  * Ted Ralphs. *
23  * All Rights Reserved. *
24  *===========================================================================*/
25 
26 
27 #ifndef AbcBranchActual_h_
28 #define AbcBranchActual_h_
29 
30 //#############################################################################
31 // This file is modified from SbbBranchActual.hpp
32 //#############################################################################
33 
34 #include "AbcBranchBase.h"
35 
36 //#############################################################################
43 
44  public:
45  // Default Constructor
47 
48  // Copy constructor
50 
51  virtual ~AbcBranchDefaultDecision();
52 
54  virtual AbcBranchDecision * clone() const;
55 
57  virtual void initialize(AbcModel * model);
58 
81  virtual int betterBranch(int thisOne,
82  int bestSoFar,
83  double changeUp, int numInfUp,
84  double changeDn, int numInfDn);
85 
86  private:
87 
90 
93  AbcModel * model_;
94 
96  double bestCriterion_;
97 
99  double bestChangeUp_;
100 
102  int bestNumberUp_;
103 
105  double bestChangeDown_;
106 
108  int bestNumberDown_;
109 
111  int bestObject_;
112 };
113 
114 
115 class AbcPseudocost
116 {
117  public:
118  int colInd_;
119  double upCost_;
120  int upNum_;
121  double downCost_;
122  int downNum_;
123 
124  public:
126  :
127  colInd_(-1),
128  upCost_(0.0), upNum_(0),
129  downCost_(0.0), downNum_(0) {}
130 
131  AbcPseudocost(const int ind,
132  const double uc,
133  const int un,
134  const double dc,
135  const int dn)
136  :
137  colInd_(ind),
138  upCost_(uc), upNum_(un),
139  downCost_(dc), downNum_(dn) {}
140 
141  void update(const int dir,
142  const double parentObjValue,
143  const double objValue,
144  const double solValue);
145 
146 };
147 
148 #endif
AbcBranchDefaultDecision::initialize
virtual void initialize(AbcModel *model)
Initialize, e.g. before the start of branch selection at a node.
AbcBranchDecision
Abstract branching decision base class.
Definition: AbcBranchBase.h:54
AbcPseudocost::AbcPseudocost
AbcPseudocost()
Definition: AbcBranchActual.h:125
AbcBranchBase.h
AbcPseudocost
Definition: AbcBranchActual.h:115
AbcBranchDefaultDecision::bestObject_
int bestObject_
Index of the best branching integer variable.
Definition: AbcBranchActual.h:111
AbcPseudocost::update
void update(const int dir, const double parentObjValue, const double objValue, const double solValue)
AbcBranchDefaultDecision::bestNumberDown_
int bestNumberDown_
Number of infeasibilities for down.
Definition: AbcBranchActual.h:108
AbcBranchDefaultDecision::bestChangeUp_
double bestChangeUp_
Change up for best.
Definition: AbcBranchActual.h:99
AbcBranchDefaultDecision::model_
AbcModel * model_
data Point to the model
Definition: AbcBranchActual.h:93
AbcBranchDefaultDecision::bestCriterion_
double bestCriterion_
"best" so far
Definition: AbcBranchActual.h:96
AbcBranchDefaultDecision::bestChangeDown_
double bestChangeDown_
Change down for best.
Definition: AbcBranchActual.h:105
AbcPseudocost::upNum_
int upNum_
Definition: AbcBranchActual.h:120
AbcPseudocost::AbcPseudocost
AbcPseudocost(const int ind, const double uc, const int un, const double dc, const int dn)
Definition: AbcBranchActual.h:131
AbcBranchDefaultDecision::~AbcBranchDefaultDecision
virtual ~AbcBranchDefaultDecision()
AbcBranchDefaultDecision
Branching decision default class.
Definition: AbcBranchActual.h:42
AbcBranchDefaultDecision::operator=
AbcBranchDefaultDecision & operator=(const AbcBranchDefaultDecision &rhs)
Illegal Assignment operator.
AbcBranchDefaultDecision::bestNumberUp_
int bestNumberUp_
Number of infeasibilities for up.
Definition: AbcBranchActual.h:102
AbcBranchDefaultDecision::AbcBranchDefaultDecision
AbcBranchDefaultDecision()
AbcBranchDefaultDecision::betterBranch
virtual int betterBranch(int thisOne, int bestSoFar, double changeUp, int numInfUp, double changeDn, int numInfDn)
Compare two branching objects.
AbcModel
Model class for ALPS Branch and Cut.
Definition: AbcModel.h:59
AbcPseudocost::upCost_
double upCost_
Definition: AbcBranchActual.h:119
AbcPseudocost::downCost_
double downCost_
Definition: AbcBranchActual.h:121
AbcPseudocost::colInd_
int colInd_
Definition: AbcBranchActual.h:118
AbcBranchDefaultDecision::clone
virtual AbcBranchDecision * clone() const
Clone.
AbcPseudocost::downNum_
int downNum_
Definition: AbcBranchActual.h:122