私はチェスプログラムを開発しようとしています。ツリーの通常のブルートフォース検索になりますが、異なるのは評価だけです。最初は、Claude Shannon によって設計された標準のエバリュエーターを使用して、ベースで正常に機能するかどうかを簡単にテストできるようにします。リストの生成とその周りの他のすべてのインフラストラクチャを移動すると、正常に動作します。
検索については、 wikipediaのアルファ/ベータ プルーニング コード例を使用したいと思います。これがちょっとした問題です。1 つの点があいまいです。評価は誰の視点から行うべきか?私は何日も(文字通り)グーグルで検索してきましたが、これを明示的に示している例はありません。だから:評価は
- その深さの「現在のムーバー」の視点から
- その深さでの「現在の動きの相手」の視点から
- ツリーのルートにいるムーバーの視点から、たとえば、このツリー検索が行われている人 (AI プレーヤー)
- 木の根元にいるムーバーの相手の視点から
?
rootSide、side、rootOpponent、基本的にすべてのオプションを実験的に試してから、それらを互いに対戦させました。その結果、「その深さの現在のムーバー」が使用される (最も頻繁に勝利した) ことになりましたが、そのバージョンを他のエンジンに対してテストすると、100% の損失が発生しました。
もちろん、ウィキペディアはそれについてより明確になるように更新されます! (ウィキペディアの歴史の側面にあるメモは無視してください:それは私からのもので、間違っている可能性があるので削除しました)