私はかなり新しいチェスプレーヤー(1400など)です。ストックフィッシュと対戦して、いつか勝ちたいです。強度を1400に変更すると、アルゴリズムは実際に何をしますか?それはランダムな失敗を作りますか、それとも単にその深さを減らし、それによって動きの最も簡単な戦術的な組み合わせだけを見ますか?もしそうなら、1400の評価の深さは何ですか?
私はかなり新しいチェスプレーヤー(1400など)です。ストックフィッシュと対戦して、いつか勝ちたいです。強度を1400に変更すると、アルゴリズムは実際に何をしますか?それはランダムな失敗を作りますか、それとも単にその深さを減らし、それによって動きの最も簡単な戦術的な組み合わせだけを見ますか?もしそうなら、1400の評価の深さは何ですか?
回答:
筋力減少モードでは、Stockfishはマルチpvを開始し、エンジンは複数のベストムーブを検索します。エンジンが移動を行う必要がある場合、エンジンはマルチPV移動のすべての可能性を探し、次のアルゴリズムで移動を選択します。
複雑に聞こえるかもしれませんが、そうではありません。例を見てみましょう。
私の女王さまをあなたのものと交換しました。私の女王をあなたのビショップまたはポーンと一緒に連れて行くことができます。あなたが司教とそれをしたなら、立場は同等だったでしょう。ポーンを使用した場合、ポーンの位置が台無しになり、わずかに劣った位置になります。あなたが他に何をしても、私は先の女王になるでしょう。
可能なスコアリングは次のとおりです。
女王を取り戻さないことはひどい失策であり、可能な限り避けられるべきです。アルゴリズムに適用した場合:
計算
最高のスコアは0.00です。これが最初の動きなので、何もする必要はありません。
移動PxQに小さなランダムブーストを与えないと、最高のスコア(0.00)がPxQのスコア(-0.34)より大きいため、選択されないことに注意してください。
ストックフィッシュは小さな正の数を生成し、それをPxQに追加します。現在、2つの可能性があります。乱数が小さすぎる場合、たとえば0.10の場合、追加されたスコア(-0.34 + 0.10 = -0.24)は最良のスコア(0.00)と比較してまだ小さすぎるため、破棄されます。生成された乱数がPxQスコアを最高スコア(たとえば、0.40)を超えるのに十分である場合。PxQの新しいスコアは0.06で、0.00を超えています。したがって、StockfishはPxQを選択します。
女王を取り戻さないことは、大失敗です。前の移動との違いが大きすぎます(-9.99--0.34)。干し魚はそれを考慮せず、すぐに破棄します。
含意
編集済み
投稿者はコメントの中でiOS用のStockfishへのリンクについて懸念を抱いていた。「エンジンの強さを0から2500のスケールに設定します。このスケールは人間のELOスケールにほぼ対応しています。0は絶対にひどいプレーですが、2500は最大の強さです。」のリンクのステートメントに注意してください。誤解を招くだけで間違っています。理由を確認するために、このページはStockfishエンジンの開発者が作成したものではありません。ライターはアプリで報告されたスケーリングを誤って解釈しました。実際には、たとえばElo 2000などのアプリを提供すると、アプリはそれを20の強度レベルのいずれかにマッピングします。アプリに表示されるEloの評価が何であれ、まったく意味がありません。これは、エンドユーザーがレベルを調整する簡単な方法です。強度レベルとEloレーティングの間に直接の関係はありません。ソースコードを変更して、範囲を0,20から0,40に拡大すると、このようになります。ここで、強さ30を選択した場合、評価は何ですか?Elo 2400、Elo 2500、Elo 3500のいずれかです。
結局、StockfishはEloの強さを模倣しません。アプリに表示されるEloラベルは、関係があるように見せかけるだけの美しいラベルです。
「友好的な」コンピュータ対戦相手が必要な場合、利用可能なパッケージのいくつかは、「スパー」する機能を提供します。これにより、彼らはあなたの動きを評価し、その方法で評価を生成します。次に、彼らは自分のプレーを(おおよそ)あなたのレベルになるように調整します。
たとえばフリッツには、次のようなさまざまな「ホブリング」方法があります。
フリッツに関する私のコメントはバージョン9に関するものであり、現在15になっているため、おそらく少し異なります。