36 template <
typename GUM_SCALAR >
42 edge(an_edge), l_v(a_l_v), v(a_v),
43 degree_list(new
std::vector<
NodeId >()) {
47 template <
typename GUM_SCALAR >
61 template <
typename GUM_SCALAR >
68 template <
typename GUM_SCALAR >
70 std::stringstream str;
71 str <<
u <<
"-" <<
edge <<
"-" <<
l_v <<
"-" <<
v;
75 template <
typename GUM_SCALAR >
81 for (
const auto& elt :
matches) {
82 if ((elt.second.first == u) || (elt.second.second == u)
83 || (elt.second.first == v) || (elt.second.second == v)) {
89 matches.insert(
id, std::make_pair(u, v));
Set< NodeId > max_indep_set
The max indep set of matches.
This class is used to define an edge growth of a pattern in this DFSTree.
LabelData * l_v
The LabelData over the node of this edge growth.
Inner class to handle data about labels in this interface graph.
An PRMInstance is a Bayesian Network fragment defined by a Class and used in a PRMSystem.
virtual void addEdge(const NodeId first, const NodeId second)
insert a new edge into the undirected graph
NodeProperty< std::pair< PRMInstance< GUM_SCALAR > *, PRMInstance< GUM_SCALAR > *> > matches
The mapping between the u and v for each match in the interface graph.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
LabelData * edge
The LabelData over the edge of this edge growth.
std::vector< NodeId > * degree_list
Vector used for computation.
virtual NodeId addNode()
insert a new node and return its id
NodeId u
The id of the node from which we grow an edge.
NodeId v
If the growth is backward you must assigned the subscript of v, otherwise 0 is assigned (recall that ...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
std::string toString()
Return a string representation of this.
UndiGraph iso_graph
The iso graph for computing the maximum independent set of matches.
Size NodeId
Type for node ids.
void insert(PRMInstance< GUM_SCALAR > *u, PRMInstance< GUM_SCALAR > *v)
Add the pair (u,v) as a match for the current growth.
EdgeGrowth(NodeId a_u, LabelData *an_edge, LabelData *a_l_v, NodeId a_v=0)
Constructor.