27 #ifndef GUM_INCREMENTAL_TRIANGULATION_H 28 #define GUM_INCREMENTAL_TRIANGULATION_H 38 #ifndef DOXYGEN_SHOULD_SKIP_THIS 40 class IncrementalTriangulationTestSuite;
83 void updateTriangulation();
90 void eraseNode(
const NodeId node);
98 void eraseEdge(
const Edge& edge);
108 const std::vector< NodeId >& eliminationOrder();
204 bool __require_update{
false};
207 bool __require_elimination_order{
false};
216 bool __require_created_JT_cliques{
false};
222 void __markAffectedMPSsByRemoveLink(
const NodeId My,
227 int __markAffectedMPSsByAddLink(
const NodeId My,
236 void __performAddNode(
const NodeId node);
239 void __setUpConnectedTriangulation(
243 std::vector< Edge >& notAffectedneighborClique,
247 void __computeMaxPrimeMergings(
250 std::vector< std::pair< NodeId, NodeId > >& merged_cliques,
252 const NodeSet& new_nodes_in_junction_tree)
const;
256 NodeSet& new_nodes_in_junction_tree);
260 const NodeSet& new_nodes_in_junction_tree);
263 void __collectEliminationOrder(
const NodeId node,
269 void __collectJTCliques(
const NodeId clique,
277 friend class gum_tests::IncrementalTriangulationTestSuite;
282 #ifndef GUM_NO_INLINE 284 #endif // GUM_NO_INLINE Inline implementations for computing default triangulations of graphs.
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.
base class for graph triangulations without constraints on nodes elimination ordering.
gum is the global namespace for all aGrUM entities
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.
Basic class for all graphs of cliques (join trees, etc)
Size NodeId
Type for node ids.
NodeProperty< bool > __mps_affected
the set of MPS affected by a new triangulation
#define GUM_ERROR(type, msg)
some utils for topology : NodeId, Edge, Arc and consorts ...