28 #ifndef GUM_LEARNING_STRUCTURAL_CONSTRAINT_UNDIGRAPH_H 29 #define GUM_LEARNING_STRUCTURAL_CONSTRAINT_UNDIGRAPH_H 31 #include <agrum/agrum.h> 32 #include <agrum/tools/graphs/undiGraph.h> 33 #include <agrum/BN/learning/constraints/structuralConstraint.h> 34 #include <agrum/BN/learning/structureUtils/graphChange.h> 161 #ifndef DOXYGEN_SHOULD_SKIP_THIS 165 # define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintUndiGraph 166 # include <agrum/BN/learning/constraints/structuralConstraintPattern4UndiGraphHeader.h> 167 # undef GUM_CONSTRAINT_CLASS_NAME 180 #ifndef GUM_NO_INLINE 181 # include <agrum/BN/learning/constraints/structuralConstraintUndiGraph_inl.h> void setGraphAlone(const UndiGraph &graph)
sets a new graph from which we will perform checkings
INLINE void emplace(Args &&... args)
bool isAlwaysInvalidAlone(const GraphChange &change) const
indicates whether a change will always violate the constraint
StructuralConstraintUndiGraph & operator=(const StructuralConstraintUndiGraph &from)
copy operator
UndiGraph _UndiGraph_graph_
the UndiGraph on which we perform checks
bool checkModificationAlone(const EdgeDeletion &change) const
checks whether the constraints enable to remove an edge
void modifyGraphAlone(const GraphChange &change)
notify the constraint of a modification of the graph
The base class for structural constraints used by learning algorithms that learn an undirected graph ...
StructuralConstraintUndiGraph(const UndiGraph &graph)
constructor starting with a given graph
StructuralConstraintUndiGraph(StructuralConstraintUndiGraph &&from)
move constructor
void setGraph(Size nb_nodes)
sets a new empty graph from which we will perform checkings
bool checkEdgeDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove edge (x,y)
StructuralConstraintUndiGraph()
default constructor
StructuralConstraintUndiGraph & operator=(StructuralConstraintUndiGraph &&from)
move operator
virtual ~StructuralConstraintUndiGraph()
destructor
Database(const std::string &filename, const BayesNet< GUM_SCALAR > &bn, const std::vector< std::string > &missing_symbols)
StructuralConstraintUndiGraph(Size nb_nodes)
constructor starting with an empty graph with a given number of nodes
StructuralConstraintUndiGraph(const StructuralConstraintUndiGraph &from)
copy constructor
bool checkEdgeAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add edge (x,y)