分室,提携サイト:ゲーム工房URA

宇宙戦闘の見積

Estimate space combat results

戦術的勝利=戦略的勝利?

 Imperium[1-3]の宇宙戦闘には戦術的要素が組み込まれているが、戦争シミュレーションのゲームである。つまり地球の3SCで帝国の1SCを攻撃する様に、 3倍の艦隊で攻撃すれば、ほぼ地球の勝利となる。しかし、Imperiumで3倍の艦隊を得ることは以外と難しい。そしてゲームに慣れるに従って、Barnard's star星系やAgidda星系、SIRIUS星系、Procyon星系など戦略的重要星系での大規模な宇宙戦闘の勝敗がゲームの結果に直結することになる。バーナード・スター決戦戦略/第一次バーナード星系会戦は、中村が提案するように「宙域確保戦略」[4] により、地球は戦略レベルで回避できたが、第N次バーナード星系会戦/プロキオン星系会戦は、戦略レベルでの対応できていない[5]。こうなると会戦の勝率を上げる戦術レベルの工夫に嵌まっていくことになり、私のような凡人はImperiumが戦略レベルのゲームであることを忘れることになる。

 今回は、Imperiumの宇宙戦闘をモンテカルロ・シミュレーションするプログラムを開発し、戦術レベルの工夫の限界を明らかにした。

宇宙戦闘の結果見積

 Imperiumの宇宙戦闘は、戦術的要素が組み込まれているため、他のウォーゲームと比較して、勝率、損害を見積もることは、以外と難しい。長いプレイ経験から、戦闘結果をある程度、推測はできるが定量的とまでは言えない。例えば先の例の場合、地球の勝利での残兵力は1~2SC、帝国の勝率は10%位と見積もることになる。数が少ない戦闘は良いが、艦隊規模が大きくなると、経験的推論も不確かになる。

 Imperiumの論文を作成する場合、宇宙戦闘の結果を定量的に見積もる必要がある。論文作成のため、第1次戦争中にBarnard's star星系やSIRIUS星系、Procyon星系で発生する宇宙戦闘を、コンピュータに発生させた乱数(サイコロを1万回振るのは大変)を用いて、100回程度試行をしたことがある。この試行回数では、戦闘結果に対する統計精度が10%程度であることは理解していたが、手作業での試行では、100回が限界であった。

 私は、Imperiumをプレイし初めたときから、宇宙戦闘結果の見積り方法を模索してきた。そしてコンピュータを使ったImperiumの宇宙戦闘の結果を見積もるプログラムを何回か作成してきた。Dark Nebulaへの拡張も視野に、red / blueと表示しているが、redは帝国を、blueは地球を表している。

損害資源期待値法

 Version 1は、1989年にSHARPのポケットコンピュータPC-1250/1350上のBASICで作成した。インペリウム[6]に基づいて、艦種別の損害期待値を計算した手書きの表が残っている。輸送艦を盾にする処理とか考えてあり、子供の頃のプログラムとしては、上手く作っている。構造は簡単で以下の通り。

  1. 各軍の宇宙艦隊の建造コストを求める。
  2. Table 2-1に従って、各軍の損害資源期待値(Damage Expected Resource: DER)を計算する。
  3. 自軍の建造コストから相手のDERを引く。
  4. 建造コストの減少率と同じ割合で自軍のDERを減少させ、新たなDERを求める(少数点以下2桁目は切り捨て)。
  5. 3,4を繰り返し、建造コストまたは、DERが0になった方が敗北。
  6. 攻撃側は始めの損害をTR, AOを盾として受けることができる。その分の建造コストが引かれている間は損害期待値は減らない。

 DERは宇宙艦が敵宇宙艦を撃破する確率与えるに建造コスト(RU)を積算した値をベースにしている。全艦種に対応できたが、Ver. 1のDERは、含まれる艦種で平均をとるため、含めた艦種により艦種毎のDERが変化した。このため見積りの精度を上げるには、DERをラウンド毎に敵艦隊に合わせて計算し直す必要があり、ポケコンの計算力では力不足だった。戦闘結果は資源(RU)で示される。戦闘結果の資源 (RU) は、戦闘で生き残った艦隊の建造コスト(RU)の期待値である。このため勝率の見積りはできなかった。先ほどの戦闘例(地球3SCと帝国1SCの戦闘)の場合、地球が第3ラウンドで勝利し、2.2 RU相当の艦隊(この場合2.2SC)が生き残ると見積もられる。

