pgmpy.factors.factorset_divide#

pgmpy.factors.factorset_divide(factorset1, factorset2)[source]#

Base method for dividing two factor sets.

Division of two factor sets \(\frac{\vec\phi_1}{\vec\phi_2}\) basically translates to union of all the factors present in \(\vec\phi_2\) and \(\frac{1}{\phi_i}\) of all the factors present in \(\vec\phi_2\).

Parameters:
factorset1: FactorSet

The dividend

factorset2: FactorSet

The divisor

Returns:
The division of factorset1 and factorset2

Examples

>>> from pgmpy.factors import FactorSet
>>> from pgmpy.factors.discrete import DiscreteFactor
>>> from pgmpy.factors import factorset_divide
>>> phi1 = DiscreteFactor(
...     variables=["x1", "x2", "x3"], cardinality=[2, 3, 2], values=range(12)
... )
>>> phi2 = DiscreteFactor(
...     variables=["x3", "x4", "x1"], cardinality=[2, 2, 2], values=range(8)
... )
>>> factor_set1 = FactorSet(phi1, phi2)
>>> phi3 = DiscreteFactor(
...     variables=["x5", "x6", "x7"], cardinality=[2, 2, 2], values=range(8)
... )
>>> phi4 = DiscreteFactor(
...     variables=["x5", "x7", "x8"], cardinality=[2, 2, 2], values=range(8)
... )
>>> factor_set2 = FactorSet(phi3, phi4)
>>> factor_set3 = factorset_divide(factor_set2, factor_set1)
>>> print(factor_set3)
set([<DiscreteFactor representing phi(x3:2, x4:2, x1:2) at 0x7f119ad78f90>,
     <DiscreteFactor representing phi(x5:2, x6:2, x7:2) at 0x7f119ad78e50>,
     <DiscreteFactor representing phi(x1:2, x2:3, x3:2) at 0x7f119ad78ed0>,
     <DiscreteFactor representing phi(x5:2, x7:2, x8:2) at 0x7f119ad78e90>])