Bayesian Programming and Learning for Multi-Player Video Games ...
Bayesian Programming and Learning for Multi-Player Video Games ...
Bayesian Programming and Learning for Multi-Player Video Games ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
7.6 Openings<br />
7.6.1 <strong>Bayesian</strong> model<br />
We now build upon the previous build tree* predictor model to predict the opponent’s strategies<br />
(openings) from partial observations.<br />
Variables<br />
As be<strong>for</strong>e, we have:<br />
• Build trees: BT ∈ [∅, building1, building2, building1 ∧ building2, techtrees, . . . ]: all<br />
the possible building trees <strong>for</strong> the given race. For instance {pylon, gate} <strong>and</strong><br />
{pylon, gate, core} are two different BT .<br />
• N Observations: O i∈�1...N� ∈ {0, 1}, Ok is 1 (true) if we have seen (observed) the kth<br />
building (it can have been destroyed, it will stay “seen”).<br />
• Coherence variable: λ ∈ {0, 1}: coherence variable (restraining BT to possible values with<br />
regard to O �1 . . . N�)<br />
• Time: T ∈ �1 . . . P �, time in the game (1 second resolution).<br />
Additionally, we have:<br />
• Opening: Op t ∈ [opening1 . . . openingM] take the various opening values (depending on<br />
the race), with opening labels as described in section 7.3.2.<br />
• Last opening: Op t−1 ∈ [opening1 . . . openingM], opening value of the previous time step<br />
(this allows filtering, taking previous inference into account).<br />
Decomposition<br />
The joint distribution of our model is the following:<br />
This can also be seen as Figure 7.10.<br />
Forms<br />
P(T, BT, O1 . . . ON, Op t , Op t−1 , λ) (7.3)<br />
= P(Op t |Op t−1 )P(Op t−1 )P(BT |Op t )P(T |BT, Op t ) (7.4)<br />
×P(λ|BT, O �1...N�)Π N i=1P(Oi) (7.5)<br />
• P(Opt |Opt−1 ), we use it as a filter, so that we take into account previous inferences (compressed).<br />
We use a Dirac:<br />
⎧<br />
⎨<br />
⎩<br />
P(Op t = op t |Op t−1 = op t−1 ) = 1 if op t = op t−1<br />
P(Op t = op t |Op t−1 = op t−1 ) = 0 else<br />
This does not prevent our model to switch predictions, it just uses the previous inference’s<br />
posterior P(Op t−1 ) to average P(Op t ).<br />
137