Table 2-1 Damage expected value

Blue
Type
DER(RU/Unit)
Attack/Defense
Red
Type
DER(RU/Unit)
Attack/Defense
SC 0.5/0.7SC 0.9/0.7
F 1.0/1.2 F 1.1/1.0
DD 1.1/1.2DD 1.2/1.0
CL 1.3/1.6CL 1.5/1.4
CS 2.2/1.8CS 1.9/2.0
MB 2.6/1.8CR 2.0/2.0
M 1.2/1.7M 1.8/2.1
...

期待ユニット数法

 Version 2は、小型艦(SC, DD)の混成艦隊の戦闘 に絞って作成し、2016年頃からは、Excel sheets上の計算プログラムとして iPhone/iPadのExcelで使用した。画面コピーをFig. 2-1に示した。戦闘ラウンド毎の戦闘結果を期待値で見積り、ユニット数の変化を実数のグラフで示した。しかし、近似として攻守の違いを省略し、輸送艦(TR)を含んでいなかった。このため、TRで地球SCをミサイル射撃からスクリーンする戦術の影響等を評価できないなど、小型艦戦用としても機能が不足していた。先ほどの戦闘例では、3ラウンドで終了し、地球2.1SCが残ると評価される。

 Ver. 2は、DD≒Fと近以して帝国F vs 地球3SCも、帝国DD vs 地球3SCと同じように、戦闘後残戦力は1.9SCと扱っていた。Version 3(N=1E6)で、帝国DD vs 地球3SCと、帝国F vs 地球3SCの戦闘を評価すると、地球勝利時の残戦力は1.81SCとなり、Ver. 2の残戦力の見積りが、距離決定の影響を無視した近以としては、精度が高いことが分かった。一方で、勝率は対DDで73.4%、対Fで62.2%と差があり、期待値による評価法では、勝率の違いを上手く評価できないことも分かった。


Fig. 2-1 Screen capture of Imperium space-battle sim 2

モンテカルロ・シミュレーション

 期待値評価は、計算量が少いため、戦闘見積プログラムとして使い易いが、勝率を評価できない。そこで、宇宙戦闘をモンテカルロ・シミュレーション するプログラムを、Version 3として、2021年にpythonコードで作成した[7, 8]。Macintosh、Windows、Ubuntu上の Jupyter notebookやSpyderでも動作する[9]。iPhone/iPadだと、pytoとJunoで動くことを確認済み(numpy、pandasとmatplotlibをimportする必要があるため、pythonista 3では動作しない)[10-12]。Version 3.1 は、建造許可無の1次戦争での宇宙戦闘を扱えるように、

帝国: 11SC, 11DD, 11CL, 11CS, 1CR, 12F(FB), 10M(MN), 1MS, 11TR
地球: 11SC, 11DD, 11CL, 11MB, 11F(FB), 11M(MN), 2MS, 11TR

までの戦闘に対応させた(整備不良艦はサポート外)[3]。 iPad mini2 上で1000回の試行で1秒、1万回の試行(統計精度1%)でも数秒~1分位と実用レベルの計算速度である。先の戦闘例を、10000回モンテカルロ・シミュレーションすると、地球の勝率は83 %(3.4ラウンド)、帝国の勝率は10 %(5.0ラウンド)、両軍同時全滅が7 %(5.1ラウンド)、地球勝利の残戦力は、1.93SC となる。計算時間は7.1秒である。

 モンテカルロ・シミュレーションの後に、試行結果の解析ルーチンを追加して、結果をグラフ表示するようにした。その結果をFig. 2-2 に示した。各戦闘ラウンドのログをとり、解析処理をするため、プログラム終了迄の時間は20 %増の8.5秒になった。Fig. 2-2はが帝国SC、青●が地球SCのラウンド毎の艦隊数の変化を示している。▲は距離で、長距離(Long)を3.0、短距離(Short)を1.0として示している(長距離と短距離の頻度が1:1の場合、値は2.0になる)。


