確率分布を用いたユニット運用理論
本稿では、確率分布より求められる攻撃ヒット回数とその確率について議論する。
Wesnothにおいて攻撃の成否を予測する際に与えられる情報は相手回避率pであって、n回の攻撃を行った時にk回ヒットする確率は自明ではない。たとえばあと2撃で倒せる相手が居たときに、こちらの攻撃回数が4回、相手回避率が40%であるような場合に何%の確率で倒せるのか、ということを直感的に把握するのは難しい。
Wesnothにおける攻撃の成否は、相手回避率pに従って攻撃が命中するか否かのいずれかに分かれるというベルヌーイ型の事象であるため、その成否が従う確率分布は二項分布となる。そのため試行をn回行った場合の期待値は、二項係数を用いて計算が可能である。
(ただしP(k)は相手回避率p,攻撃回数nが与えられた時にk回攻撃がヒットする場合の確率)
そこで筆者は全てのp,nの組み合わせにおけるP(k=1,2,...n)を求めた。攻撃回数と回避率が与えられた場合のヒット確率を下に示す表にまとめた。
以下ではこの表を用いて様々な考察を行い、直感で理解しにくい事象、判断を誤ったり見落としがちな事象について論じる。上述の表を別窓で開くか印刷して手元に置きながら考察していただければと思う。
1.期待値の導出が容易である場合
攻撃回数が1回の場合、ヒット数期待値は命中率そのものであり、自明である。攻撃回数2回の場合も、暗算で計算が可能な範囲ではある。たとえば回避率60%(命中率40%)の相手に殴りかかり2回とも外れる確率は、0.6^2=0.36という具合である。また、回避率50%の場合は半々であたるという事であり、コイン投げゲームと等価である。この場合は直感的にわかりやすい。
2.期待値の導出を直感的に把握するのが難しい場合
ではこの表を用いればどのような事が新たにわかるのであろうか。それは次のような場合である。たとえば攻撃回数が4回で命中率が40%である場合、2回ヒットさせれば相手を倒せるという場合に何パーセントの確率で相手を倒せるか(chance
to kill:
ctkとしばしば表記される)という問題設定である。表によると2回ヒット率P(2)は0.345,3回ヒット率P(3)は0.153,4回ヒット率P(4)は0.025であるのでおおまかに言えば5割程度で倒せることになる(勿論1-P(0)-P(1)でも良い)。命中率が5割を切っているので半分以上外すのではないかと直感的には思うのだが、以外とそうではない。命中率が50%だと、7割近くは倒せる。
3.P(k)が与えられたことで導かれる戦術
wesnothには攻撃時に期待値計算ボタンを押すことで、上記のような計算を行ってくれる。しかし次のような場合はどうであろう。
問題
今、攻撃をあと1撃受けると死ぬユニットが自軍に2体いる。ユニットAは丘に登ると回避率70%であるが平地だと60%となる。ユニットBも同様に瀕死だが、彼は丘:40%、平地:30%となる。両者とも、敵の移動範囲外には逃れられないとする。両者のどちらかを丘、どちらかを平地に置かなければならない場合、どのような配置が最も良いか?
相手攻撃回数を場合分けして考えてみる。
以後、命中率pの時のk回ヒット率をP(k,p)と表すことにする
ユニットAの生き残り率(1回も攻撃を受けない場合)の、丘と平地のどちらに置くかの差はΔA=P(0,0.3)-P(0,0.4)と表され、ユニットBは同様にΔB=P(0,0.6)-P(0,0.7)と表せる。
攻撃回数1の場合
ΔA、ΔBともに0.1となるため差はない
攻撃回数2の場合
ΔA=0.49-0.36=0.13に対し、ΔB=0.16-0.09=0.07であり、Aをより回避率の高い地形に置くほうが若干(6%程度)有利である。
攻撃回数3の場合
ΔA=0.343-0.216=0.127 ΔB=0.064-0.027=0.037
このことは、Aを回避率の高い地形に置くと12%生存率が上がるが、Bは3%しか改善しないことを示す。そもそもBは生存率が数パーセントしかない(3回殴られると9割以上死ぬ)。
攻撃回数4の場合
ΔA=0.2401-0.1296=0.1105 ΔB=0.0081-0.0016=0.0065
Bは生存がほとんど望めない。Aは11%の生存率上昇が見込める。
このように、ユニットAとBとでは、Aを回避率の高い地形に置くほうが有益であるということがわかった。恐らく元の生存率が大きいほど、回避率が上昇した時の改善幅が大きくなるのだろう。1発食らうと死ぬという場合においては、もともとの回避率が高いキャラを優先させたほうが生き残り率が高いという結果が得られる。このことは直感的にも同意できる結果であろう。
ではBが有利となるようなシチュエーションはあるのだろうか?もう少し条件を変えて検討してみる。次はBの丘と平地における回避率を50%と30%としてみる。すなわちΔB=P(0,0.5)-P(0,0.7)とする。こうすると敵攻撃回数が2回の場合はΔA<ΔBとなる。しかし攻撃回数が3回や4回の場合では依然としてΔAのほうが有利となる。これは、回避率が50%となったとしても3回や4回攻撃を受けた場合は生き残り率が低いということが原因である。
Bが有利となる条件を探索することにする。そのためにkを変化させることにする。すなわちユニットの残りHPがもう少し高く、一撃までは耐えられる(2回以上ヒットされれば死ぬ)という場合を考えてみる。このような場合は
ΔA={P(0,0.3)+P(1,0.3)}-{P(0,0.4)+P(1,0.4)}
ΔB={P(0,0.5)+P(1,0.5)}-{P(0,0.7)+P(1,0.7)}
と表される。
この状況であれば、相手攻撃回数が3回や4回の場合にもBが有利となる。1回ヒットまでを許せば、Bであっても生き残ることことがそれなりに期待できるようになるからである。
以上をまとめると、生き残ることが元々期待しにくいようなユニット(敵攻撃回数に対して残りHPや回避率が低い)よりも、同様に瀕死であるがより高回避率であるようなユニットを良い地形に置くほうが有益である。