104 if (
this != &from) {
_graph_ = std::move(from._graph_); }
109 switch (change.
type()) {
127 "Graph change operation "
129 <<
" is not supported by the DiGraph structural constraint");
134 switch (change.
type()) {
157 "Graph change operation "
159 <<
" is not supported by the DiGraph structural constraint")
Base class for all oriented graphs.
Exception : operation not allowed.
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.
The graph change substituting a triangle node1->node2->node3 + node1->node3 into v-structure node2->n...
The graph change substituting a triangle node1->node2->node3 + node1->node3 into v-structure node1->n...
std::string typeAsString() const
returns a string corresponding to the type of the change
NodeId node1() const noexcept
returns the first node involved in the modification
GraphChangeType type() const noexcept
returns the type of the operation
NodeId node2() const noexcept
returns the second node involved in the modification
NodeId node3() const
returns the third node involved in the modification (if any)
The base class for structural constraints used by learning algorithms that learn a directed graph str...
StructuralConstraintDiGraph & operator=(const StructuralConstraintDiGraph &from)
copy operator
virtual ~StructuralConstraintDiGraph()
destructor
void modifyGraphAlone(const ArcAddition &change)
notify the constraint of a modification of the graph
StructuralConstraintDiGraph()
default constructor
bool checkArcDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove arc (x,y)
bool checkArcReversalAlone(NodeId x, NodeId y) const
checks whether the constraints enable to reverse arc (x,y)
bool checkArcTriangleDeletion1Alone(NodeId node1, NodeId node2, NodeId node3) const
checks whether the constraints enable to apply an ArcTriangleDeletion1
bool checkArcTriangleDeletion2Alone(NodeId node1, NodeId node2, NodeId node3) const
checks whether the constraints enable to apply an ArcTriangleDeletion2
void setGraph(Size nb_nodes)
sets a new empty graph from which we will perform checking
DiGraph _graph_
the DiGraph on which we perform checks
bool checkArcAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add arc (x,y)
bool checkModificationAlone(const GraphChange &change) const
checks whether the constraints enable to perform a graph change
#define GUM_ERROR(type, msg)
std::size_t Size
In aGrUM, hashed values are unsigned long int.
include the inlined functions if necessary
gum is the global namespace for all aGrUM entities
the base class for structural constraints used by learning algorithms that learn a directed graph str...
the base class for structural constraints used by learning algorithms that learn a directed graph str...