将棋やチェスのAIは、どうやって「次の一手」を決めているのでしょうか。その最も基本となる考え方がMini-Max法です。「相手は必ず最善手を打ってくる」という厳しめの前提を置いて、自分にとって最も有利な手を逆算する——ゲームAIの原点となる探索手法を解説します。
📖 ひと言でいうと
Mini-Max法とは、自分の手番ではスコアが最大になる手を、相手の手番ではスコアが最小になる手が選ばれると仮定して、ゲーム木を探索し最適な一手を決める手法です。
例えるなら、「最悪の場合に備えて選ぶ」慎重派の意思決定です。自分がどの手を打っても、相手はこちらが一番困る返しをしてくる、と想定します。その厳しい想定のもとでも一番マシな結果になる手を選べば、相手がどう出ても大崩れしない——これがMini-Max(最小の中の最大)という名前の由来的な発想です。
🖼 1枚でわかるMini-Max法
📘 対策テキストの説明
自分が番にスコアが最大になるように、相手の番にはスコアが最小になるように戦略を立てる手法。ボードゲームにおける探索木では、一手が指され他時に盤面の状態を探索木の各ノードとし、ある盤面における状態の良し悪しはスコアによって評価される。この手法は、自分の手番と相手の手番を交互に展開することで、相手が最善手を打ったと仮定し、その中で自分の最適な手を選ぶ。具体的には、葉ノード(終端状態)までのスコアを計算し、その値を親ノードに伝搬させる。自分の手番では子ノードの最大値を選択し、相手の手番では最小値を選択することで、最適な手を決定する。MiniMax法はすべての盤面状態を調べるため、計算量が膨大になる欠点がある。
かみ砕くと、①盤面の状態を探索木のノードとして表し、良し悪しをスコアで評価する、②自分の手番と相手の手番を交互に展開し、「相手は最善手を打つ」と仮定する、③木の末端(葉ノード)のスコアを親へ伝搬させ、自分の番では子ノードの最大値、相手の番では最小値を選ぶ、という3段構えです。そして最後の一文、「すべての盤面状態を調べるため計算量が膨大」という欠点が、次のキーワードであるαβ法の登場理由になります。
🔍 しっかり理解する
スコアが「下から上へ」伝わる仕組み
Mini-Max法の計算は、木の末端から根に向かって進みます。
小さな数値例で確認しましょう。自分の一手に選択肢AとBがあり、それぞれに相手の返し手が2つずつあるとします。Aの先の盤面スコアが「5と2」、Bの先が「8と1」だったとします。相手の手番では最小値が選ばれるので、Aの評価は2、Bの評価は1になります。次に自分の手番では最大値を選ぶので、評価2のAが最適手です。Bには8という魅力的な未来もありますが、相手が最善(こちらにとって最悪)の1を選んでくる前提なので、夢の8は当てになりません。「相手の意地悪を織り込んだうえでの最善」を選ぶのがMini-Max法です。
「相手は最善手を打つ」という前提の意味
この前提は、悲観的すぎるようで実は合理的です。相手がミスをしてくれれば結果は想定より良くなるだけで、悪くなることはありません。つまりMini-Max法の評価は「保証できる下限」を示しており、その下限を最大化する戦略なのです。逆にいえば、相手のミスを積極的に誘うような打ち回しはできません。あくまで二人で交互に打つゲームで、互いに合理的に行動するという状況を想定した手法です。
計算量の壁とαβ法へのバトン
Mini-Max法の弱点は、対策テキストにあるとおり、すべての盤面状態を調べるため計算量が膨大になることです。ゲーム木は一手進むごとに枝分かれが掛け算で増えていくため、チェスや将棋のようなゲームでは、数手先を読むだけでノード数が爆発します。この弱点を「結論を変えずに探索を減らす」方向で改良したのがαβ法です。試験では「Mini-Max法の欠点→αβ法が改良」という流れがそのまま出題パターンになります。
💡 具体例で考える
三目並べ(○×ゲーム)で完全に読み切る
Mini-Max法が威力を発揮する最小の例が三目並べです。三目並べは盤面のパターンが十分小さいため、ゲーム終了までの全展開を木にできます。葉ノードに「勝ち=+1、引き分け=0、負け=-1」のスコアをつけ、自分の番は最大値、相手の番は最小値で伝搬させると、どの局面でも「双方最善なら引き分け」という結論と、そのための最適手が機械的に求まります。三目並べのAIに絶対勝てないのは、このように完全読み切りが可能だからです。一方、同じことを将棋でやろうとすると盤面数が天文学的になり、そのままでは破綻する——ここが計算量の壁の実感です。
実際のゲームAIでの使われ方
チェスや将棋のAIでは、終局まで読み切る代わりに「数手先まで」で木を打ち切り、その時点の盤面を評価関数(駒の損得や位置関係を点数化する仕組み)でスコア化して、Mini-Max法の枠組みで伝搬させる方法が使われてきました。つまり葉ノードは「ゲームの決着」ではなく「読みの限界地点」で、そこでの形勢判断を数値化するわけです。この枠組みにαβ法の枝刈りを組み合わせることで、限られた時間でより深い読みを実現してきました。
⚠️ よくある誤解・紛らわしい用語
- 「常に自分のスコア最大の手を選ぶだけ」ではない — 相手の手番では最小値が選ばれると想定する点が核心です。相手の妨害を無視した単純な最大化とは異なります。
- MaxとMinの担当の取り違え — 自分の手番=子ノードの最大値、相手の手番=最小値です。この対応を逆にした選択肢が定番の誤答です。
- αβ法との関係 — αβ法はMini-Max法の探索を減らす改良版で、別系統の手法ではありません。「基本形がMini-Max、改良形がαβ」の順序を押さえましょう。
- 幅優先探索・深さ優先探索との混同 — これらは木をたどる順序の一般的な戦略、Mini-Max法は二人対戦ゲームで最適手を決めるための評価の伝搬ルールです。目的が違います。
📝 試験でのポイント
- 「自分の番はスコア最大・相手の番はスコア最小」という基本方針の記述は、定義問題でそのまま問われます。
- 「相手が最善手を打ったと仮定する」という前提の有無で正誤を判定させる選択肢が想定されます。
- 葉ノードのスコアを親ノードに伝搬させる手順(自分=最大値選択/相手=最小値選択)の穴埋め問題に備えましょう。
- 欠点(すべての盤面状態を調べるため計算量が膨大)と、その改良としてのαβ法(αカット・βカット)をセットで問う問題が頻出パターンです。
📚 まとめ
- Mini-Max法は、自分の番はスコア最大、相手の番はスコア最小になるよう戦略を立てるゲーム木の探索手法です。
- 相手が最善手を打つと仮定し、葉ノードのスコアを親へ伝搬させて最適な一手を決めます。
- 保証できる結果の下限を最大化する、堅実な意思決定の枠組みといえます。
- すべての盤面を調べるため計算量が膨大になる欠点があり、これを改良したのがαβ法です。
