カードゲームUNOにゆらぎの定理を適用してみた【論文紹介】#22

カードゲームUNOの山札と対戦相手をお風呂とみなす。そうして、自分の手札の枚数が増えたり減ったりする統計的な振る舞いにゆらぎの定理を当てはめてみると、ゲームの興味深い解釈ができるようになる。

今週紹介する論文はこちら
Emergence of Fluctuation Relations in UNO
UNOにおけるゆらぎの定理の適用可能性
2406.09348 (arxiv.org)

ゆらぎの定理についての解説はこちらの動画に譲る(説明がかなり丁寧なおかげで長いが、55:33の詳細ゆらぎの定理の説明までは見ていただきたい)。

本論文で主に用いる関係式はこちら。
$${\frac{P_f(W)}{P_r(-W)}=e^{β(W-ΔF)}}$$
前進過程が起こる確率$${P_f(W)}$$と後退過程が起こる確率$${P_r(-W)}$$の比が、エントロピー生成に等しいという、単純ながらも深遠な定理である。

また、UNOは世界中にもローカルルールがたくさんあるが、公式ルールに則るとする。UNO(ウノ)のカードの種類や公式ルール・正しい遊び方 - UNOルール.jp (uno-rule.jp)

ゆらぎの定理は、マクロスケールで見れば一様とみなされる系でも、ある程度小さい範囲(1mm~1μm程度)を見ればゆらいでいて、一時的になら勝手に温度勾配ができたりエントロピーが下がったりする。一様にみなさないと成り立たない熱力学を、ちょっとゆらぐ範囲まで拡張して適用できるようにしたのがゆらぎの定理である。
注目する小さな部分は系(target)と呼び、その周りは熱浴(heat bath)と呼ぶ。本論文ではUNOにおいて、自分の手札が系で、山札と対戦相手の手札を熱浴とみなす。ルールに従ってゲームを進めることで、系と熱浴の状態は時間発展し、熱的なゆらぎが見られる。
ゆらぎの定理$${\frac{P_f(W)}{P_r(-W)}=e^{β(W-ΔF)}}$$における仕事Wは、自分の手札の枚数の変化とし、減るほうが前進、増えるほうが後退とみなす。これは、熱浴が系に対して仕事を行うという、一般的な熱力学の文脈にも沿っている。

ゲームの進め方としては次のようなアルゴリズムで、カードをできるだけ減らそうとする前進過程と、カードを引かざるを得ない状態になりやすい(出せるカードがあるなら必ず出すが、カードをできるだけ増やそうとする)後退過程を考える。

前進過程のアルゴリズム
if 手元に出せるカードがある then
 if 手元にワイルドカードがある then
    if ワイルドカード以外で出せるカードがある then
   ワイルドカード以外で出せるカードの内ランダムに1枚出す
  else
   ワイルドカードを出し、残りの手札に一番多い色を言う
  end
 else
  出せるカードの内ランダムに1枚出す
 end
else
 山札から1枚引く
 if 引いたカードが出せる then
  出す
 else
  パス
 end
end
(引かざるを得ない状況を極力避ける(できるだけ早くカードを出し切る)ためにワイルドカードを大事にしておく。ワイルドカードを出した次の色は、次の自分のターンまでは同じ色である可能性が高いので、残りの手札に一番多い色を言う。
ランダムに出すという部分はやや雑なモデル化だが、過去に出されたカードから相手の手札を推測するなどはかなり煩雑なアルゴリズムになるのでここではしない。)

後退過程のアルゴリズム
if 手元に出せるカードがある then
 if 手元にワイルドカードがある then
  ワイルドカードを出し、残りの手札に一番少ない色を言う
 else
  出せるカードの内ランダムに1枚出す
 end
else
 山札から1枚引く
 if 引いたカードが出せる then
  出す
 else
  パス
 end
end
(出せるカードは出すが、引かざるを得ない状況になりやすい。)

自分以外の対戦相手は全員、手札の中から出せるものをランダムに出すものとする。
上記のアルゴリズムに則り、自分だけ前進過程の場合と自分だけ後退過程の場合でゲームを行い、手札の枚数変化Wの統計を取る。また、通常のカードセットだけでなく、増えるカード(ドロー2とワイルドドロー4)を抜いたカードセットでも同様に行い、計4パターンそれぞれ10^6回ゲームを行った。

