56#ifndef GUM_LEARNING_STRUCTURAL_CONSTRAINT_TABU_LIST_H
57#define GUM_LEARNING_STRUCTURAL_CONSTRAINT_TABU_LIST_H
66#define GUM_STRUCTURAL_CONSTRAINT_TABU_LIST_DEFAULT_SIZE 2
213#ifndef DOXYGEN_SHOULD_SKIP_THIS
217# define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintTabuList
219# undef GUM_CONSTRAINT_CLASS_NAME
Set of pairs of elements with fast search for both elements.
Set of pairs of elements with fast search for both elements.
Base class for all oriented graphs.
The class for notifying learning algorithms of new arc additions.
The class for notifying learning algorithms of arc removals.
The class for notifying learning algorithms of arc reversals.
void modifyGraphAlone(const ArcReversal &change)
notify the constraint of a modification of the graph
void modifyGraphAlone(const ArcAddition &change)
notify the constraint of a modification of the graph
void setTabuListSize(Size new_size)
sets the size of the tabu list
bool checkArcDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove arc (x,y)
bool checkModificationAlone(const GraphChange &change) const
checks whether the constraints enable to perform a graph change
bool checkModificationAlone(const ArcDeletion &change) const
checks whether the constraints enable to remove an arc
bool checkArcAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add arc (x,y)
bool isAlwaysInvalidAlone(const GraphChange &change) const
indicates whether a change will always violate the constraint
NodeId _TabuList_offset_
the index of the oldest element
bool checkModificationAlone(const ArcReversal &change) const
checks whether the constraints enable to reverse an arc
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)
virtual ~StructuralConstraintTabuList()
destructor
void modifyGraphAlone(const GraphChange &change)
notify the constraint of a modification of the graph
void modifyGraphAlone(const ArcDeletion &change)
notify the constraint of a modification of the graph
StructuralConstraintTabuList & operator=(const StructuralConstraintTabuList &from)
copy operator
Bijection< GraphChange, NodeId > _TabuList_changes_
the tabu list
bool checkModificationAlone(const ArcAddition &change) const
checks whether the constraints enable to add an arc
StructuralConstraintTabuList()
default constructor
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Size NodeId
Type for node ids.
gum is the global namespace for all aGrUM entities
the base class for all structural constraints
the class imposing a N-sized tabu list as a structural constraints for learning algorithms
the base class for all structural constraints