47#ifndef GUM_TRIANGULATION_H
48#define GUM_TRIANGULATION_H
Interface for all the triangulation methods.
virtual Triangulation * copyFactory() const =0
virtual copy constructor
virtual const CliqueGraph & maxPrimeSubgraphTree()=0
returns a junction tree of maximal prime subgraphs
virtual Triangulation * newFactory() const =0
returns a fresh triangulation of the same type as the current object but with an empty graph
virtual NodeId createdJunctionTreeClique(const NodeId id)=0
returns the Id of the clique created by the elimination of a given node during the triangulation proc...
virtual const NodeProperty< NodeId > & createdJunctionTreeCliques()=0
returns the Ids of the cliques of the junction tree created by the elimination of the nodes
Triangulation & operator=(const Triangulation &)
prevent copy operator
virtual void clear()=0
reinitialize the graph to be triangulated to an empty graph
virtual const CliqueGraph & eliminationTree()=0
returns the elimination tree of a compatible ordering
virtual const CliqueGraph & junctionTree()=0
returns a compatible junction tree
const NodeProperty< Size > * domain_sizes_
the domain sizes of the variables/nodes of the graph
const NodeProperty< Size > * domainSizes() const
returns the domain sizes of the variables of the graph to be triangulated
virtual const UndiGraph & triangulatedGraph()=0
returns the triangulated graph
double maxLog10CliqueDomainSize()
returns the max of log10DomainSize of the cliques in the junction tree.
virtual void setGraph(const UndiGraph *graph, const NodeProperty< Size > *domsizes)=0
initialize the triangulation data structures for a new graph
virtual const EdgeSet & fillIns()=0
returns the fill-ins added by the triangulation algorithm
virtual ~Triangulation()
destructor
virtual Idx eliminationOrder(const NodeId)=0
returns the index of a given node in the elimination order (0 = first node eliminated)
virtual NodeId createdMaxPrimeSubgraph(const NodeId id)=0
returns the Id of the maximal prime subgraph created by the elimination of a given node during the tr...
virtual const std::vector< NodeId > & eliminationOrder()=0
returns an elimination ordering compatible with the triangulated graph
Triangulation()
default constructor
Base class for undirected graphs.
Basic class for all graphs of cliques (join trees, etc).
Size Idx
Type for indexes.
Set< Edge > EdgeSet
Some typdefs and define for shortcuts ...
Size NodeId
Type for node ids.
HashTable< NodeId, VAL > NodeProperty
Property on graph elements.
gum is the global namespace for all aGrUM entities
Header file of gum::Sequence, a class for storing (ordered) sequences of objects.
Abstract base class for computing triangulations of graphs.