Minotaur 0.4.1
Docs for developers
Branch.h
Go to the documentation of this file.
1//
2// Minotaur -- It's only 1/2 bull
3//
4// (C)opyright 2009 - 2025 The Minotaur Team.
5//
6
14#ifndef MINOTAURBRANCH_H
15#define MINOTAURBRANCH_H
16
17#include "Types.h"
18
19namespace Minotaur {
20
21class BrCand;
22class Modification;
23
33class Branch {
34public:
36 Branch();
37
39 ~Branch();
40
46 void addPMod(ModificationPtr mod);
47
53 void addRMod(ModificationPtr mod);
54
60 void setBrCand(BrCandPtr cand) {brCand_ = cand;};
61
63 ModificationConstIterator pModsBegin() const
64 { return pMods_.begin(); }
65
67 ModificationConstIterator rModsBegin() const
68 { return rMods_.begin(); }
69
71 ModificationConstIterator pModsEnd() const
72 { return pMods_.end(); }
73
75 ModificationConstIterator rModsEnd() const
76 { return rMods_.end(); }
77
83 ModificationRConstIterator pModsRBegin() const
84 { return pMods_.rbegin(); }
85
91 ModificationRConstIterator rModsRBegin() const
92 { return rMods_.rbegin(); }
93
98 ModificationRConstIterator pModsREnd() const { return pMods_.rend(); }
99
104 ModificationRConstIterator rModsREnd() const { return rMods_.rend(); }
105
110 double getActivity() const;
111
117 void setActivity(double value);
118
121
123 void write(std::ostream &out) const;
124
125protected:
127 const static std::string me_;
128
136 ModVector pMods_;
137
145 ModVector rMods_;
146
153 double activity_;
154
157};
158}
159
160#endif
161
Declare important 'types' used in Minotaur.
Base class for describing candidates for branching on a node in branch-and-bound.
Definition: BrCand.h:32
Base class for storing branching modifications.
Definition: Branch.h:33
ModificationRConstIterator rModsRBegin() const
The reverse iterators are used for undoing the changes to the relaxation. It is important that the ch...
Definition: Branch.h:91
void setActivity(double value)
Set the activity or the value of the branching expression before we branched.
Definition: Branch.cpp:79
ModificationConstIterator pModsEnd() const
The last iterator of the vector of modifications (problem).
Definition: Branch.h:71
~Branch()
Destroy.
Definition: Branch.cpp:37
ModificationConstIterator rModsBegin() const
The first modification in the vector of modifications (relaxation).
Definition: Branch.h:67
BrCandPtr brCand_
Branching candidate that is used to create this branch.
Definition: Branch.h:156
void addPMod(ModificationPtr mod)
Add a problem modification to the current vector of modifications associated with this branch.
Definition: Branch.cpp:61
ModificationConstIterator pModsBegin() const
The first modification in the vector of modifications (problem).
Definition: Branch.h:63
ModificationRConstIterator pModsREnd() const
The last reverse iterator for modifications for the problem. Corresponds to the first modification in...
Definition: Branch.h:98
void setBrCand(BrCandPtr cand)
Set the candidate that was used to generate this branch.
Definition: Branch.h:60
void addRMod(ModificationPtr mod)
Add a relaxation modification to the current vector of modifications associated with this branch.
Definition: Branch.cpp:67
void write(std::ostream &out) const
Write the branch to 'out'.
Definition: Branch.cpp:84
Branch()
Constructor.
Definition: Branch.cpp:27
ModVector rMods_
A vector of modifications of Relaxation that define this branch.
Definition: Branch.h:145
BrCandPtr getBrCand()
Return the branching candidate that was used to create this branch.
Definition: Branch.h:120
ModificationConstIterator rModsEnd() const
The last iterator of the vector of modifications (relaxation).
Definition: Branch.h:75
double getActivity() const
Return the activity or the value of the branching expression before we branched. Used for updating ps...
Definition: Branch.cpp:73
ModificationRConstIterator rModsREnd() const
The last reverse iterator for modifications for the relaxation. Corresponds to the first modification...
Definition: Branch.h:104
ModVector pMods_
A vector of modifications of Problem that define this branch.
Definition: Branch.h:136
ModificationRConstIterator pModsRBegin() const
The reverse iterators are used for undoing the changes to the problem. It is important that the chang...
Definition: Branch.h:83
static const std::string me_
Name.
Definition: Branch.h:127
double activity_
The value of the branching expression before we branched.
Definition: Branch.h:153
Definition: Modification.h:29
Definition: ActiveNodeStore.h:20

Minotaur source code documented by Doxygen 1.9.4 on Thu Apr 24 2025