完璧なチェスアルゴリズムはありますか?


15

現在のチェスアルゴリズムは、プレーヤーの動きと対戦相手の動きに応じて、考えられるパスのツリーを約1レベルまたは2レベル下に行きます。チェスゲームで起こり得るすべての敵の動きを予測するアルゴリズムを開発する計算能力があるとしましょう。プレーヤーの動きに応じて、相手が任意の瞬間に取ることができるすべての可能なパスを備えたアルゴリズム。失われることのない完璧なチェスアルゴリズムはありますか?それとも、常に勝つアルゴリズムでしょうか?理論的には、考えられるすべての動きを予測できる人は、すべての動きを打ち負かす方法を見つけるか、特定の動きが彼を敗北に導く場合は単に別の道を選択する必要があります。

編集-私の質問は本当に何ですか。最適にプレイできる完璧なアルゴリズムの計算能力があるとしましょう。相手が同じ最適なアルゴリズムでプレイするとどうなりますか?これは、限られた数の(非常に大きいかどうかに関係なく)動きを持つ2人のプレーヤーのゲームすべてにも適用されます。常に勝つ最適なアルゴリズムはありますか?

個人的な定義:最適なアルゴリズムは、常に勝つ完璧なアルゴリズムです...(決して負けないものではなく、常に勝つものです)



この質問は、いくつかの誤解に基づいています。まず、チェスのコンピューターは1つか2層先をはるかに超えています。5年前の普通のラップトップでも、かなり普通のチェスプログラムは15〜16層先、クリティカルラインは25層先を探していました。第二に、答えに示されているように、「常に勝つ」という「完璧な」という定義は達成できません。第三に、チェスエンジンは動きを「予測」しません。可能な反応に対して良い動きを計算してプレイします。
デビッドリチャービー14

回答:


13

あなたの質問は古い栗に似ています:「抵抗できない力が動かない物体に出会うとどうなりますか?」問題は問題自体にあります。説明した2つのエンティティは、同じ論理的に一貫したユニバースには存在できません。常に勝つアルゴリズムであるあなたの最適なアルゴリズムは、ゲームの両サイドでプレイすることはできません。一方のサイドが勝つ必要があり、他方が定義上負けなければなりません。したがって、定義された最適なアルゴリズムは存在できません。


3
たとえば、最初のプレイヤーが勝つことができるアルゴリズムなどです。これは、最初にプレイすることが有利であることを意味します。または、おそらく最適なアルゴリズムでは、2番目のプレイヤーのみが勝つことができます。これは、2番目のプレーヤーに利点を与えます。3番目の可能性は、プレイヤーの1人が常にドローを強制できるようにするアルゴリズムです。ただし、勝利を保証するものではありません(OPが知りたいため、これは、たとえば、両方のプレイヤーが同じ勝利戦略をプレイする場合に発生します、1番目または2番目のプレイに利点がない場合)。
Realzスロー

3
@Realzまあ、はい、「最適なアルゴリズム」の定義を変更すると、好きなものを証明できます。質問者が使用するように私たちに求めた定義を使用しました。
カイルジョーンズ

これは私が人々から抜け出そうとしていた答えです。2人のプレイヤーのゲームであるため、常に勝つアルゴリズムはあり得ないため、両方のプレイヤーが同じアルゴリズムを持つことができるため、2人のうちの少なくとも1人が勝てない(負けまたは引き分け)ので、アルゴリズムが機能する方法はありません。私は先生に同じ質問をし、それがこの結論に到達するために私たちに彼のために話をたくさん取った
ジョンディメトリオ

3
@JohnDemetriou問題は、その結論が間違っていることです。チェスは先発者の優位性のために対称ゲームではありません-ホワイトがプレイして勝つことができる最適なアルゴリズムが存在する可能性は完全にありますが、ブラック彼女がホワイトではないという単純な理由でそのアルゴリズムを使用できません
スティーブンスタドニッキー

また、最初に行くことは実際には利点ではなく、白が常に最高のプレーに対してを勝つことができるアルゴリズムが実際にあることも可能です-しかし、常にできるアルゴリズムがないことはすぐに明らかです黒で白でも勝つことができます。これが人々が「可能な限り最高の結果」を語る理由です。「双方から勝つ」ことは自明では不可能だからです。
スティーブンスタドニッキー

23

まず第一に、チェスアルゴリズムは2層以上下に見えますが、すべての異なる可能性を考慮しているわけではありません。可能な動きの数の組み合わせの爆発を避けるために、検索ツリーの枝刈りは非常に重要です。

チェスのようなゲームでは、勝者のIDに関して3つの可能性があります。プレーヤー1が勝ち戦略を持っているか、プレーヤー2が勝ち戦略を持っているか、両方のプレーヤーが最適なプレイで引き分けます。チェスのゲームの場合は不明です。ただし、チェスは有限のゲームであるため、チェスを最適にプレイする非常に大きなテーブルで構成されるコンピューターアルゴリズムがあります。

