世界を動かす技術を、日本語で。

マインスイーパーの熱力学

概要

  • Minesweeperで 安全なセル を選ぶ確率計算の重要性
  • 境界付近 の地雷配置パターンごとに発生確率が異なる事実
  • ボルツマン分布 との類似性と“マイン温度”の導出
  • 近似式の精度と、実際の比率との比較
  • 統計力学的な視点からMinesweeperを考察

Minesweeperにおける安全セルの確率計算

  • Minesweeperでは、 初手以降 に「どのセルが安全か」判断が難しい局面が発生
  • 境界付近で考えられる 地雷配置パターン が複数存在
  • 各パターンの地雷数が異なるため、 全てのパターンが等確率ではない
  • 例:ある局面で地雷が5個、6個、7個のパターンが存在
    • 各パターンの残りセルへの地雷配置通り数
      • 5個: $\binom{444}{89}$
      • 6個: $\binom{444}{88}$
      • 7個: $\binom{444}{87}$
  • したがって、 少ない地雷数のパターンが圧倒的に起こりやすい
  • 各セルの安全確率は、 パターンごとの発生確率で重み付け して計算
  • これにより、 最適なクリック候補 を選定可能

ボルツマン分布との類似性と“マイン温度”

  • 統計力学のボルツマン分布 では、系の状態(エネルギー$E$)の出現確率が$\exp(-E/kT)$に比例
  • Minesweeperでは、境界領域を「小さな系」、残りのセルを「マインバス」とみなす
  • 境界付近の地雷数$m$が“エネルギー”に相当
  • パターンの発生確率は$\binom{C}{M-m}$($C$は残りセル数、$M$は残り地雷数)
  • 近似的に$\binom{C}{M-m}\propto \exp(-m/T)$の形にできる
    • $T$は マイン温度 で、$T=1/\log(M/(C-M))$と定義
  • この近似により、 ボルツマン分布と同様の計算手法 が適用可能

近似式の精度と実際の比率

  • 近似式による発生確率の比率は、実際の計算値と オーダーは一致 するが完全一致はしない
    • 例:5個地雷パターンと7個地雷パターンの比率
      • 近似式:$1/(0.269)^2 \approx 13.86$
      • 実際:$16.2$
  • 粒子数(地雷数)が非常に多い場合、近似の精度はさらに向上
  • Minesweeperのような有限サイズの問題では、 近似のズレ も考慮が必要

Minesweeper戦略への応用

  • 安全なセルの選択 には、単純なパターン数の割合だけでなく、 重み付けした確率 を使うべき
  • 統計力学的な考え方を応用することで、 より合理的な意思決定 が可能
  • Minesweeperの問題設定は、 統計物理の直感や技法 を学ぶ題材としても興味深い

議論と反響

  • 本記事は Hacker NewsRedditMastodonLemmy でも議論
  • Minesweeperと統計物理の接点に興味を持つコミュニティの存在

Hackerたちの意見

ちょっと関係ないけど、Dragonsweeperっていうマインスイーパーの面白い拡張版があるんだ。ヒットポイントがあって、「地雷」には攻撃力があるんだよ。これをプレイすることで、マインスイーパーのメカニクスをもっと理解できた。意外と深いゲームだよ。 https://danielben.itch.io/dragonsweeper

これ、実は結構面白いゲームだよ。初めて見たときに2時間くらいプレイしちゃった。

似たようなゲーム:マモノスイーパー https://duckduckgo.com/?q=mamono+sweeper (マモノは日本語でモンスターのこと)。これはマインスイーパーのRPGバリエーションで、ライフポイントがあってレベルアップして、モンスター(地雷)と戦うんだ。モンスターを倒すと経験値がもらえるし、レベルが高いモンスターと戦うとHPを失うよ。フラッシュゲームで、以前はAndroid版もあったけど、何かの理由でストアから消えちゃった。

「許容範囲」のマインスイーパーのバージョンを作ったんだ。安全だと証明できる選択肢がなかったら、安全な手を出してくれるの。証明できない爆弾じゃないマスを選べば、絶対に爆弾じゃない。普通は、爆弾の数と同じ数のマスを選ばなければ、最初の手は安全なんだ。それをゲーム全体に拡張した感じ。N-1個の爆弾を選べば、最初の手で必ず勝てるよ。

ハハ!これはNP完全だよね?実際にはあまり関係ないかもしれないけど、プレイヤーが「許される」かどうかを判断するのに指数時間かかる構成があると思うな。

先行技術: https://news.ycombinator.com/item?id=21883875

地雷をフラグしたときに、あいまいじゃないタイルを自動でクリアしたいな。隣接するタイルの一つをダブルタップすることでできるかも。

サイモン・タサムの Mines は、ゲーム中にあいまいな状態にならないように地雷の位置を生成する別の方法を取ってるよ。 https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/min...

Windows 7のマインスイーパーは、最初のクリックでこんな感じになると思う。だいたい「いいスタート」って感じになるよね。

韓国のインディーゲームで、RPG Maker MVで作られた「どうやって私は異世界で勇者になれるのか、マインスイーパーの初心者レベルすらクリアできないのに?!」っていうゲームがあって、これがこのアイデアを極限まで押し進めてるんだ。残念ながら、韓国語だけでしか遊べないけど。

「許容的な」マインスイーパーのバージョン:これってゲームを薄めると思う。時には、確実に知るための情報が足りないこともあるからね。マインスイーパーのような低リスクな状況でこれを体験するのは、人生も時にはそういうもんだって思い出させてくれるし、ただ推測して結果を受け入れなきゃいけないんだよね。

今までプレイしたマインスイーパーのどのバージョンも、最初の一手は安全だよ。あなたのバージョンほどではないけど、これが真実じゃないって主張する熱心なプレイヤーと議論したことがあるよ(彼らはただ運が良かっただけなんだと思うけど)。

Hacker Newsで議論の続きを見る