2019年12月15日日曜日

盤端効果と確率

War-Gamers Advent Calendar 2019 の記事のつもりです。予約投稿したつもりが公開されてなく、しかもURLも出してませんでした。反省。

さて、

しばらく前、MustAttack方面にて盤端効果の話題が伸びました。2-in-1のゲームを連結したら初期配置が大きく変わる、それは「シミュレーション」としてどうなのか、という問いが発端でした。この問いに確率をつかってアプローチしてみます。あ、もとの問いには答えは出てますね。

さて、考える状況は次の通りです。並んだ2戦線があります。独立ゲームとしても連結ゲームとしても遊べるようにデザインされました。防御側と攻撃側は明確に別れています。2戦線とも史実では攻撃側が10ヘックス前進しました。これを参考に、独立ゲームの勝利条件として攻撃側は10ヘックスより深く前進すれば勝利とします。10ヘックスなら引き分け、10ヘックス未満なら敗北です。

10ターンで終了、サドンデスなしとします。1ターンで攻撃側が2ヘックス前進する確率は1/2です。これは史実を反映した戦闘結果表に基づく確率です。平均して1ターンに1ヘックス前進し、史実もそのように進展しました。ですから、独立ゲームの盤端における戦線は1ターンに1ヘックス前進します。これは補給線に影響します。

という設定を考えます。ゲームデザインとしていかがなものかというご批判は甘受します。

さて、独立ゲームでは勝率半々でうまく機能している初期配置とコマさばきがあるものとします。連結ゲームにしたときにどうなるでしょう。

まあ初期配置とコマさばきは変わるでしょう。なぜなら、実際のさいころの目は平均から外れるからです。だいたい標準偏差くらいの外れが出ますので、10ターンでは二項分布の標準偏差として10x(1/2)x(1/2)の平方根、(√10)/2くらい、およそ1.7ヘックスくらいの差が両戦線に積み上がります。プラスマイナス3ヘックス以上です。

というわけで、普通に平均値が史実とみなして盤端効果を設計すると連結したら結果は変わります。シミュレーションとしては盤端にも確率効果を入れるのでしょうか。

2018年12月2日日曜日

平均一定の二項分布たち

War-Games Advent Calendar 2018 https://adventar.org/calendars/3461 の記事です。すみません今年もゲームなしです。

平均一定の二項分布たち、試行回数を増やすと少数の法則が成立して、ポアソン分布になります。滅多に起きない事象についての法則で、製品の不良率の評価などに使われるそうです。

というのは、二項分布
\[ Prob(X=k)={}_nC_k p^k(1-p)^{n-k}\]
の平均が\(np\)だから、平均\(N=np\)を一定に保って試行回数\(n\)を大きくすると確率\(p\)は\(p=N/n\)に決まって、この確率自体は小さくなります。じゃあ\(k\)回当たる確率
\[
Prob_n(X=k)=\frac{n!}{(n-k)!k!} (N/n)^k (1-N/n)^{n-k}
\]
は\(n\)が増えるとどうなっていくのか、ということ。

これはつまり\(N=2\)で\(n=3,4,6,12\)の場合をはねはねさんがMAの日記で提案したものです。
 2018年11月20日12:41
1対1の差しでの勝負、打撃の多いほうが勝ちというルールで先手だとして。みなさん、どれを選択しますか?
1.サイコロ振らずに2打撃
2.サイコロ3個振って、1-4で1打撃
3.サイコロ4個振って、1-3で1打撃
4.サイコロ6個振って、1-2で1打撃
5.サイコロ12個振って、1で1打撃

分散が\(np(1-p)=2(1-2/n)\)なので、 \(n\)が増えると増加しますから、どんどんブラッディになります、という指摘はコメントに見られます。

結論は、
\[
\lim_{n\to\infty} Prob_n(X=k)=e^{-2}\frac{2^k}{k!}
\]
となってこれはポアソン分布に他ならないのですが、これだけだとあれなので

2018年11月20日17:24 さかみちさんのコメント 
計算が違っていなければ、選択肢5に向かって期待値である2以上の確率は下がり、逆に3以上の確率は上がるので。
を\(N=2\)で確かめます。

負ける確率は、打撃0か1です。\(n\)が増えるにつれて1以下の確率が上がればよく、

まず
\[
Prob_n(X=0)+Prob_n(X=1)=p^n+np(1-p)^{n-1}=(1-2/n)^n+2(1-2/n)^{n-1}
\]
です。

自然対数の底を定義するときに現れる数列\((1+1/n)\)は単調増加なので、同じようにして\((1-2/n)^n\)も単調増加。

というわけで \(n\)が増えると2以上の確率は下がります。収束先は\(3e^{-2}=3/e^2\)です。

