Step 10 of 12
α-β 枝刈り
minimax の結果を変えずに、無駄な探索を早期に打ち切って高速化します。 これで MAX_DEPTH を 4 まで上げても遅延なしで AI が応手できるように — 数手先を本気で読む AI の完成です。
About this step
alpha / beta が何者か
alpha: 最大化側がこれまでに確保した 最低保証。
beta: 最小化側がこれまでに確保した 最大許容。
途中で alpha >= beta になったら、「相手がここに到達させない」ことが確定するので、
その枝のその先は読む意味がなくなる — break で打ち切り。
結果は変わらない
α-β 枝刈りは「探索する枝を減らすだけ」で、返す最終スコアは minimax と完全に同じです。 単純な高速化。MAX_DEPTH を 2 → 4 に上げても AI の応手時間が実用範囲に収まります。 これ以上深くするなら「move ordering(角を先に見る)」などの追加最適化が効きます — 発展課題。
動かしてみる
Step 09 と同じ入力でも、AI が明らかに 「2 手先まで視えた手」を打つようになります。 プレイヤーが角を取りにいく隙を潰しに来ることも。対局してみて、勝てるかどうか試してみてください。