グリコ2

昨日のグリコの話の続きです。
昨日は、相手がどのような確率で各手を出してきても、こちらの勝率が相手の勝率以上になる戦略を求めたのでした。
今日は、相手が各手を出してくる確率が予め分かっていることを前提として、そのときにこちらの勝率を最大にする戦略を求めてみたいと思います!


「問題」
二人が階段でじゃんけんをして、勝った方は出した手がグーなら l 歩、チョキなら m 歩、パーなら n 歩進める。
相手がグー、チョキ、パー、それぞれの手を出す確率が a, b, c のとき、各じゃんけんにおいて「こちらの進む歩数から相手の進む歩数を引いた値」の期待値 E を最大にする、こちらが手を出す確率 p, q, r の条件を求めよ。


この期待値が最大であれば、こちらの勝率が最大ということになりますね。


昨日と同じく
E = p(bl-cn)+q(cm-al)+r(an-bm)
ですが、このままでは見にくいので
s = bl-cn
t = cm-al
u = an-bm
とおきます。
E = sp+tq+ur
ここで, p+q+r = 1 なので
E = sp+tq+u(1-p-q)
(t-u)q = -(s-u)p-u+E …(*)


(i) t-u = 0 のとき, t = u で, (*) より 0 = -(s-u)p-u+E
 (i-i) s-u > 0 のとき, p = 1 のときに E は最大で E = (s-u) + u = s [s > t = u で, (p,q,r) = (1,0,0)]
 (i-ii) s-u = 0 のとき, 0 = -u+E より E = s = u [s = t = u で, p, q, r は任意]
 (i-iii) s-u < 0 のとき, p = 0 のときに E は最大で E = t = u [t = u > s で, p = 0, q, r は任意]


次に, t-u が 0 でない場合ですが (*) を
q = -{(s-u)/(t-u)}p - u/(t-u) + E/(t-u) …(**)
と変形し、次の
p + q = 1 …(***)
のグラフを利用します。

図の色付き部分と (**) のグラフが重なるような範囲内で E を最大化することを考えます。


(ii) t-u > 0 のとき, t > u
 (ii-i) s-u > 0 のとき, (**) のグラフは傾きが負である
  (ii-i-i) |s-u| > |t-u| のとき, (**) のグラフは傾きが負でその絶対値が 1 より大きく, t-u > 0 であることから, グラフが (1,0) を通るとき E は最大で E = s [s > t > u で, (p,q,r) = (1,0,0)]
  (ii-i-iii) |s-u| = |t-u| のとき, (**) のグラフが (***) のグラフに一致するとき E は最大で, このとき p + q = 1, s = t なので (*) より E = s = t [s = t > u で, p, q は任意, r = 0]
  (ii-i-ii) |s-u| < |t-u| のとき, (**) のグラフは傾きが負でその絶対値が 1 より小さく, t-u > 0 であることから, グラフが (0,1) を通るとき E は最大で E = t [t > s > u で, (p,q,r) = (0,1,0)]
 (ii-ii) s-u = 0 のとき, s = u で, (*) より (t-u)q = -u+E で t-u > 0 であるから q = 1 のとき E は最大で E = t [t > s = u で, (p,q,r) = (0,1,0)]
 (ii-iii) s-u < 0 のとき, (**) のグラフは傾きが正であり, t-u > 0 であることから, グラフが (0,1) を通るとき E は最大で, このとき p = 0, q = 1 なので (*) より E = t [t > u > s, (p,q,r) = (0,1,0)]

(iii) t-u < 0 のとき, t < u
 (iii-i) s-u > 0 のとき, (**) のグラフは傾きが正であり, t-u < 0 であることから, グラフが (1,0) を通るとき E は最大で, このとき p = 1, q = 0 なので (*) より E = s [s > u > t で, (p,q,r) = (1,0,0)]
 (iii-ii) s-u = 0 のとき, s = u で, (*) より (t-u)q = -u+E で t-u < 0 であるから q = 0 のとき E は最大で E = s = u [t > u = s で, p, r は任意, q = 1]
 (iii-iii) s-u < 0 のとき, (**) のグラフは傾きが負である
  (iii-iii-i) |s-u| > |t-u| のとき, (**) のグラフは傾きが負でその絶対値が 1 より大きく, t-u < 0 であることから, グラフが (0,0) を通るとき E は最大で E = u [u > t > s で, (p,q,r) = (0,0,1)]
  (iii-iii-ii) |s-u| = |t-u| のとき, (**) のグラフが (0,0) を通るとき E は最大で, このとき p = q = 0, s = t なので (*) より E = s = t [u > s = t で, (p,q,r) = (0,0,1)]
  (iii-iii-iii) |s-u| < |t-u| のとき, (**) のグラフは傾きが負でその絶対値が 1 より小さく, t-u < 0 であることから, グラフが (0,0) を通るとき E は最大で E = u [u > s > t で, (p,q,r) = (0,0,1)]


…場合分けをしたら、大変なことになってしまいました。
多分、どこかしら計算ミス、打ち間違えなどがあるかと思います。
それはともかくとして、以上をまとめると次のようになります。


s > t, u のとき, (p,q,r) = (1,0,0), E = s
t > s, u のとき, (p,q,r) = (0,1,0), E = t
u > s, t のとき, (p,q,r) = (0,0,1), E = u
s = t > u のとき, r = 0, p, q は任意, E = s = t
t = u > s のとき, p = 0, q, r は任意, E = t = u
u = s > t のとき, q = 0, p, r は任意, E = u = s
s = t = u のとき, p, q, r は任意, E = s = t = u
(それぞれ, p+q+r=1, 0 <= p, q, r <=1 という条件は満たしているものとする)


例えば、E = sp+tq+ur において s が最大ならば p を 1 に、つまり常にグーを出せばよく、t が最大ならば常にチョキを出せばよく、u が最大ならば常にパーを出せばよい、ということです。
最大のものが複数ある場合には、どれに合わせてもよいですし、確率の和が 1 になれば、出す割合をどのように振り分けても同じことです。


要するに, E = sp+tq+ur において s, t, u のうち一番大きいものの係数を 1 にすれば十分、ということですね。
苦労して計算した割には、あまりにも自然な結論が出てしまいました。
r = 1-p-q なんて代入しないで、1 文字を固定してうんたらかんたらやった方が簡単だったかも。


さて、実はこの戦略には致命的な欠陥があります。
お分かりになりましたでしょうか。


仮に、相手がそれぞれの手を出す確率を知ることができたとして、常にグーを出せば勝率を最大にできると分かったとしましょう。
このとき、相手の方は、何回かじゃんけんを繰り返すにうちに、こちらが常にグーを出すということを学習して、パーばかりを出してくることになるはずです。
そうなれば、この戦略を保ったままでは、たちまち勝率は 0 になってしまいます。
よって、コンピュータと対戦するのでもなければ、昨日に考察した、相手がどのような確率で手を出してきてもこちらの勝率が常に 0 以上になるような戦略をとるのが、現実的には妥当なところです。
しかし、もし相手もそのことに気づいていたならば、相手も同じ戦略をとることになり、結果として双方の勝率はちょうど 1/2 になってしまいます。
あららー。
これではもはや、進める歩数に差をつけた意味がありませんね。


めでたし、めでたし(なのか?)。