もちろん、このようなアルゴリズムは実用的ではありません。しかし、いくつかのより単純なゲームでは、ゲームの「価値」(もしあればプレーヤーが勝つ)が決定されており、最適なアルゴリズムが考案されています。そのようなゲームは、解かれたゲームとして知られています。

組み合わせゲーム(として知られている)を扱う数学的主題は、組み合わせゲーム理論です。数学者は、与えられたすべての位置と動きを含むゲームのグラフを与えられて、ゲームの価値を決定する再帰的な方法を開発しました。このアルゴリズムの説明は、Wikipediaのエントリまたは主題に関する講義ノートで見つけることができるはずです。


はい、確かに、私は両方のプレーヤーが最適なアルゴリズムでプレイするとどうなりますか?プレーヤーが最適なアルゴリズムを無効にする方法を見つけた場合はどうなりますか?
ジョンデメトリオ

11
@JohnDemetriou両方のプレイヤーが最適にプレイすると、何らかの結果が得られます。その結果は、ゲームの価値と呼ばれます。チェスが白の勝利である場合、黒ができることは何もできず、最適にプレーしている白のプレーヤーを倒すことができることを意味します。白には事実上、ゲームの開始から発生する可能性のある状況で黒が行うことができるあらゆる動きに最適なカウンターを含む巨大な本があります(またはそのような本から計算による動きを生み出すことができます)。ところで、疑問符にチラチラ。1文につき1つで十分です。
rrenaud

疑問符をおaびします。それは私が一般的に入力する方法です。チェスが最適な勝利だとしたらどうでしょう。白と黒に同じ本があり、同じカウンターがある場合 それでは何が起こるでしょうか?
ジョンデメトリオ

1
@JohnDemetriou「最適」とは「可能な限り最高」を意味します。チェスのルールの数学的な結果が、最高の黒が最適な白に対しておそらくできることである場合(または、白の勝利を可能な限り遅らせることさえできる)、黒の最適なアルゴリズムはそれを達成するものです、そして、ほとんどの非最適な対戦相手に勝つことができます。
ベン

1
@JohnDemetriou常にWhiteとして勝つアルゴリズムが存在する可能性があります。明らかに、既に説明されている理由により、アルゴリズムが常に黒として勝つことはできませんでした(それ自体と対戦するため)。ブラックが勝つチェスが完璧にプレイされたことが判明したことや、ブラックが敵に勝つことを保証するアルゴリズムがあることさえ可能です。「常にどちらかの側から勝つアルゴリズム」を意味する場合、その用語を使用することをお勧めします。「最適」にはすでに明確な意味があります。
スティーブンスタドニッキー

8

まず第一に、優れたチェスアルゴリズムは1つまたは2つのレベルよりもさらに見えます。単純なツリー検索を使用するのではなく、アルファ-ベータプルーニングを実行して、考慮するオプションの数を絞り込みます。オープニングおよびエンドゲームでは、ゲームの途中で使用されるツリー検索よりもパフォーマンスが高いため、移動の大きなデータベースが使用されます。

質問に対して:あなたが私が信じているのは、「チェスは解けるか?」だと思う。仮説としては、そうですが、この結果がすぐに達成できるかどうかについては意見が異なります。チェッカーは、たとえば2007年に解決されましたが、位置がはるかに少ない(チェスの数の平方根の周り)。詳細については、Wikipediaの記事参照してください。

ちなみに、現在の最高のチェスAIは、ほぼ常に敗北するか、ワールドチャンピオンと引き分けます。現在は完璧ではありませんが、少なくともアルゴリズムはかなり優れています!


6

原則として、チェスは他のゲームと同様に解決可能です。ただし、他の回答が指摘しているように、これはすぐに起こるとは予想されていません。

編集:[1]はデマであるとコメントで指摘されているため、この回答の残りの部分はスキップしてください。

とはいえ、この方向には最近いくつかの開発がありました。[1] King's Gambitと呼ばれるチェスのオープニングは解決されたと主張しています。ホワイトを引く動きは1つだけですが、他のすべてのオープニングの動きはブラックの勝利につながります。[1]はゲームツリーを完全に調査したわけではなく、これらの結果が高い確率で保持されると主張しているだけであることに注意してください。

[1] http://chessbase.com/newsdetail.asp?newsid=8047


1
とても興味深い記事です!
Paresh

その場合、それは最適なアルゴリズムではありません。最適なアルゴリズムが存在できるかどうかを尋ねています(計算能力がある場合)
ジョンデメトリオ

