reset; option randseed''; option solver cplex; param N1 :=3; param N2 :=3; param r1{i in 1..N1, j in 1..N2} default if i=j then 0 else if (1+i) mod 3 = (j) mod 3 then round(Uniform(0,5)) else round(Uniform(-5,0)); param r2{i in 1..N1, j in 1..N2} default -r1[i,j]; # 2-Personen-Nullsummenspiel data; param r1 : 1 2 3 := 1 0.0 1.0 -1.0 2 -1.0 0.0 1.0 3 1.0 -1.0 0.0; param r2 : 1 2 3 := 1 0.0 -1.0 2.0 2 1.0 0.0 -1.0 3 -1.0 1.0 0.0; model; param dom1{i in 1..N1}:= if exists {k in 1..N1 diff{i}} 1= # hat P1 dominante Strategien? (if forall {j in 1..N2} r1[k,j]>=r1[i,j] then 1) then 1; param dom2{j in 1..N2}:= if exists {k in 1..N2 diff{j}} 1= # hat P1 dominante Strategien? (if forall {i in 1..N1} r2[i,k]>=r2[i,j] then 1) then 1; display dom1,dom2, sum{i in 1..N1} dom1[i] + sum{j in 1..N2} dom2[j]; var x1 {i in 1..N1} >= 0; # variables for decision mix P1 var x2 {j in 1..N2} >= 0; # variables for decision mix P2 # maximize LP: x1[1] + x2[1]; # no objective needed subject to NB1: sum{i in 1..N1} x1[i] = 1; # norm probability P1 subject to NB2: sum{j in 1..N2} x2[j] = 1; # norm probability P2 subject to NB3{j in 2..N2}: sum{i in 1..N1} x1[i]*r2[i,j] = sum{i in 1..N1} x1[i]*r2[i,1]; # 1 makes 2 indiff subject to NB4{i in 2..N1}: sum{j in 1..N2} x2[j]*r1[i,j] = sum{j in 1..N2} x2[j]*r1[1,j]; # 2 makes 1 indiff solve; # solution display x1,x2; # output