module Data.Teams.Examples.MAB where
import Data.Teams.Structure
x1 = mkNonReward "x1"
x2 = mkNonReward "x2"
u1 = mkNonReward "u1"
u2 = mkNonReward "u2"
z1 = mkNonReward "z1"
z2 = mkNonReward "z2"
r = mkReward "r"
f1 = mkStochastic "f1"
f2 = mkStochastic "f2"
g1 = mkControl "g1"
g2 = mkControl "g2"
c1 = mkDeterministic "c1"
c2 = mkDeterministic "c2"
d = mkStochastic "d"
dynamics t = f1(t).$.(x1(t).|. if t==1 then [] else [x1(t1), u1(t1), z2(t1)])
++ f2(t).$.(x2(t).|. if t==1 then [] else [x2(t1), u2(t1), z1(t1)])
++ g1(t).$.(u1(t).|. map x1[1..t] ++ map u1[1..t1]
++ map z2[1..t1])
++ g2(t).$.(u2(t).|. map x2[1..t] ++ map u2[1..t1]
++ map z1[1..t1])
++ c1(t).$.(z1(t).|. [x1(t), u1(t)])
++ c2(t).$.(z2(t).|. [x2(t), u2(t)])
++ d(t).$.(r(t) .|. [x1(t), x2(t), u1(t), u2(t)])
mab = mkTeamTime dynamics 4