![]() |
aGrUM 3.1.1
a C++ library for (probabilistic) graphical models
|
the structural constraint for forbidding children for some nodes More...
#include <structuralConstraintNoChildrenNodes.h>
Public Types | |
| using | allConstraints = _ConstraintSet_< void > |
Public Member Functions | |
Constructors / Destructors | |
| StructuralConstraintNoChildrenNodes () | |
| default constructor | |
| StructuralConstraintNoChildrenNodes (const DiGraph &graph) | |
| constructor starting with a given graph | |
| StructuralConstraintNoChildrenNodes (const StructuralConstraintNoChildrenNodes &from) | |
| copy constructor | |
| StructuralConstraintNoChildrenNodes (StructuralConstraintNoChildrenNodes &&from) | |
| move constructor | |
| virtual | ~StructuralConstraintNoChildrenNodes () |
| destructor | |
Operators | |
| StructuralConstraintNoChildrenNodes & | operator= (const StructuralConstraintNoChildrenNodes &from) |
| copy operator | |
| StructuralConstraintNoChildrenNodes & | operator= (StructuralConstraintNoChildrenNodes &&from) |
| move operator | |
Specific Accessors / Modifiers | |
| void | setNodes (const NodeSet &set) |
| assign a set of nodes without children | |
| void | addNode (NodeId node) |
| assign a new node without children | |
| void | eraseNode (NodeId node) |
| remove a forbidden w node without children | |
| const NodeSet & | nodes () const |
| returns the set of w nodes without children | |
| void | setGraphAlone (const DiGraph &graph) |
| sets a new graph from which we will perform checkings | |
| void | modifyGraphAlone (const ArcAddition &change) |
| notify the constraint of a modification of the graph | |
| void | modifyGraphAlone (const ArcDeletion &change) |
| notify the constraint of a modification of the graph | |
| void | modifyGraphAlone (const ArcReversal &change) |
| notify the constraint of a modification of the graph | |
| void | modifyGraphAlone (const ArcTriangleDeletion1 &change) |
| notify the constraint of a modification of the graph | |
| void | modifyGraphAlone (const ArcTriangleDeletion2 &change) |
| notify the constraint of a modification of the graph | |
| void | modifyGraphAlone (const GraphChange &change) |
| notify the constraint of a modification of the graph | |
| bool | isAlwaysInvalidAlone (const GraphChange &change) const |
| indicates whether a change will always violate the constraint | |
| bool | checkArcAdditionAlone (NodeId x, NodeId y) const |
| checks whether the constraints enable to add arc (x,y) | |
| 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 | |
| bool | checkModificationAlone (const GraphChange &change) const |
| checks whether the constraints enable to perform a graph change | |
| bool | checkModificationAlone (const ArcAddition &change) const |
| checks whether the constraints enable to add an arc | |
| bool | checkModificationAlone (const ArcDeletion &change) const |
| checks whether the constraints enable to remove an arc | |
| bool | checkModificationAlone (const ArcReversal &change) const |
| checks whether the constraints enable to reverse an arc | |
| bool | checkModificationAlone (const ArcTriangleDeletion1 &change) const |
| checks whether the constraints enable to apply an ArcTriangleDeletion1 | |
| bool | checkModificationAlone (const ArcTriangleDeletion2 &change) const |
| checks whether the constraints enable to apply an ArcTriangleDeletion2 | |
Protected Attributes | |
| NodeSet | _noChildrenNodes_ |
| the set of w nodes without children on which we perform checks | |
the structural constraint for forbidding children for some nodes
Definition at line 61 of file structuralConstraintNoChildrenNodes.h.
|
inherited |
Definition at line 61 of file structuralConstraint.h.
| gum::learning::StructuralConstraintNoChildrenNodes::StructuralConstraintNoChildrenNodes | ( | ) |
default constructor
Definition at line 59 of file structuralConstraintNoChildrenNodes.cpp.
References StructuralConstraintNoChildrenNodes().
Referenced by StructuralConstraintNoChildrenNodes(), StructuralConstraintNoChildrenNodes(), StructuralConstraintNoChildrenNodes(), StructuralConstraintNoChildrenNodes(), ~StructuralConstraintNoChildrenNodes(), operator=(), and operator=().
| gum::learning::StructuralConstraintNoChildrenNodes::StructuralConstraintNoChildrenNodes | ( | const DiGraph & | graph | ) |
constructor starting with a given graph
Definition at line 64 of file structuralConstraintNoChildrenNodes.cpp.
References StructuralConstraintNoChildrenNodes().
| gum::learning::StructuralConstraintNoChildrenNodes::StructuralConstraintNoChildrenNodes | ( | const StructuralConstraintNoChildrenNodes & | from | ) |
copy constructor
Definition at line 70 of file structuralConstraintNoChildrenNodes.cpp.
References StructuralConstraintNoChildrenNodes(), and _noChildrenNodes_.
| gum::learning::StructuralConstraintNoChildrenNodes::StructuralConstraintNoChildrenNodes | ( | StructuralConstraintNoChildrenNodes && | from | ) |
move constructor
Definition at line 76 of file structuralConstraintNoChildrenNodes.cpp.
References StructuralConstraintNoChildrenNodes(), and _noChildrenNodes_.
|
virtual |
destructor
Definition at line 83 of file structuralConstraintNoChildrenNodes.cpp.
References StructuralConstraintNoChildrenNodes().
| void gum::learning::StructuralConstraintNoChildrenNodes::addNode | ( | NodeId | node | ) |
assign a new node without children
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkArcAdditionAlone | ( | NodeId | x, |
| NodeId | y ) const |
checks whether the constraints enable to add arc (x,y)
Referenced by checkModificationAlone().
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkArcDeletionAlone | ( | NodeId | x, |
| NodeId | y ) const |
checks whether the constraints enable to remove arc (x,y)
Referenced by checkModificationAlone().
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkArcReversalAlone | ( | NodeId | x, |
| NodeId | y ) const |
checks whether the constraints enable to reverse arc (x,y)
Referenced by checkModificationAlone().
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkArcTriangleDeletion1Alone | ( | NodeId | node1, |
| NodeId | node2, | ||
| NodeId | node3 ) const |
checks whether the constraints enable to apply an ArcTriangleDeletion1
An arc triangle deletion1 substitutes triangle node1 -> node2 -> node3 + node1 -> node3 into v-structure node2 -> node1 <- node3
Referenced by checkModificationAlone().
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkArcTriangleDeletion2Alone | ( | NodeId | node1, |
| NodeId | node2, | ||
| NodeId | node3 ) const |
checks whether the constraints enable to apply an ArcTriangleDeletion2
An arc triangle deletion1 substitutes triangle node1 -> node2 -> node3 + node1 -> node3 into v-structure node1 -> node2 <- node3
Referenced by checkModificationAlone().
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkModificationAlone | ( | const ArcAddition & | change | ) | const |
checks whether the constraints enable to add an arc
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkModificationAlone | ( | const ArcDeletion & | change | ) | const |
checks whether the constraints enable to remove an arc
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkModificationAlone | ( | const ArcReversal & | change | ) | const |
checks whether the constraints enable to reverse an arc
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkModificationAlone | ( | const ArcTriangleDeletion1 & | change | ) | const |
checks whether the constraints enable to apply an ArcTriangleDeletion1
An arc triangle deletion1 substitutes triangle node1 -> node2 -> node3 + node1 -> node3 into v-structure node2 -> node1 <- node3
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkModificationAlone | ( | const ArcTriangleDeletion2 & | change | ) | const |
checks whether the constraints enable to apply an ArcTriangleDeletion2
An arc triangle deletion1 substitutes triangle node1 -> node2 -> node3 + node1 -> node3 into v-structure node1 -> node2 <- node3
| bool gum::learning::StructuralConstraintNoChildrenNodes::checkModificationAlone | ( | const GraphChange & | change | ) | const |
checks whether the constraints enable to perform a graph change
Definition at line 102 of file structuralConstraintNoChildrenNodes.cpp.
References gum::learning::ARC_ADDITION, gum::learning::ARC_DELETION, gum::learning::ARC_REVERSAL, gum::learning::ARC_TRIANGLE_DELETION1, gum::learning::ARC_TRIANGLE_DELETION2, checkArcAdditionAlone(), checkArcDeletionAlone(), checkArcReversalAlone(), checkArcTriangleDeletion1Alone(), checkArcTriangleDeletion2Alone(), GUM_ERROR, gum::learning::GraphChange::node1(), gum::learning::GraphChange::node2(), gum::learning::GraphChange::node3(), and gum::learning::GraphChange::type().
| void gum::learning::StructuralConstraintNoChildrenNodes::eraseNode | ( | NodeId | node | ) |
remove a forbidden w node without children
| bool gum::learning::StructuralConstraintNoChildrenNodes::isAlwaysInvalidAlone | ( | const GraphChange & | change | ) | const |
indicates whether a change will always violate the constraint
Some learning algorithms need examine several times whether a given graph change can be applied. For instance, the first time arc (X,Y) addition is considered, the learning algorithm may discard this change because it violates the structural constraint (e.g., if the latter enforces a DAG structure, this arc addition might induce a directed cycle), but, later on, other arc removal may induce that the arc addition is now possible. Such change is thus not always invalid. Conversely, there are changes that can be discarded once and for all. For instance, in a 2TBN structure, it is always impossible to add a backward-time arc. Such graph changes are always invalid and are therefore tagged as such by the isAlwaysInvalid method.
Definition at line 126 of file structuralConstraintNoChildrenNodes.cpp.
References _noChildrenNodes_, gum::learning::ARC_ADDITION, gum::learning::ARC_DELETION, gum::learning::ARC_REVERSAL, gum::learning::ARC_TRIANGLE_DELETION1, gum::learning::ARC_TRIANGLE_DELETION2, GUM_ERROR, gum::learning::GraphChange::node1(), gum::learning::GraphChange::node2(), gum::learning::GraphChange::node3(), and gum::learning::GraphChange::type().
| void gum::learning::StructuralConstraintNoChildrenNodes::modifyGraphAlone | ( | const ArcAddition & | change | ) |
notify the constraint of a modification of the graph
| void gum::learning::StructuralConstraintNoChildrenNodes::modifyGraphAlone | ( | const ArcDeletion & | change | ) |
notify the constraint of a modification of the graph
| void gum::learning::StructuralConstraintNoChildrenNodes::modifyGraphAlone | ( | const ArcReversal & | change | ) |
notify the constraint of a modification of the graph
| void gum::learning::StructuralConstraintNoChildrenNodes::modifyGraphAlone | ( | const ArcTriangleDeletion1 & | change | ) |
notify the constraint of a modification of the graph
An arc triangle deletion1 substitutes triangle node1 -> node2 -> node3 + node1 -> node3 into v-structure node2 -> node1 <- node3
| void gum::learning::StructuralConstraintNoChildrenNodes::modifyGraphAlone | ( | const ArcTriangleDeletion2 & | change | ) |
notify the constraint of a modification of the graph
An arc triangle deletion1 substitutes triangle node1 -> node2 -> node3 + node1 -> node3 into v-structure node1 -> node2 <- node3
| void gum::learning::StructuralConstraintNoChildrenNodes::modifyGraphAlone | ( | const GraphChange & | change | ) |
notify the constraint of a modification of the graph
| const NodeSet & gum::learning::StructuralConstraintNoChildrenNodes::nodes | ( | ) | const |
returns the set of w nodes without children
| StructuralConstraintNoChildrenNodes & gum::learning::StructuralConstraintNoChildrenNodes::operator= | ( | const StructuralConstraintNoChildrenNodes & | from | ) |
copy operator
Definition at line 88 of file structuralConstraintNoChildrenNodes.cpp.
References StructuralConstraintNoChildrenNodes(), and _noChildrenNodes_.
| StructuralConstraintNoChildrenNodes & gum::learning::StructuralConstraintNoChildrenNodes::operator= | ( | StructuralConstraintNoChildrenNodes && | from | ) |
move operator
Definition at line 96 of file structuralConstraintNoChildrenNodes.cpp.
References StructuralConstraintNoChildrenNodes(), and _noChildrenNodes_.
| void gum::learning::StructuralConstraintNoChildrenNodes::setGraphAlone | ( | const DiGraph & | graph | ) |
sets a new graph from which we will perform checkings
| void gum::learning::StructuralConstraintNoChildrenNodes::setNodes | ( | const NodeSet & | set | ) |
assign a set of nodes without children
|
protected |
the set of w nodes without children on which we perform checks
Definition at line 216 of file structuralConstraintNoChildrenNodes.h.
Referenced by StructuralConstraintNoChildrenNodes(), StructuralConstraintNoChildrenNodes(), isAlwaysInvalidAlone(), operator=(), and operator=().