![]() |
aGrUM 3.0.0
a C++ library for (probabilistic) graphical models
|
Class representing an Influence Diagram. More...
#include <agrum/ID/influenceDiagram.h>
Public Member Functions | |
| bool | operator== (const InfluenceDiagram< GUM_SCALAR > &other) const |
| std::string | toDot () const |
| std::string | toString () const |
| void | clear () |
| NodeId | idFromName (std::string_view name) const override |
| Returns the NodeId of a variable given its name. | |
| const VariableNodeMap & | variableNodeMap () const override |
| Returns a constant reference to the VariableNodeMap of this model. | |
| const DiscreteVariable & | variable (NodeId id) const override |
| Returns a constant reference over a variable given its node id. | |
| NodeId | nodeId (const DiscreteVariable &var) const override |
| Returns the NodeId of a variable. | |
| const DiscreteVariable & | variableFromName (std::string_view name) const override |
| Returns a constant reference over a variable given its name. | |
| bool | hasSameStructure (const DAGmodel &other) const |
| NodeSet | minimalCondSet (NodeId target, const NodeSet &soids) const |
| NodeSet | minimalCondSet (const NodeSet &targets, const NodeSet &soids) const |
| NodeSet | minimalCondSet (std::string_view target, const std::vector< std::string > &soids) const |
| NodeSet | minimalCondSet (const std::vector< std::string > &targets, const std::vector< std::string > &soids) const |
| const DAG & | internalDag () const |
| Returns a const reference to the internal (unnamed) DAG. O(1), no copy. Use for stable references or pointers (e.g. graph listeners). For named node access, use dag() instead. | |
| double | log10DomainSize () const |
Constructors / Destructors | |
| InfluenceDiagram () | |
| Default constructor. | |
| ~InfluenceDiagram () override | |
| Destructor. | |
| InfluenceDiagram (const InfluenceDiagram< GUM_SCALAR > &source) | |
| Copy Constructor. | |
| InfluenceDiagram< GUM_SCALAR > & | operator= (const InfluenceDiagram< GUM_SCALAR > &source) |
| Copy Operator. | |
| InfluenceDiagram (InfluenceDiagram< GUM_SCALAR > &&) noexcept | |
| Default constructor. | |
| InfluenceDiagram< GUM_SCALAR > & | operator= (InfluenceDiagram< GUM_SCALAR > &&) noexcept |
| Default constructor. | |
Variable manipulation methods. | |
| virtual const Tensor< GUM_SCALAR > & | cpt (NodeId varId) const |
| Returns the CPT of a tensor variable. | |
| virtual const Tensor< GUM_SCALAR > & | cpt (std::string_view name) const final |
| Returns the CPT of a tensor variable. | |
| virtual const Tensor< GUM_SCALAR > & | utility (NodeId varId) const |
| Returns the utility table of a utility node. | |
| virtual const Tensor< GUM_SCALAR > & | utility (std::string_view name) const final |
| Returns the CPT of a tensor variable. | |
| bool | isUtilityNode (NodeId varId) const |
| Returns true if node is a utility one. | |
| bool | isUtilityNode (std::string_view name) const |
| Returns the CPT of a tensor variable. | |
| bool | isDecisionNode (NodeId varId) const |
| Returns true if node is a decision one. | |
| bool | isDecisionNode (std::string_view name) const |
| Returns the CPT of a tensor variable. | |
| bool | isChanceNode (NodeId varId) const |
| Returns true if node is a chance one. | |
| bool | isChanceNode (std::string_view name) const |
| Returns the CPT of a tensor variable. | |
| Size | utilityNodeSize () const |
| Returns the number of utility nodes. | |
| Size | chanceNodeSize () const |
| Returns the number of chance nodes. | |
| Size | decisionNodeSize () const |
| Returns the number of decision nodes. | |
| const DiscreteVariable & | variable (std::string_view name) const |
| Returns the CPT of a tensor variable. | |
| NodeId | add (const DiscreteVariable &variable, NodeId id=0) |
| Add a chance variable, it's associate node and it's CPT. | |
| NodeId | addChanceNode (const DiscreteVariable &variable, NodeId id=0) |
| Add a chance variable, it's associate node and it's CPT. | |
| NodeId | addUtilityNode (const DiscreteVariable &variable, NodeId id=0) |
| Add a utility variable, it's associate node and it's UT. | |
| NodeId | addDecisionNode (const DiscreteVariable &variable, NodeId id=0) |
| Add a decision variable. | |
| NodeId | addChanceNode (const DiscreteVariable &variable, MultiDimImplementation< GUM_SCALAR > *aContent, NodeId id=0) |
| Add a chance variable, it's associate node and it's CPT. | |
| NodeId | addUtilityNode (const DiscreteVariable &variable, MultiDimImplementation< GUM_SCALAR > *aContent, NodeId id=0) |
| Add a chance variable, it's associate node and it's CPT. | |
| NodeId | add (std::string_view fast_description, unsigned int default_nbrmod=2) |
| Add a chance, a decision or an utility variable from a description in "fast" syntax. | |
| NodeId | addChanceNode (std::string_view fast_description, unsigned int default_nbrmod=2) |
| Add a chance variable from a description in "fast" syntax. | |
| NodeId | addUtilityNode (std::string_view fast_description) |
| Add a utility variable from a description in "fast" syntax with only one value. | |
| NodeId | addDecisionNode (std::string_view fast_description, unsigned int default_nbrmod=2) |
| Add a decision variable from a description in "fast" syntax. | |
| void | erase (NodeId id) |
| Erase a Variable from the network and remove the variable from all his children. | |
| void | erase (std::string_view name) |
| Returns the CPT of a tensor variable. | |
| void | erase (const DiscreteVariable &var) |
| Erase a Variable from the network and remove the variable from all his children. | |
| void | changeVariableName (NodeId id, std::string_view new_name) |
| we allow the user to change the name of a variable | |
| void | changeVariableName (std::string_view name, std::string_view new_name) |
| Returns the CPT of a tensor variable. | |
Arc manipulation methods. | |
| void | addArc (NodeId tail, NodeId head) |
| Add an arc in the ID, and update diagram's tensor nodes cpt if necessary. | |
| void | addArc (std::string_view tail, std::string_view head) |
| Add an arc in the ID, and update diagram's tensor nodes cpt if necessary. | |
| void | eraseArc (const Arc &arc) |
| Removes an arc in the ID, and update diagram's tensor nodes cpt if necessary. | |
| void | eraseArc (NodeId tail, NodeId head) |
| Removes an arc in the ID, and update diagram's tensor nodes cpt if necessary. | |
| void | eraseArc (std::string_view tail, std::string_view head) |
| Add an arc in the ID, and update diagram's tensor nodes cpt if necessary. | |
Decisions methods | |
| bool | decisionOrderExists () const |
| True if a directed path exist with all decision nodes. | |
| gum::DAG | getDecisionGraph () const |
| Returns the temporal Graph. | |
| std::vector< NodeId > | decisionOrder () const |
| Returns the sequence of decision nodes in the directed path. | |
| bool | existsPathBetween (NodeId src, NodeId dest) const |
| Returns true if a path exists between two nodes. | |
| bool | existsPathBetween (std::string_view src, std::string_view dest) const |
| True if a directed path exist with all decision nodes. | |
| const List< NodeSet > & | getPartialTemporalOrder (bool clear=true) const |
| Returns partial temporal ordering. | |
| void | beginTopologyTransformation () |
| When inserting/removing arcs, node CPTs/utilities change their dimension with a cost in time. | |
| void | endTopologyTransformation () |
| terminates a sequence of insertions/deletions of arcs by adjusting all CPTs/utilities dimensions. | |
Variable manipulation methods. | |
| DAG | dag () const |
| Returns a named copy of the internal DAG: each node id is assigned the name of the corresponding variable. | |
| 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 named copy of the internal DAG: each node id is assigned the name of the corresponding variable. | |
| bool | exists (NodeId node) const final |
| Return true if this node exists in this graphical model. | |
| bool | exists (std::string_view name) const final |
| Returns a named copy of the internal DAG: each node id is assigned the name of the corresponding variable. | |
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 (std::string_view nametail, std::string_view 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 (std::string_view 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 (std::string_view 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 (std::string_view 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 (std::string_view 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 (std::string_view 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 (std::string_view Xname, std::string_view 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. | |
| NodeProperty< NodeId > | connectedComponents () const |
| Returns the weakly connected components of the underlying DAG. Each node maps to the id of its component root. | |
Getter and setters | |
| const std::string & | property (std::string_view name) const |
| Return the value of the property name of this GraphicalModel. | |
| const std::string & | propertyWithDefault (std::string_view name, const std::string &byDefault) const |
| Return the value of the property name of this GraphicalModel. | |
| void | setProperty (std::string_view name, std::string_view value) |
| Add or change a property of this GraphicalModel. | |
| std::vector< std::string > | properties () const |
| List of all the names of property in the Graphical model. | |
| bool | existsProperty (std::string_view name) const |
| check wether a property exists in this GraphicalModel | |
| void | updateMetaData () |
| update the meta data of this Graphical Model (version, creation date, last modification date) This method is called by the writers ONLY before writing the model to a file. | |
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 InfluenceDiagram< GUM_SCALAR > | fastPrototype (std::string_view dotlike, Size domainSize) |
| Create an Influence Diagram with a dot-like syntax which specifies: | |
| static InfluenceDiagram< GUM_SCALAR > | fastPrototype (std::string_view dotlike, std::string_view domain="[2]") |
| static std::string | spaceCplxToString (double dSize, int dim, Size usedMem) |
| send to the stream the space complexity with 3 parametrs | |
Protected Member Functions | |
| virtual void | moralGraph_ (UndiGraph &graph) const |
| Returns the moral graph of this InfluenceDiagram. | |
| void | removeTables_ () |
| Removing ancient table. | |
| void | copyStructureAndTables_ (const InfluenceDiagram< GUM_SCALAR > &IDsource) |
| Copying tables from another influence diagram. | |
| NodeId | addNode_ (const DiscreteVariable &variableType, NodeId DesiredId) |
| Add a node. | |
| Sequence< NodeId > | getChildrenDecision_ (NodeId parentDecision) const |
| Returns the list of children decision for a given nodeId. | |
| void | _nameNodes_ (NodeGraphPart &g) const |
| Names every node of g using variable(id).name() for each node id in g. | |
Protected Attributes | |
| DAG | dag_ |
| The DAG of this Directed Graphical Model. | |
| VariableNodeMap | varMap_ |
| Mapping between NodeIds and discrete variables. | |
Private Member Functions | |
| const HashTable< std::string, std::string > & | _properties_ () const |
| Return the properties of this Directed Graphical Model. | |
Private Attributes | |
| NodeProperty< Tensor< GUM_SCALAR > * > | _tensorMap_ |
| Mapping between tensor variable's id and their CPT. | |
| NodeProperty< Tensor< GUM_SCALAR > * > | _utilityMap_ |
| Mapping between utility variable's id and their utility table. | |
| List< NodeSet > | _temporalOrder_ |
| The temporal order. | |
| HashTable< std::string, std::string > | _propertiesMap_ |
| The properties of this Directed Graphical Model. | |
Class representing an Influence Diagram.
Definition at line 72 of file influenceDiagram.h.
| gum::InfluenceDiagram< GUM_SCALAR >::InfluenceDiagram | ( | ) |
Default constructor.
Definition at line 149 of file influenceDiagram_tpl.h.
References gum::DAGmodel::DAGmodel(), and InfluenceDiagram().
Referenced by InfluenceDiagram(), InfluenceDiagram(), InfluenceDiagram(), ~InfluenceDiagram(), clear(), copyStructureAndTables_(), operator=(), operator=(), and operator==().
|
override |
Destructor.
Definition at line 157 of file influenceDiagram_tpl.h.
References InfluenceDiagram(), and removeTables_().
| gum::InfluenceDiagram< GUM_SCALAR >::InfluenceDiagram | ( | const InfluenceDiagram< GUM_SCALAR > & | source | ) |
Copy Constructor.
Definition at line 189 of file influenceDiagram_tpl.h.
References InfluenceDiagram(), and copyStructureAndTables_().
|
noexcept |
Default constructor.
Definition at line 163 of file influenceDiagram_tpl.h.
References gum::DAGmodel::DAGmodel(), InfluenceDiagram(), _temporalOrder_, _tensorMap_, and _utilityMap_.
|
protectedinherited |
Names every node of g using variable(id).name() for each node id in g.
Call this before returning any newly constructed graph from a model method.
Definition at line 175 of file graphicalModel_inl.h.
References gum::NodeGraphPart::setName(), and variable().
Referenced by gum::DAGmodel::dag(), gum::UGmodel::graph(), gum::DAGmodel::moralGraph(), and gum::DAGmodel::moralizedAncestralGraph().
|
privateinherited |
Return the properties of this Directed Graphical Model.
Definition at line 67 of file graphicalModel_inl.h.
References _propertiesMap_.
Referenced by property().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::add | ( | const DiscreteVariable & | variable, |
| NodeId | id = 0 ) |
Add a chance variable, it's associate node and it's CPT.
The id of the new variable is automatically generated.
The implementation of the Tensor is by default a MultiDimArray.
| variable | The variable added by copy. |
| id | The chosen id. If 0, the NodeGraphPart will choose. |
| DuplicateElement | if id(<>0) is already used |
Definition at line 412 of file influenceDiagram_tpl.h.
References addChanceNode().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::add | ( | std::string_view | fast_description, |
| unsigned int | default_nbrmod = 2 ) |
Add a chance, a decision or an utility variable from a description in "fast" syntax.
| fast_description( | str) following "fast" syntax description |
| default_nbrmod( | int) nbr of modality if fast_description do not indicate it. default_nbrmod=1 is the way to create a variable with only one value (for instance for reward in influence diagram). |
| DuplicateLabel | Raised if variable.name() is already used in this gum::InfluenceDiagram. |
| NotAllowed | if nbrmod<2 |
Definition at line 856 of file influenceDiagram_tpl.h.
References addChanceNode(), addDecisionNode(), and addUtilityNode().
| void gum::InfluenceDiagram< GUM_SCALAR >::addArc | ( | NodeId | tail, |
| NodeId | head ) |
Add an arc in the ID, and update diagram's tensor nodes cpt if necessary.
| head | and |
| tail | as NodeId |
| InvalidEdge | If arc.tail and/or arc.head are not in the ID. |
| InvalidEdge | if tail is a utility node |
Definition at line 580 of file influenceDiagram_tpl.h.
References _tensorMap_, _utilityMap_, gum::DAGmodel::dag_, GUM_ERROR, isChanceNode(), isUtilityNode(), and variable().
Referenced by gum::InfluenceDiagramGenerator< GUM_SCALAR >::_checkTemporalOrder_(), addArc(), copyStructureAndTables_(), and fastPrototype().
| void gum::InfluenceDiagram< GUM_SCALAR >::addArc | ( | std::string_view | tail, |
| std::string_view | head ) |
Add an arc in the ID, and update diagram's tensor nodes cpt if necessary.
| head | and |
| tail | as NodeId |
| InvalidEdge | If arc.tail and/or arc.head are not in the ID. |
| InvalidEdge | if tail is a utility node |
Definition at line 977 of file influenceDiagram_tpl.h.
References addArc(), and idFromName().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addChanceNode | ( | const DiscreteVariable & | variable, |
| MultiDimImplementation< GUM_SCALAR > * | aContent, | ||
| NodeId | id = 0 ) |
Add a chance variable, it's associate node and it's CPT.
The id of the new variable is automatically generated.
| variable | The variable added by copy. |
| aContent | The content used for the variable tensor. |
| id | The chosen id. If 0, the NodeGraphPart will choose. |
| DuplicateElement | if id(<>0) is already used |
Definition at line 471 of file influenceDiagram_tpl.h.
References _tensorMap_, addNode_(), and variable().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addChanceNode | ( | const DiscreteVariable & | variable, |
| NodeId | id = 0 ) |
Add a chance variable, it's associate node and it's CPT.
The id of the new variable is automatically generated.
The implementation of the Tensor is by default a MultiDimArray.
| variable | The variable added by copy. |
| id | The chosen id. If 0, the NodeGraphPart will choose. |
| DuplicateElement | if id(<>0) is already used |
Definition at line 451 of file influenceDiagram_tpl.h.
References addChanceNode().
Referenced by add(), add(), addChanceNode(), addChanceNode(), gum::build_node_for_ID(), and copyStructureAndTables_().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addChanceNode | ( | std::string_view | fast_description, |
| unsigned int | default_nbrmod = 2 ) |
Add a chance variable from a description in "fast" syntax.
| fast_description( | str) following "fast" syntax description |
| default_nbrmod( | int) nbr of modality if fast_description do not indicate it. default_nbrmod=1 is the way to create a variable with only one value (for instance for reward in influence diagram). |
| DuplicateLabel | Raised if variable.name() is already used in this gum::InfluenceDiagram. |
| NotAllowed | if nbrmod<2 |
Definition at line 831 of file influenceDiagram_tpl.h.
References addChanceNode(), gum::fastVariable(), and GUM_ERROR.
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addDecisionNode | ( | const DiscreteVariable & | variable, |
| NodeId | id = 0 ) |
Add a decision variable.
The id of the new variable is automatically generated.
| variable | The variable added by copy. |
| id | The chosen id. If 0, the NodeGraphPart will choose. |
| DuplicateElement | if id(<>0) is already used |
Definition at line 441 of file influenceDiagram_tpl.h.
References addNode_().
Referenced by add(), addDecisionNode(), gum::build_node_for_ID(), and copyStructureAndTables_().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addDecisionNode | ( | std::string_view | fast_description, |
| unsigned int | default_nbrmod = 2 ) |
Add a decision variable from a description in "fast" syntax.
| fast_description( | str) following "fast" syntax description |
| default_nbrmod( | int) nbr of modality if fast_description do not indicate it. |
| DuplicateLabel | Raised if variable.name() is already used in this gum::InfluenceDiagram. |
| NotAllowed | if nbrmod<2 |
Definition at line 848 of file influenceDiagram_tpl.h.
References addDecisionNode(), gum::fastVariable(), and GUM_ERROR.
|
protected |
Add a node.
Definition at line 514 of file influenceDiagram_tpl.h.
References gum::DAGmodel::dag_, and gum::DiscreteGraphicalModel::varMap_.
Referenced by addChanceNode(), addDecisionNode(), and addUtilityNode().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addUtilityNode | ( | const DiscreteVariable & | variable, |
| MultiDimImplementation< GUM_SCALAR > * | aContent, | ||
| NodeId | id = 0 ) |
Add a chance variable, it's associate node and it's CPT.
The id of the new variable is automatically generated.
| variable | The variable added by copy. |
| aContent | The content used for the variable utility. |
| id | The chosen id. If 0, the NodeGraphPart will choose. |
| InvalidArgument | If variable has more than one label |
| DuplicateElement | if id(<>0) is already used |
Definition at line 490 of file influenceDiagram_tpl.h.
References _utilityMap_, addNode_(), gum::DiscreteVariable::domainSize(), GUM_ERROR, and variable().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addUtilityNode | ( | const DiscreteVariable & | variable, |
| NodeId | id = 0 ) |
Add a utility variable, it's associate node and it's UT.
The id of the new variable is automatically generated.
The implementation of the Utility is by default a MultiDimArray.
| variable | The variable added by copy. |
| id | The chosen id. If 0, the NodeGraphPart will choose. |
| InvalidArgument | If variable has more than one label |
| DuplicateElement | if id(<>0) is already used |
Definition at line 422 of file influenceDiagram_tpl.h.
References addUtilityNode().
Referenced by add(), addUtilityNode(), addUtilityNode(), gum::build_node_for_ID(), and copyStructureAndTables_().
| NodeId gum::InfluenceDiagram< GUM_SCALAR >::addUtilityNode | ( | std::string_view | fast_description | ) |
Add a utility variable from a description in "fast" syntax with only one value.
| fast_description( | str) following "fast" syntax description |
Definition at line 839 of file influenceDiagram_tpl.h.
References addUtilityNode(), gum::fastVariable(), and GUM_ERROR.
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 135 of file DAGmodel_inl.h.
References 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 137 of file DAGmodel_inl.h.
References ancestors(), and gum::DiscreteGraphicalModel::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 73 of file DAGmodel_inl.h.
References dag_.
Referenced by hasSameStructure(), gum::MarkovBlanket::hasSameStructure(), and gum::BayesNetFragment< GUM_SCALAR >::toBN().
| void gum::InfluenceDiagram< GUM_SCALAR >::beginTopologyTransformation | ( | ) |
When inserting/removing arcs, node CPTs/utilities change their dimension with a cost in time.
begin Multiple Change for all CPTs
These functions delay the CPTs change to be done just once at the end of a* sequence of topology modification. begins a sequence of insertions/deletions of arcs without changing the dimensions of the CPTs.
Definition at line 868 of file influenceDiagram_tpl.h.
References _tensorMap_, _utilityMap_, isChanceNode(), isUtilityNode(), and gum::DAGmodel::nodes().
| Size gum::InfluenceDiagram< GUM_SCALAR >::chanceNodeSize | ( | ) | const |
Returns the number of chance nodes.
Definition at line 395 of file influenceDiagram_tpl.h.
References _tensorMap_.
Referenced by toString().
| void gum::InfluenceDiagram< GUM_SCALAR >::changeVariableName | ( | NodeId | id, |
| std::string_view | new_name ) |
we allow the user to change the name of a variable
| DuplicateLabel | if this name already exists |
| NotFound | Raised if no nodes matches id. |
Definition at line 569 of file influenceDiagram_tpl.h.
References gum::DiscreteGraphicalModel::varMap_.
Referenced by changeVariableName().
| void gum::InfluenceDiagram< GUM_SCALAR >::changeVariableName | ( | std::string_view | name, |
| std::string_view | new_name ) |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 971 of file influenceDiagram_tpl.h.
References changeVariableName(), and idFromName().
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 95 of file DAGmodel_inl.h.
References dag_.
Referenced by children(), 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 101 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 103 of file DAGmodel_inl.h.
References children(), gum::GraphicalModel::names(), and gum::GraphicalModel::nodeset().
|
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 97 of file DAGmodel_inl.h.
| void gum::InfluenceDiagram< GUM_SCALAR >::clear | ( | ) |
References InfluenceDiagram(), clear(), gum::DiscreteGraphicalModel::idFromName(), gum::DiscreteGraphicalModel::nodeId(), gum::DiscreteGraphicalModel::variable(), variable(), gum::DiscreteGraphicalModel::variableFromName(), and gum::DiscreteGraphicalModel::variableNodeMap().
Referenced by clear(), getPartialTemporalOrder(), and operator=().
|
inherited |
Get an instantiation over all the variables of the model.
Definition at line 104 of file graphicalModel_inl.h.
References nodes(), and variable().
|
inherited |
Returns the weakly connected components of the underlying DAG. Each node maps to the id of its component root.
Definition at line 125 of file DAGmodel_inl.h.
References dag_.
|
protected |
Copying tables from another influence diagram.
Definition at line 234 of file influenceDiagram_tpl.h.
References InfluenceDiagram(), addArc(), addChanceNode(), addDecisionNode(), addUtilityNode(), cpt(), isChanceNode(), isUtilityNode(), gum::Variable::name(), gum::DAGmodel::nodes(), gum::DAGmodel::parents(), gum::DAGmodel::size(), utility(), and variable().
Referenced by InfluenceDiagram(), and operator=().
|
virtual |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 343 of file influenceDiagram_tpl.h.
References _tensorMap_.
Referenced by copyStructureAndTables_(), cpt(), fastPrototype(), and operator==().
|
finalvirtual |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 936 of file influenceDiagram_tpl.h.
References cpt(), and idFromName().
|
nodiscardinherited |
Returns a named copy of the internal DAG: each node id is assigned the name of the corresponding variable.
O(n) — allocates a new DAG. For a stable reference (listeners, long-lived pointers), use internalDag().
Definition at line 61 of file DAGmodel_inl.h.
References gum::GraphicalModel::_nameNodes_(), and dag_.
Referenced by gum::BayesNetFragment< GUM_SCALAR >::BayesNetFragment(), gum::MarginalTargetedInference< GUM_SCALAR >::MarginalTargetedInference(), gum::BayesNet< GUM_SCALAR >::add(), gum::BayesNet< GUM_SCALAR >::reverseArc(), and gum::InfluenceDiagram< GUM_SCALAR >::toString().
| Size gum::InfluenceDiagram< GUM_SCALAR >::decisionNodeSize | ( | ) | const |
Returns the number of decision nodes.
Definition at line 403 of file influenceDiagram_tpl.h.
References _tensorMap_, _utilityMap_, and gum::DAGmodel::size().
Referenced by toString().
| std::vector< NodeId > gum::InfluenceDiagram< GUM_SCALAR >::decisionOrder | ( | ) | const |
Returns the sequence of decision nodes in the directed path.
| NotFound | if such a path does not exist |
Definition at line 777 of file influenceDiagram_tpl.h.
References decisionOrderExists(), GUM_ERROR, isDecisionNode(), and gum::DAGmodel::topologicalOrder().
Referenced by getPartialTemporalOrder().
| bool gum::InfluenceDiagram< GUM_SCALAR >::decisionOrderExists | ( | ) | const |
True if a directed path exist with all decision nodes.
Definition at line 652 of file influenceDiagram_tpl.h.
References gum::SequenceImplementation< Key, std::is_scalar< Key >::value >::begin(), gum::SequenceImplementation< Key, std::is_scalar< Key >::value >::end(), existsPathBetween(), isDecisionNode(), and gum::DAGmodel::topologicalOrder().
Referenced by gum::InfluenceDiagramGenerator< GUM_SCALAR >::_checkTemporalOrder_(), and decisionOrder().
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 129 of file DAGmodel_inl.h.
References dag_.
|
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 131 of file DAGmodel_inl.h.
|
virtualinherited |
Return true if this graphical model is empty.
Definition at line 114 of file graphicalModel_inl.h.
References size().
Referenced by gum::IBayesNet< GUM_SCALAR >::check(), and gum::BayesNet< GUM_SCALAR >::clear().
| void gum::InfluenceDiagram< GUM_SCALAR >::endTopologyTransformation | ( | ) |
terminates a sequence of insertions/deletions of arcs by adjusting all CPTs/utilities dimensions.
end Multiple Change for all CPTs
Definition at line 876 of file influenceDiagram_tpl.h.
References _tensorMap_, _utilityMap_, isChanceNode(), isUtilityNode(), and gum::DAGmodel::nodes().
| void gum::InfluenceDiagram< GUM_SCALAR >::erase | ( | const DiscreteVariable & | var | ) |
Erase a Variable from the network and remove the variable from all his children.
If no variable matches, then nothing is done.
| var | The reference on the variable to remove. |
Definition at line 562 of file influenceDiagram_tpl.h.
References erase(), and gum::DiscreteGraphicalModel::varMap_.
| void gum::InfluenceDiagram< GUM_SCALAR >::erase | ( | NodeId | id | ) |
Erase a Variable from the network and remove the variable from all his children.
If no variable matches the id, then nothing is done.
| id | The id of the variable to erase. |
Definition at line 536 of file influenceDiagram_tpl.h.
References _tensorMap_, _utilityMap_, gum::DAGmodel::dag_, isChanceNode(), isUtilityNode(), variable(), and gum::DiscreteGraphicalModel::varMap_.
Referenced by erase(), and erase().
| void gum::InfluenceDiagram< GUM_SCALAR >::erase | ( | std::string_view | name | ) |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 966 of file influenceDiagram_tpl.h.
References erase(), and idFromName().
| void gum::InfluenceDiagram< GUM_SCALAR >::eraseArc | ( | const Arc & | arc | ) |
Removes an arc in the ID, and update diagram's tensor nodes cpt if necessary.
If (tail, head) doesn't exist, the nothing happens.
| arc | The arc removed. |
Definition at line 600 of file influenceDiagram_tpl.h.
References _tensorMap_, _utilityMap_, gum::DAGmodel::dag_, gum::Arc::head(), isChanceNode(), isUtilityNode(), gum::Arc::tail(), and variable().
Referenced by eraseArc(), and eraseArc().
| void gum::InfluenceDiagram< GUM_SCALAR >::eraseArc | ( | NodeId | tail, |
| NodeId | head ) |
Removes an arc in the ID, and update diagram's tensor nodes cpt if necessary.
If (tail, head) doesn't exist, the nothing happens.
| head | and |
| tail | as NodeId |
Definition at line 621 of file influenceDiagram_tpl.h.
References eraseArc().
| void gum::InfluenceDiagram< GUM_SCALAR >::eraseArc | ( | std::string_view | tail, |
| std::string_view | head ) |
Add an arc in the ID, and update diagram's tensor nodes cpt if necessary.
| head | and |
| tail | as NodeId |
| InvalidEdge | If arc.tail and/or arc.head are not in the ID. |
| InvalidEdge | if tail is a utility node |
Definition at line 982 of file influenceDiagram_tpl.h.
References eraseArc(), and idFromName().
Return true if this node exists in this graphical model.
Implements gum::GraphicalModel.
Definition at line 113 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::build_node(), gum::build_node_for_ID(), hasSameStructure(), gum::MarkovBlanket::hasSameStructure(), gum::IBayesNet< GUM_SCALAR >::operator==(), and gum::InfluenceDiagram< GUM_SCALAR >::operator==().
|
finalvirtualinherited |
Returns a named copy of the internal DAG: each node id is assigned the name of the corresponding variable.
O(n) — allocates a new DAG. For a stable reference (listeners, long-lived pointers), use internalDag().
Implements gum::GraphicalModel.
Definition at line 115 of file DAGmodel_inl.h.
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 75 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 79 of file DAGmodel_inl.h.
References existsArc(), and gum::DiscreteGraphicalModel::idFromName().
| bool gum::InfluenceDiagram< GUM_SCALAR >::existsPathBetween | ( | NodeId | src, |
| NodeId | dest ) const |
Returns true if a path exists between two nodes.
Definition at line 684 of file influenceDiagram_tpl.h.
References gum::DAGmodel::dag_, gum::List< Val >::empty(), gum::List< Val >::front(), gum::List< Val >::popFront(), and gum::List< Val >::pushBack().
Referenced by decisionOrderExists(), and existsPathBetween().
| bool gum::InfluenceDiagram< GUM_SCALAR >::existsPathBetween | ( | std::string_view | src, |
| std::string_view | dest ) const |
True if a directed path exist with all decision nodes.
Definition at line 987 of file influenceDiagram_tpl.h.
References existsPathBetween(), and idFromName().
|
inherited |
check wether a property exists in this GraphicalModel
Definition at line 170 of file graphicalModel_inl.h.
References _propertiesMap_.
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 89 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 91 of file DAGmodel_inl.h.
References dag_, and gum::DiscreteGraphicalModel::idFromName().
|
static |
Create an Influence Diagram with a dot-like syntax which specifies:
Note that if the dot-like string contains such a specification more than once for a variable, the first specification will be used.
| dotlike | the string containing the specification |
| domainSize | the default domain size for chance and decision variables |
Definition at line 99 of file influenceDiagram_tpl.h.
References fastPrototype().
Referenced by fastPrototype().
|
static |
Definition at line 105 of file influenceDiagram_tpl.h.
References addArc(), gum::build_node_for_ID(), cpt(), isChanceNode(), isUtilityNode(), gum::DAGmodel::nodes(), gum::remove_newline(), gum::GraphicalModel::setProperty(), gum::split(), and utility().
|
protected |
Returns the list of children decision for a given nodeId.
Definition at line 741 of file influenceDiagram_tpl.h.
References gum::DAGmodel::dag_, gum::List< Val >::empty(), gum::List< Val >::front(), gum::SequenceImplementation< Key, std::is_scalar< Key >::value >::insert(), isDecisionNode(), gum::List< Val >::popFront(), and gum::List< Val >::pushBack().
Referenced by getDecisionGraph().
| gum::DAG gum::InfluenceDiagram< GUM_SCALAR >::getDecisionGraph | ( | ) | const |
Returns the temporal Graph.
Definition at line 718 of file influenceDiagram_tpl.h.
References gum::DAG::addArc(), gum::NodeGraphPart::addNodeWithId(), gum::DAGmodel::dag_, gum::NodeGraphPart::existsNode(), getChildrenDecision_(), and isDecisionNode().
| const List< NodeSet > & gum::InfluenceDiagram< GUM_SCALAR >::getPartialTemporalOrder | ( | bool | clear = true | ) | const |
Returns partial temporal ordering.
| NotFound | if such a sequence does not exist |
Definition at line 793 of file influenceDiagram_tpl.h.
References _temporalOrder_, clear(), gum::Set< Key >::contains(), gum::DAGmodel::dag_, decisionOrder(), gum::Set< Key >::empty(), gum::Set< Key >::erase(), gum::Set< Key >::insert(), and isChanceNode().
Definition at line 87 of file DAGmodel.cpp.
References DAGmodel(), arcs(), exists(), gum::Set< Key >::exists(), gum::DiscreteGraphicalModel::idFromName(), nodes(), size(), sizeArcs(), and gum::DiscreteGraphicalModel::variable().
|
overridevirtual |
Returns the NodeId of a variable given its name.
| NotFound | if no such name exists in the model. |
Reimplemented from gum::DiscreteGraphicalModel.
Definition at line 104 of file discreteGraphicalModel_inl.h.
Referenced by addArc(), gum::build_node_for_ID(), changeVariableName(), cpt(), erase(), eraseArc(), existsPathBetween(), isChanceNode(), isDecisionNode(), isUtilityNode(), operator==(), utility(), and variable().
|
inherited |
transform a vector of names into a vector of nodeId
Definition at line 139 of file graphicalModel_inl.h.
References names(), and variableNodeMap().
Referenced by gum::DAGmodel::children(), exists(), names(), names(), and gum::DAGmodel::parents().
|
inherited |
Returns a const reference to the internal (unnamed) DAG. O(1), no copy. Use for stable references or pointers (e.g. graph listeners). For named node access, use dag() instead.
Definition at line 58 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::BayesNetFragment< GUM_SCALAR >::BayesNetFragment(), gum::MarkovBlanket::MarkovBlanket(), gum::BayesNetFragment< GUM_SCALAR >::installCPT(), gum::BayesNetFragment< GUM_SCALAR >::isInstalledNode(), gum::BayesBall::relevantTensors(), gum::dSeparationAlgorithm::relevantTensors(), gum::BayesNetFragment< GUM_SCALAR >::toBN(), gum::BayesNetFragment< GUM_SCALAR >::toDot(), and gum::BayesNetFragment< GUM_SCALAR >::whenArcDeleted().
| bool gum::InfluenceDiagram< GUM_SCALAR >::isChanceNode | ( | NodeId | varId | ) | const |
Returns true if node is a chance one.
Definition at line 379 of file influenceDiagram_tpl.h.
References _tensorMap_.
Referenced by addArc(), beginTopologyTransformation(), copyStructureAndTables_(), endTopologyTransformation(), erase(), eraseArc(), fastPrototype(), getPartialTemporalOrder(), isChanceNode(), isDecisionNode(), moralGraph_(), operator==(), and toDot().
| bool gum::InfluenceDiagram< GUM_SCALAR >::isChanceNode | ( | std::string_view | name | ) | const |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 956 of file influenceDiagram_tpl.h.
References idFromName(), and isChanceNode().
| bool gum::InfluenceDiagram< GUM_SCALAR >::isDecisionNode | ( | NodeId | varId | ) | const |
Returns true if node is a decision one.
Definition at line 367 of file influenceDiagram_tpl.h.
References isChanceNode(), and isUtilityNode().
Referenced by gum::InfluenceDiagramGenerator< GUM_SCALAR >::_checkTemporalOrder_(), decisionOrder(), decisionOrderExists(), getChildrenDecision_(), getDecisionGraph(), isDecisionNode(), moralGraph_(), operator==(), and toDot().
| bool gum::InfluenceDiagram< GUM_SCALAR >::isDecisionNode | ( | std::string_view | name | ) | const |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 951 of file influenceDiagram_tpl.h.
References idFromName(), and isDecisionNode().
|
finalvirtualinherited |
check if nodes X and nodes Y are independent given nodes Z
Implements gum::GraphicalModel.
Definition at line 156 of file DAGmodel_inl.h.
References dag_.
|
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 184 of file DAGmodel_inl.h.
|
finalvirtualinherited |
check if node X and node Y are independent given nodes Z
Implements gum::GraphicalModel.
Definition at line 152 of file DAGmodel_inl.h.
Referenced by gum::BayesNet< double >::ancestors(), and isIndependent().
|
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 178 of file DAGmodel_inl.h.
References gum::DiscreteGraphicalModel::idFromName(), isIndependent(), and gum::GraphicalModel::nodeset().
| bool gum::InfluenceDiagram< GUM_SCALAR >::isUtilityNode | ( | NodeId | varId | ) | const |
Returns true if node is a utility one.
Definition at line 359 of file influenceDiagram_tpl.h.
References _utilityMap_.
Referenced by addArc(), beginTopologyTransformation(), copyStructureAndTables_(), endTopologyTransformation(), erase(), eraseArc(), fastPrototype(), isDecisionNode(), isUtilityNode(), moralGraph_(), operator==(), and toDot().
| bool gum::InfluenceDiagram< GUM_SCALAR >::isUtilityNode | ( | std::string_view | name | ) | const |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 946 of file influenceDiagram_tpl.h.
References idFromName(), and isUtilityNode().
|
inherited |
Definition at line 93 of file graphicalModel_inl.h.
References nodes().
Referenced by gum::IMarkovRandomField< GUM_SCALAR >::toString(), and gum::InfluenceDiagram< GUM_SCALAR >::toString().
|
inherited |
Definition at line 164 of file DAGmodel_inl.h.
|
inherited |
Definition at line 173 of file DAGmodel_inl.h.
|
inherited |
Definition at line 160 of file DAGmodel_inl.h.
Referenced by gum::ASTposteriorProba< GUM_SCALAR >::_compute_knw_from_bn().
|
inherited |
Definition at line 168 of file DAGmodel_inl.h.
References dag_, gum::DiscreteGraphicalModel::idFromName(), and gum::GraphicalModel::nodeset().
|
inherited |
The node's id are coherent with the variables and nodes of the topology.
Definition at line 81 of file DAGmodel.cpp.
References gum::GraphicalModel::_nameNodes_(), and dag_.
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_().
|
protectedvirtual |
Returns the moral graph of this InfluenceDiagram.
Definition at line 633 of file influenceDiagram_tpl.h.
References gum::DAGmodel::dag_, isChanceNode(), isDecisionNode(), and isUtilityNode().
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 146 of file DAGmodel_inl.h.
References gum::GraphicalModel::_nameNodes_(), dag_, 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 142 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.
References ids(), gum::VariableNodeMap::name(), and variableNodeMap().
|
inherited |
transform a vector of NodeId in a vector of names
Definition at line 117 of file graphicalModel_inl.h.
References ids().
Referenced by gum::DAGmodel::children(), exists(), ids(), nodeset(), and gum::DAGmodel::parents().
|
overridevirtual |
Returns the NodeId of a variable.
| NotFound | if no variable matches var. |
Reimplemented from gum::DiscreteGraphicalModel.
Definition at line 98 of file discreteGraphicalModel_inl.h.
|
finalvirtualinherited |
Returns a named copy of the internal DAG: each node id is assigned the name of the corresponding variable.
O(n) — allocates a new DAG. For a stable reference (listeners, long-lived pointers), use internalDag().
Implements gum::GraphicalModel.
Definition at line 119 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::BayesNetFragment< GUM_SCALAR >::BayesNetFragment(), 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 >::log2JointProbability(), gum::IBayesNet< GUM_SCALAR >::maxParam(), gum::IBayesNet< GUM_SCALAR >::maxVarDomainSize(), gum::IBayesNet< GUM_SCALAR >::minParam(), gum::prm::ClassBayesNet< GUM_SCALAR >::modalities(), gum::prm::InstanceBayesNet< GUM_SCALAR >::modalities(), moralizedAncestralGraph(), gum::IBayesNet< GUM_SCALAR >::operator==(), 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 102 of file graphicalModel.cpp.
References idFromName(), gum::Set< Key >::insert(), and names().
Referenced by gum::BayesNet< double >::ancestors(), gum::DAGmodel::children(), gum::DAGmodel::isIndependent(), gum::UGmodel::isIndependent(), gum::UGmodel::isIndependent(), gum::DAGmodel::minimalCondSet(), and gum::DAGmodel::moralizedAncestralGraph().
| InfluenceDiagram< GUM_SCALAR > & gum::InfluenceDiagram< GUM_SCALAR >::operator= | ( | const InfluenceDiagram< GUM_SCALAR > & | source | ) |
Copy Operator.
Definition at line 199 of file influenceDiagram_tpl.h.
References InfluenceDiagram(), clear(), and copyStructureAndTables_().
|
noexcept |
Default constructor.
Definition at line 173 of file influenceDiagram_tpl.h.
References InfluenceDiagram(), _temporalOrder_, _tensorMap_, _utilityMap_, gum::DAGmodel::operator=(), and removeTables_().
| bool gum::InfluenceDiagram< GUM_SCALAR >::operator== | ( | const InfluenceDiagram< GUM_SCALAR > & | other | ) | const |
Definition at line 883 of file influenceDiagram_tpl.h.
References InfluenceDiagram(), gum::Instantiation::chgVal(), cpt(), gum::MultiDimDecorator< GUM_ELEMENT >::domainSize(), gum::Instantiation::end(), gum::DAGmodel::exists(), gum::MultiDimDecorator< GUM_ELEMENT >::get(), idFromName(), gum::Instantiation::inc(), gum::BijectionImplementation< T1, T2, Gen >::insert(), isChanceNode(), isDecisionNode(), isUtilityNode(), gum::MultiDimDecorator< GUM_ELEMENT >::nbrDim(), gum::DAGmodel::nodes(), gum::BijectionImplementation< T1, T2, Gen >::second(), gum::Instantiation::setFirst(), gum::DAGmodel::size(), gum::DAGmodel::sizeArcs(), utility(), gum::Instantiation::val(), variable(), gum::Instantiation::variable(), and variableFromName().
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 83 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::IBayesNet< GUM_SCALAR >::dim(), gum::ASTposteriorProba< GUM_SCALAR >::eval(), gum::BayesNetFragment< GUM_SCALAR >::installCPT(), gum::BayesNetFragment< GUM_SCALAR >::installCPT_(), 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 107 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 109 of file DAGmodel_inl.h.
References gum::GraphicalModel::names().
|
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 85 of file DAGmodel_inl.h.
References gum::DiscreteGraphicalModel::idFromName(), and parents().
|
inherited |
List of all the names of property in the Graphical model.
Definition at line 79 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_(), GUM_ERROR, and gum::HashTable< Key, Val >::tryGet().
|
inherited |
Return the value of the property name of this GraphicalModel.
return byDefault if the property name is not found
Definition at line 72 of file graphicalModel_inl.h.
References _propertiesMap_.
Referenced by gum::IBayesNet< GUM_SCALAR >::toDot(), gum::IMarkovRandomField< GUM_SCALAR >::toDot(), gum::InfluenceDiagram< GUM_SCALAR >::toDot(), and gum::IMarkovRandomField< GUM_SCALAR >::toDotAsFactorGraph().
|
protected |
Removing ancient table.
Definition at line 223 of file influenceDiagram_tpl.h.
References _tensorMap_, and _utilityMap_.
Referenced by ~InfluenceDiagram(), and operator=().
|
inherited |
Add or change a property of this GraphicalModel.
Definition at line 87 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 68 of file DAGmodel_inl.h.
References dag_.
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(), and gum::prm::InstanceBayesNet< GUM_SCALAR >::toDot().
|
inherited |
Returns the number of arcs in this Directed Graphical Model.
Definition at line 71 of file DAGmodel_inl.h.
References dag_.
Referenced by hasSameStructure(), gum::MarkovBlanket::hasSameStructure(), gum::IBayesNet< GUM_SCALAR >::operator==(), gum::InfluenceDiagram< GUM_SCALAR >::operator==(), and gum::InfluenceDiagram< GUM_SCALAR >::toString().
|
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 110 of file graphicalModel.cpp.
| std::string gum::InfluenceDiagram< GUM_SCALAR >::toDot | ( | ) | const |
Definition at line 270 of file influenceDiagram_tpl.h.
References gum::DAGmodel::dag_, isChanceNode(), isDecisionNode(), isUtilityNode(), gum::GraphicalModel::propertyWithDefault(), and variable().
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 123 of file DAGmodel_inl.h.
References dag_.
Referenced by gum::InfluenceDiagramGenerator< GUM_SCALAR >::_checkTemporalOrder_(), gum::InfluenceDiagram< GUM_SCALAR >::decisionOrder(), and gum::InfluenceDiagram< GUM_SCALAR >::decisionOrderExists().
| std::string gum::InfluenceDiagram< GUM_SCALAR >::toString | ( | ) | const |
Definition at line 317 of file influenceDiagram_tpl.h.
References chanceNodeSize(), gum::DAGmodel::dag(), decisionNodeSize(), gum::GraphicalModel::log10DomainSize(), gum::DAGmodel::sizeArcs(), and utilityNodeSize().
|
inherited |
update the meta data of this Graphical Model (version, creation date, last modification date) This method is called by the writers ONLY before writing the model to a file.
Definition at line 81 of file graphicalModel.cpp.
References _propertiesMap_.
|
virtual |
Returns the utility table of a utility node.
| NotFound | If no variable's id matches varId. |
Definition at line 351 of file influenceDiagram_tpl.h.
References _utilityMap_.
Referenced by copyStructureAndTables_(), fastPrototype(), operator==(), and utility().
|
finalvirtual |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 941 of file influenceDiagram_tpl.h.
References idFromName(), and utility().
| Size gum::InfluenceDiagram< GUM_SCALAR >::utilityNodeSize | ( | ) | const |
Returns the number of utility nodes.
Definition at line 387 of file influenceDiagram_tpl.h.
References _utilityMap_.
Referenced by toString().
|
overridevirtual |
Returns a constant reference over a variable given its node id.
| NotFound | if no variable's id matches id. |
Reimplemented from gum::DiscreteGraphicalModel.
Definition at line 92 of file discreteGraphicalModel_inl.h.
| const DiscreteVariable & gum::InfluenceDiagram< GUM_SCALAR >::variable | ( | std::string_view | name | ) | const |
Returns the CPT of a tensor variable.
| NotFound | If no variable's id matches varId. |
Definition at line 961 of file influenceDiagram_tpl.h.
References idFromName(), and variable().
Referenced by addArc(), addChanceNode(), addUtilityNode(), clear(), copyStructureAndTables_(), erase(), eraseArc(), operator==(), toDot(), and variable().
|
overridevirtual |
Returns a constant reference over a variable given its name.
| NotFound | if no such name exists in the model. |
Reimplemented from gum::DiscreteGraphicalModel.
Definition at line 110 of file discreteGraphicalModel_inl.h.
Referenced by operator==().
|
overridevirtual |
Returns a constant reference to the VariableNodeMap of this model.
Reimplemented from gum::DiscreteGraphicalModel.
Definition at line 86 of file discreteGraphicalModel_inl.h.
|
inherited |
transform a vector of NodeId into a VariableeSet
Definition at line 160 of file graphicalModel_inl.h.
|
inherited |
transform a vector of names into a VariableeSet
Definition at line 150 of file graphicalModel_inl.h.
References gum::Set< Key >::insert(), gum::VariableNodeMap::variableFromName(), and variableNodeMap().
|
privateinherited |
The properties of this Directed Graphical Model.
Definition at line 262 of file graphicalModel.h.
Referenced by GraphicalModel(), GraphicalModel(), _properties_(), existsProperty(), operator=(), operator=(), properties(), propertyWithDefault(), setProperty(), and updateMetaData().
|
mutableprivate |
The temporal order.
Definition at line 527 of file influenceDiagram.h.
Referenced by InfluenceDiagram(), getPartialTemporalOrder(), and operator=().
|
private |
Mapping between tensor variable's id and their CPT.
Definition at line 522 of file influenceDiagram.h.
Referenced by InfluenceDiagram(), addArc(), addChanceNode(), beginTopologyTransformation(), chanceNodeSize(), cpt(), decisionNodeSize(), endTopologyTransformation(), erase(), eraseArc(), isChanceNode(), operator=(), and removeTables_().
|
private |
Mapping between utility variable's id and their utility table.
Definition at line 524 of file influenceDiagram.h.
Referenced by InfluenceDiagram(), addArc(), addUtilityNode(), beginTopologyTransformation(), decisionNodeSize(), endTopologyTransformation(), erase(), eraseArc(), isUtilityNode(), operator=(), removeTables_(), utility(), and utilityNodeSize().
|
protectedinherited |
The DAG of this Directed Graphical Model.
Definition at line 284 of file DAGmodel.h.
Referenced by DAGmodel(), 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_(), ancestors(), arcs(), children(), children(), connectedComponents(), dag(), descendants(), 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(), internalDag(), isIndependent(), minimalCondSet(), moralGraph(), gum::InfluenceDiagram< GUM_SCALAR >::moralGraph_(), moralizedAncestralGraph(), nodes(), operator=(), operator=(), parents(), parents(), size(), sizeArcs(), gum::InfluenceDiagram< GUM_SCALAR >::toDot(), topologicalOrder(), gum::BayesNetFragment< GUM_SCALAR >::uninstallArc_(), and gum::BayesNetFragment< GUM_SCALAR >::uninstallNode().
|
protectedinherited |
Mapping between NodeIds and discrete variables.
Definition at line 119 of file discreteGraphicalModel.h.
Referenced by DiscreteGraphicalModel(), DiscreteGraphicalModel(), gum::BayesNet< GUM_SCALAR >::add(), gum::InfluenceDiagram< GUM_SCALAR >::addNode_(), gum::BayesNet< GUM_SCALAR >::changeVariableName(), gum::InfluenceDiagram< GUM_SCALAR >::changeVariableName(), gum::BayesNet< GUM_SCALAR >::erase(), gum::BayesNet< GUM_SCALAR >::erase(), gum::InfluenceDiagram< GUM_SCALAR >::erase(), gum::InfluenceDiagram< GUM_SCALAR >::erase(), gum::BayesNet< GUM_SCALAR >::eraseArc(), idFromName(), nodeId(), operator=(), operator=(), gum::BayesNet< GUM_SCALAR >::reverseArc(), variable(), variableFromName(), and variableNodeMap().