Fig. 2-2 Results of Monte Carlo simulation (N = 10000) of space combat using Imperium space-battle sim 3.1
The blue circle markers indicate changes in the number of blue scout units. The red circle markers indicate changes in the number of red scout units. Distance is a closed triangle, 3.0 for long distance and 1.0 for short distance.

 現在の戦闘組(敵宇宙-味方宇宙艦の攻撃し合う組合せ)を作るルーチンは、自分の戦闘組の作り方をベースにしている。私の戦闘組作成ルールが最適とは考えられないため、戦闘組を作るルーチンに機械学習の組み込み最適化すること計画して、戦闘組ソートのためのdic化を検討した。しかし、key処理による計算速度の低下が大きく、また、地球CRの追加による近接攻撃(Suicide Attacks)・防御射撃処理が複雑化し、処理速度を大きく落した(トータルの計算速度が約26倍低下)。このため機械学習の組み込みは、現在ペンディング中である。一方、プログラムの試行検討により、私の中で懸案であった戦闘組を作るときの下記選択に関しては、勝率に1~6% (N=1E6)の有意な差が見られたため、決定することができた。

  1. 帝国SC-地球DDでは、帝国SCは集中ミサイル射撃をした方が良いのか?
  2. 帝国DD-地球DDでは、地球DDは集中ミサイル射撃をした方が良いのか?
  3. 帝国DD-地球CLでは、帝国DDと地球CLのミサイル射撃と集中ミサイル射撃の組合せ?
  4. 帝国SC+DD-地球DD or CLで地球はSCとDDのどちらを攻撃する方が良いのか? 等々

 次に、大規模戦闘の代表例として、戦闘組の作り方が、同じとは限らないが、中村の「インペリウム百年戦争史」にある、「コンバインドフリートの典型的な戦闘例」と「バーナード決戦戦略/第一次バーナード星系会戦」をモンテカルロ・シミュレーションした。

コンバインドフリートの典型的な戦闘例[4]

防御: 帝国(11SC, 11DD, 2CL, 1CR, 2TR) vs 攻撃: 地球(11SC, 5DD, 3MB, 6F, 11TR, 2MS)

 モンテカルロ・シミュレーションでは、(退却の判断基準を一般化できてないため)退却を考慮してない。このため、戦闘はタンカー無しのSIRIUS星系での会戦と考えると良い。シミュレーション(N=1E4)時間は57秒で、結果は、地球勝利24 %、帝国勝利74 %、両軍全滅2%であった。戦闘ログのプロット結果をFig. 2-3に示した。当時のPCパワー/人力で、このサイズの戦闘の勝敗を計算/推定することは困難ではあるが、この勝率で勝負を挑める中村の胆力は、尊敬に値する。

 中村の例示では、第2ラウンドに短距離となっているが、第2ラウンドに短距離になる確率は27.8%しかない。第3ラウンドが短距離になる確率は41.8%である。地球勝利のログは、第2ラウンド、第3ラウンドが短距離の頻度が高い。第2~3ラウンドで1ラウンド以上短距離になる確率は70%なので、第2~3ラウンドが短距離になっても地球の勝率は51%である。つまり地球が勝利するには、まだ他の条件が必要である。第4ラウンドは、長距離の頻度が帝国勝利時ログより地球勝利時ログの方が高い。つまり地球が勝利したケースでは、帝国が第3ラウンド迄の短距離で艦隊数を大きく減らしたと考えられる。つまり地球が勝利するには、数的優位を持っている状態で、第2ラウンド、または第3ラウンドの距離決定権を得る必要があることを示唆している。


