aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
Graph representation

Detailed Description

Classes

class  gum::Edge
 The base class for all undirected edges. More...
 
class  gum::Arc
 The base class for all directed edgesThis class is used as a basis for manipulating all directed edges (i.e., edges in which the order of the nodes is meaningful). More...
 
class  gum::DAGCycleDetector::ArcAdd
 the class to indicate that we wish to add a new arc More...
 
class  gum::DAGCycleDetector::ArcDel
 the class to indicate that we wish to remove an arc More...
 
class  gum::DAGCycleDetector::ArcReverse
 the class to indicate that we wish to reverse an arc More...
 
class  gum::DAGCycleDetector
 A class for detecting directed cycles in DAGs when trying to apply many changes to the graph. More...
 
class  gum::SimplicialSet
 Class enabling fast retrieval of simplicial, quasi and almost simplicial nodes. More...
 
class  gum::DefaultTriangulation
 The default triangulation algorithm used by aGrUM. More...
 
class  gum::DefaultEliminationSequenceStrategy
 An efficient unconstrained elimination sequence algorithm. More...
 
class  gum::DefaultPartialOrderedEliminationSequenceStrategy
 An Elimination sequence algorithm that imposes a given partial ordering on the nodes elimination sequence. More...
 
class  gum::EliminationSequenceStrategy
 The base class for all elimination sequence algorithms used by triangulation algorithms. More...
 
class  gum::OrderedEliminationSequenceStrategy
 An Elimination sequence algorithm that imposes a given complete ordering on the nodes elimination sequence. More...
 
class  gum::PartialOrderedEliminationSequenceStrategy
 Base class for all elimination sequence algorithm that impose a given partial ordering on the nodes elimination sequence, that is, the set of all the nodes is divided into several subsets. More...
 
class  gum::UnconstrainedEliminationSequenceStrategy
 The base class for all elimination sequence algorithms that require only the graph to be triangulated and the nodes' domain sizes to produce the node elimination ordering. More...
 
class  gum::DefaultJunctionTreeStrategy
 An algorithm producing a junction given the elimination tree produced by a triangulation algorithm. More...
 
class  gum::JunctionTreeStrategy
 Base Class for all the algorithms producing a junction given a set of cliques/subcliques resulting from a triangulation. More...
 
class  gum::OrderedTriangulation
 class for graph triangulations for which we enforce a given complete ordering on the nodes eliminations. More...
 
class  gum::PartialOrderedTriangulation
 class for graph triangulations for which we enforce a given partial ordering on the nodes eliminations, that is, the set of all the nodes is divided into several subsets. More...
 
class  gum::StaticTriangulation
 base class for all non-incremental triangulation methods More...
 
class  gum::Triangulation
 Interface for all the triangulation methods. More...
 
class  gum::UnconstrainedTriangulation
 Interface for all triangulation methods without constraints on node elimination orderings. More...
 
class  gum::CliqueGraph
 Basic graph of cliques. More...
 
class  gum::DAG
 Base class for dag. More...
 
class  gum::DiGraph
 Base class for all oriented graphs. More...
 
class  gum::MixedGraph
 Base class for mixed graphs. More...
 
class  gum::ArcGraphPart
 Classes for directed edge sets. More...
 
class  gum::EdgeGraphPart
 Classes for undirected edge sets. More...
 
class  gum::DiGraphListener
 Abstract Base class for all diGraph Listener. More...
 
class  gum::MixedGraphListener
 Abstract Base class for all mixed Graph Listener. More...
 
class  gum::UndiGraphListener
 Abstract Base class for all undiGraph Listener. More...
 
class  gum::NodeGraphPart
 Class for node sets in graph. More...
 
class  gum::UndiGraph
 Base class for undirected graphs. More...
 

Typedefs

typedef Size gum::NodeId
 Type for node ids. More...
 
typedef Set< NodeIdgum::NodeSet
 Some typdefs and define for shortcuts ... More...
 
typedef Set< Edgegum::EdgeSet
 Some typdefs and define for shortcuts ... More...
 
typedef Set< Arcgum::ArcSet
 Some typdefs and define for shortcuts ... More...
 
typedef ArcSet::const_iterator gum::ArcSetIterator
 Some typdefs and define for shortcuts ... More...
 
typedef EdgeSet::const_iterator gum::EdgeSetIterator
 Some typdefs and define for shortcuts ... More...
 
typedef NodeSet::const_iterator gum::NodeSetIterator
 Some typdefs and define for shortcuts ... More...
 
template<class VAL >
using gum::NodeProperty = HashTable< NodeId, VAL >
 Property on graph elements. More...
 
template<class VAL >
using gum::EdgeProperty = HashTable< Edge, VAL >
 Property on graph elements. More...
 
template<class VAL >
using gum::ArcProperty = HashTable< Arc, VAL >
 Property on graph elements. More...
 

Example: Search of a directed path in a DiGraph

g from n1 to n2
// mark[node] contains 0 if not visited
// mark[node]=predecessor if visited
gum::NodeProperty<gum::NodeId> mark=g.nodesProperty((gum::NodeId) 0 );
gum::NodeId current;
mark[n1]=n1;
nodeFIFO.pushBack( n1 );
while ( ! nodeFIFO.empty() ) {
current=nodeFIFO.front();nodeFIFO.popFront();
const gum::NodeSet& set=;
for ( const auto new_one : g.children( current )) {
if ( mark[new_one]!=0 ) continue; // if this node is already marked,
continue
mark[new_one]=current;
if ( new_one==n2 ) break; // if we reach n2, stop.
nodeFIFO.pushBack( new_one );
}
}
if ( mark[n2] ==0 ) GUM_ERROR( gum::NotFound,"no path found" );

Typedef Documentation

◆ ArcProperty

template<class VAL >
using gum::ArcProperty = typedef HashTable< Arc, VAL >

Property on graph elements.

Definition at line 392 of file graphElements.h.

◆ ArcSet

typedef Set< Arc > gum::ArcSet

Some typdefs and define for shortcuts ...

Definition at line 376 of file graphElements.h.

◆ ArcSetIterator

Some typdefs and define for shortcuts ...

Definition at line 378 of file graphElements.h.

◆ EdgeProperty

template<class VAL >
using gum::EdgeProperty = typedef HashTable< Edge, VAL >

Property on graph elements.

Definition at line 390 of file graphElements.h.

◆ EdgeSet

typedef Set< Edge > gum::EdgeSet

Some typdefs and define for shortcuts ...

Definition at line 375 of file graphElements.h.

◆ EdgeSetIterator

Some typdefs and define for shortcuts ...

Definition at line 379 of file graphElements.h.

◆ NodeId

typedef Size gum::NodeId

Type for node ids.

Definition at line 97 of file graphElements.h.

◆ NodeProperty

template<class VAL >
using gum::NodeProperty = typedef HashTable< NodeId, VAL >

Property on graph elements.

Definition at line 388 of file graphElements.h.

◆ NodeSet

typedef Set< NodeId > gum::NodeSet

Some typdefs and define for shortcuts ...

Definition at line 374 of file graphElements.h.

◆ NodeSetIterator

Some typdefs and define for shortcuts ...

Definition at line 380 of file graphElements.h.