I'm KUITARIDER.

がりゅうさんのサイキックミラクルブログ

シングルバトルの選出アルゴリズムを考えよう(1)

むかしむかしあるところに、対面評価値表(※)がありました

おじいさんとおばあさんは、この対面評価値を使ってシングルバトルの選出を最適化できないかと考えました。

すると、川から大きなアルゴリズムがどんぶらこどんぶらこと流れてきました。

 

※あらかじめ定義した型のポケモン同士が1対1で対面したとして、3ターン後のHP割合の差を全組み合わせについて計算したものです。過去記事参照。

 

(1)平均値最小法

計算手順:

・各相手ポケモンに対して、自分の選出に含まれる3体のポケモンの対面評価値を平均する。

・得られた各平均値のうち、最小のものをその選出の評価値とする。

・評価値が1番高い選出を採用する。

※下段の図に誤りがあります。10.7ではなく-536が平均値の最小値として検出されます。

f:id:shingaryu:20200915070832p:plain

感想:

基本的な考えとして、シングルバトルでは「全抜き」を防ぐ必要がありそれで最終的な評価値は平均値の最小値、つまり自分の選出に1番「刺さっている」ポケモンの値となっている。

それを前提にして一番単純に考えるとこうなる…と思う。

プログラマーにも計算機にも優しい計算方法。

 

主な課題点:

・対面構築寄りのシングルバトルでは処理ルートを明確に決めて立ち回ることが多く、図の例では例えばヒヒダルマ(スカーフ想定)を、圧倒的に不利対面となるサザンドラで処理するケースはあまりない。つまり実際の対戦中起こりそうにない対面を計算に含めてしまっている。

 

 



(2)最大値最小法

計算手順:

・各相手ポケモンに対して、自分の選出に含まれる3体のポケモンの中で対面評価値が最大のものを探す。

・得られた各最大値のうち、最小のものをその選出の評価値とする。

・評価値が1番高い選出を採用する。

 

感想:

(1)の懸念点を考慮するとこうなる。パッチラゴンはサザンドラで見て、ヒヒダルマハッサムで見て、、、といった役割分担を反映できる。実際の対戦でも同じように思考している人が多そう。

 

 

主な課題点:

・役割集中のリスクを考慮することができない。例えば、相手がヒヒダルマ・オーロンゲ・ハピナスと選出したときにハッサムは図の通りそれぞれ(1024, 555, 1024)の対面評価値通りのパフォーマンスを発揮できるか?

 

f:id:shingaryu:20200915071200p:plain




サンプル計算結果

自分: マリルリハッサムサザンドラカビゴンローブシンヒートロトム

相手: パッチラゴン・ヒヒダルマトリトドン・オーロンゲ・ハピナス・ウーラオス

 

(1) 平均値最小法

最適選出: マリルリハッサムサザンドラ (最小値33)

次善選出: マリルリハッサムローブシン(最小値-609)

f:id:shingaryu:20200915080545p:plain



 (2)最大値最小法

最適選出: マリルリハッサムサザンドラ (最小値339)

次善選出: マリルリサザンドラヒートロトム(最小値399)

f:id:shingaryu:20200915080619p:plain

 

 

 

 

図を描くのに時間かかりすぎたので今日はここまで

ポケモン剣盾 イタリア語版 個体値ジャッジ

ポケットモンスター ソード・シールドをイタリア語版でプレイしている日本人向けの記事です。

 

個体値の個別評価(高い順):
31 Stellare (並外れた)
30 Eccellente (素晴らしい)
26~29 Notevole (相当な)
16~25 Normale (ふつうの)
1~15 Sufficiente (十分な)
0 Mediocre (平凡な)
※王冠を使って個体値を「きたえた!」場合の表記は"Al top" (最高値)

 

 

個体値の総合評価(高い順):
151〜186 Potenziale eccellente! (素晴らしい能力!)
121〜150 Potenziale ottimo (素晴らしい能力)
91〜120 Potenziale sopra la media (平均以上の能力)
0〜90 Potenziale discreto (まずまずの能力)

 

f:id:shingaryu:20200816132004j:plain

 

【ポケモンAI】パーティーバランス計算ツール Ver. 1.2

Pokémon VGC Team Performance Evaluator
(ポケモン剣盾 パーティバランス計算機)

https://pokemon-tp-eval.herokuapp.com/

 

アップデート内容

候補ポケモンの追加(19匹)

主に鎧の孤島解禁ポケモンを含む19匹が新たにパーティーポケモン、仮想敵として選択できるようになりました。

f:id:shingaryu:20200715001939p:plain

 

仮想敵の選択機能の追加

UIは質素ですが仮想敵の選択機能を付けました。デフォルトでは現環境での使用率の高い45匹が選択されています。

ここで選択した内容は以下の項目に反映されます。

・グラフラベルとして表示される仮想敵の一覧

・検索タブにおける、評価方法に応じた相性計算

f:id:shingaryu:20200715002015p:plain

 

評価方法「PTが最も苦手なポケモンへの強さ」追加

現在のパーティーが最も苦手とする仮想敵に対して、有効な候補ポケモンをランキング表示します。仮想敵は、仮想敵選択タブで選択されたもののみが対象になります。

下記の例では現在のパーティーがゴリランダーに最も弱く、その対策としてストライクが最も有効であることが示されています。

 

f:id:shingaryu:20200715002033p:plain

 

ポケモンリスト、グラフラベルの日本語名でのソート

今まで、「ポケモンを選択」のリスト、グラフラベルの仮想敵は英語名の昇順表示となっていましたが、日本語表記の昇順としました。

ウォッシュロトム」や「ガラガラ(アローラ)」など、フォルムチェンジが存在するポケモンについては多少の表記揺れがあります。ご注意ください。

f:id:shingaryu:20200715002059p:plain

f:id:shingaryu:20200715002119p:plain