![]() |
aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
|
Class representing the minimal interface for Bayesian network with no numerical data. More...
#include <agrum/BN/IBayesNet.h>
Public Member Functions | |
| std::vector< std::string > | check () const |
| Check if the BayesNet is consistent (variables, CPT). | |
| bool | operator== (const IBayesNet< GUM_SCALAR > &from) const |
| This operator compares 2 BNs ! | |
| bool | operator!= (const IBayesNet< GUM_SCALAR > &from) const |
| Size | dim () const |
| Returns the dimension (the number of free parameters) in this bayes net. | |
| Size | maxVarDomainSize () const |
| GUM_SCALAR | minParam () const |
| GUM_SCALAR | maxParam () const |
| GUM_SCALAR | minNonZeroParam () const |
| GUM_SCALAR | maxNonOneParam () const |
| virtual std::string | toDot () const |
| std::string | toString () const |
| Tensor< GUM_SCALAR > | evEq (const std::string &name, double value) const |
| Tensor< GUM_SCALAR > | evIn (const std::string &name, double val1, double val2) const |
| Tensor< GUM_SCALAR > | evLt (const std::string &name, double value) const |
| Tensor< GUM_SCALAR > | evGt (const std::string &name, double value) const |
| Size | memoryFootprint () const |
| compute the (approximated) footprint in memory of the model (the footprints of CPTs) | |
| bool | hasSameStructure (const DAGmodel &other) |
| NodeSet | minimalCondSet (NodeId target, const NodeSet &soids) const |
| NodeSet | minimalCondSet (const NodeSet &targets, const NodeSet &soids) const |
| NodeSet | minimalCondSet (const std::string &target, const std::vector< std::string > &soids) const |
| NodeSet | minimalCondSet (const std::vector< std::string > &targets, const std::vector< std::string > &soids) const |
| double | log10DomainSize () const |
Constructors / Destructors | |
| IBayesNet () | |
| Default constructor. | |
| IBayesNet (std::string name) | |
| Default constructor. | |
| virtual | ~IBayesNet () |
| Destructor. | |
| IBayesNet (const IBayesNet< GUM_SCALAR > &source) | |
| Copy constructor. | |
| IBayesNet< GUM_SCALAR > & | operator= (const IBayesNet< GUM_SCALAR > &source) |
| Copy operator. | |
Pure Virtual methods | |
| virtual const Tensor< GUM_SCALAR > & | cpt (NodeId varId) const =0 |
| Returns the CPT of a variable. | |
| virtual const VariableNodeMap & | variableNodeMap () const =0 |
| Returns a constant reference to the VariableNodeMap of thisBN. | |
| virtual const DiscreteVariable & | variable (NodeId id) const =0 |
| Returns a constant reference over a variable given it's node id. | |
| virtual NodeId | nodeId (const DiscreteVariable &var) const =0 |
| Return id node from discrete var pointer. | |
| virtual NodeId | idFromName (const std::string &name) const =0 |
| Getter by name. | |
| virtual const DiscreteVariable & | variableFromName (const std::string &name) const =0 |
| Getter by name. | |
Joint Probability manipulation methods | |
| GUM_SCALAR | jointProbability (const Instantiation &i) const |
| Compute a parameter of the joint probability for the BN (given an instantiation of the vars). | |
| GUM_SCALAR | log2JointProbability (const Instantiation &i) const |
| Compute a parameter of the log joint probability for the BN (given an instantiation of the vars). | |
Variable manipulation methods. | |
| const DAG & | dag () const |
| Returns a constant reference to the dag of this Bayes Net. | |
| virtual Size | size () const final |
| Returns the number of variables in this Directed Graphical Model. | |
| Size | sizeArcs () const |
| Returns the number of arcs in this Directed Graphical Model. | |
| const NodeGraphPart & | nodes () const final |
| Returns a constant reference to the dag of this Bayes Net. | |
| bool | exists (NodeId node) const final |
| Return true if this node exists in this graphical model. | |
| bool | exists (const std::string &name) const final |
| Returns a constant reference to the dag of this Bayes Net. | |
Arc manipulation methods. | |
| const ArcSet & | arcs () const |
| return true if the arc tail->head exists in the DAGmodel | |
| bool | existsArc (const NodeId tail, const NodeId head) const |
| return true if the arc tail->head exists in the DAGmodel | |
| bool | existsArc (const std::string &nametail, const std::string &namehead) const |
| return true if the arc tail->head exists in the DAGmodel | |
| const NodeSet & | parents (const NodeId id) const |
| returns the set of nodes with arc ingoing to a given node | |
| const NodeSet & | parents (const std::string &name) const |
| return true if the arc tail->head exists in the DAGmodel | |
| NodeSet | parents (const NodeSet &ids) const |
| returns the parents of a set of nodes | |
| NodeSet | parents (const std::vector< std::string > &names) const |
| return true if the arc tail->head exists in the DAGmodel | |
| NodeSet | family (const NodeId id) const final |
| returns the parents of a node and the node | |
| NodeSet | family (const std::string &name) const final |
| return true if the arc tail->head exists in the DAGmodel | |
| const NodeSet & | children (const NodeId id) const |
| returns the set of nodes with arc outgoing from a given node | |
| const NodeSet & | children (const std::string &name) const |
| return true if the arc tail->head exists in the DAGmodel | |
| NodeSet | children (const NodeSet &ids) const |
| returns the children of a set of nodes | |
| NodeSet | children (const std::vector< std::string > &names) const |
| return true if the arc tail->head exists in the DAGmodel | |
| NodeSet | descendants (const NodeId id) const |
| returns the set of nodes with directed path outgoing from a given node | |
| NodeSet | descendants (const std::string &name) const |
| return true if the arc tail->head exists in the DAGmodel | |
| NodeSet | ancestors (const NodeId id) const |
| returns the set of nodes with directed path ingoing to a given node | |
| NodeSet | ancestors (const std::string &name) const |
| return true if the arc tail->head exists in the DAGmodel | |
Graphical methods | |
| UndiGraph | moralizedAncestralGraph (const NodeSet &nodes) const |
| build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes | |
| UndiGraph | moralizedAncestralGraph (const std::vector< std::string > &nodenames) const |
| build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes | |
| bool | isIndependent (NodeId X, NodeId Y, const NodeSet &Z) const final |
| check if node X and node Y are independent given nodes Z | |
| bool | isIndependent (const NodeSet &X, const NodeSet &Y, const NodeSet &Z) const final |
| check if nodes X and nodes Y are independent given nodes Z | |
| bool | isIndependent (const std::string &Xname, const std::string &Yname, const std::vector< std::string > &Znames) const |
| build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes | |
| bool | isIndependent (const std::vector< std::string > &Xnames, const std::vector< std::string > &Ynames, const std::vector< std::string > &Znames) const |
| build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes | |
| UndiGraph | moralGraph () const |
| The node's id are coherent with the variables and nodes of the topology. | |
| Sequence< NodeId > | topologicalOrder () const |
| The topological order stays the same as long as no variable or arcs are added or erased src the topology. | |
Getter and setters | |
| const std::string & | property (const std::string &name) const |
| Return the value of the property name of this GraphicalModel. | |
| const std::string & | propertyWithDefault (const std::string &name, const std::string &byDefault) const |
| Return the value of the property name of this GraphicalModel. | |
| void | setProperty (const std::string &name, const std::string &value) |
| Add or change a property of this GraphicalModel. | |
| std::vector< std::string > | properties () const |
| List of all the properties. | |
Variable manipulation methods. | |
| virtual bool | empty () const |
| Return true if this graphical model is empty. | |
| std::vector< std::string > | names (const std::vector< NodeId > &ids) const |
| transform a vector of NodeId in a vector of names | |
| std::vector< std::string > | names (const NodeSet &ids) const |
| transform a NodeSet in a vector of names | |
| std::vector< NodeId > | ids (const std::vector< std::string > &names) const |
| transform a vector of names into a vector of nodeId | |
| NodeSet | nodeset (const std::vector< std::string > &names) const |
| transform a vector of names into a NodeSet | |
| gum::VariableSet | variables (const std::vector< std::string > &l) const |
| transform a vector of names into a VariableeSet | |
| gum::VariableSet | variables (const NodeSet &ids) const |
| transform a vector of NodeId into a VariableeSet | |
| Instantiation | completeInstantiation () const |
| Get an instantiation over all the variables of the model. | |
Static Public Member Functions | |
| static void | spaceCplxToStream (std::stringstream &s, double dSize, int dim, Size usedMem) |
| send to the stream the space complexity with 3 parametrs | |
Protected Attributes | |
| DAG | dag_ |
| The DAG of this Directed Graphical Model. | |
Private Member Functions | |
| const HashTable< std::string, std::string > & | _properties_ () const |
| Return the properties of this Directed Graphical Model. | |
Private Attributes | |
| HashTable< std::string, std::string > | _propertiesMap_ |
| The properties of this Directed Graphical Model. | |
Class representing the minimal interface for Bayesian network with no numerical data.
This class is used as a base class for different versions of Bayesian Networks. No data (except the dag herited from DAGmodel are included in this class.
Many algorithms inference for instance) may use this class when a generic BN is needed.
Definition at line 75 of file IBayesNet.h.
| INLINE gum::IBayesNet< GUM_SCALAR >::IBayesNet | ( | ) |
Default constructor.
Definition at line 66 of file IBayesNet_tpl.h.
References gum::DAGmodel::DAGmodel(), and IBayesNet().
Referenced by gum::BayesNet< GUM_SCALAR >::BayesNet(), gum::BayesNet< GUM_SCALAR >::BayesNet(), gum::BayesNet< GUM_SCALAR >::BayesNet(), gum::BayesNetFragment< GUM_SCALAR >::BayesNetFragment(), gum::BayesNetFragment< GUM_SCALAR >::BayesNetFragment(), gum::prm::ClassBayesNet< GUM_SCALAR >::ClassBayesNet(), gum::prm::ClassBayesNet< GUM_SCALAR >::ClassBayesNet(), IBayesNet(), IBayesNet(), IBayesNet(), gum::prm::InstanceBayesNet< GUM_SCALAR >::InstanceBayesNet(), gum::prm::InstanceBayesNet< GUM_SCALAR >::InstanceBayesNet(), operator!=(), operator=(), operator==(), and variableFromName().
|
explicit |
Default constructor.
Definition at line 71 of file IBayesNet_tpl.h.
References gum::DAGmodel::DAGmodel(), IBayesNet(), and gum::GraphicalModel::setProperty().
|
virtual |
| gum::IBayesNet< GUM_SCALAR >::IBayesNet | ( | const IBayesNet< GUM_SCALAR > & | source | ) |
Copy constructor.
Definition at line 77 of file IBayesNet_tpl.h.
References gum::DAGmodel::DAGmodel(), and IBayesNet().
|
privateinherited |
Return the properties of this Directed Graphical Model.
Definition at line 70 of file graphicalModel_inl.h.
References _propertiesMap_.
Referenced by property().
returns the set of nodes with directed path ingoing to a given node
Note that the set of nodes returned may be empty if no path within the ArcGraphPart is ingoing to the given node.
| id | the node which is the head of a directed path with the returned nodes |
| name | the name of the node which is the head of a directed path with the returned nodes |
Definition at line 123 of file DAGmodel_inl.h.
References gum::ArcGraphPart::ancestors(), and dag().
Referenced by ancestors().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 125 of file DAGmodel_inl.h.
References ancestors(), and gum::GraphicalModel::idFromName().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 65 of file DAGmodel_inl.h.
References dag_.
Referenced by hasSameStructure(), gum::MarkovBlanket::hasSameStructure(), and gum::BayesNetFragment< GUM_SCALAR >::toBN().
| std::vector< std::string > gum::IBayesNet< GUM_SCALAR >::check | ( | ) | const |
Check if the BayesNet is consistent (variables, CPT).
Definition at line 314 of file IBayesNet_tpl.h.
References cpt(), gum::GraphicalModel::empty(), gum::DAGmodel::nodes(), gum::DAGmodel::parents(), and variable().
returns the set of nodes with arc outgoing from a given node
Note that the set of nodes returned may be empty if no node is outgoing from the given node.
| id | the node which is the tail of an arc with the returned nodes |
| name | the name of the node which is the tail of an arc with the returned nodes |
Definition at line 87 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::BayesNet< GUM_SCALAR >::erase(), gum::prm::ClassBayesNet< GUM_SCALAR >::toDot(), and gum::prm::InstanceBayesNet< GUM_SCALAR >::toDot().
returns the children of a set of nodes
Definition at line 93 of file DAGmodel_inl.h.
References dag_, and gum::GraphicalModel::ids().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 89 of file DAGmodel_inl.h.
References dag_, and gum::GraphicalModel::idFromName().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 95 of file DAGmodel_inl.h.
References gum::GraphicalModel::names().
|
inherited |
Get an instantiation over all the variables of the model.
Definition at line 106 of file graphicalModel_inl.h.
References nodes().
|
pure virtual |
Returns the CPT of a variable.
| NotFound | If no variable's id matches varId. |
Implemented in gum::BayesNet< GUM_SCALAR >, gum::BayesNet< double >, gum::BayesNetFragment< GUM_SCALAR >, gum::prm::ClassBayesNet< GUM_SCALAR >, and gum::prm::InstanceBayesNet< GUM_SCALAR >.
Referenced by gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::_verticesSampling_(), gum::BarrenNodesFinder::barrenTensors(), check(), jointProbability(), maxNonOneParam(), maxParam(), minNonZeroParam(), and minParam().
|
inherited |
Returns a constant reference to the dag of this Bayes Net.
Definition at line 57 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::BayesNetFragment< GUM_SCALAR >::BayesNetFragment(), gum::MarginalTargetedInference< GUM_SCALAR >::MarginalTargetedInference(), gum::BayesNet< GUM_SCALAR >::add(), ancestors(), gum::IBayesNet< double >::arcs(), descendants(), gum::BayesNetFragment< GUM_SCALAR >::installCPT(), isIndependent(), isIndependent(), gum::BayesNetFragment< GUM_SCALAR >::isInstalledNode(), moralGraph(), moralizedAncestralGraph(), gum::BayesBall::relevantTensors(), gum::dSeparationAlgorithm::relevantTensors(), gum::BayesNet< GUM_SCALAR >::reverseArc(), size(), gum::BayesNetFragment< GUM_SCALAR >::toBN(), gum::BayesNetFragment< GUM_SCALAR >::toDot(), gum::IBayesNet< GUM_SCALAR >::toString(), gum::InfluenceDiagram< GUM_SCALAR >::toString(), and gum::BayesNetFragment< GUM_SCALAR >::whenArcDeleted().
returns the set of nodes with directed path outgoing from a given node
Note that the set of nodes returned may be empty if no path within the ArcGraphPart is outgoing from the given node.
| id | the node which is the tail of a directed path with the returned nodes |
| name | the name of the node which is the tail of a directed path with the returned nodes |
Definition at line 117 of file DAGmodel_inl.h.
References dag(), and gum::ArcGraphPart::descendants().
Referenced by descendants().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 119 of file DAGmodel_inl.h.
References descendants(), and gum::GraphicalModel::idFromName().
| Size gum::IBayesNet< GUM_SCALAR >::dim | ( | ) | const |
Returns the dimension (the number of free parameters) in this bayes net.
\( dim(G)=\sum_{i \in nodes} ((r_i-1)\cdot q_i) \) where \( r_i \) is the number of instantiations of node \( i \) and \( q_i \) is the number of instantiations of its parents.
Definition at line 95 of file IBayesNet_tpl.h.
References dim(), and gum::DAGmodel::nodes().
Referenced by dim(), and toString().
|
virtualinherited |
Return true if this graphical model is empty.
Definition at line 116 of file graphicalModel_inl.h.
References size().
Referenced by gum::IBayesNet< GUM_SCALAR >::check(), and gum::BayesNet< GUM_SCALAR >::clear().
| Tensor< GUM_SCALAR > gum::IBayesNet< GUM_SCALAR >::evEq | ( | const std::string & | name, |
| double | value ) const |
Definition at line 378 of file IBayesNet_tpl.h.
References gum::Tensor< GUM_SCALAR >::evEq(), and variableFromName().
| Tensor< GUM_SCALAR > gum::IBayesNet< GUM_SCALAR >::evGt | ( | const std::string & | name, |
| double | value ) const |
Definition at line 389 of file IBayesNet_tpl.h.
References gum::Tensor< GUM_SCALAR >::evGt(), and variableFromName().
| Tensor< GUM_SCALAR > gum::IBayesNet< GUM_SCALAR >::evIn | ( | const std::string & | name, |
| double | val1, | ||
| double | val2 ) const |
Definition at line 384 of file IBayesNet_tpl.h.
References gum::Tensor< GUM_SCALAR >::evIn(), and variableFromName().
| Tensor< GUM_SCALAR > gum::IBayesNet< GUM_SCALAR >::evLt | ( | const std::string & | name, |
| double | value ) const |
Definition at line 394 of file IBayesNet_tpl.h.
References gum::Tensor< GUM_SCALAR >::evLt(), and variableFromName().
|
finalvirtualinherited |
Returns a constant reference to the dag of this Bayes Net.
Implements gum::GraphicalModel.
Definition at line 107 of file DAGmodel_inl.h.
Return true if this node exists in this graphical model.
Implements gum::GraphicalModel.
Definition at line 105 of file DAGmodel_inl.h.
References dag_.
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 67 of file DAGmodel_inl.h.
References dag_.
Referenced by existsArc(), gum::BayesNet< GUM_SCALAR >::reverseArc(), gum::BayesNetFragment< GUM_SCALAR >::toDot(), and gum::BayesNetFragment< GUM_SCALAR >::whenArcDeleted().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 71 of file DAGmodel_inl.h.
References existsArc(), and gum::GraphicalModel::idFromName().
returns the parents of a node and the node
| id | the node which is the head of an arc with the returned nodes |
| name | the name of the node the node which is the head of an arc with the returned nodes |
Implements gum::GraphicalModel.
Definition at line 81 of file DAGmodel_inl.h.
References dag_.
|
finalvirtualinherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Implements gum::GraphicalModel.
Definition at line 83 of file DAGmodel_inl.h.
References dag_, and gum::GraphicalModel::idFromName().
Definition at line 66 of file DAGmodel.cpp.
References DAGmodel(), arcs(), gum::Set< Key >::exists(), gum::GraphicalModel::idFromName(), nodes(), size(), sizeArcs(), and gum::GraphicalModel::variable().
|
pure virtual |
Getter by name.
| NotFound | if no such name exists in the graph. |
Implements gum::GraphicalModel.
Implemented in gum::BayesNet< GUM_SCALAR >, gum::BayesNet< double >, gum::BayesNetFragment< GUM_SCALAR >, gum::prm::ClassBayesNet< GUM_SCALAR >, and gum::prm::InstanceBayesNet< GUM_SCALAR >.
|
inherited |
transform a vector of names into a vector of nodeId
Definition at line 139 of file graphicalModel_inl.h.
References names().
Referenced by gum::DAGmodel::children(), exists(), names(), and gum::DAGmodel::parents().
|
finalvirtualinherited |
check if nodes X and nodes Y are independent given nodes Z
Implements gum::GraphicalModel.
Definition at line 142 of file DAGmodel_inl.h.
References dag(), and gum::DAG::dSeparation().
|
inlineinherited |
build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes
| nodes | the set of nodeId |
| nodenames | the vector of names of nodes |
Definition at line 202 of file DAGmodel.h.
References gum::GraphicalModel::idFromName(), isIndependent(), and gum::GraphicalModel::nodeset().
|
inlineinherited |
build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes
| nodes | the set of nodeId |
| nodenames | the vector of names of nodes |
Definition at line 208 of file DAGmodel.h.
References isIndependent(), and gum::GraphicalModel::nodeset().
|
finalvirtualinherited |
check if node X and node Y are independent given nodes Z
Implements gum::GraphicalModel.
Definition at line 138 of file DAGmodel_inl.h.
References dag(), and gum::DAG::dSeparation().
Referenced by isIndependent(), and isIndependent().
| GUM_SCALAR gum::IBayesNet< GUM_SCALAR >::jointProbability | ( | const Instantiation & | i | ) | const |
Compute a parameter of the joint probability for the BN (given an instantiation of the vars).
Definition at line 221 of file IBayesNet_tpl.h.
References cpt(), and gum::DAGmodel::nodes().
|
inherited |
Definition at line 95 of file graphicalModel_inl.h.
References nodes().
Referenced by gum::IBayesNet< GUM_SCALAR >::toString(), gum::IMarkovRandomField< GUM_SCALAR >::toString(), and gum::InfluenceDiagram< GUM_SCALAR >::toString().
| GUM_SCALAR gum::IBayesNet< GUM_SCALAR >::log2JointProbability | ( | const Instantiation & | i | ) | const |
Compute a parameter of the log joint probability for the BN (given an instantiation of the vars).
Compute a parameter of the joint probability for the BN (given an instantiation of the vars).
Definition at line 239 of file IBayesNet_tpl.h.
| GUM_SCALAR gum::IBayesNet< GUM_SCALAR >::maxNonOneParam | ( | ) | const |
Definition at line 151 of file IBayesNet_tpl.h.
References cpt(), and gum::DAGmodel::nodes().
| GUM_SCALAR gum::IBayesNet< GUM_SCALAR >::maxParam | ( | ) | const |
Definition at line 131 of file IBayesNet_tpl.h.
References cpt(), and gum::DAGmodel::nodes().
| Size gum::IBayesNet< GUM_SCALAR >::maxVarDomainSize | ( | ) | const |
Definition at line 111 of file IBayesNet_tpl.h.
References gum::DAGmodel::nodes(), and variable().
Referenced by gum::ImportanceSampling< GUM_SCALAR >::onContextualize_().
| INLINE Size gum::IBayesNet< GUM_SCALAR >::memoryFootprint | ( | ) | const |
compute the (approximated) footprint in memory of the model (the footprints of CPTs)
Definition at line 161 of file IBayesNet_tpl.h.
References gum::DAGmodel::nodes().
Referenced by toString().
|
inherited |
Definition at line 150 of file DAGmodel_inl.h.
References dag_.
|
inherited |
Definition at line 154 of file DAGmodel_inl.h.
|
inherited |
Definition at line 159 of file DAGmodel_inl.h.
|
inherited |
Definition at line 146 of file DAGmodel_inl.h.
| GUM_SCALAR gum::IBayesNet< GUM_SCALAR >::minNonZeroParam | ( | ) | const |
Definition at line 141 of file IBayesNet_tpl.h.
References cpt(), and gum::DAGmodel::nodes().
Referenced by gum::ImportanceSampling< GUM_SCALAR >::onContextualize_().
| GUM_SCALAR gum::IBayesNet< GUM_SCALAR >::minParam | ( | ) | const |
Definition at line 121 of file IBayesNet_tpl.h.
References cpt(), and gum::DAGmodel::nodes().
|
inherited |
The node's id are coherent with the variables and nodes of the topology.
Definition at line 64 of file DAGmodel.cpp.
References dag(), and gum::DAG::moralGraph().
Referenced by gum::prm::SVE< GUM_SCALAR >::_eliminateNodes_(), gum::prm::SVED< GUM_SCALAR >::_eliminateNodes_(), gum::prm::SVE< GUM_SCALAR >::_eliminateNodesWithEvidence_(), gum::prm::SVED< GUM_SCALAR >::_eliminateNodesWithEvidence_(), gum::prm::SVE< GUM_SCALAR >::_initLiftedNodes_(), and gum::prm::SVED< GUM_SCALAR >::_initLiftedNodes_().
build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes
| nodes | the set of nodeId |
| nodenames | the vector of names of nodes |
Definition at line 134 of file DAGmodel_inl.h.
References dag(), gum::DAG::moralizedAncestralGraph(), and nodes().
Referenced by moralizedAncestralGraph().
|
inherited |
build a UndiGraph by moralizing the Ancestral Graph of a set of Nodes
| nodes | the set of nodeId |
| nodenames | the vector of names of nodes |
Definition at line 130 of file DAGmodel_inl.h.
References moralizedAncestralGraph(), and gum::GraphicalModel::nodeset().
|
inherited |
transform a NodeSet in a vector of names
Definition at line 129 of file graphicalModel_inl.h.
|
inherited |
transform a vector of NodeId in a vector of names
Definition at line 119 of file graphicalModel_inl.h.
References ids(), and variableNodeMap().
Referenced by gum::DAGmodel::children(), exists(), ids(), nodeset(), and gum::DAGmodel::parents().
|
pure virtual |
Return id node from discrete var pointer.
| NotFound | If no variable matches var. |
Implements gum::GraphicalModel.
Implemented in gum::BayesNet< GUM_SCALAR >, gum::BayesNet< double >, gum::BayesNetFragment< GUM_SCALAR >, gum::prm::ClassBayesNet< GUM_SCALAR >, and gum::prm::InstanceBayesNet< GUM_SCALAR >.
Referenced by gum::BayesBall::relevantTensors(), and gum::dSeparationAlgorithm::relevantTensors().
|
finalvirtualinherited |
Returns a constant reference to the dag of this Bayes Net.
Implements gum::GraphicalModel.
Definition at line 113 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::Estimator< GUM_SCALAR >::Estimator(), gum::BayesNetFragment< GUM_SCALAR >::~BayesNetFragment(), gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::_verticesSampling_(), gum::BayesNet< GUM_SCALAR >::beginTopologyTransformation(), gum::InfluenceDiagram< GUM_SCALAR >::beginTopologyTransformation(), gum::IBayesNet< GUM_SCALAR >::check(), gum::BayesNetFragment< GUM_SCALAR >::checkConsistency(), gum::BayesNet< GUM_SCALAR >::clear(), gum::InfluenceDiagram< GUM_SCALAR >::copyStructureAndTables_(), gum::IBayesNet< GUM_SCALAR >::dim(), gum::BayesNet< GUM_SCALAR >::endTopologyTransformation(), gum::InfluenceDiagram< GUM_SCALAR >::endTopologyTransformation(), gum::InfluenceDiagram< GUM_SCALAR >::fastPrototype(), gum::BayesNet< GUM_SCALAR >::generateCPTs(), gum::getMaxModality(), hasSameStructure(), gum::IBayesNet< GUM_SCALAR >::jointProbability(), gum::IBayesNet< GUM_SCALAR >::maxNonOneParam(), gum::IBayesNet< GUM_SCALAR >::maxParam(), gum::IBayesNet< GUM_SCALAR >::maxVarDomainSize(), gum::IBayesNet< GUM_SCALAR >::memoryFootprint(), gum::IBayesNet< GUM_SCALAR >::minNonZeroParam(), gum::IBayesNet< GUM_SCALAR >::minParam(), gum::prm::ClassBayesNet< GUM_SCALAR >::modalities(), gum::prm::InstanceBayesNet< GUM_SCALAR >::modalities(), moralizedAncestralGraph(), gum::InfluenceDiagram< GUM_SCALAR >::operator==(), gum::Estimator< GUM_SCALAR >::setFromBN(), gum::BayesNetFragment< GUM_SCALAR >::toBN(), gum::prm::ClassBayesNet< GUM_SCALAR >::toDot(), gum::prm::InstanceBayesNet< GUM_SCALAR >::toDot(), and gum::ImportanceSampling< GUM_SCALAR >::unsharpenBN_().
|
inherited |
transform a vector of names into a NodeSet
Definition at line 60 of file graphicalModel.cpp.
References idFromName(), gum::Set< Key >::insert(), and names().
Referenced by gum::IBayesNet< double >::children(), gum::IBayesNet< double >::children(), gum::DAGmodel::isIndependent(), gum::DAGmodel::isIndependent(), gum::UGmodel::isIndependent(), gum::UGmodel::isIndependent(), gum::DAGmodel::moralizedAncestralGraph(), and gum::DAGmodel::parents().
| bool gum::IBayesNet< GUM_SCALAR >::operator!= | ( | const IBayesNet< GUM_SCALAR > & | from | ) | const |
Definition at line 303 of file IBayesNet_tpl.h.
References IBayesNet(), and gum::operator==().
| IBayesNet< GUM_SCALAR > & gum::IBayesNet< GUM_SCALAR >::operator= | ( | const IBayesNet< GUM_SCALAR > & | source | ) |
Copy operator.
Definition at line 83 of file IBayesNet_tpl.h.
References IBayesNet(), and gum::DAGmodel::operator=().
Referenced by gum::BayesNet< GUM_SCALAR >::operator=(), gum::prm::ClassBayesNet< GUM_SCALAR >::operator=(), and gum::prm::InstanceBayesNet< GUM_SCALAR >::operator=().
| bool gum::IBayesNet< GUM_SCALAR >::operator== | ( | const IBayesNet< GUM_SCALAR > & | from | ) | const |
This operator compares 2 BNs !
Definition at line 256 of file IBayesNet_tpl.h.
References IBayesNet(), and gum::DAGmodel::size().
returns the set of nodes with arc ingoing to a given node
Note that the set of nodes returned may be empty if no arc within the ArcGraphPart is ingoing into the given node.
| id | the node which is the head of an arc with the returned nodes |
| name | the name of the node the node which is the head of an arc with the returned nodes |
Definition at line 75 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::IBayesNet< GUM_SCALAR >::check(), gum::BayesNetFragment< GUM_SCALAR >::checkConsistency(), gum::InfluenceDiagram< GUM_SCALAR >::copyStructureAndTables_(), gum::BayesNetFragment< GUM_SCALAR >::installCPT(), gum::BayesNetFragment< GUM_SCALAR >::installCPT_(), parents(), parents(), gum::prm::ClassBayesNet< GUM_SCALAR >::toDot(), and gum::prm::InstanceBayesNet< GUM_SCALAR >::toDot().
returns the parents of a set of nodes
Definition at line 99 of file DAGmodel_inl.h.
References dag_, and gum::GraphicalModel::ids().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 77 of file DAGmodel_inl.h.
References gum::GraphicalModel::idFromName(), and parents().
|
inherited |
return true if the arc tail->head exists in the DAGmodel
| tail | the nodeId (or the name) of the tail in tail->head |
| head | the nodeId (or the name) of the head in tail->head |
Definition at line 101 of file DAGmodel_inl.h.
References gum::GraphicalModel::names(), gum::GraphicalModel::nodeset(), and parents().
|
inherited |
List of all the properties.
Definition at line 81 of file graphicalModel_inl.h.
References _propertiesMap_.
|
inherited |
Return the value of the property name of this GraphicalModel.
| NotFound | Raised if no name property is found. |
Definition at line 60 of file graphicalModel_inl.h.
References _properties_(), and GUM_ERROR.
Referenced by gum::IMarkovRandomField< GUM_SCALAR >::toDot(), gum::InfluenceDiagram< GUM_SCALAR >::toDot(), and gum::IMarkovRandomField< GUM_SCALAR >::toDotAsFactorGraph().
|
inherited |
Return the value of the property name of this GraphicalModel.
return byDefault if the property name is not found
Definition at line 75 of file graphicalModel_inl.h.
References _propertiesMap_.
|
inherited |
Add or change a property of this GraphicalModel.
Definition at line 89 of file graphicalModel_inl.h.
References _propertiesMap_.
Referenced by gum::IBayesNet< GUM_SCALAR >::IBayesNet(), gum::IMarkovRandomField< GUM_SCALAR >::IMarkovRandomField(), and gum::InfluenceDiagram< GUM_SCALAR >::fastPrototype().
|
finalvirtualinherited |
Returns the number of variables in this Directed Graphical Model.
Implements gum::GraphicalModel.
Definition at line 60 of file DAGmodel_inl.h.
References dag(), and gum::NodeGraphPart::size().
Referenced by gum::InfluenceDiagram< GUM_SCALAR >::copyStructureAndTables_(), gum::InfluenceDiagram< GUM_SCALAR >::decisionNodeSize(), hasSameStructure(), gum::MarkovBlanket::hasSameStructure(), gum::IBayesNet< GUM_SCALAR >::operator==(), gum::InfluenceDiagram< GUM_SCALAR >::operator==(), gum::prm::ClassBayesNet< GUM_SCALAR >::toDot(), gum::prm::InstanceBayesNet< GUM_SCALAR >::toDot(), and gum::IBayesNet< GUM_SCALAR >::toString().
|
inherited |
Returns the number of arcs in this Directed Graphical Model.
Definition at line 63 of file DAGmodel_inl.h.
References dag_.
Referenced by hasSameStructure(), gum::MarkovBlanket::hasSameStructure(), and gum::InfluenceDiagram< GUM_SCALAR >::operator==().
|
staticinherited |
send to the stream the space complexity with 3 parametrs
| s | the stream |
| dSize | the log10domainSize |
| dim | the dimension |
| usedMem | the memory needed for the params |
Definition at line 69 of file graphicalModel.cpp.
Referenced by gum::IBayesNet< GUM_SCALAR >::toString().
|
virtual |
Reimplemented in gum::BayesNetFragment< GUM_SCALAR >, gum::prm::ClassBayesNet< GUM_SCALAR >, and gum::prm::InstanceBayesNet< GUM_SCALAR >.
Definition at line 179 of file IBayesNet_tpl.h.
The topological order stays the same as long as no variable or arcs are added or erased src the topology.
| clear | If false returns the previously created topology. |
Definition at line 115 of file DAGmodel_inl.h.
Referenced by gum::InfluenceDiagramGenerator< GUM_SCALAR >::_checkTemporalOrder_(), gum::InfluenceDiagram< GUM_SCALAR >::decisionOrder(), and gum::InfluenceDiagram< GUM_SCALAR >::decisionOrderExists().
| INLINE std::string gum::IBayesNet< GUM_SCALAR >::toString | ( | ) | const |
Definition at line 170 of file IBayesNet_tpl.h.
References gum::DAGmodel::dag(), dim(), gum::GraphicalModel::log10DomainSize(), memoryFootprint(), gum::DAGmodel::size(), and gum::GraphicalModel::spaceCplxToStream().
Referenced by gum::operator<<().
|
pure virtual |
Returns a constant reference over a variable given it's node id.
| NotFound | If no variable's id matches varId. |
Implements gum::GraphicalModel.
Implemented in gum::BayesNet< GUM_SCALAR >, gum::BayesNet< double >, gum::BayesNetFragment< GUM_SCALAR >, gum::prm::ClassBayesNet< GUM_SCALAR >, and gum::prm::InstanceBayesNet< GUM_SCALAR >.
Referenced by gum::Estimator< GUM_SCALAR >::Estimator(), gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::_insertEvidence_(), gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::_verticesSampling_(), check(), maxVarDomainSize(), and gum::Estimator< GUM_SCALAR >::setFromBN().
|
pure virtual |
Getter by name.
| NotFound | if no such name exists in the graph. |
Implements gum::GraphicalModel.
Implemented in gum::BayesNet< GUM_SCALAR >, gum::BayesNet< double >, gum::BayesNetFragment< GUM_SCALAR >, gum::prm::ClassBayesNet< GUM_SCALAR >, and gum::prm::InstanceBayesNet< GUM_SCALAR >.
References IBayesNet().
Referenced by evEq(), evGt(), evIn(), and evLt().
|
pure virtual |
Returns a constant reference to the VariableNodeMap of thisBN.
Implements gum::GraphicalModel.
Implemented in gum::BayesNet< GUM_SCALAR >, gum::BayesNet< double >, gum::BayesNetFragment< GUM_SCALAR >, gum::prm::ClassBayesNet< GUM_SCALAR >, and gum::prm::InstanceBayesNet< GUM_SCALAR >.
|
inherited |
transform a vector of NodeId into a VariableeSet
Definition at line 160 of file graphicalModel_inl.h.
References gum::VariableNodeMap::get(), gum::Set< Key >::insert(), and variableNodeMap().
|
inherited |
transform a vector of names into a VariableeSet
Definition at line 150 of file graphicalModel_inl.h.
References variableNodeMap().
|
privateinherited |
The properties of this Directed Graphical Model.
Definition at line 236 of file graphicalModel.h.
Referenced by _properties_(), operator=(), properties(), propertyWithDefault(), and setProperty().
|
protectedinherited |
The DAG of this Directed Graphical Model.
Definition at line 272 of file DAGmodel.h.
Referenced by DAGmodel(), gum::prm::ClassBayesNet< GUM_SCALAR >::_get_(), gum::prm::ClassBayesNet< GUM_SCALAR >::_init_(), gum::prm::InstanceBayesNet< GUM_SCALAR >::_init_(), gum::BayesNet< GUM_SCALAR >::add(), gum::BayesNet< GUM_SCALAR >::addArc(), gum::InfluenceDiagram< GUM_SCALAR >::addArc(), gum::InfluenceDiagram< GUM_SCALAR >::addNode_(), arcs(), children(), children(), children(), dag(), gum::BayesNet< GUM_SCALAR >::erase(), gum::InfluenceDiagram< GUM_SCALAR >::erase(), gum::BayesNet< GUM_SCALAR >::eraseArc(), gum::InfluenceDiagram< GUM_SCALAR >::eraseArc(), exists(), existsArc(), gum::InfluenceDiagram< GUM_SCALAR >::existsPathBetween(), family(), family(), gum::InfluenceDiagram< GUM_SCALAR >::getChildrenDecision_(), gum::InfluenceDiagram< GUM_SCALAR >::getDecisionGraph(), gum::InfluenceDiagram< GUM_SCALAR >::getPartialTemporalOrder(), gum::BayesNetFragment< GUM_SCALAR >::installArc_(), gum::BayesNetFragment< GUM_SCALAR >::installNode(), minimalCondSet(), gum::InfluenceDiagram< GUM_SCALAR >::moralGraph_(), nodes(), operator=(), parents(), parents(), gum::InfluenceDiagram< GUM_SCALAR >::removeTables_(), sizeArcs(), gum::InfluenceDiagram< GUM_SCALAR >::toDot(), gum::BayesNetFragment< GUM_SCALAR >::uninstallArc_(), and gum::BayesNetFragment< GUM_SCALAR >::uninstallNode().