29 #ifndef GUM_INCREMENTAL_TRIANGULATION_H 30 #define GUM_INCREMENTAL_TRIANGULATION_H 40 #ifndef DOXYGEN_SHOULD_SKIP_THIS 42 class IncrementalTriangulationTestSuite;
85 void updateTriangulation();
92 void eraseNode(
const NodeId node);
100 void eraseEdge(
const Edge& edge);
110 const std::vector< NodeId >& eliminationOrder();
206 bool __require_update{
false};
209 bool __require_elimination_order{
false};
218 bool __require_created_JT_cliques{
false};
224 void __markAffectedMPSsByRemoveLink(
const NodeId My,
229 int __markAffectedMPSsByAddLink(
const NodeId My,
238 void __performAddNode(
const NodeId node);
241 void __setUpConnectedTriangulation(
245 std::vector< Edge >& notAffectedneighborClique,
249 void __computeMaxPrimeMergings(
252 std::vector< std::pair< NodeId, NodeId > >& merged_cliques,
254 const NodeSet& new_nodes_in_junction_tree)
const;
258 NodeSet& new_nodes_in_junction_tree);
262 const NodeSet& new_nodes_in_junction_tree);
265 void __collectEliminationOrder(
const NodeId node,
271 void __collectJTCliques(
const NodeId clique,
279 friend class gum_tests::IncrementalTriangulationTestSuite;
284 #ifndef GUM_NO_INLINE 286 #endif // GUM_NO_INLINE Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
NodeProperty< std::vector< NodeId > > __cliques_of_mps
indicate for each MPS its set of cliques in the junction tree
const CliqueGraph & eliminationTree()
returns the elimination tree of a compatible ordering
CliqueGraph __T_mpd
the maximal prime subgraph tree
std::vector< NodeId > __elimination_order
the current elimination ordering
Interface for all triangulation methods without constraints on node elimination orderings.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
NodeProperty< Size > __domain_sizes
the domain sizes of the nodes
UnconstrainedTriangulation * __triangulation
the triangulation algorithm that will be used incremantally
The class for generic Hash Tables.
Class that performs incremental triangulations.
NodeProperty< NodeId > __mps_of_clique
indicate for each clique the MPS it belongs to
const UndiGraph & triangulatedGraph()
returns the triangulated graph
The base class for all undirected edges.
CliqueGraph __junction_tree
the junction tree computed so far
Base class for undirected graphs.
Size Idx
Type for indexes.
NodeProperty< NodeId > __created_JT_cliques
For each node, a clique that contains it.
const EdgeSet & fillIns()
returns the fill-ins added by the triangulation algorithm
std::size_t Size
In aGrUM, hashed values are unsigned long int.
UndiGraph __graph
the graph that needs be triangulated
NodeProperty< List< NodeId > > __mps_of_node
for each node in graph, store the MPS containing the node
NodeProperty< Idx > __reverse_elimination_order
the elimination order (access by NodeId)
Interface for all the triangulation methods.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Size NodeId
Type for node ids.
NodeProperty< bool > __mps_affected
the set of MPS affected by a new triangulation
#define GUM_ERROR(type, msg)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.