チェスエンジンはEloレーティングをどのように模倣しますか


7

私はかなり新しいチェスプレーヤー(1400など)です。ストックフィッシュと対戦して、いつか勝ちたいです。強度を1400に変更すると、アルゴリズムは実際に何をしますか?それはランダムな失敗を作りますか、それとも単にその深さを減らし、それによって動きの最も簡単な戦術的な組み合わせだけを見ますか?もしそうなら、1400の評価の深さは何ですか?


4
それを行う場合は、意図的に(またはランダムに)悪い動きを選択することによってそれを行います。どのエンジンもこれをうまく行いません。ゲームに勝ちたければ、地元のチェスクラブに参加して人間と遊ぶことをお勧めします。
トニー・エニス

干し魚は、低レベルに設定すると、超強力な動きと超弱い動きを交互に行います。シュレッダーやチェスクレイジービショップは、低いEloでより一貫したレベルでプレイすると思います。CCRLの低定格エンジンもより一貫している可能性があります。
通行人

回答:


6

筋力減少モードでは、Stockfishはマルチpvを開始し、エンジンは複数のベストムーブを検索します。エンジンが移動を行う必要がある場合、エンジンはマルチPV移動のすべての可能性を探し、次のアルゴリズムで移動を選択します。

  1. それがひどい失策であるならば、動きを除外してください。それは、そのスコアを別のマルチPVスコアと比較することによってそれを行います。
  2. 小さな乱数を生成し、それをマルチPVスコアに適用します
  3. 変換されたスコアが最高の場合、移動を選択します

複雑に聞こえるかもしれませんが、そうではありません。例を見てみましょう。

私の女王さまをあなたのものと交換しました。私の女王をあなたのビショップまたはポーンと一緒に連れて行くことができます。あなたが司教とそれをしたなら、立場は同等だったでしょう。ポーンを使用した場合、ポーンの位置が台無しになり、わずかに劣った位置になります。あなたが他に何をしても、私は先の女王になるでしょう。

可能なスコアリングは次のとおりです。

  • BxQ-> 0.00
  • PxQ-> -0.34
  • Kh8-> -9.99

女王を取り戻さないことはひどい失策であり、可能な限り避けられるべきです。アルゴリズムに適用した場合:

計算

    1. エンジンはBxQを考慮

最高のスコアは0.00です。これが最初の動きなので、何もする必要はありません。

    1. エンジンはPxQを考慮

移動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を選択します。

    1. エンジンはKh8を考慮

女王を取り戻さないことは、大失敗です。前の移動との違いが大きすぎます(-9.99--0.34)。干し魚はそれを考慮せず、すぐに破棄します。

含意

  • エンジンはランダムなチェスをしません
  • 劣った動きをする可能性は、ランダムジェネレーターに依存します。発電機の有用性は、強度レベルにも依存します。Stockfishに求める力が弱いほど、ジェネレーターが生成する数値が大きくなります。
  • 愚かな大失敗は避けられる
  • ストックフィッシュが演じる動きは予測不可能であり、人間の予測不可能な行動をシミュレートしています。
  • 干し魚はEloレーティングを模倣していません。それはあなたに20の強さレベルを与えるだけです。

編集済み

投稿者はコメントの中で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ラベルは、関係があるように見せかけるだけの美しいラベルです。


2
ありがとう。ここを見ると、support.stockfishchess.org / kb / ios-app / …とあります。「エンジンの強度を0から2500のスケールに設定します。このスケールは人間のELOスケールにほぼ対応しています。0は絶対にひどいプレーですが、 2500が最大の強さである」
Dom

私の編集した答えを見てください。
SmallChess 2014年

1
簡単な答え:リンクに表示された内容は正しくありませんでした。
SmallChess 2014年

さらに、StockfishはElo 2500までしか機能しないと本当に信じていますか?それはそれよりもはるかに強力なエンジンです。
SmallChess 2014年

1
干し魚について私は信じていません。私は単に彼らのサポートサイト(メインの干し魚サイトからのリンク)に書かれていることを報告しています。
Dom

0

「友好的な」コンピュータ対戦相手が必要な場合、利用可能なパッケージのいくつかは、「スパー」する機能を提供します。これにより、彼らはあなたの動きを評価しその方法で評価を生成します。次に、彼らは自分のプレーを(おおよそ)あなたのレベルになるように調整します。

たとえばフリッツには、次のようなさまざまな「ホブリング」方法があります。

  • " Friend "モード(私が説明したように動作します)、
  • スパーリング」モードでは、プログラムが時々戦術的な間違いを犯します。このような間違いを探すように促すオプションの「アラート」機能を含め、3つのレベルの遊びがあります。
  • ハンディキャップと楽しいモード」では、プレーの強さ(ELOのポイントで言うが、上記を参照)、ピースのバイアス、キングの安全、攻撃の傾向など、プレーに影響を与える変数を調整します。

フリッツに関する私のコメントはバージョン9に関するものであり、現在15になっているため、おそらく少し異なります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.