Fig. 2-3 Results of Monte Carlo simulation of combined fleet combat

 帝国艦隊(11SC, 11DD, 2CL, 1CR, 2TR) に勝率80 %以上が得られる地球艦隊をシミュレーション(N=1E4)すると、11SC, 10DD, 4MB, 6F, 11TR, 2MSとなる(勝率: 83%)。中村の戦力に初期戦力にあるCL, MBを加えた連邦艦隊(11SC, 5DD, CL, 4MB, 6F, 11TR, 2MS)の勝率は55 %に留まる。

 2CL, CRと4MBを除いて少し単純化して、帝国艦隊(11SC, 11DD, 2TR)と地球艦隊(11SC, 5DD, 6F, 11TR, 2MS)の宇宙戦闘(地球の勝率: 47%)で考える。(地球が距離選択権を持った場合に短距離を選ぶとすると、短距離になる確率が一番高いのは、第3ラウンドなので、第1、2ラウンドは長距離、第3ラウンドが短距離と考える(第2ラウンドが短距離なのは27.8%、かなり幸運であり、第3ラウンドまで全て長距離なのは42.1%、少し不運である)。帝国(11SC, 11DD, 2TR)と地球(11SC, 5DD, 6F, 11TR, 2MS)の戦闘の場合、帝国11DDのミサイル射撃により第1、2ラウンドで地球は7.33(TR+SC)を失う(ここでの"+"は"or"の意味である)。そして帝国11SCは、集中ミサイル射撃で地球に3.66(DD+F)の損害を与え、地球11(DD+F)は、帝国に6.11SCの損害を与える。第1ラウンド開始時に11あった艦隊数差は、第3ラウンド開始時までの2ラウンドの戦闘で6.11に減ることなる。地球艦隊の5DDを8DDに増やすと、帝国11SCが与える損害は変わらないが、帝国が受ける損害は8.11SCに増加する。14あった艦隊数差は11.11になる。勝率を見ると、地球の初期戦力の5DDを8DDに増やすと32%増えて79 %になる。7DDでは69%、6DDでは58%である。地球が80%以上で勝つには、第3ラウンド開始時に帝国の1.7倍の艦隊を持っている必要があると考えられる。逆説的に、帝国は地球艦隊を第3ラウンド開始時迄に同数以下に撃ち減らせれば、80%の確率で勝利できる。

バーナード決戦戦略/第一次バーナード星系会戦[4]

防御: 帝国(2SC, 4DD, 2CL, 1CR, 4TR) vs 攻撃: 地球(3SC, 2DD, 1CL, 1MB, 1M, 6TR)

 シミュレーション(N=1E4)時間は35秒で、結果は、地球勝利75%、帝国勝利24%、両軍全滅0.5%であった。戦闘ログのプロット結果をFig. 2-4に示した。


Fig. 2-4 Results of Monte Carlo simulation of the first battle at Barnard’s star
This simulation fights until one side is wiped out.

 モンテカルロ・シミュレーションは、地球がモニター艦のみで、帝国にDDや集中ミサイル射撃済のCLが残っていても、全滅する迄戦闘を続ける。第一次バーナード星系会戦に関して、地球がモニター艦とTRのみとなり、帝国にTR以外が2個艦隊以上残っていれば、帝国は退却しても会戦の目的は達成したと考えられる。そこで、帝国が会戦目的を達成した時点で、帝国勝利とするようにスクリプトコードを修正して再計算した。その結果をFig. 2-5に示す。この修正により戦闘結果は、地球勝利50%、帝国勝利50%、両軍全滅0.5%となった。これは中村が論文中で述べている「かくてインペリウムは、二回に一回は第1ターンで勝負がつくゲームになった」と一致しており、本プログラムの結果が、熟練した他プレーヤーの経験的な感覚と大きく外れてないことが確認できた。

 一方で退却の取り扱いも重要との確認ができたが、退却に関しては、退却判断の基準、戦闘目的(特に星系を保持、敵戦力の減殺、味方戦力の保存など)により、勝敗判断で、両軍勝利のような状況もあり得るため、今のところは、プログラム本体に組み込むのではなく、シミュレーション内容により、修正を入れて対応している。


Fig. 2-5 Results of Monte Carlo simulation of the first battle at Barnard’s star
The Imperial Fleet will withdraw if it destroys anything other than the blue monitor and transport

プレーヤーの戦術的技量

 モンテカルロ・シミュレーションを作成において、バグを取り除いた前後の勝率変化が大きくても5%位であること、自分が懸案とした戦闘組の作り方による勝率変化が±1~3%に留まったことから、戦闘組の組み方が戦闘結果に与える影響が±5%位と考えられた。

Ex. 1) 防御: 地球 (1DD) vs 攻撃: 帝国 (2SC)
長距離において、帝国1SCはミサイル射撃したが、残りの帝国1SCは射撃をしていなかった。このときの帝国の勝率は65 %(N=1E4)であった。バグを修正した後の帝国の勝率は 71 % (N=1E4)になった。差分が6%に見えるのは丸め誤差の影響で、実際の差分結果は5%である。

 そこでプレーヤーの選択の影響を知るために、地球DDが帝国DDを優先的に攻撃する場合と帝国SCを優先的に攻撃する場合の勝率の違いをモンテカルロ・シミュレーション(N=1E6)で検証した。地球DDが帝国DDを優先的に攻撃する場合→帝国SCを優先的に攻撃する場合と、矢印の前後で違いを示した。検証では勝率が4.1 %〜3.2 %変化した。プレーヤーの選択は勝率に4%程度は影響すると考えられる。

