3種混合の戦闘はどうなる?

戦闘モデル与ダメージ3兵種部隊の強さ

はじめに

前回の記事では1対1の戦闘を扱いましたが、実際の戦闘は複数の兵種が混在します。この記事では、盾のタンクと攻撃役(弓・槍)という編成で、最適な兵種比率を考えてみます。

モデルの設定

盾のタンクと攻撃役をまとめると、攻撃力は攻撃役にしか必要なく、防御力もタンク役にしか必要ありません。

スキル攻撃がない場合、盾が生存している間は全ての攻撃は盾に向けて行われます。盾が全滅すると即座に敗北してしまうので、盾が全滅するまでにどのくらいダメージを与えられるかという観点で最適化します。

盾の比率

非盾兵種の数は Zi(1−xi)Z_i(1-x_i) で定数なので、盾へのダメージ速度も定数になります:

ΔY1=−A2D1Z2(1−x2)\Delta Y_1 = -\frac{A_2}{D_1}\sqrt{Z_2(1 - x_2)} ΔY2=−A1D2Z1(1−x1)\Delta Y_2 = -\frac{A_1}{D_2}\sqrt{Z_1(1-x_1)}

Y1Y_1 が先に全滅するとき、その時刻は:

T=−Z1x1ΔY1T = - \frac{Z_1 x_1}{\Delta Y_1}

この時刻までに相手に与えることができるダメージは、ΔY1\Delta Y_1 と ΔY2\Delta Y_2 の定数比と Z1x1Z_1 x_1 の積になります。x1x_1 を変数としてdamageを最大化するとき、定数部分は関係ないので、結局最大化すべき量は:

x11−x1x_1 \sqrt{1 - x_1}

になります。これは「盾が多いほど長く耐えられるが、攻撃役が少ないと与ダメージが減る」trade-offを表しています。

要確認: 中間計算では ZZ の因子も入りますが、x1x_1 を変数とする最適化では定数として扱えるため、ここでは省略しています。

x1−xx\sqrt{1-x} の最大値

1−x\sqrt{1-x} を含むので微分が少し面倒ですが、「2乗しても最大値の位置は変わらない」という性質を利用します。x1−x≥0x\sqrt{1-x} \geq 0 なので:

x2(1−x)x^2(1-x)

を最大化すれば良いです。3次関数なので絵に書いても分かりますが、

x2(1−x)x^2(1-x) を微分すると:

ddx[x2(1−x)]=2x(1−x)−x2=x(2−3x)\frac{d}{dx}\left[x^2(1-x)\right] = 2x(1-x) - x^2 = x(2 - 3x)

これは x=0x = 0 または x=23x = \frac{2}{3} で 0 になります。0<x≤10 < x \leq 1 の範囲では:

x=23x = \frac{2}{3}

が最大値点です。したがって、相手の戦略によらず無条件に盾は66%が良いということになります。

これは直感的にも理解しやすいです。盾が少なすぎるとすぐに壊れて敗北、多すぎると攻撃力が足りません。23\frac{2}{3} はちょうどそのバランス点です。

槍と弓の比率

さて、与ダメージは定数になるわけですが、槍と弓の比率は何が最適でしょうか?

槍と弓の盾に対する与ダメージをそれぞれ aLya_L \sqrt{y}, aM1−ya_M \sqrt{1-y} と表すことができます(yy は槍の比率)。最大化すべき量は:

aLy+aM1−ya_L \sqrt{y} + a_M \sqrt{1-y}

これは「コーシー・シュワルツの不等式」を使うと、最大値が aL2+aM2\sqrt{a_L^2 + a_M^2} で、その最大値となる条件は:

aL2y=aM2(1−y)a_L^2 y = a_M^2 (1-y)

すなわち、

y=aL2aL2+aM2y = \frac{a_L^2}{a_L^2 + a_M^2}

簡単に言えば、ダメージを与えやすい方をより多く使う方が効果的ということになります。多くの場合弓は元々強い上に盾に強いので、必然的に弓の割合が高い方が良いということになります。

まとめ

要確認: この記事も盾が全滅するまで弓槍がダメージを受けないという前提のモデルです。実際の戦闘 (スキル攻撃) の特殊性は含まれません。