CODE FESTIVAL 2016 Grand Final D - Dice Game
Petrの純粋戦略は2通り:
touristの純粋戦略は26=64通り:
- どの目が出ても赤と答える。
- 2, 3, …, 6が出たら赤と答え、1が出たら青と答える。
…
- どの目が出ても青と答える。
これらの混合戦略の中からお互いに最適戦略を取った時にtouristが勝つ確率を知りたい。
aij= Petrが戦略iを取ってtouristが戦略jを取った時にtouristが勝つ確率、とすると行列(aij)の見た目は
[101−p1q11−p2q21−(p1+p2)q1+q2......01]
となっている。touristの混合戦略を(x1,...,x64)で表すとき、touristはa1,1x1+...+a1,64x64とa2,1x1+...+a2,64x64の小さいほうを最大化したい。この問題は以下のLPになっている:
- maximize z
- a1,1x1+...+a1,64x64≥z
- a2,1x1+...+a2,64x64≥z
- x1+...+x64=1
- x1,...x64≥0
これは単体法などで解けるが、もう少し簡略化する。touristの戦略は「目iが出たらyiの確率で赤を選ぶ」という形で表せる。Petrが赤、青を選んだ時にtouristが勝つ確率はそれぞれp1y1+...+p6y6、q1(1−y1)+...+q6(1−y6)であり、touristはこれらの小さいほうを最大化したい。この問題は以下のように書ける。
- maximize z
- p1y1+...+p6y6≥z
- q1(1−y1)+...+q6(1−y6)≥z
- y1,...,y6∈[0,1]
これもLPだけれど、変数が少ないので非基底変数の組み合わせを総当たりするだけでもよさそう。