Games
Normal-for game (or strategic-form) defines a single interaction between two or more agents.
Mathematically,
[!definition]
A normal-form game consists of:
- Agents (Players): Finite set of agents I={1,…,n}
- Actions: For each agent i∈I:
- Finite set of actions Ai
- Reward function Ri:A→R, where A=A1×⋯×An
[!quote-yellow] Cartesian Product
A1={a,b} > A2={x,y} > A=A1×A2={(a,x),(a,y),(b,x),(b,y)}
A is the space of joint action, tells all the possible ways players’ choices can line up together.
Game Procedure
- Each agent i∈I selects a policy πi:Ai→[0,1]. And, assigns probabilities to the actions available to the agent, so that ∑ai∈Aiπi(ai)=1.
- Each agent samples an action ai∈Ai with probability πi(ai) given by it's policy.
- The join action becomes, a=(a1,…an).
- Finally, each agent i receives a reward based on its reward function and joint action, r=Ri(a).
Stochastic Game
Stochastic games additionally define an environment state that can change in response to the agent's actions. Agents can see the full environment state and the previous action actions of all other agents.
[!definition]
A stochastic game consists of:
- Agents (Players): Finite set of agents I={1,…,n}
- States (S): Finite set of state S, with subset of terminal states Sˉ⊂S
- Actions: For each agent i∈I:
- Finite set of actions Ai
- Reward function Ri:S×A×S→R, where A=A1×⋯×An
- State transition probability function T:S×A×S→[0,1] such that
∀s∈S,a∈A:s′∈S∑T(s,a,s′)=1
- Initial state distribution μ:S→[0,1] such that
s∈S∑μ(s)=1and∀s∈Sˉ:μ(s)=0
Game Play
- Start at s0∼μ.
- At step t, agents choose joint action at.
- Transition: st+1∼T(st,at,⋅).
- Rewards: rit=Ri(st,at,st+1).
Follows Markov Property:
Pr(st+1,rt∣st,at,st−1,at−1,…,s0,a0)=Pr(st+1,rt∣st,at)
Partially Observable Stochastic Game (POSG)
[!definition]
A partially observable stochastic game (POSG) extends a stochastic game with additional properties defined for each agent i∈I:
- Finite set of observations Oi
- Observation function Oi:A×S×Oi→[0,1] such that
∀a∈A,s∈S:oi∈Oi∑Oi(a,s,oi)=1
History of agent i: hit=(oi0,…,oit)
Policy: πi(ait∣hit)