2になる確率を計算すると,
\[
 Prob_n(X=2)=\frac{n(n-1)}{2}(2/n)^2(1-2/n)^{n-2}=2(1-1/n)(1-2/n)^{n-2}=2\frac{1-1/n}{(1-2/n)^2}(1-2/n)^n
\]
これは\(n\)が増えると減少し、\(2/e^2\)に収束します。結局、打撃が3以上になる確率は\(n\)が増えると増えます。増えますけど、打撃が0か1になる確率もそれなりにあるので、選択は難しい。大きな打撃を与える確率は非常に小さくなりますから、少数の法則そのものです。

2017年12月13日水曜日

1D6と5D2

War-Gamers Advent Calendar 2017       の記事です。ゲームが出てこなくてすみません。しかも予約投稿に失敗していました。ごめんなさい。

 さいころ一振りで勝敗を分ける、という状況は対戦記録を読んでもよく出てきます。戦力を集中して攻撃したら思いの外さいころの目が悪く相互損害になって停滞などという例はありふれています。なんでそうなる、という問題はゲームシステムとしても検討の対象となっていて、ファイアパワーやマグニチュードという概念が使われてきました。でも、確率に手を入れる、ということはやられていないように思います。
 確率に手を入れるとなると、例えば平均に近い目を出やすくするということになります。ただ、それはさいころのランダム性を少し崩しますし、実現が難しいことからも採用はされてこなかったのでしょう。 でも、そこを少し追求します。
 さいころを振って1から6の目が出る確率はほぼ1/6としておきます。そもそも戦闘結果表による解決結果として、どの結果も等しい確率で出るという設定を簡単に変えることを目指します。

 さいころを1回振ると1から6の目が出るということを次のように言い換えます。

「硬貨を5枚用意して表の出る数は0から5まで。表の数に1を足せば1から6まで出てきます。」

この場合にそれぞれの数が出る確率を求めます。

硬貨を5枚振って表が出ない組み合わせは1通り。
1枚出る組み合わせは5通り。
2枚出る組み合わせは5!/(2!3!)=10通り。
3枚出る組み合わせは2枚出る組み合わせと同じ10通り。
4枚出る組み合わせは1枚出る組み合わせと同じ5通り。
5枚出る組み合わせは出ない場合と同じ1通り。

1から6の目に直した確率は、2の5乗が32ですから
1: 1/32
2: 5/32
3: 10/32
4: 10/32
5: 5/32
6: 1/32
となります。明らかに平均前後の3と4の確率が高くなっています。というか1の出る確率は3の出る確率の1/10です。2の出る確率も3の半分。長いゲームの歴史の中で、どなたかやってみた方はいないものでしょうか。いや、やってから記事書けということではありますが諸般の事情はとてもゲームどころでなく。

 2個のさいころであれば硬貨を11枚用意すれば同じことができます。ただ、ゾロ目という概念はなくなります。10面のさいころなら9枚です。あまり枚数が増えると平均の近くばかり出るようになりますので、それはそれで意外性がなくなるのかもしれません。
 以上は大数の法則からすぐにわかることを書き連ねました。どこかで「味のある乱数」とか「コクのある乱数」いう言い方をしていた記事を覚えていたものに触発されたものです。

2016年5月14日土曜日

Markov的さいころ(改)

MA方面に次のような問題がありました。
(PC版でないと式が出ないようです。)

7面のさいころが6個あって、それぞれ1が2面、2が2面、3が2面、、、6が2面に書かれている。各面の出る確率は等しい。1回振って1が出たら次は1が2面のものを振る。2が出たら2が2面のものを振る。以下同様とする。このとき、1から6までの目が出る確率は等しいかどうか。

答え:等しい。

理由:

1が出た後に1が出る確率は2/7、他は1/7。他の目も同様。同じ目が続く確率は2/7で他は等確率。つまり、xの目が出た後にy の目が出る確率 \(p_{xy}\) について、\(p_{xx}=2/7\) , \(p_{xy}=1/7, (x\ne y)\)となる。

ある時点でxの出る確率\(p_x\)を決めておくと、次に1が出る確率\(q_1\)は
\[q_1=p_1 \cdot 2/7+p_2\cdot 1/7 +\dots + p_6\cdot 1/7 \]
であり、他の目についても同様。

したがって、推移確率行列は次の通り。
 \[
\begin{pmatrix} 2/7 & 1/7 & 1/7 & 1/7 & 1/7 & 1/7\\
1/7 & 2/7 & 1/7 & 1/7 & 1/7 & 1/7\\
1/7 & 1/7 & 2/7 & 1/7 & 1/7 & 1/7\\
1/7 & 1/7 & 1/7 & 2/7 & 1/7 & 1/7\\
1/7 & 1/7 & 1/7 & 1/7 & 2/7 & 1/7\\
1/7 & 1/7 & 1/7 & 1/7 & 1/7 & 2/7
\end{pmatrix}
\]
定常状態の確率\((p_1, p_2, p_3, p_4, p_5,p_6)\)、言い換えると\(q_x=p_x\)となる確率は次を満たす。

