26 #ifndef DOXYGEN_SHOULD_SKIP_THIS 49 std::numeric_limits< NodeId >::max()),
85 const ArcAddition& change)
const {
91 const ArcDeletion& change)
const {
97 const ArcReversal& change)
const {
103 const GraphChange& change)
const {
104 switch (change.type()) {
116 "edge modifications are not " 117 "supported by StructuralConstraintTabuList");
151 switch (change.type()) {
166 "edge modifications are not supported by digraph constraint");
172 const GraphChange&)
const {
177 # define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintTabuList 179 # undef GUM_CONSTRAINT_CLASS_NAME
void setTabuListSize(Size new_size)
sets the size of the tabu list
bool checkModificationAlone(const GraphChange &change) const
checks whether the constraints enable to perform a graph change
gum is the global namespace for all aGrUM entities
NodeId _TabuList__offset
the index of the oldest element
void setGraphAlone(const DiGraph &graph)
sets a new graph from which we will perform checkings
bool checkArcReversalAlone(NodeId x, NodeId y) const
checks whether the constraints enable to reverse arc (x,y)
void modifyGraphAlone(const ArcAddition &change)
notify the constraint of a modification of the graph
bool checkArcDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove arc (x,y)
Bijection< GraphChange, NodeId > _TabuList__changes
the tabu list
bool isAlwaysInvalidAlone(const GraphChange &change) const
indicates whether a change will always violate the constraint
std::size_t Size
In aGrUM, hashed values are unsigned long int.
bool checkArcAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add arc (x,y)
Size NodeId
Type for node ids.
#define GUM_ERROR(type, msg)