ミニマックスはドットアンドボックスのアルゴリズムの最良の選択ではないと思います。このゲームの全容については、エルウィンR.バーレカンプの「ドットとボックスゲーム:洗練された子供の遊び」という本を読む必要がありますが、ここで簡単な要約を示します。
Berlekampは多くの強力な観察を行っています。1つ目はダブルクロス戦略です。これはあなたが知っていると思います(ゲームのウィキペディアのページで説明されています)。
2つ目は、長鎖のパリティルールです。これは、よくプレイされているゲームの大部分に関する3つの事実に基づいています。
- ロングチェーンはゲームの最後にプレイされます。
- 最後のチェーンを除くすべてのチェーンにダブルクロスがあります。
- 長いチェーンで最初にプレイしなければならないプレイヤーはゲームに負けます。
加えて、開始するドットの数とダブルクロスの数がゲームのターン数に等しいという制約があります。したがって、最初に16個のドットがあり、1つのダブルクロスがある場合、17ターンになります。(そして、ほとんどのゲームでは、これは最初のプレーヤーが勝つことを意味します。)
これにより、ゲーム中の位置の分析が大幅に簡素化されます。たとえば、16ドットと11ムーブが再生されたこの位置を考えてみます(Berlekampの本の問題3.3)。ここで最高の動きは何ですか?
さて、2つの長いチェーンがある場合、1つのダブルクロスがあり、ゲームはさらに6つの動き(16 + 1 = 11 + 6)の後に終了し、移動するプレーヤーは負けます。ただし、長いチェーンが1つしかない場合、ダブルクロスは発生せず、ゲームはさらに5回の移動(16 + 0 = 11 + 5)後に終了し、移動するプレーヤーが勝ちます。では、プレーヤーが移動して、長いチェーンが1つしかないことを確認するにはどうすればよいでしょうか。唯一の勝利の動きは2つのボックスを犠牲にします:
ミニマックスはこの動きを見つけたでしょうが、もっと多くの仕事があります。
3番目の最も強力な観察は、ドットとボックスが不偏ゲームであるということです。使用可能な動きは、プレイする順番に関係なく、プレイの過程で発生する一般的な位置(つまり、長いチェーンを含むもの)で同じです。ボックスの)それは通常のゲームでもあります:最後に移動したプレイヤーが勝ちます。これらの特性の組み合わせは、スプレイグ・グランディ理論を使用して位置を静的に分析できることを意味します。
Berlekampの本の図25を使用して、このアプローチがいかに強力であるかの例を次に示します。
この位置には33の可能な動きがあり、よくプレイされたゲームはさらに約20の動きが続くので、ミニマックスが妥当な時間で分析を完了することが可能であったとしたら驚きます。ただし、位置には長いチェーン(上半分に6つの正方形のチェーン)があるため、静的に分析できます。位置は、値がニム数である3つの部分に分割されます。
これらのニム数は、 n個の移動が残っている位置の時間O(2 n )で動的計画法によって計算できます。とにかく、多くの一般的な小さな位置の結果をキャッシュすることをお勧めします。
ニム数は排他的論理和を使用して追加します:* 1 + * 4 + * 2 =*7。したがって、唯一の勝利の動き(nim-sumを* 0に減らす動き)は、*4を*3に変更することです(位置の合計が* 1 + * 3 + * 2 = * 0になるように)。3つの点線の赤い動きのいずれかが勝っています:
追加のために編集:この要約は実際にはそのようなアルゴリズムを構成しておらず、多くの質問に答えられていないことを私は知っています。いくつかの答えについては、バーレカンプの本を読むことができます。しかし、オープニングに関しては少しギャップがあります。チェーンカウントとスプレイグ-グランディ理論は、実際にはゲームの途中と終盤でのみ実用的です。オープニングでは、何か新しいことを試す必要があります。もし私だったら、チェーンを数えることができるところまでモンテカルロ木探索を試してみたくなるでしょう。このテクニックは囲碁のゲームに不思議に働き、ここでも生産的かもしれません。