\[(p_1, p_2, p_3, p_4, p_5,p_6)=(p_1, p_2, p_3, p_4, p_5,p_6)
\begin{pmatrix} 2/7 & 1/7 & 1/7 & 1/7 & 1/7 & 1/7\\
1/7 & 2/7 & 1/7 & 1/7 & 1/7 & 1/7\\
1/7 & 1/7 & 2/7 & 1/7 & 1/7 & 1/7\\
1/7 & 1/7 & 1/7 & 2/7 & 1/7 & 1/7\\
1/7 & 1/7 & 1/7 & 1/7 & 2/7 & 1/7\\
1/7 & 1/7 & 1/7 & 1/7 & 1/7 & 2/7
\end{pmatrix}
\]

これは\(p_x\)が全て等しいときに成立するから、定常状態は
\((1/6,1/6,1/6,1/6,1/6,1/6)\)となる。(以上)


初めに一回振るときは6つのさいころを等確率に選ぶとして、1の出る確率は
1/6 x 2/7 + 1/6 x 1/7 x 5 = 1/6 となるので、初期条件も定常状態。だから、何回振っても特定の目の出る確率は 「平均して」 1/6 になる。

ただし、1が2回続く確率はもちろん 1/6 x 2/7=1/21 で、1/36ではない。

さらに、一度1が出たところから始めれば
\((1,0,0,0,0,0)\)を初期状態とするわけだから、2回目にそれぞれの目が出る確率は
\((2/7,1/7,1/7,1/7,1/7,1/7)\)となる。3回目はこれに右から上の行列を掛けて
\((9/49,8/49,8/49,8/49,8/49)\)。
いずれにしても、最初に出た目である1が出る確率は常に(少しだけ)大きく、無限に続ければ1/6に近づくということ。

いかさまに使えそうな確率のトリックかもしれない。

2015年11月15日日曜日

死守できるターン数の期待値

\(p\)をステップロスする確率として、ステップロスするターン数の期待値は

\[
 \sum_{n=1}^\infty n(1-p)^n=p\sum_{n=1}^\infty n(1-p)^{n-1}=p(\sum_{n=1}^\infty (1-p)^{n})'=-p(\frac{1-p}{1-(1-p)})'
\]
\[
=-p(\frac{1-p}{p})'=-p(\frac{1}{p}-1)'=1/p
\]
 ステップロスする確率の逆数というわかりやすい結果。

2013年10月29日火曜日

水平線までの距離

MA方面の艦これユーザ向けゲームのコミュニティでは砲戦距離の実際が意見交換されているところ。思い立って計算してみる。

大和の艦橋の高さは諸説あるらしい。高めの説をとって50メートルとしよう。

海上の高さ50メートルの位置から地球の丸みによって見える水平線までの距離は図のように計算できる。余弦を二次の項までで切っているが、まあ目くじら立てるほどの誤差は出ない。




大体25キロほど。ほう、議論されている実際の砲戦距離が出た。50メートルが40メートルでも平方根の作用で大差ない。

水平線ぎりぎりだと遠近の測定は難しくなるはずだから、敵艦の艦橋が高くてもう少し遠くまで観測できたところで、まともな弾着修正ができるかどうか、なるほど疑問ではある。

頭ではわかっていても計算してみるものだ。

高雄型あたりの艦橋が大和型の半分程度として、水平線は\(1/\sqrt{2}=0.707...\)倍程度だから、17キロくらい。

身長が1メートルとして、大体6キロくらいか。以外に近い。

2013年10月14日月曜日

作戦級で局面の数を評価する

作戦級のウォーゲームの局面の数を評価しようと思います。可能な場合の数との違いを考えるために囲碁の場合を参考にしましょう。

囲碁の局面を単純に考えると(19x19)の階乗は361の階乗です。361の階乗は361の361乗におよそ等しくて、100の500乗 くらい。10の1000乗です。同型反復があって増えますがこれを無視。一方、決着のつく局面数が10の361乗といわれており、実質的な局面の乗数は単純な計算結果の3割程度とみ ることにします。

作戦級の場合、ユニット100個と移動力5、マップは十分広いとします。一個のユニットは半径5ヘックスの移動ができるからおよそ60ヘックスの移動可能な行き先があります。一ターンで60の100乗。10ターンある とすれば60の1000乗です。戦闘が一ターンで10回起きて1d6なら一回ごとに6通りあって一ターンで6の10乗、10ターンで6の100乗。結局は 10の1500乗くらいが単純な局面の数。戦線ができると劇的に減るでしょうし、乗数を1/3以下に見込むと、100ユニットで囲碁と同じくらいでしょうか。
最近のコンピュータ囲碁はモンテカルロ法を援用してアマ高段くらいは打ちます。9x9の狭い盤面だとプロ並みです。作戦級に応用するとしたら120シリーズくらいまでは何とかなるのかもしれません。40駒くらいの規模だと誰かが本気で研究したらいい線までいくのではないかと。