The ring R is a ring of probability distributions on n random variables created using markovRing. This method creates a ring map F: S →R from the ring S of probability distributions on n-1 random variables, leaving out the ith random variable from R. This corresponds to the situation where the ith random variable is hidden and S is the ring of observed probability distributions.
i1 : F = hiddenMap(1,markovRing(2,3,2)); o1 : RingMap QQ[p , p , p , p , p , p , p , p , p , p , p , p ] <--- QQ[p , p , p , p , p , p ] 1,1,1 1,1,2 1,2,1 1,2,2 1,3,1 1,3,2 2,1,1 2,1,2 2,2,1 2,2,2 2,3,1 2,3,2 1,1 1,2 2,1 2,2 3,1 3,2 |
i2 : compactMatrixForm =false; |
i3 : transpose F.matrix o3 = | p + p | | 1,1,1 2,1,1 | | | | p + p | | 1,1,2 2,1,2 | | | | p + p | | 1,2,1 2,2,1 | | | | p + p | | 1,2,2 2,2,2 | | | | p + p | | 1,3,1 2,3,1 | | | | p + p | | 1,3,2 2,3,2 | 6 1 o3 : Matrix (QQ[p , p , p , p , p , p , p , p , p , p , p , p ]) <--- (QQ[p , p , p , p , p , p , p , p , p , p , p , p ]) 1,1,1 1,1,2 1,2,1 1,2,2 1,3,1 1,3,2 2,1,1 2,1,2 2,2,1 2,2,2 2,3,1 2,3,2 1,1,1 1,1,2 1,2,1 1,2,2 1,3,1 1,3,2 2,1,1 2,1,2 2,2,1 2,2,2 2,3,1 2,3,2 |
This method is frequently used when computing the vanishing ideal of a graphical model with hidden variables by computing the kernel of F. For more details see the paper “Algebraic Geometry of Bayesian Networks” by Garcia, Stillman, and Sturmfels.
i4 : G = digraph {{1,{}},{2,{}},{3,{}},{4,{1,2,3}}} o4 = Digraph{1 => set {} } 2 => set {} 3 => set {} 4 => set {1, 2, 3} o4 : Digraph |
i5 : R = markovRing (2,2,3,2) o5 = R o5 : PolynomialRing |
i6 : I = discreteVanishingIdeal (R,G); o6 : Ideal of R |
i7 : I / print; p p - p p 1,2,3,2 2,1,3,2 1,1,3,2 2,2,3,2 p p - p p 1,2,3,2 2,2,2,2 1,2,2,2 2,2,3,2 p p - p p 1,2,3,2 2,1,2,2 1,1,2,2 2,2,3,2 p p - p p 1,2,3,2 2,2,1,2 1,2,1,2 2,2,3,2 p p - p p 1,2,3,2 2,1,1,2 1,1,1,2 2,2,3,2 p p - p p 2,1,3,2 2,2,2,2 2,1,2,2 2,2,3,2 p p - p p 1,2,2,2 2,1,3,2 1,1,2,2 2,2,3,2 p p - p p 2,1,3,2 2,2,1,2 2,1,1,2 2,2,3,2 p p - p p 1,2,1,2 2,1,3,2 1,1,1,2 2,2,3,2 p p - p p 1,1,3,2 2,2,2,2 1,1,2,2 2,2,3,2 p p - p p 1,1,3,2 1,2,2,2 1,1,2,2 1,2,3,2 p p - p p 1,1,3,2 2,1,2,2 1,1,2,2 2,1,3,2 p p - p p 1,1,3,2 2,2,1,2 1,1,1,2 2,2,3,2 p p - p p 1,1,3,2 1,2,1,2 1,1,1,2 1,2,3,2 p p - p p 1,1,3,2 2,1,1,2 1,1,1,2 2,1,3,2 p p - p p 1,2,2,2 2,1,2,2 1,1,2,2 2,2,2,2 p p - p p 1,2,2,2 2,2,1,2 1,2,1,2 2,2,2,2 p p - p p 1,2,2,2 2,1,1,2 1,1,1,2 2,2,2,2 p p - p p 2,1,2,2 2,2,1,2 2,1,1,2 2,2,2,2 p p - p p 1,2,1,2 2,1,2,2 1,1,1,2 2,2,2,2 p p - p p 1,1,2,2 2,2,1,2 1,1,1,2 2,2,2,2 p p - p p 1,1,2,2 1,2,1,2 1,1,1,2 1,2,2,2 p p - p p 1,1,2,2 2,1,1,2 1,1,1,2 2,1,2,2 p p - p p 1,2,1,2 2,1,1,2 1,1,1,2 2,2,1,2 p p - p p 1,2,3,1 2,1,3,1 1,1,3,1 2,2,3,1 p p - p p 1,2,3,1 2,2,2,1 1,2,2,1 2,2,3,1 p p - p p 1,2,3,1 2,1,2,1 1,1,2,1 2,2,3,1 p p - p p 1,2,3,1 2,2,1,1 1,2,1,1 2,2,3,1 p p - p p 1,2,3,1 2,1,1,1 1,1,1,1 2,2,3,1 p p - p p 2,1,3,1 2,2,2,1 2,1,2,1 2,2,3,1 p p - p p 1,2,2,1 2,1,3,1 1,1,2,1 2,2,3,1 p p - p p 2,1,3,1 2,2,1,1 2,1,1,1 2,2,3,1 p p - p p 1,2,1,1 2,1,3,1 1,1,1,1 2,2,3,1 p p - p p 1,1,3,1 2,2,2,1 1,1,2,1 2,2,3,1 p p - p p 1,1,3,1 1,2,2,1 1,1,2,1 1,2,3,1 p p - p p 1,1,3,1 2,1,2,1 1,1,2,1 2,1,3,1 p p - p p 1,1,3,1 2,2,1,1 1,1,1,1 2,2,3,1 p p - p p 1,1,3,1 1,2,1,1 1,1,1,1 1,2,3,1 p p - p p 1,1,3,1 2,1,1,1 1,1,1,1 2,1,3,1 p p - p p 1,2,2,1 2,1,2,1 1,1,2,1 2,2,2,1 p p - p p 1,2,2,1 2,2,1,1 1,2,1,1 2,2,2,1 p p - p p 1,2,2,1 2,1,1,1 1,1,1,1 2,2,2,1 p p - p p 2,1,2,1 2,2,1,1 2,1,1,1 2,2,2,1 p p - p p 1,2,1,1 2,1,2,1 1,1,1,1 2,2,2,1 p p - p p 1,1,2,1 2,2,1,1 1,1,1,1 2,2,2,1 p p - p p 1,1,2,1 1,2,1,1 1,1,1,1 1,2,2,1 p p - p p 1,1,2,1 2,1,1,1 1,1,1,1 2,1,2,1 p p - p p 1,2,1,1 2,1,1,1 1,1,1,1 2,2,1,1 |
i8 : S = markovRing(2,2,3) o8 = S o8 : PolynomialRing |
i9 : F = hiddenMap(4,R); o9 : RingMap R <--- S |
i10 : transpose F.matrix o10 = | p + p | | 1,1,1,1 1,1,1,2 | | | | p + p | | 1,1,2,1 1,1,2,2 | | | | p + p | | 1,1,3,1 1,1,3,2 | | | | p + p | | 1,2,1,1 1,2,1,2 | | | | p + p | | 1,2,2,1 1,2,2,2 | | | | p + p | | 1,2,3,1 1,2,3,2 | | | | p + p | | 2,1,1,1 2,1,1,2 | | | | p + p | | 2,1,2,1 2,1,2,2 | | | | p + p | | 2,1,3,1 2,1,3,2 | | | | p + p | | 2,2,1,1 2,2,1,2 | | | | p + p | | 2,2,2,1 2,2,2,2 | | | | p + p | | 2,2,3,1 2,2,3,2 | 12 1 o10 : Matrix R <--- R |
i11 : J = preimage (F, I); o11 : Ideal of S |
i12 : J / print; p p p - p p p - p p p + p p p + p p p - p p p 1,2,3 2,1,2 2,2,1 1,2,2 2,1,3 2,2,1 1,2,3 2,1,1 2,2,2 1,2,1 2,1,3 2,2,2 1,2,2 2,1,1 2,2,3 1,2,1 2,1,2 2,2,3 p p p - p p p - p p p + p p p + p p p - p p p 1,1,3 2,1,2 2,2,1 1,1,2 2,1,3 2,2,1 1,1,3 2,1,1 2,2,2 1,1,1 2,1,3 2,2,2 1,1,2 2,1,1 2,2,3 1,1,1 2,1,2 2,2,3 p p p - p p p - p p p + p p p + p p p - p p p 1,1,3 1,2,2 2,2,1 1,1,2 1,2,3 2,2,1 1,1,3 1,2,1 2,2,2 1,1,1 1,2,3 2,2,2 1,1,2 1,2,1 2,2,3 1,1,1 1,2,2 2,2,3 p p p - p p p - p p p + p p p + p p p - p p p 1,1,3 1,2,2 2,1,1 1,1,2 1,2,3 2,1,1 1,1,3 1,2,1 2,1,2 1,1,1 1,2,3 2,1,2 1,1,2 1,2,1 2,1,3 1,1,1 1,2,2 2,1,3 |