Macaulay2 » Documentation
Packages » GameTheory :: intersectWithCImodel
next | previous | forward | backward | up | index | toc

intersectWithCImodel -- ideal of the intersection of a given variety with the conditional independence model

Description

intersectWithCImodel calculates the ideal of the intersection of the given variety V with the conditional independence model determined by a set of conditional probability statements or an undirected graph. More precisely, the output is the ideal of the closure of the variety given by removing the components in the coordinate hyperplanes from the intersection of the variety V and the conditional independence model.

The input for the conditional independence model can be a set of conditional probability statements or an undirected graph. A single conditional independence statement is a list consisting of three disjoint lists of indices for random variables, e.g. $\{ \{1,2\},\{4\}, \{3\} \}$ which represents the conditional independence statement "$(X_1, X_2)$ is conditionally independent of $X_4$ given $X_3$". In the context of game theory, the variable $X_i$ represents the strategy of player $i$.

Given an undirected graph $G$, the conditional independence statements are produced via the globalMarkov function from the GraphicalModels package. A global Markov statement for $G$ is a list $\{A, B, C\}$ of three disjoint lists of vertices of $G$, where the subset $C$ separates the subset $A$ from the subset $B$ in the graph $G$.

i1 : FF = ZZ/32003;
i2 : d = {2,2,2};
i3 : X = randomGame(d, CoefficientRing => FF);
i4 : PR = probabilityRing(d, CoefficientRing => FF);
i5 : V = spohnIdeal(PR, X);

o5 : Ideal of PR
i6 : G1 = graph ({}, Singletons => {1,2,3});
i7 : G2 = graph ({{1,2}}, Singletons => {3});
i8 : I1 = intersectWithCImodel(V, G1);

o8 : Ideal of PR
i9 : I2 = intersectWithCImodel(V, G2);

o9 : Ideal of PR

Here is an example where the vertices of the graph need to be relabeled.

i10 : FF = ZZ/32003;
i11 : d = {2,2,2};
i12 : X = randomGame(d, CoefficientRing => FF);
i13 : PR = probabilityRing(d, CoefficientRing => FF);
i14 : V = spohnIdeal(PR, X);

o14 : Ideal of PR
i15 : G1 = graph {{John,Matthew},{Matthew,Sarah}};
i16 : G2 = graph {{a,b},{b,c},{c,a}};
i17 : I1 = intersectWithCImodel(V, G1, {John,Matthew,Sarah});

o17 : Ideal of PR
i18 : I2 = intersectWithCImodel(V, G2, {a,b,c});

o18 : Ideal of PR

Here is an example where the conditional independence relations are given with a List.

i19 : FF = ZZ/32003;
i20 : d = {2,2,2};
i21 : X = randomGame(d, CoefficientRing => FF);
i22 : PR = probabilityRing(d, CoefficientRing => FF);
i23 : V = spohnIdeal(PR, X);

o23 : Ideal of PR
i24 : G = graph ({{1,2}},Singletons => {3});
i25 : L = {{{1,2},{3},{}}};
i26 : I1 = intersectWithCImodel(V, G);

o26 : Ideal of PR
i27 : I2 = intersectWithCImodel(V, L);

o27 : Ideal of PR
i28 : I1 == I2

o28 = true

The Verbose=>true option prints the progress of each step in the saturation process - a message is printed after saturating the ideal $V$, the conditional independence ideal $I$, and the sum $V + I$ with respect to each hyperplane of the probability simplex.

i29 : FF = ZZ/32003;
i30 : d = {2,3,2};
i31 : X = randomGame(d, CoefficientRing => FF);
i32 : PR = probabilityRing(d, CoefficientRing => FF);
i33 : V = spohnIdeal(PR, X);

o33 : Ideal of PR
i34 : L = {{{1,2},{3},{}}};
i35 : I = intersectWithCImodel(V, L, Verbose=>true);
Completed step 1 of saturating CI ideal
Completed step 1 of saturating input ideal
Completed step 2 of saturating CI ideal
Completed step 2 of saturating input ideal
Completed step 3 of saturating CI ideal
Completed step 3 of saturating input ideal
Completed step 4 of saturating CI ideal
Completed step 4 of saturating input ideal
Completed step 5 of saturating CI ideal
Completed step 5 of saturating input ideal
Completed step 6 of saturating CI ideal
Completed step 6 of saturating input ideal
Completed step 7 of saturating CI ideal
Completed step 7 of saturating input ideal
Completed step 8 of saturating CI ideal
Completed step 8 of saturating input ideal
Completed step 9 of saturating CI ideal
Completed step 9 of saturating input ideal
Completed step 10 of saturating CI ideal
Completed step 10 of saturating input ideal
Completed step 11 of saturating CI ideal
Completed step 11 of saturating input ideal
Completed step 12 of saturating CI ideal
Completed step 12 of saturating input ideal
Completed step 13 of saturating CI ideal
Completed step 13 of saturating input ideal
Completed step 1 of saturating sum
Completed step 2 of saturating sum
Completed step 3 of saturating sum
Completed step 4 of saturating sum
Completed step 5 of saturating sum
Completed step 6 of saturating sum
Completed step 7 of saturating sum
Completed step 8 of saturating sum
Completed step 9 of saturating sum
Completed step 10 of saturating sum
Completed step 11 of saturating sum
Completed step 12 of saturating sum

o35 : Ideal of PR

See also

Ways to use intersectWithCImodel:

  • intersectWithCImodel(Ideal,Graph)
  • intersectWithCImodel(Ideal,Graph,List)
  • intersectWithCImodel(Ideal,List)
  • intersectWithCImodel(Ideal,List,List)

For the programmer

The object intersectWithCImodel is a method function with options.


The source of this document is in GameTheory.m2:2061:0.