aGrUM  0.17.2
a C++ library for (probabilistic) graphical models
UGmodel.h
Go to the documentation of this file.
1 
29 #ifndef GUM_UGMODEL_H
30 #define GUM_UGMODEL_H
31 
32 #include <agrum/agrum.h>
35 
37 
38 namespace gum {
39 
46  class UGmodel: public GraphicalModel {
47  public:
50 
54  UGmodel();
55 
59  virtual ~UGmodel();
60 
64  UGmodel(const UGmodel& source);
65 
69 
73 
76  const UndiGraph& graph() const;
77 
81  virtual Size size() const final;
82 
86  Size sizeEdges() const;
87 
88  const NodeGraphPart& nodes() const;
89 
94  virtual const DiscreteVariable& variable(NodeId id) const = 0;
95 
100  virtual NodeId nodeId(const DiscreteVariable& var) const = 0;
101 
104  virtual NodeId idFromName(const std::string& name) const = 0;
105 
108  virtual const DiscreteVariable&
109  variableFromName(const std::string& name) const = 0;
110 
112 
115  const EdgeSet& edges() const;
116 
118 
121  const NodeSet& neighbours(const NodeId id) const;
122  const NodeSet& neighbours(const std::string& name) const;
123 
125 
128  bool hasSameStructure(const UGmodel& other);
129 
130  protected:
134  UGmodel& operator=(const UGmodel& source);
135 
138  };
139 } // namespace gum
140 
141 #ifndef GUM_NO_INLINE
143 #endif /* GUM_NO_INLINE */
144 
145 #endif /* GUM_UGMODEL_H */
UGmodel & operator=(const UGmodel &source)
Private copy operator.
Definition: UGmodel.cpp:38
Virtual base class for probabilistic graphical models.
UndiGraph _graph
The DAG of this Directed Graphical Model.
Definition: UGmodel.h:137
virtual NodeId idFromName(const std::string &name) const =0
Getter by name.
const NodeSet & neighbours(const NodeId id) const
returns the neighbours of a node as set of nodes
Definition: UGmodel_inl.h:46
virtual const DiscreteVariable & variable(NodeId id) const =0
Returns a constant reference over a variable given it&#39;s node id.
const EdgeSet & edges() const
returns the neighbours of a node as set of nodes
Definition: UGmodel_inl.h:44
virtual ~UGmodel()
Destructor.
Definition: UGmodel.cpp:36
virtual NodeId nodeId(const DiscreteVariable &var) const =0
Return id node src discrete var pointer.
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
Base class for discrete random variable.
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
Definition: agrum.h:25
UGmodel()
Default constructor.
Definition: UGmodel.cpp:30
Virtual base class for PGMs using a undirected graph.
Definition: UGmodel.h:46
const NodeGraphPart & nodes() const
Returns a constant reference to the dag of this Bayes Net.
Definition: UGmodel_inl.h:53
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
Class for node sets in graph.
Size sizeEdges() const
Returns the number of arcs in this Directed Graphical Model.
Definition: UGmodel_inl.h:42
virtual const DiscreteVariable & variableFromName(const std::string &name) const =0
Getter by name.
const UndiGraph & graph() const
Returns a constant reference to the dag of this Bayes Net.
Definition: UGmodel_inl.h:36
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
Base class for undirected graphs.
Definition: undiGraph.h:109
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:48
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
Size NodeId
Type for node ids.
Definition: graphElements.h:98
virtual Size size() const final
Returns the number of variables in this Directed Graphical Model.
Definition: UGmodel_inl.h:39
bool hasSameStructure(const UGmodel &other)
Definition: UGmodel.cpp:47