最適ジム防衛パーティを最短経路問題で考察しました!【ポケモンGO】【ジム防衛】

ごごちと申します。
前回、最適なジム攻撃バトルチームを考えました。
防衛パーティを固定し、
18匹の候補ポケモンについて
最適バトルチームを最短経路問題で考えました。

今度は逆に、最適バトルチームを固定して、
防衛時間が最大になるような
最適防衛パーティを考えたいと思います。

結論から!最適ジム防衛パーティ

今回の想定攻撃チームに対する最適防衛チームは
以下の6匹と順番です。

  1. ヌメルゴン
  2. ラグラージ
  3. デスカーン
  4. ハピナス
  5. ベトベトン
  6. ラッキー

筆者としても意外なパーティになりました。
弱点を突かれにくく、
耐久力が高いポケモンが選ばれています。
計算方法について説明していきます!

計算方法について

攻撃側バトルチーム

攻撃チームは前回求めたものを使いました。
想定防衛チームに対して最適化されたパーティで、
討伐時間は125.6 秒でした。

今回の目的は
この暫定的に最適された攻撃チームに対して
討伐時間が最大となる様な
最適防衛チームを計算することです。

防衛ポケモンの候補

防衛ポケモンの候補として、12匹を考えました。

  • ハピナス
  • ラッキー
  • ソーナンス
  • トゲキッス
  • メタグロス
  • カイリュー
  • ベトベトン
  • ヌメルゴン
  • ラグラージ
  • デスカーン
  • デスバーン
  • サーフゴー

前回の計算では、6匹のみでしたが、
今回は耐久力が高く、
弱点が突かれにくいポケモンを6匹追加し、
合計12匹の候補ポケモンを考えます。

全組合せに対して最短経路問題を解く

12匹の候補から6匹選んで並び替える順列を考え、
各順列に対して、最適攻撃チームに対する
最短討伐時間を計算します。
最適攻撃チームは、ルカリオからスタートします。

12匹の候補から6匹選んで並び替える順列の総数は
12P6 = 665,280 通り
になります。

ダイクストラ法による計算は
1回1 ms程度で終わるので、
665,280 通りでも600秒、
つまり10分くらいで終わります。
よって、
今回は665,280通りの全組合せに対して
最短討伐時間を計算しました。

計算結果

全組合せの討伐時間ヒストグラム

全組合せの最短討伐時間をヒストグラムにすると、
およそ正規分布のようになりました。
平均討伐時間は129.1秒となっているので、
追加した6匹の候補ポケモンにより
攻撃チームの討伐時間を延ばせた様です。

最大討伐時間は155.7 秒となっており、
最適化前が125.6 秒だったので、
30 秒ほど改善しました。

ハピナス&ラッキー有無で分解

もう少し分布を考察してみます。
まずはハピナスとラッキーに注目します。
この2匹は他のポケモンに比べて
耐久力がずば抜けて高くなっています。
耐久指数の参考
ハピナスの耐久指数 : 83,824
ラッキーの耐久指数 : 62,336
カビゴンの耐久指数 : 55,770

よって、ハピナスとラッキーを含む防衛チームと
含まない防衛チームに注目して
分布を分けることができます。

ハピナスもラッキーも含まれない場合、
防衛時間は最も短くなります。
ラッキーは含むがハピナスは含まれない場合、
若干防衛時間が長くなっています。
ハピナスは含むがラッキーは含まれない場合、
更に防衛時間が長くなっています。
ハピナスもラッキーも含む場合、
防衛時間は最も長くなります。

よって、ハピナスとラッキーの有無は
防衛時間を最大化するのに
最重要な要因になると考えられます。

ハピナス&ラッキー有無に注目して考察

ハピナス&ラッキー以外に防衛時間を
最大化するための要因を考えたいと思います。

ハピナスとラッキーを共に含まない防衛チーム
ハピナスとラッキーを共に含む防衛チーム
に注目します。

ハピナスとラッキーを共に含まない防衛チームの
平均討伐時間は120.8 秒となっています。
そして、ハピナスとラッキーを共に含む防衛チームの
平均討伐時間は136.8秒となっています。

注目したいのは、
ハピナスとラッキーを共に含まない防衛チームの
最大討伐時間 138.6 秒と、
ハピナスとラッキーを共に含む防衛チームの
最小討伐時間 117.4秒です。

先ほどの考察では
ハピナスとラッキーの有無が重要と考えましたが、
含まないチームが含むチームよりも防衛時間が
長くなる場合もあるということです。

ハピナスとラッキーを共に含まない場合でも
他のポケモンの組合せと順番によっては
討伐時間を長く出来るし、

ハピナスとラッキーを共に含む場合でも、
他のポケモンの組合せと順番によっては
討伐時間が短くなってしまう

