Undirected Graphical Model

class pyAgrum.MarkovRandomField(*args)

MarkovRandomField represents a Markov random field.

MarkovRandomField(name=’’) -> MarkovRandomField
Parameters:
  • name (str) – the name of the Bayes Net

MarkovRandomField(source) -> MarkovRandomField
Parameters:
  • source (pyAgrum.MarkovRandomField) – the Markov random field to copy

add(*args)

Add a variable to the pyAgrum.MarkovRandomField.

Parameters
  • variable (pyAgrum.DiscreteVariable) – the variable added

  • name (str) – the variable name

  • nbrmod (int) – the number of modalities for the new variable

  • id (int) – the variable forced id in the pyAgrum.MarkovRandomField

Returns

the id of the new node

Return type

int

Raises
addFactor(*args)

Add a factor from a list or a set of id or str. If the argument is a set, the order is the order of the IDs of the variables

Parameters

seq (sequence (list or set) of int or string) – The sequence (ordered or not) of node id or names

Return type

Potential

addStructureListener(whenNodeAdded=None, whenNodeDeleted=None, whenEdgeAdded=None, whenedgeDeleted=None)

Add the listeners in parameters to the list of existing ones.

Parameters
  • whenNodeAdded (lambda expression) – a function for when a node is added

  • whenNodeDeleted (lambda expression) – a function for when a node is removed

  • whenEdgeAdded (lambda expression) – a function for when an edge is added

  • whenEdgeDeleted (lambda expression) – a function for when an edge is removed

addVariables(listFastVariables, default_nbr_mod=2)

Add a list of variable in the form of ‘fast’ syntax.

Parameters
  • listFastVariables (List[str]) – the list of variables in ‘fast’ syntax.

  • default_nbr_mod (int) – the number of modalities for the variable if not specified following fast syntax. Note that default_nbr_mod=1 is mandatory to create variables with only one modality (for utility for instance).

Returns

the list of created ids.

Return type

List[int]

beginTopologyTransformation()
Return type

None

changeVariableLabel(*args)

change the label of the variable associated to nodeId to the new value.

Parameters
  • var (Union[int,str]) – a variable’s id (int) or name

  • old_label (str) – the old label

  • new_label (str) – the new label

Raises

pyAgrum.NotFound – if id/name is not a variable or if old_label does not exist.

Return type

None

changeVariableName(*args)

Changes a variable’s name in the gum::MarkovRandomField.

This will change the “pyAgrum.DiscreteVariable” names in the gum::MarkovRandomField.

Parameters
  • car (Union[int,str]) – a variable’s id (int) or name

  • new_name (str) – the new name of the variable

Raises
Return type

None

clear()

Clear the whole MarkovRandomField

Return type

None

completeInstantiation()

Give an instantiation over all the variables of the model

Returns

a complete Instantiation for the model

Return type

pyAgrum.Instantiation

connectedComponents()

connected components from a graph/BN

Compute the connected components of a pyAgrum’s graph or Bayesian Network (more generally an object that has nodes, children/parents or neighbours methods)

The firstly visited node for each component is called a ‘root’ and is used as a key for the component. This root has been arbitrarily chosen during the algorithm.

Returns

dict of connected components (as set of nodeIds (int)) with a nodeId (root) of each component as key.

Return type

dict(int,Set[int])

dim()
Return type

int

edges()
Return type

object

empty()

Check if there are some variables in the model.

Returns

True if there is no variable in the model.

Return type

bool

endTopologyTransformation()

Terminates a sequence of insertions/deletions of arcs by adjusting all CPTs dimensions. End Multiple Change for all CPTs.

Return type

pyAgrum.MarkovRandomField

erase(*args)

Remove a variable from the gum::MarkovRandomField.

Removes the corresponding variable from the gum::MarkovRandomField and from all of it’s children pyAgrum.Potential.

If no variable matches the given id, then nothing is done.

Parameters

var (Union[int,str,pyAgrum.DiscreteVariable]) – a variable’s id (int) or name of variable or a reference of this variable to remove.

Return type

None

