/* Game theory problem in Picat. From http://www.ms.uky.edu/~mathecon/ma416 Vanderbei "Linear Programming - Foundations - and Extensions", page 174ff This Picat model was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ % import util. import mip. main => go. go => % payoff matrix A = [[0.0, 1.0, -2.0], [-3.0, 0.0, 4.0], [5.0, -6.0, 0.0]], N = A.length, X = new_list(N), X :: 0.0..1.0, W :: -1.0..1.0, foreach(I in 1..N) sum([A[I,J]*X[J]-W : J in 1..N]) #>=0.0 end, % subject to probability: sum(X) #= 1.0, solve($[max(W)],X), println(w=W), println(x=X), nl.