ユニット数と維持費のモデル計算によるシミュレーション 発展編
-Lv0ユニットの雇用による維持費への効果-
1.はじめに
前稿に引き続き、本稿ではwesnothの資金の増減が示す振る舞いを、計算機シミュレーションを援用して解析することにより、ゲームを有利に進めるための手がかりを得ることを目指す。前稿では議論することができなかった問題点の一つとして、維持費用のかからないLv0ユニットが、維持費やユニット総数の推移にどのような影響を与えるか、が挙げられる。デフォルトの時代で用いることができる歩く死体やコウモリ、ゴブリンなどのLv0ユニットは、既にさかんに議論されているように、勝敗を大きく左右する可能性のある重要なユニットである。本稿ではこれらを雇用することによる、維持費用という側面からの、戦局への影響の解析を試みた。
2.方法
計算機シミュレーションの方法そのものは、前稿で用いたものと同一であるため、そちらを参照していただきたい。本稿ではそのアルゴリズムに、次のような条件分岐を加えた。
維持費の増大により収入がある値以下になった場合、Lv0ユニットしか雇用しなくなる。
今回はLv0ユニットの価格を8(歩く死体と同等)としてシミュレーションを行った。
3.結果と考察
3-1.Lv0ユニットの有無による維持費用、ユニット総数等の推移
上述の方法を用いてLv0ユニットを雇用した場合としない場合とで、維持費やユニット推移にどのような相違が現れるかを解析した。村数7、初期資金100とし、陣営1、陣営2ともはじめはそれぞれ1体16ゴールドのユニット(暗黒僧かグールを想定)を雇用し、陣営1は収入が12ゴールド以下になった場合に、Lv0ユニット(8ゴールド)を雇用しはじめるものとした。このような条件においてシミュレーションを行い、各項目の時間発展をプロットしたものがFig. 1-1である。この図より、陣営2はターン経過とともに維持費用(青色点線)が単調減少し、ユニット数増加も鈍るが、陣営1ユニット数は一定の速度で増加し続けることが確認できる。
Fig. 1-1 陣営1(ゾンビ雇用あり)vs陣営2(ゾンビ雇用なし)の比較
赤実線:陣営1におけるLv1ユニット(雇用費16)の数
赤点線:陣営1の各ターン収入
黒実線:Lv1ユニットとLv0ユニットの和
青実線:陣営2(雇用費16)におけるユニット数
青点線:陣営2の各ターン収入
緑:両軍のユニット数の差
しかしながらFig. 1-1における 陣営1のユニット総数は、Lv1ユニットもLv0ユニットもひっくるめての和である。Lv0ユニットはLv1ユニットよりも性能が低いため、それらの総数によってのみ陣営1の戦力を評価すべきではないと考えられる。そこでLv1ユニット数とLv0ユニット数の重み付け和を算出することで、Lv1ユニットとLv0ユニットの性能に応じた陣営1の総戦力を表現することにした。まずは重み付けとしてユニットの雇用費を用いることにした。Fig. 1-1で用いた条件においては、Lv0ユニットはLv1ユニットのちょうど半額で雇用できるため、Lv0ユニットの重みを0.5とし、次式のように陣営1の実効ユニット数を算出した。
実効ユニット数 = (Lv1ユニット数) + (Lv0ユニット数) × 0.5 ・・・(式1)
Fig. 1-1と同一条件のシミュレーションを行い、ユニット数のかわりに式1で定義した実効ユニット数をプロットしたものをFig. 1-2に示す。この場合の実効ユニット数は、既に述べているように価格によって重み付けされた量であるため、Fig. 1-2の黒実線と青実線の差異は、維持費節約によって生じた資金差と対応している。青の陣営2ユニット数の増加が徐々に鈍るのに対し、黒実線の陣営1実効ユニット数は固有の傾きで線形に増加し続けていることが確認できる。
このような重み付けにより、Lv0ユニットとLv1ユニットとが混在する陣営と、Lv1ユニットのみからなる陣営との、同一尺度による比較が可能であることが示された。しかしながら重み付けにどのような数量を用いればよいかは議論の余地がある。このことについては次節で、条件を変化させたシミュレーションを行うことにより議論する。
Fig. 1-2 陣営1(ゾンビ雇用あり)vs陣営2(ゾンビ雇用なし)の比較
赤実線:陣営1におけるLv1ユニット(雇用費16)の数
赤点線:陣営1の各ターン収入
黒実線:陣営1の実効ユニット数(Lv1+Lv0*0.5)
青実線:陣営2(雇用費16)におけるユニット数
青点線:陣営2の各ターン収入
緑:両軍のユニット数の差
3-2.さまざまな村数、雇用切り替えタイミングによる振る舞いの相違
本節ではさまざまなパラメータを変化させたときに、シミュレーションの挙動がどのように変化するかを解析した結果について議論する。まずは重みづけは式1で定義した通りとし、村数(Nv)や、Lv0雇用に切り替えるタイミング(Switching to zombie; Sz)をさまざまに変化させた。Lv1およびLv0ユニットの雇用費や初期資金は前節と同一のものを用いた。NvとSzとをそれぞれ3段階に変化させた計9つの場合におけるシミュレーションの結果をFig. 2-1に示す。陣営1の実効ユニット数と陣営2のユニット数との差(緑実線)は、同一のNvであってもSzを増加させると大きくなることが確認できる。これはゾンビ雇用に切り替えるタイミングが早ければ早いほど、収入が高いままであることが原因である。一方で同一SzであってもNvが大きくなると、ユニット数差は小さくなる。これはNvが大きい条件ほど試合開始初期の収入が大きいために、雇用切り替えをするべき収入となるまでに時間を要することが原因である。
Fig. 2-1 さまざまな村数Nvおよび雇用切り替えポイントSzにおけるユニット数の時間発展
赤実線:陣営1におけるLv1ユニット(雇用費16)の数
赤点線:陣営1の各ターン収入
黒実線:陣営1の実効ユニット数(Lv1+Lv0*0.5)
青実線:陣営2(雇用費16)におけるユニット数
青点線:陣営2の各ターン収入
緑:両軍のユニット数の差
次に、実効ユニット数の重みについて議論する。Fig. 2-1では式1で定義した重み(0.5)を用た。しかしながら、たとえば同じ16ゴールドで暗黒僧1体か歩く死体2体かが雇用できるが、これらを等価とみなせるかどうかは難しい問題となる。Wesnothにおける局地戦はほとんどの場合集団vs集団であるため、暗黒僧1体と歩く死体2体とが戦うシチュエーションは稀である。そして集団どうしの戦いであることを考慮すると、たとえば暗黒僧3体と歩く死体6体とが等価になるとは言いにくいことは明らかである。すなわち適当な陣を敷いていれば歩く死体6体が一斉に攻撃することはほぼ不可能であるが、一方で1ターンの暗黒僧3体の攻撃で歩く死体は数匹ずつ倒される。このようなことを鑑みると、ユニット価格による重み付けは実戦の状況をあまりよく表現しない場合があるといえる。しかし本稿では、どのような重み付けの値が実戦の状況をよく表現しうるかということを追求することはしない。そのかわりに、重みの値を変化させるとどうなるかを解析することにする。その一例として、重みの式を下に示す式2のように変化させた場合を考える。
実効ユニット数 = (Lv1ユニット数) + (Lv0ユニット数) × ・・・(式2)
式2は、暗黒僧1体がゾンビ3体と等価であるという仮定を表現したものである。実効ユニット数を式2によって定義した場合にシミュレーション結果がどうなるかをFig. 2-2に示す。図から明らかなように、黒色(陣営1)と青色(陣営2)とが交わるようになった。これは、ゾンビは暗黒僧よりも実効ユニット数に対する寄与が小さいため、同じ金額であれば暗黒僧に使ったほうが得をすることに起因し、しばらくは陣営2のほうが実質ユニット数では有利になるからである。その後陣営2の維持費の増大がこの効果を上回り、最終的には陣営1が有利になる。暗黒僧1体がゾンビ3体と等価であるという仮定はかなり極端な例であり、実際の重みはこれよりも高い値になるものと考えられるが、式2のような極端な場合においても、おおよそ20ターン以降の長期戦になると陣営1が有利になることが明らかになった。
Fig. 2-2 実効ユニット数を変更した場合の、さまざまな条件におけるユニット数の時間発展
赤実線:陣営1におけるLv1ユニット(雇用費16)の数
赤点線:陣営1の各ターン収入
黒実線:陣営1の実効ユニット数(Lv1+Lv0*(1/3))
青実線:陣営2(雇用費16)におけるユニット数
青点線:陣営2の各ターン収入
緑:両軍のユニット数の差
4.まとめと展望
上記で示したように、維持費の高騰という問題に対しては、Lv0ユニットの雇用が劇的な効果をもたらすことが定量的に示された。Lv0ユニットを有するUD軍やオーク軍は是が非でもこれらを活用すべきであろうということは疑いない。しかしながら本稿で示すことができたのは、総資金という統計的な量においての優位性であり、そこには重みづけによる近似が含まれており、本稿の結果がただちに具体的な戦術を指南するとはいえない。モデルによる理論研究は普遍的な性質を発見するための強力な手法であるが、一般化のために削ぎ落とされた情報が存在することを忘れてはならない。たとえば本稿で行ってシミュレーションによると、資金面ではLv0ユニットを大量雇用すればするほど実効ユニット数が大きくなり続けるが、実戦では適切な比の暗黒僧や骨を保たなければ苦戦を免れないことは、想像に難くない。実際の試合においてLv0ユニットの運用を成功に導くためには、Lv0ユニット運用の個別研究が欠かせない。具体的には、たとえば一例として、いついかなる時に、どのような相手であればLv0ユニットを最も効果的に運用することができるかを研究する必要がある。そのような個別の事例と、本稿で示した一般的なふるまいの情報を統合することにより、Lv0ユニットの運用理論は完成に至るであろう。