Alps 1.5.11
Loading...
Searching...
No Matches
AbcBranchBase.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-2019, Lehigh University, Yan Xu, and Ted Ralphs. *
21 *===========================================================================*/
22
23#ifndef AbcBranchBase_h_
24#define AbcBranchBase_h_
25
26//#############################################################################
27// This file is modified from SbbBranchBase.hpp
28//#############################################################################
29
30#include <string>
31#include <vector>
32
33class OsiSolverInterface;
34
35class AbcModel;
36class AbcNode;
37class AbcNodeDesc;
38class AbcBranchingObject;
39
40//#############################################################################
41
51 public:
54
57
59 virtual AbcBranchDecision * clone() const = 0;
60
62 virtual void initialize(AbcModel * model) = 0;
63
74 virtual int
75 betterBranch(int thisOne,
76 int bestSoFar,
77 double changeUp,
78 int numberInfeasibilitiesUp,
79 double changeDown,
80 int numberInfeasibilitiesDown) = 0 ;
81
88 virtual int bestBranch ( AbcModel* model,
89 int* objects,
90 int numberObjects,
91 int numberUnsatisfied,
92 double * changeUp,
93 int * numberInfeasibilitiesUp,
94 double * changeDown,
95 int * numberInfeasibilitiesDown,
96 double objectiveValue );
97
98 private:
99
102
103};
104
105#endif
Abstract branching decision base class.
AbcBranchDecision & operator=(const AbcBranchDecision &rhs)
Assignment is illegal.
virtual void initialize(AbcModel *model)=0
Initialize e.g. before starting to choose a branch at a node.
virtual int bestBranch(AbcModel *model, int *objects, int numberObjects, int numberUnsatisfied, double *changeUp, int *numberInfeasibilitiesUp, double *changeDown, int *numberInfeasibilitiesDown, double objectiveValue)
Compare N branching objects.
virtual int betterBranch(int thisOne, int bestSoFar, double changeUp, int numberInfeasibilitiesUp, double changeDown, int numberInfeasibilitiesDown)=0
Compare two branching objects (current just integer variables).
AbcBranchDecision()
Default Constructor.
virtual ~AbcBranchDecision()
Destructor.
virtual AbcBranchDecision * clone() const =0
Clone.
Model class for ALPS Branch and Cut.
Definition AbcModel.h:55