ポジションが取引所の真ん中にある場合、チェスエンジンはどのようにポジションを評価しますか?


7

ミニマックスアルゴリズムでは、チェスエンジンは、先に計算できる範囲で深さ優先検索を実行し、次にこれらすべての最終位置を評価します。次に、これらの評価を使用して、一度に1つずつ逆方向に動作し、前の位置に値を割り当てます。最終的に彼らは現在の開始位置に到達し、それに評価値を与えます。

しかし、ミニマックスチェスエンジンが交換の最中にあった場合、最終的な位置をどのように評価しますか?たとえば、次のようにします。

  1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Bxc6

エンジンの深度容量が7プライ(いずれかのプレーヤーからの移動)であり、ゲームの開始からの計算の最終位置の1つとしてこの位置に到達したとしましょう。それ以上計算することはできず(そして、Blackが4 ... dxc6をプレイできることを確認)、この位置を今すぐ評価する必要があります。私には、この最終ポジションにホワイトの+3アドバンテージを割り当てる必要があるようですが、チェスエンジンにはこれを回避する方法があることを知っています。

私の質問は、チェスエンジンはこのシナリオをどのように回避するのですか?

回答:


12

優れたチェスエンジンは、あらかじめ決められた数の移動をしても停止しませんが、位置が「静止」になるまで探し続けます。つまり、保留中のキャプチャやチェックはありません。詳細な説明については、チェスプログラミングウィキスペースの静止検索を参照してください。


4

@itubは完全に正しいです。一般的に、コンピュータチェスエンジンは、少なくともマテリアルキャプチャに関して位置が明確になるまで停止しません。エンジンにdepth = 10を検索するように要求しても、実際にdepth = 10までのバリエーションを検索することを意味するわけではありません。

静止検索は、地平線効果を最小限に抑えるために重要です。


ほとんどのポジションでは、可能なキャプチャとチェックの数はかなり制限され、キングがチェックされているほとんどの場合、利用可能な移動の数はかなり制限されます。深さ6まで動作すると想定されているエンジンは、深さカウンターが96未満のときに検索し、非チェック非キャプチャー後にそのカウンターを16、キャプチャー後に1ずつ、移動の場合はNずつ増加する可能性があります。チェックを含み、現在の行でそのような動きがN回あった。かなりシンプルで、1980年代のチェスプログラムの多くはこのように機能します。
スーパーキャット2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.