1
正しい、そして常に勝つアルゴリズムとしての「最適なアルゴリズム」の定義を考慮すると、そのようなアルゴリズムは、黒と白の両方のプレーヤーに存在することはできません。大きい(ただし有限の)ゲームツリーは別として、この点でチェスに関して特別なことは何もありません。たとえば、Hexのような他のゲームと比較すると、解決策は既に知られています:最初のプレイヤーが最適な(既知の)戦略を使用してHexをプレイする場合、2番目のプレーヤーがどのアルゴリズムを使用しても、常に最初のプレーヤーが勝ちます。
ピーター

King's Gambitの解決済み記事はデマであることが判明しました。記事は「3月31日にRybkaプログラムの作者であるVasik Rajlichと彼の家族がポーランドのワルシャワからハンガリーのブダペストの新しいアパートに引っ越したことに注目してください。携帯電話やインターネットの接続までのVASは、親切に次面接」に同意した-つまり、これは... 4月1日にあった
ジョー・K

-1

常にチェスのゲームに勝つことができるかどうかは、ゲームのルールに依存します。ただし、Minimaxという名前の技術/アルゴリズムがあります(詳細については、https://en.wikipedia.org/wiki/Minimaxを参照してください)。アルゴリズムは、再帰関数を使用して、さまざまなシナリオでどのプレイヤーが優位に立つかを予測しようとすることにあります。これがよりシンプルなゲームでどのように機能するかを明確に説明します:Tic-tac-toe https://www.neverstopbuilding.com/blog/2013/12/13/tic-tac-toe-understanding-the-minimax-algorithm13


他の答えは明示的にミニマックスに言及していませんが、最終的にそれらにつながるリンクまたはアルファ-ベータプルーニング、ミニマックスをより効率的に実装するアルゴリズムに言及するものもあります。まだ言われていないこの答えは何を追加しますか?
離散トカゲ

-3

質問で実際に概念化されていない、または他の回答で指摘されていない、大規模な状態空間を強調する別の回答を追加します。あなたの前提に同意しない:

チェスゲームで起こり得るすべての敵の動きを予測するアルゴリズムを開発する計算能力があるとしましょう。

シャノン1950論文「チェスをするためのコンピューターのプログラミング」に関する情報を参照してください。コンピューターベースのチェスのプレイ/アルゴリズムの分野を紹介し、その分析は基本的に変更されておらず健全です(その後のコンピューター革命とムーアの法則によっても)。移動数を推定します。その完全に天文学的な。「革命的な予期せぬ進歩があっても、考えられるハードウェア内には決してありません」の範囲で。

人間がこの大きさの数字を理解するのに苦労しているという、おそらく多くの心理的偏見[2]の1つである、文書化された心理的事実[3]。また、参照の反事実的な思考を。[4]スーパーコンピューターは、大規模な問題を計算しながら、そのuncontroversiallyない現在構築されているか、これまで可能性のあるスーパーコンピューターの範囲内にすること建て。(そして多くのチェス愛好家は、移動/位置の可能性におけるこの「組み合わせ爆発」は、千年前のゲームに意図的に設計されているように見えるゲーム「フレーバー」の本質的な側面であると主張します)。

したがって、チェスは「コンピューターサイエンスやゲーム理論などで研究されている」より小さい「解決可能な」状態空間を持つ一部のゲームとは根本的に異なり、いくつかの重要な方法ではそのフレームワーク内で評価できません。

アリスはまた、ゲームツリーの複雑さを少なくとも 10123、「35の平均分岐係数と80の平均ゲーム時間に基づく」。比較として、観測可能な宇宙の原子数は、しばしば比較されますが、4×1079 そして 1081

とはいえ、サーチスペースを大幅に削減するために使用できるゲームへの理論的な洞察が存在する可能性はありますが、考えられません。それは1950年以来起こっていますが、根本的に画期的な方法ではありません。

また見なさい

[1] チェスを解く計算の複雑さ、tcs.se

[2] 判断と意思決定における人間のバイアス

[3] 心理学の学生は数字の概念化に関する研究を発表

[4] 反事実的思考


うまく理論的には、私の質問は、LETのは、我々はコンピューティングパワーを持っていると言うように、私たちは....白と黒のために残りの半分のためのクラスタとしての仕事に世界の半分のコンピュータを組み合わせ開始
ジョンディメトリオ

1
男、現在存在する、または存在するすべてのスーパーコンピューターを接続しても保持します。あなたの質問は、「理論上、理論が間違っていれば...」になります。理論(物理学を含む)は、基本的に、現在または将来の宇宙にある原子よりも(はるかに)多くの経路を計算できないことを示しています。 。
vzn

3
本当ですが、質問は「計算力を持っていると言ってみましょう」で始まります。これを行うことはできますか?これは実際の問題です。パワーがある場合、アルゴリズムはありますか?
ジョンデメトリオ

チェスを正確に解くのに必要な計算能力を物理的に達成することは物理的に不可能であるという事実を述べるために+1。また、なぜこの答えがすべて-1なのかわからないので、私はそれが公平だと思い、他の答えに良い洞察を加えています。
アレハンドロピアド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.