- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

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-2013, 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
33 class OsiSolverInterface;
34
35 class AbcModel;
36 class AbcNode;
37 class AbcNodeDesc;
38 class AbcBranchingObject;
39
40 //#############################################################################
41
50 class AbcBranchDecision {
51 public:
53 AbcBranchDecision ();
54
56 virtual ~AbcBranchDecision();
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
101 AbcBranchDecision & operator=(const AbcBranchDecision& rhs);
102
103 };
104
105 #endif
AbcBranchDecision::bestBranch
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.
AbcBranchDecision::clone
virtual AbcBranchDecision * clone() const =0
Clone.
AbcBranchDecision::betterBranch
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::operator=
AbcBranchDecision & operator=(const AbcBranchDecision &rhs)
Assignment is illegal.
AbcNodeDesc
Definition: AbcNodeDesc.h:48
AbcBranchDecision::AbcBranchDecision
AbcBranchDecision()
Default Constructor.
OsiSolverInterface
Abstract Base Class for describing an interface to a solver.
Definition: OsiSolverInterface.hpp:62
AbcBranchDecision::initialize
virtual void initialize(AbcModel *model)=0
Initialize e.g. before starting to choose a branch at a node.
AbcBranchDecision::~AbcBranchDecision
virtual ~AbcBranchDecision()
Destructor.
AbcBranchDecision
Abstract branching decision base class.
Definition: AbcBranchBase.h:50
AbcModel
Model class for ALPS Branch and Cut.
Definition: AbcModel.h:55