最終更新日:2004/12/12

ネギ担ぎ Minimax法

このページはOpera6.0 で正常に表示できることを確認しています。

概念とその効果

ここで紹介するMinimax法は、数多くの探索法の基となっているアルゴリズムです。 考え方は非常に単純で、「白(黒)は、白(黒)にとって局面評価が最も高くなる手を選択する。 黒(白)は、白(黒)にとって局面評価が最も低くなる手を選択する。」 という考え方に基づいて指し手を決定します。

動きの例

例を使って説明します。この例では、 1つの局面について可能な着手が3つづつ、先読み手数は2手先の自分の手までとします。

まずは、現在自分の手番です。今の段階ではまだ局面の評価値はわかっていません。

自分の手番

続いて、現在の局面から可能な着手を全て生成します。 生成した局面もまた評価値が分かっていないので、値は?としておきます。

自分の手番
相手の手番

ここではまず、自分は左端の手を指したと仮定します。 そして相手はこの局面に関して同じように手を生成します。

自分の手番
相手の手番
自分の手番

次の局面は、コンピュータにとってもう十分先読みしたと判断される深さなので、 コンピュータは局面を静的に評価します。

自分の手番
相手の手番
自分の手番 5

そして、一手戻したところの評価を仮に5とします。

自分の手番
相手の手番 5
自分の手番 5

次の手を探索します。

自分の手番
相手の手番 5
自分の手番 5 -2

相手の手番のときは評価値が小さいものを選択するので、 ここでは-2が新たな評価値とされます。

自分の手番
相手の手番 -2
自分の手番 5 -2

さらに、最後の可能な着手を調査します。

自分の手番
相手の手番 -2
自分の手番 5 -2 -1

ここでは、以前に決まった仮の評価値の方がより小さいため、 この手の表価値は-2のままとなります。

自分の手番
相手の手番 -2
自分の手番 5 -2 -1

これで全ての局面を静的に評価しました。 そのため、この局面の評価値を現在の評価値-2とし、 局面を一手戻し、そこの評価を仮に-2とします。

自分の手番-2
相手の手番 -2
自分の手番 5 -2 -1

再び自分の手番ですが、まだ探索すべき手が残っているので、 それらの手も同様に探索します。 ルートの評価値は、自分の手番なので最も大きい4となります。

自分の手番4
相手の手番 -2 -5 4
自分の手番 5 -2 -1 1 -5 6 5 8 4

以上のようにして、コンピュータは右端の手を指すよう決定します。 動きが多少分かりにくいかもしれませんが、 全ての探索法の基礎になるためしっかり理解しておいてください。

コンピュータチェスのトップへ

バナー