ということが考えられます。

ハピナスとラッキー以外のポケモンの
組合せと順番はどうすれば良いでしょうか?

交代の回数と討伐時間の関係

攻撃側の交代回数に対する討伐時間の
バイオリンプロットを作成しました。

ここからわかることとして、
交代回数4回に最適解があるということです。

交代回数が1,2回と少ない場合は、
弱点が一貫するなどして、
同じ攻撃ポケモンに
続けざまにやられてしまうので、
防衛時間も短くなってしまいます。

よって、弱点が一貫しない並び、
つまり、弱点補完が優れている並び
であることが重要です。

気をつけなければならないのは、
交代回数6回の様な毎回交代を強いる防衛パーティ
が必ずしも最適ではないという事です。

適度に交代させることも重要ではあるが、
交代をさせても、2重弱点をつかれては
防衛時間も短くなってしまいます。
よって、交代をさせることと同時に、
個々のポケモンの耐久力も
重要になると考えられます。

4段階で格付けしてみた

ここまで、最適防衛チームに
必要な要素を考えてきました。

  • ハピナス&ラッキーの有無
  • 弱点補完が優れているか

このような要素でマトリックスに分けて
防衛チームを格付けしてみました。

4番手ジム

最も防御力の低いジムの特徴は以下の通りです。

  • ハピナス&ラッキーがいない
  • 弱点補完がない

図の例でも、同じポケモンに続けざまに
やられてしまう並びとなっています。
このような並びは避ける様にしましょう。

3番手ジム

3番手ジムの特徴は以下の通りです。

  • ハピナス&ラッキーがいる
  • 弱点補完がない

ハピナス&ラッキーがいても
弱点が一貫する並びだと
防衛力が低いジムになってしまいます。

特に、強さソートをして上位にあがってくる
ケッキングやバンギラスなどは
防衛力を大幅に下げる要因になりますので、
防衛力の高いジムにしたいなら、
乗せないようにしましょう。

2番手ジム

2番手ジムの特徴は次の通りです。

  • ハピナス&ラッキーがいない
  • 弱点補完がある

ハピナスやラッキーがいなくても、
弱点が一貫しない並びを作ることができれば
防衛力の高いジムを作ることが出来ます。

図のような例だと、
攻撃側は毎回交代を強いられます。
このように弱点を補完してジムを作ることは
一般的には難しいと思うので、
同じタイプのポケモンを続けざまに
乗せない様にだけ意識しておきましょう。

1番手ジム

最強の防衛力を誇るジムの特徴は以下の通りです。

  • ハピナス&ラッキーがいる
  • 弱点補完がある

ハピナスやラッキーは弱点を突かれても
防衛時間が長いので、防衛力UPには欠かせません。

そして他にも耐久力の高いポケモン達で、
交代を誘発させるような並びを作ることが出来れば
最強の防衛力を持ったジムになります。

その他考察

ポケモンGOでは、ポケモンの技を
ノーマルアタック1種
スペシャルアタック2種
と3つのしか持てず、
6匹の並びだと全てのタイプの
弱点をつけない場合も出てきます。

草タイプでしか弱点をつけないラグラージ
などに影響されて最適バトルチームも
変わってくると考えられます。

最適攻撃チームを考える場合は、
複数のバトルチームを用意しておき
対応範囲を広げておくのが良いですね。

また、本家ポケモンと違い、
2重耐性という考え方があります。
サーフゴーのように、
はがね・ゴーストタイプに
ルカリオの様なかくとうタイプを考えると
はがねタイプで弱点
ゴーストタイプで2重耐性
トータルで1重耐性となります。
このように、最適防衛ポケモンを考える際に
タイプ相性が本家とは異なることに要注意です。

複合タイプが必ずしも良いとは限らず
この点も奥が深いです。

今後の予定

ここまでで、

防衛チーム固定→攻撃チーム最適化
攻撃チーム固定→防衛チーム最適化

がどちらも出来るようになりました。
これを繰り返して、
どのような攻撃チーム&防衛チーム
が最適になるのか導きたいと思います。

そのために、以下の事をやりたいです。

  • 最適化アルゴリズムの検討
  • データ収集の効率化

今回600,000通りの計算に
20分くらいかかりました。
考慮する必要の無い組合せの計算をスキップする
枝刈り等、最適化アルゴリズムを考えたいです。
また、候補ポケモンの追加も手作業だったので、
スクレイピングを駆使するなどして
効率化を試みたいです。

(2023/6/10追記)
データ収集の効率化を行いました!
ジムバトルの討伐時間の自動取得!ジムバトルDB作成プログラムを紹介!【ポケモンGO】【ジム防衛】

1 COMMENT

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA