|

クラウドでのチェス エンジンの実行

11月XNUMX日、ノルウェーのマグヌス・カールセンが弁護する。 チェス世界選手権 セルゲイ・カルヤキン(ロシア)と対戦。 統一選手権は、1990人のチェスの伝説、カスパロフとカルポフが世界チェス選手権試合で最後に対戦した42年以来初めて、ニューヨークとアメリカの地に戻ってくることになる。 それ以来、米国でのチェスの人気は徐々に高まり、プレイヤーの強さも増しました。 わずか 40 か月前、第 10 回チェスオリンピックで米国男子チームが XNUMX 年ぶりに優勝しました。 彼らは現在、トップXNUMXプレーヤーのカルアナ、ソー、ナカムラによって率いられています。

それにもかかわらず、世界チャンピオンのマグナス・カールセンは過去 5 年間チェスを支配しており、当然のことながら世界チャンピオンを守る立場にあります。 世界選手権試合のような重要なトーナメントに備えて、グランドマスターはほとんどの場合、準備を支援するために「セコンド」(他のグランドマスター)のチームを雇います。 彼らの主な仕事は、ゲームの序盤の動きを分析して、プレイヤーのチャート領域を最大化することです。 この分析で使用される最も重要なツールの XNUMX つはコンピューター エンジンです。 コンピューター エンジンは、チェスの局面を客観的に評価するソフトウェアです。

トップのチェスのグランドマスターは、コンピューター チェス エンジンに対して多少の愛憎の関係を持っています。 これはトレーニングと準備に不可欠で非常に貴重なツールとなっていますが、オープニング ブックとして知られるオープニング シーケンスの広範な図表による創造性の喪失を嘆く人は少なくありません。 十分に準備を整えた対戦相手は創造的だが不健全なアイデアを簡単に暴露してしまうため、プレイヤーは序盤のリスクをあまり負いません。 トップのグランドマスターが冒頭の本の何千ものバリエーションを記憶する能力は、制限要因になります。 カールセンのような一部のグランドマスターは、対戦相手の準備や暗記スキルに挑戦するのではなく、「ただチェスをプレイする」ことができるように、分析が少ないだけでなく最適性も低い手を、早い段階で意図的にプレイします。

現在、グランドマスターもアマチュアもトレーニングと分析にチェス エンジンを使用しています。 多くの異なるチェス エンジン (一部は有料、一部はオープンソース) があり、チェスの局面を評価するという基本的に同じことを行います。 チェス エンジンを相手にゲームをプレイする場合、ほとんどの初心者から中級者にとって、エンジンの「強さ」は重要ではありません。 iPhone 上で動作するエンジンは、ほとんどのアマチュア プレーヤーを簡単に倒すことができます。 競争力のあるゲームを実現するには、エンジンの強度を人為的に下げる必要があります。 私たちは、チェス エンジンが「古典的な時間制御」(最初の 90 の手で 40 分)を使用したゲームで人間に勝つことができるところまで到達しました。 最高のチェス エンジンの Elo スコアは 3200 以上ですが、人間のプレイヤーの最高到達レートは 2900 に届かない程度です。したがって、人間がチェス エンジンと競争することはもはや面白くありません。 その代わりに、現在ではチェス エンジンのみを搭載し、一定の条件の下で互いに競い合うリーグが存在します。

動作様式

私はチェス エンジンの専門家ではないので、ここではチェス エンジンがどのように機能するかについての非常に高度な概要を説明します。 

チェス ゲーム内には、チェス エンジンによって異なる方法で処理できる XNUMX つの異なるステージがあります。 オープニングでは、あらかじめ定義された動きのデータベースであるオープニングブックを使用します。 エンジンが「在庫切れ」になると、評価機能とツリー検索機能を使用して最善の手を見つけます。 最後に、ボード上のピースが少ないポジションでは、エンジンは エンドゲームテーブルベース ボード上の特定のポジションのすべての勝ち手を保存します。

チェス エンジンの最も重要な部分は、可能な限り最も効率的な方法で静的位置を評価する機能です。 この評価をツリー検索と組み合わせて使用​​し、現在の位置で可能な最善の手を見つけます。 評価された位置をハッシュ テーブルに保存できるため、特定の位置を複数回再計算する必要がありません。 理論的には、エンジンがツリーを深く検索できるほど、現在の位置と最善の手を予測する能力の評価がより正確になります。

エンジン内のどのような特定のアルゴリズムがより優れたチェス エンジンを実現するかについては議論の余地があります。 一般に、静的評価が不正確な場合、ツリーをより高速に検索できても役に立ちません。 このため、エンジンを他のエンジンまたは異なるバージョンのエンジンと比較してテストし、段階的な改善によって望ましい効果が得られることを確認する必要があります。 エンジンを競い合う競技会もあります。 TCEC もそのような競技会の XNUMX つです。 これらの競技会は、チェス エンジンの新しい評価手法の開発を加速します。

一般に、ツリー検索は、この種のアルゴリズムの最適化の背後に多くの複雑な理論があるにもかかわらず、位置を評価するかなり強引な方法です。 したがって、今日のほとんどのチェス エンジンは「愚かな」ツールです。 あなたがそれに位置を与えると、それが評価されます。 グランドマスターが準備のためにこれを使用する場合、どの位置を評価する必要があるかをエンジンに伝え、いつ評価を停止するかをエンジンに伝える人間が常に関与します。 チェス エンジン開発の次のステップは、人工知能 (AI) を組み込むことです。 で見たように AlphaGo vs イ・セドル、ボードゲーム エンジンに AI を組み込むことで、その強度と実用性が大幅に向上します。 AI により、プレイヤーは特定の目的でエンジンを使用できるようになります。 たとえば、特定の対戦相手が特定のポジションにどのように反応するか、その傾向は何であるかを研究し、対戦相手がこれまでにプレーしたすべてのゲームをエンジンに供給することで、その対戦相手に特化した戦略を生成できます。 高いレベルでは、ポジションのパターンから学習し、各プレーヤーの強さを考慮した試合の結果と相関付けることができます。 これらの新しいテクノロジーの導入とエンジンの強度の向上により、競技チェスの状況が変化することは疑いの余地がありません。

ハードウェアに関する考慮事項

現在の最強のエンジンは、現状の並列ツリー検索アルゴリズムが原因で、複数のノード間で十分に並列化できないか、まったく並列化できません。 分散プロセス アルゴリズムを使用して複数のノードを並列化する試みがいくつか行われていますが、これらのバージョンはチェス コミュニティでは広く使用されていません。 したがって、今日のアプローチは、人間をループに入れて、チェス エンジンのさまざまなインスタンスのさまざまなポジションを分析することになります。 多くのチェス エンジンのシングルノード制限により、大規模なマルチコア SMP マシンは、たとえばネットワークで接続された多数のラップトップよりも大幅に優れたパフォーマンスを発揮できます。 

チェス エンジンには単一ノードの制限がありますが、クラスターを使用して、分析のために多くの評価を並行して行うことができます。 クラスターは、チェス エンジン ソフトウェアの開発にも使用できます。 多くのゲームやポジションをシミュレートすることは、エンジン コードの変更によって実際に強化されたことを確認する唯一の方法の XNUMX つです。

リスケールでチェス エンジンを実行する方法

Rescale は現在、UCI チェス エンジンを実行するためのフレームワークを提供しています。 持ち込みエンジンのセットアップです。 チェス エンジンを提供しない場合、デフォルトで Stockfish 7 が実行されます。

チェス エンジンでジョブを起動すると、ポート 30000 でブロードキャストおよびリッスンされます。 SSHトンネルを設定する必要があります ローカル ポートを分析ノード ポート 30000 に転送します。クライアント Scid を使用して Rescale で Stockfish を実行する方法の完全な概要については、以下のビデオを参照してください。

任意の UCI エンジンを実行できます。 エンジン実行可能ファイルに「engine」という名前を付けて、入力ファイルとしてアップロードしてください。 Rescale は、アップロードされたエンジンを自動的に使用します。

2 つのエンジンを相互に実行することもできます。 たとえば、コモドでストックフィッシュと対戦したい場合。 Rescale で XNUMX つのジョブを開始し、それぞれが異なるエンジンを実行します。 必ず別のローカル ポートを XNUMX 番目のエンジンに転送してください。

Rescale で実行されているエンジンに UCI クライアントをリンクするための主要なコンポーネントは、 SSHトンネル Linux/MacOS の netcat (nc) または Windows の plink.exe を使用して、エンジンへの生の接続を行います。

ARMCHAIR CHESS QBなどのサイトで「実況評価」付きの実況中継を配信 チェスベース or チェスボム これにより、すべてのチェス愛好家が次の世界選手権などのトーナメント中に肘掛け椅子のクォーターバックになることができます。 今年はさらに一歩進めて、Rescale の Chess Engine を使用して自分で分析を行ってみましょう。

著者

  • Mulyanto Poort

    HPC の副社長 Mulyanto は、Rescale でアプリケーション エンジニアリングを担当しています。 Rescale に入社する前、Mulyanto は Mid-Michigan Research, LLC でソフトウェア開発および機械エンジニアとして XNUMX 年間勤務し、大手エンジン製造会社および自動車サプライヤー企業に対して専門的な研究コンサルティングを行っていました。 Mulyanto は以前、ミシガン州立大学で研究スペシャリストとしてカスタム データと画像分析ツールの開発に注力していました。 Mulyanto は、ミシガン州立大学で機械工学の学士号と修士号を取得しています。

類似の投稿