図3 10^6回のゲーム中、W枚の手札枚数の変化が前進過程で起こった頻度と後退過程で起こった頻度の比の対数が縦軸、Wが横軸
左は通常のカードセット、右は増えるカードを抜いたカードセット
フィッティング直線は最小二乗法ではなく、より外れ値に強いTheil–Sen回帰直線

ゆらぎの定理$${\frac{P_f(W)}{P_r(-W)}=e^{β(W-ΔF)}}$$の両辺対数を取ると
$${ln(\frac{P_f(W)}{P_r(-W)})=β(W-ΔF)}$$となる。
中学で習ったy=ax+bのグラフを思い出せば、図3のグラフの傾きは逆温度βを表す。ゆらぎの定理が成り立つとは、傾きβが一定の直線に乗るということである。
カード枚数の変化Wが5以上ならほぼ直線状に乗っているが、5より小さいと直線より大きく上に外れるホッケーのスティック型の傾きになっている。
増えるカードを抜くと傾きが下がる(増える機会が少なくなるので前進過程のほうが起こりやすくなる)
また、カード枚数の変化が30や40にもなることは滅多にないため、サンプル数が少なく外れ値が多い。

図3に示される傾きは逆温度を示すとみなされるが、ホッケースティック型に傾きが変わる部分も細かくフィッティングし、始状態xと終状態yに対して、傾きがどうなるかを色で示したのが図5。

図5 始状態x,終状態yに対しする図3のプロットの傾き

x,yともに約4以下で傾きが逆転するのが見て取れる。これがなぜ起こるかは、図8の手札の枚数のヒストグラムを見ればわかりやすい。
傾きが正の部分(ホッケースティックの持ち手部分)は逆温度βが正なので、妥当にエントロピーが増大していく。
傾きが負の部分(ホッケースティックの打つ部分)は逆温度βが負なので、山札からの影響で手札のエントロピーが減少していく。
図6のように、手札の枚数の頻度分布を取ってみると、前進過程、後退過程どちらも、3から5枚の状態がよくある。これは、手札が少なすぎると引かざるを得ない状況になりやすいためである。
5枚以上の場合は、減る方向がよくある遷移(妥当なゲームの進み方)だが、1枚や2枚の場合は、増える方向(逆方向のゲームの進み方)がよくある。これが4枚以下で傾きが逆転する理由である。
(7と8の間に大きな段差があるのは、最初の手札の枚数が7枚のため。)

図6 手札の枚数の頻度分布 上が前進過程、下が後退過程
エラーバーも書いてあるが10^-4のオーダーで、小さすぎて見えない

図3で、直線から外れるホッケースティック型のプロットを見たときはダメかと思ったが、それが自然にゲームが進む方向と逆の方向という、ゆらぎの定理を細かく適用してβを取ったことによって見事に自然な解釈が可能となった。これは、ゆらぎの定理の適応力を見せつけられるような素晴らしい事例だと思う。

以下、私の考察だが、アルゴリズムにちょっと雑な部分としてワイルドカード以外は出せるものをランダムに出すという部分があった。ランダムではなく、過去に出されたカードから相手の手札を読んで相手を出し抜く、その部分こそがゲームとして面白い部分だと思うし、そうするとまたホッケースティックの打つ部分の形が変わって、ゆらぎの定理によるまた新しい解釈が見えてくるのではないかと思う。
また、同様の考え方でUNO以外のゲームでもゆらぎの定理が成り立つ部分がないか探せないかとも思う。前進過程と後退過程のアルゴリズムのようなものをルールに合わせてうまく考えるのが地味に難しそうだが。

(余談)
冒頭に書いた「お風呂とみなす」というのは、heat bath(熱浴)の訳語の揺れによるもの。本論文には単にbathと書いてある部分も多く、DeepLやChatGPTに訳させても熱浴ではなくお風呂と訳す部分が多い。最初に見たときの困惑を追体験してもらいたくてあえてこんな風に書いてみた。

この記事が気に入ったらサポートをしてみませんか?