Loading [MathJax]/extensions/tex2jax.js

Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
pool.h
Go to the documentation of this file.
1
29#pragma once
30
34
35namespace abacus {
36
37
38template <class BaseType, class CoType> class Active;
39
40
42
61template<class BaseType, class CoType>
62class Pool : public AbacusRoot {
63public:
64
66
82
84
87 Pool(Master *master) : master_(master), number_(0) { }
88
89 virtual ~Pool() { }
90
99
106 if (softDeleteConVar(slot)) {
107 Logger::ifout() << "removeConVar(): removing constraint from slot failed\n";
109 }
110 }
111
113 int number() const { return number_; }
114
116
135 virtual int separate(
136 double *z,
138 Sub *sub,
140 double minAbsViolation = 0.001,
141 int ranking = 0) = 0;
142
143protected:
144
146
155 if (slot->softDelete() == 0) {
156 putSlot(slot);
157 --number_;
158 return 0;
159 }
160 return 1;
161 }
162
164
169 --number_;
170 slot->hardDelete();
171 putSlot(slot);
172 }
173
175
184
186
191 virtual void putSlot(PoolSlot<BaseType, CoType> *slot) = 0;
192
195};
196
197}
Base class of all other classes of ABACUS.
Definition abacusroot.h:68
Implements the sets of active constraints and variables which are associated with each subproblem.
Definition active.h:62
Cut buffers.
Definition cutbuffer.h:52
The master of the optimization.
Definition master.h:69
Base class for constraint/variabe pools.
Definition pool.h:62
int number() const
Returns the current number of items in the pool.
Definition pool.h:113
virtual PoolSlot< BaseType, CoType > * getSlot()=0
Tries to find a free slot in the pool.
Master * master_
A pointer to the corresponding master of the optimization.
Definition pool.h:193
virtual void hardDeleteConVar(PoolSlot< BaseType, CoType > *slot)
Removes a constraint/variable from the pool and adds the slot to the set of free slots.
Definition pool.h:168
RANKING
Determines how th rank of a constraint/variable is computed.
Definition pool.h:73
@ NO_RANK
No rank is computed.
Definition pool.h:75
@ RANK
The violation computed by the function violated() of the classes Constraint or Variable is used as ra...
Definition pool.h:78
@ ABS_RANK
The absolute value of the violation is taken as rank.
Definition pool.h:80
Pool(Master *master)
Initializes an empty pool.
Definition pool.h:87
virtual int separate(double *z, Active< CoType, BaseType > *active, Sub *sub, CutBuffer< BaseType, CoType > *cutBuffer, double minAbsViolation=0.001, int ranking=0)=0
Checks if a pair of a vector and an active constraint/variable set violates any item in the pool.
virtual int softDeleteConVar(PoolSlot< BaseType, CoType > *slot)
Removes the constraint/variable stored in slot from the pool if it can be deleted.
Definition pool.h:154
virtual PoolSlot< BaseType, CoType > * insert(BaseType *cv)=0
Tries to insert a constraint/variable in the pool.
virtual void putSlot(PoolSlot< BaseType, CoType > *slot)=0
Makes an PoolSlot again available for later calls of getSlot().
int number_
The current number of constraints in the pool.
Definition pool.h:194
virtual ~Pool()
Definition pool.h:89
void removeConVar(PoolSlot< BaseType, CoType > *slot)
Removes the constraint/variable stored in a pool slot and adds the slot to the list of free slots.
Definition pool.h:105
Stores constraints and variables.
Definition poolslot.h:77
int softDelete()
Tries to remove the item from the slot.
Definition poolslot.h:134
void hardDelete()
Deletes the constraint/variable in the slot.
Definition poolslot.h:147
The subproblem.
Definition sub.h:68
Exception thrown when an algorithm realizes an internal bug that prevents it from continuing.
Definition exceptions.h:241
static std::ostream & ifout()
stream for forced output (global; used by internal libraries, e.g. Abacus)
Definition Logger.h:192
#define OGDF_THROW_PARAM(CLASS, PARAM)
Replacement for throw.
Definition exceptions.h:54
the master of the optimization.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
poolslot.