Ex. 2) 防御: 地球 (1SC, 1DD) vs 攻撃: 帝国 (2SC, 1DD)
帝国勝利: 91.2→87.1% (1.54SC, 0.67DD)
地球勝利: 5.2→8.4% (0.55SC, 0.66DD)
両軍全滅: 3.6→4.4%

 次にもう少し極端な例として、公開されている自作ルール「A. 宇宙戦闘の距離決定では、サイの目が等しかったら近距離とする」[13]の影響をモンテカルロ・シミュレーション(N=1E6)で検証した。短距離になる効果が大きい組合せとして、帝国が1ユニットのSCで防御する星系に地球SCが攻撃する状況を考える。

Ex. 3) 防御: 帝国 (1SC) vs 攻撃: 地球 (1SC, 2SC, 2SC+1TR)
Table 2-2にシミュレーション結果を示した。(A)のカラムは「A. 宇宙戦闘の距離決定では、サイの目が等しかったら近距離とする」を適用した場合である。勝率の差が最大なのは地球が2SCで攻撃した場合で、地球の勝率が4.5±0.18 %増加し、帝国の勝率が4.6±0.29 %低下した。つまり、「A. 宇宙戦闘の距離決定では、サイの目が等しかったら近距離とする」とした影響も最大でも±5%に収まることが分かった。

Table 2-2 Win rate when attacking a red SC with blue units

blueblue winred windraw(A)
blue win
(A)
red win
(A)
draw
1SC18.7 % 62.7 % 18.6 % 20.7 % 58.5 % 20.7 %
2SC55.5 % 26.5 % 18.0 %60.0 %21.9 %18.1 %
2SC+TR 81.1 % 10.6 % 8.2 % 84.1 % 8.5 % 7.4 %

Column (A) is the results when the distance is set to the short range when the number of dice for determining the distance is the same.

 これらの結果から、プレーヤーの戦術的技量が勝率に与える影響は5%以内と推定される。つまりプレーヤーの宇宙戦闘に関する戦術的技量差を検出するには統計的に考えて、宇宙戦闘で1000回勝利しても十分ではないと言える。そしてN=1E4でモンテカルロ・シミュレーションするとプレーヤーの技量による影響を統計誤差と同じレベルとすることができる。

最後に、これまで開発した各プログラムの結果を比較した。

 Imperiumの研究の深化とプログラムの進化を期待して、私が作成したImperiumの宇宙戦闘結果をモンテカルロ・シミュレーションを用いて計算するPythonスクリプトを公開する。ライセンス条件はGPL(GNU General public License)に準拠する。
Isbsim3.zip

References

[1] Imperium rules booklet (Conflict Game Co.: 1977).
[2] Imperium rules booklet (GDW: 1979).
[3] Imperium rules booklet (GDW: 1990).
[4] T. Nakamura: Game Journal Jpn. Ed. No. 10, pp. 1 (1993), No. 11, pp. 9 (1993), No. 12, pp. 17 (1993), reprint: Game Journal Jpn. Ed. No. 1, pp. 50 (2001), No. 2, pp. 50 (2002), No. 3, pp. 46 (2002).
[5] T. Nakamura: Game Journal Jpn. Ed. No. 4, pp. 69 (2002).
[6] Imperium rules booklet (HobbyJAPAN CO., Ltd.: 1985).
[7] Imperium rules booklet (Kokusai-tushin Co., Ltd.: 2019).
[8] Python: Python Japan.
[9] Anaconda: Anaconda.
[10] Pyto - Python 3: Pyto.
[11] Juno for Jupyter: Juno.
[12] pythonista 3: A Full Python IDE for iOS.
[13] T. Nishiyama: Privet website (since 2001). URL://www.geocities.jp/aokigaryou/.

更新履歴
・Fig.のファイル名を変更 (2022/07/30)
・Ver. 3.1.3 → Ver. 3.1.5で再計算。勝率の基準値を70 %→80 %に変更 (2022/09/23)
・Pythonスクリプトに使用した宇宙戦闘ルールを明確化とスクリプトのダウンロード・リンクを追加 (2022/11/20)

1. Imperium
第1回 ImperiumのQ&A
第3回 輸送母艦戦術
Dash's Clinic: All right reserved by Kazuhiro Ueda, 2021, 2022.

Club TUBG was established in 1984 as a volunteer club.
We keep enjoying Simulation/Board/CardGames, ComputerGames and so on.