eraseFactor(*args)
Return type

None

exists(node)

Check if a node with this name or id exists

Parameters
  • norid (str|int) – name or id of the searched node

  • node (int) –

Returns

True if there is a node with such a name or id

Return type

bool

existsEdge(*args)
Return type

bool

factor(*args)

Returns the factor of a set of variables (if existing).

Parameters

vars (Union[Set[int],Set[str]]) – A set of ids or names of variable the pyAgrum.MarkovRandomField.

Returns

The factor of the set of nodes.

Return type

pyAgrum.Potential

Raises

pyAgrum.NotFound – If no variable’s id matches varId.

factors()
Return type

List[Set[int]]

static fastPrototype(dotlike, domainSize=2)
Create a Markov random field with a modified dot-like syntax which specifies:
  • the structure a-b-c;b-d-e;. The substring a-b-c indicates a factor with the scope (a,b,c).

  • the type of the variables with different syntax (cf documentation).

Examples

>>> import pyAgrum as gum
>>> bn=pyAgrum.MarkovRandomField.fastPrototype('A--B[1,3]-C{yes|No}--D[2,4]--E[1,2.5,3.9]',6)
Parameters
  • dotlike (str) – the string containing the specification

  • domainSize (int) – the default domain size for variables

Returns

the resulting Markov random field

Return type

pyAgrum.MarkovRandomField

static fromBN(bn)
Parameters

bn (BayesNet) –

Return type

MarkovRandomField

generateFactor(vars)

Randomly generate factor parameters for a given factor in a given structure.

Parameters
  • node (Union[int,str]) – a variable’s id (int) or name

  • vars (List[int]) –

Return type

None

generateFactors()

Randomly generates factors parameters for a given structure.

Return type

None

graph()
Return type

UndiGraph

hasSameStructure(other)
idFromName(name)
Parameters

name (str) –

Return type

int

ids(names)

List of ids for a list of names of variables in the model

Parameters
  • lov (List[str]) – List of variable names

  • names (List[str]) –

Returns

The ids for the list of names of the graph variables

Return type

List[int]

isIndependent(*args)

check if nodes X and nodes Y are independent given nodes Z

Parameters
  • X (str|intList[str|int]) – a list of of nodeIds or names

  • Y (str|intList[str|int]) – a list of of nodeIds or names

  • Z (str|intList[str|int]) – a list of of nodeIds or names

Raises

InvalidArgument – if X and Y share variables

Returns

True if X and Y are independent given Z in the model

Return type

bool

loadUAI(*args)

Load an UAI file.

Parameters
  • name (str) – the name’s file

  • l (list) – list of functions to execute

Raises
Return type

str

log10DomainSize()

returns the log10 of the domain size of the model defined as the product of the domain sizes of the variables in the model.

Returns

the log10 domain size.

Return type

float

maxNonOneParam()
Return type

float

maxParam()
Return type

float

maxVarDomainSize()
Return type

int

minNonZeroParam()
Return type

float

minParam()
Return type

float

minimalCondSet(*args)
Return type

object

names()

Set of names of variables in the model

Returns

The names of the graph variables

Return type

Set[str]

neighbours(norid)
Parameters

norid (object) –

Return type

object

nodeId(var)
Parameters

var (DiscreteVariable) –

Return type

int

nodes()
Return type

object

nodeset(names)

Set of ids for a list of names of variables in the model

Parameters
  • lov (List[str]) – List of variable names

  • names (List[str]) –

Returns

The set of ids for the list of names of the graph variables

Return type

Set[int]

saveUAI(name)

Save the MarkovRandomField in an UAI file.

Parameters

name (str) – the file’s name

Return type

None

size()
Return type

int

sizeEdges()
Return type

int

smallestFactorFromNode(node)
Parameters

node (int) –

Return type

List[int]

property thisown

The membership flag

toDot()
Return type

str

toDotAsFactorGraph()
Return type

str

variable(*args)
Return type

DiscreteVariable

variableFromName(name)
Parameters

name (str) –

Return type

DiscreteVariable

variableNodeMap()