15.12.2012 Views

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 ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

⎧⎪<br />

<strong>Bayesian</strong> program ⎨<br />

⎧⎪<br />

Description ⎨<br />

Specification (π)<br />

⎧<br />

V ariables<br />

A1:n, E1:n, T1:n, T A1:n, B1:n, H1:n, GD1:n, AD1:n, ID1:n, HP, T T<br />

Decomposition<br />

P(A1:n, E1:n, T1:n, T A1:n, B1:n, H1:n, GD1:n, AD1:n, ID1:n, HP, T T )<br />

=<br />

⎪⎨<br />

�n i=1 [P(Ai)P(Ei, Ti, T Ai, Bi|Ai)<br />

P(ADi, GDi, IDi|Hi)P(Hi|HP )] P(HP |T T )P(T T )<br />

F orms<br />

P(Ai) prior on attack in region i<br />

P(E, T, T A, B|A) covariance/probability table<br />

P(AD, GD, ID|H) covariance/probability table<br />

P(H|HP ) = Categorical(4, HP )<br />

P(HP = hp|T T ) = 1.0 iff T T → hp, else P(HP |T T ) = 0.0<br />

⎪⎩<br />

P(T T ) comes from a strategic model<br />

Identification (using δ)<br />

P(A = true) =<br />

P(AD = ad, GD = gd, ID = id|H = h) =<br />

⎪⎩ P(H = h|HP = hp) =<br />

∀i ∈ regionsP(Hi|adi, gdi, idi)<br />

⎪⎩<br />

P(A, H|F ullyObserved)<br />

nbattles<br />

nbattles+nnot battles = µ battles/game<br />

µ (probability to attack a region)<br />

regions/map<br />

it could be learned online (preference of the opponent) :<br />

P(Ai = true) =<br />

1+nbattles(i)<br />

2+ �<br />

j∈regions<br />

P(E = e, T = t, T A = ta, B = b|A = T rue) =<br />

Questions<br />

∀i ∈ regionsP(Ai|ei, ti, tai)<br />

6.6 Results on StarCraft<br />

nbattles(i) (online <strong>for</strong> each game ∀r)<br />

1+nbattles(h,hp)<br />

|H|+ �<br />

H nbattles(H,hp)<br />

6.6.1 <strong>Learning</strong> <strong>and</strong> posterior analysis<br />

1+nbattles(e,t,ta,b)<br />

|E|×|T |×|T A|×|B|+ �<br />

E,T,T A,B nbattles(E,T,T A,B)<br />

1+nbattles(ad,gd,id,h)<br />

|AD|×|GD|×|ID|+ �<br />

AD,GD,ID nbattles(AD,GD,ID,h)<br />

To measure fairly the prediction per<strong>for</strong>mance of such a model, we applied “leave-100-out” crossvalidation<br />

from our dataset: as we had many games (see Table 6.2), we set aside 100 games<br />

of each match-up <strong>for</strong> testing (with more than 1 battle per match: rather ≈ 15 battles/match)<br />

<strong>and</strong> train our model on the rest. We write match-ups XvY with X <strong>and</strong> Y the first letters of<br />

the factions involved (Protoss, Terran, Zerg). Note that mirror match-ups (PvP, TvT, ZvZ)<br />

have fewer games but twice as many attacks from a given faction (it is twice the same faction).<br />

<strong>Learning</strong> was per<strong>for</strong>med as explained in section 6.5.1: <strong>for</strong> each battle in r we had one observation<br />

<strong>for</strong>: P(er, tr, tar, br|A = true), <strong>and</strong> #regions − 1 observations <strong>for</strong> the i regions which were not<br />

105

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!