28 #ifndef GUM_LEARNING_STRUCTURAL_CONSTRAINT_POSSIBLE_EDGES_H 29 #define GUM_LEARNING_STRUCTURAL_CONSTRAINT_POSSIBLE_EDGES_H 31 #include <agrum/agrum.h> 32 #include <agrum/tools/graphs/diGraph.h> 33 #include <agrum/BN/learning/constraints/structuralConstraint.h> 34 #include <agrum/BN/learning/structureUtils/graphChange.h> 182 #ifndef DOXYGEN_SHOULD_SKIP_THIS 186 # define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintPossibleEdges 187 # include <agrum/BN/learning/constraints/structuralConstraintPatternHeader.h> 188 # undef GUM_CONSTRAINT_CLASS_NAME 201 #ifndef GUM_NO_INLINE 202 # include <agrum/BN/learning/constraints/structuralConstraintPossibleEdges_inl.h> bool checkArcDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove arc (x,y)
StructuralConstraintPossibleEdges(const DiGraph &graph)
constructor starting with a given graph
bool checkArcReversalAlone(NodeId x, NodeId y) const
checks whether the constraints enable to reverse arc (x,y)
StructuralConstraintPossibleEdges()
default constructor
void addEdge(const Edge &edge)
assign a new forbidden arc
void setEdges(const EdgeSet &set)
assign a set of forbidden arcs
void setGraphAlone(const DiGraph &graph)
sets a new graph from which we will perform checkings
INLINE void emplace(Args &&... args)
the structural constraint for forbidding the creation of some arcs except those defined in the class ...
StructuralConstraintPossibleEdges & operator=(StructuralConstraintPossibleEdges &&from)
move operator
StructuralConstraintPossibleEdges(StructuralConstraintPossibleEdges &&from)
move constructor
StructuralConstraintPossibleEdges & operator=(const StructuralConstraintPossibleEdges &from)
copy operator
const EdgeSet & edges() const
returns the set of mandatory arcs
void modifyGraphAlone(const GraphChange &change)
notify the constraint of a modification of the graph
EdgeSet _PossibleEdges_possible_edges_
the PossibleEdges on which we perform checks
bool checkModificationAlone(const ArcReversal &change) const
checks whether the constraints enable to reverse an arc
bool checkArcAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add arc (x,y)
virtual ~StructuralConstraintPossibleEdges()
destructor
void eraseEdge(const Edge &edge)
remove a forbidden arc
StructuralConstraintPossibleEdges(const StructuralConstraintPossibleEdges &from)
copy constructor
bool isAlwaysInvalidAlone(const GraphChange &change) const
indicates whether a change will always violate the constraint
Database(const std::string &filename, const BayesNet< GUM_SCALAR > &bn, const std::vector< std::string > &missing_symbols)