はじめに

※読み飛ばす場合は黄色いマーカー部分だけでもどうぞ

こんにちは、幸福なぺぽです

ポケモン対戦をしていて「びっくりテラス」といった言葉を聞いたことはありませんか?

SVでテラスタルが導入されたことでテラスタルを”切る”タイミングの判断やテラスタイプの選択が戦況に大きな影響を与えるようになりました。

そんな時に想定していなかったテラスタイプに遭遇し、特に負けた時に「びっくりテラス」という揶揄表現が使われます。

しかし、それは本当に「びっくり」ですか?どこまで考慮すべきで、どこから「びっくり」するのか(考慮から切るのか)説明できますか?

その答えとなりうるものが、佐藤かえで氏(TwitterYoutube)により発案された「ポケモン対戦への情報エントロピーの導入」です。ある程度まとまったのでノートに起こしました。

この記事を読むことで、適切に考慮すべき範囲の目安を知ることができますので、最後までご覧ください。

本編

導入:情報量とエントロピーとは?

情報量とは、その事象がびっくりする事象か(≒情報価値があるか)を数値化したものです。

例えば、コインを投げるとき、「表」と「裏」の情報量は等しくなりますが、「ハイドロポンプが当たった」より「ハイドロポンプが外れた」の方が確率が低い(=レアリティが高い)ので情報量が大きくなります。

また、必ず起きない(確率0)と必ず起きる(確率1)は等しく情報量0になります。

<aside> 💡 情報量の性質

  1. 確率0に近づく(レアリティが上がる)ほど数字が大きくなる
  2. 確率1で0になる
  3. 確率0でも0になる

</aside>

「確率が低いほど大きくなる」ことから、情報量は「確率の逆数」を使えば定義できそうです。

そこで、こういった大きな桁の数値同士を比較しやすくする魔法の関数「対数関数」を使って情報量は定義されます。

<aside> 💡 情報量$I$の定義:事象が起きる確率を.$P$とすると、次のように定義される。

$$ I=\log{\frac{1}{P}}=-\log{P} $$

</aside>

たとえば、「ハイドロポンプがあたる」の情報量と「ハイドロポンプが外れる」の情報量はそれぞれ次のとおり。

ちなみに底はなんでもよく、2が使われることが多いです。次の計算も底を2として計算しています。

$$ \begin{align} I_{当たる}&=\log_2{\frac{1}{0.8}}=0.321928 \notag \\ I_{外れる}&=\log_2{\frac{1}{0.2}}=2.321928 \notag \end{align}

$$

起きうる事象の**情報量の”確率込みの平均(期待値)”**を、それらの事象の持つ「エントロピー」と表現します。

それぞれの情報量について$起きうる確率\times情報量$を足し上げていくことでエントロピーは求められます。

<aside> 💡 ある事象1,2,3…が起きる確率をそれぞれ$P_1,P_2,P_3…$とすると、エントロピー$E$は次のとおり。

$$ E=\sum_{k=1}^{n}{P_k\log{\frac{1}{P_k}}} $$

</aside>

たとえば「ハイドロポンプ」のもつエントロピーは次のとおり計算されます。

$$ \begin{align} E_{ハイドロポンプ}&=0.8\times0.321928+0.2\times2.31928 \notag \\ &=0.721928 \notag \end{align} $$

ポケモンにおける情報量とエントロピー

では、情報エントロピーをどのように対戦に取り入れていくか考えていきます。