49#ifndef GUM_EDGE_GROWTH_H
50#define GUM_EDGE_GROWTH_H
63 template <
typename GUM_SCALAR >
72 template <
typename GUM_SCALAR >
75 friend class DFSTree< GUM_SCALAR >;
108 template <
typename GUM_SCALAR >
112#ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
Base class for undirected graphs.
An PRMInstance is a Bayesian network fragment defined by a Class and used in a PRMSystem.
A DFSTree is used by gspan to sort lexicographically patterns discovered in an interface graph.
This class is used to define an edge growth of a pattern in this DFSTree.
NodeId u
The id of the node from which we grow an edge.
std::vector< NodeId > * degree_list
Vector used for computation.
NodeProperty< std::pair< PRMInstance< GUM_SCALAR > *, PRMInstance< GUM_SCALAR > * > > matches
The mapping between the u and v for each match in the interface graph.
Set< NodeId > max_indep_set
The max indep set of matches.
NodeId v
If the growth is backward you must assigned the subscript of v, otherwise 0 is assigned (recall that ...
UndiGraph iso_graph
The iso graph for computing the maximum independent set of matches.
LabelData * edge
The LabelData over the edge of this edge growth.
std::string toString()
Return a string representation of this.
LabelData * l_v
The LabelData over the node of this edge growth.
EdgeGrowth(NodeId a_u, LabelData *an_edge, LabelData *a_l_v, NodeId a_v=0)
Constructor.
void insert(PRMInstance< GUM_SCALAR > *u, PRMInstance< GUM_SCALAR > *v)
Add the pair (u,v) as a match for the current growth.
Inline implementation of the DFSTree class.
Size NodeId
Type for node ids.
HashTable< NodeId, VAL > NodeProperty
Property on graph elements.
std::ostream & operator<<(std::ostream &out, const DFSCode &code)
Print code in out.
namespace for all probabilistic relational models entities
gum is the global namespace for all aGrUM entities
class for graph triangulations for which we enforce a given partial ordering on the nodes elimination...
Headers of the Pattern class.
Inner class to handle data about labels in this interface graph.