web-dev-qa-db-ja.com

チェスに最適なアルゴリズムはありますか?

私は最近、チェスコンピューターの可能性について、コーダー以外の人と議論していました。私は理論に精通していませんが、十分に知っていると思います。

私は、チェスで常に勝つか、行き詰まる決定論的なチューリングマシンは存在できないと主張しました。 player1/2の動きのすべての組み合わせのスペース全体を検索しても、各ステップでコンピューターが決定する単一の動きはヒューリスティックに基づいていると思います。ヒューリスティックに基づいているため、対戦相手が行うことができるすべての動きに必ずしも勝るものではありません。

私の友人は、それとは反対に、「間違い」の動きを一度も起こさなかった場合、コンピューターは常に勝つか、または結びつくと思っていました(しかし、それをどう定義しますか?)。しかし、CSを取得したプログラマーである私は、賢明な相手を考えると、あなたの良い選択でさえ、最終的に「間違い」の動きを強いることができることを知っています。あなたがすべてを知っていても、あなたの次の動きはヒューリスティックにマッチすることに貪欲です。

ほとんどのチェスコンピューターは、可能なエンドゲームを進行中のゲームに一致させようとします。これは、本質的に動的なプログラミングトレースバックです。繰り返しますが、問題のエンドゲームは回避可能です。

編集:うーん...私はここでいくつかの羽をフリルのように見えます。それは良い。

もう一度考えてみると、チェスのような有限のゲームを解くのに理論的な問題はないようです。チェスはチェッカーよりも少し複雑で、勝利は必ずしも駒の数の消耗によるものではなく、仲間によるものだと主張します。私の元々の主張はおそらく間違っていますが、それでも、まだ十分に証明されていない(正式に)何かを指摘したと思います。

私の思考実験は、木の枝が取られるたびに、アルゴリズム(または記憶されたパス)が相手の動きの可能な枝のために(合致することなく)合致へのパスを見つけなければならないことだったと思います。議論の後、私が想像するよりも多くのメモリを与えられた場合、私はこれらのすべてのパスを見つけることができた購入します。

107
Overflown

「私は、チェスで常に勝つか、行き詰まる決定論的なチューリングマシンは存在できないと主張しました。」

あなたはまったく正しくありません。そのようなマシンが存在する可能性があります。問題は、検索しなければならない状態空間の広さです。それは有限で、ただ[〜#〜] really [〜#〜] bigです。

チェスがヒューリスティックに頼るのはこのためです-状態空間は大きすぎます(しかし有限です)。列挙すること-可能なすべてのゲームのすべてのコースに沿った完全な動きの検索をはるかに少なくすること-は、非常に大きな検索問題になります。

オープニングは、「強い」ポジションを与えるゲーム中盤にあなたを導くためにスクリプト化されています。既知の結果ではありません。終盤のゲームであっても、ピースの数が少ない場合は、列挙するのが難しく、次の最高の動きを決定します。技術的には有限です。しかし、選択肢の数は膨大です。 2つのルーク+キングでさえ、22の可能な次の動きのようなものがあります。そして、交尾に6手かかる場合、12,855,002,631,049,216手を見ています。

動きを開くときに計算を行います。オープニングムーブは20程度しかありませんが、30程度のセカンドムーブがあるため、3番目のムーブでは、360,000の代替ゲームステートを確認しています。

しかし、チェスゲームは(技術的に)有限です。巨大ですが、有限です。完璧な情報があります。定義された開始状態と終了状態があり、コイントスやダイスロールはありません。

103
S.Lott

私はチェスについて実際に発見されたことについてほとんど何も知りません。しかし、数学者としての私の理由は次のとおりです。

まず、白が最初に行くことを覚えておく必要があります。多分それは黒に利点を与えます。

ここで、黒に対して完璧な戦略なしがあると仮定します。これは、黒が何をしようとも、白が勝つために従うことができる戦略があることを意味します。ちょっと待ってください-これはそこにあることを意味しますisホワイトにとって完璧な戦略です!

これは、2人のプレイヤーの少なくとも1人doesが、そのプレイヤーが常に勝つか引くかを決める完璧な戦略を持っていることを示しています。

3つの可能性しかありません。

  • 白は完璧にプレーすれば常に勝つことができる
  • 黒は完璧にプレーすれば常に勝つことができます
  • 1人のプレイヤーが完全にプレイすれば勝ちまたは引き分けになります(両方のプレイヤーが完全にプレイすると、常に膠着状態になります)

しかし、これらのどれが実際に正しいのか、私たちは決して知らないかもしれません。

質問に対する答えはyesです。少なくとも2人のプレイヤーのうちの1人には、チェスの完璧なアルゴリズムが必要です。

72
Artelius

チェッカーのゲーム の場合、プログラムが常にゲームに勝つか、引き分けられることが証明されています。つまり、1人のプレイヤーが他のプレイヤーに負けを強いる動きを選択することはできません。

研究者は、約20年間を費やして5,000億のチェッカーポジションを通過しました。方法。チェッカーの取り組みにはトッププレイヤーが含まれ、研究チームは、動きを成功または失敗として分類するソフトウェアのチェッカールールを研究チームが支援しました。その後、研究者は毎日平均50台のコンピューターでプログラムを実行しました。数日、プログラムは200台のマシンで実行されました。研究者は進捗を監視し、それに応じてプログラムを調整しました。実際、チヌークは人間を打ち負かし、1994年にチェッカーズ世界選手権で優勝しました。

はい、チェスを解くことができます。いいえ、すぐには解決しません。

30
BCS

これはコンピューターに関する問題ではなく、チェスのゲームに関する問題です。

問題は、ゲームに負けないためのフェイルセーフ戦略が存在するかどうかです。そのような戦略が存在する場合、すべてを知っているコンピューターは常にそれを使用でき、それはもはや発見的ではありません。

たとえば、ゲームtic-tac-toeは通常、ヒューリスティックに基づいて再生されます。しかし、フェイルセーフ戦略が存在します。相手がどのような動きをするにしても、最初からやり直せば、常に負けを避ける方法を見つけます。

したがって、このような戦略がチェスにも存在するかどうかを証明する必要があります。基本的に同じですが、可能な動きのスペースだけが非常に大きくなっています。

14
ypnos

私はこのスレッドに非常に遅れて来ており、あなたはすでにいくつかの問題に気付いていることを。しかし、元マスターおよび元プロのチェスプログラマーとして、私はいくつかの有用な事実と数字を追加できると考えました。 チェスの複雑さ を測定する方法はいくつかあります。

  • チェスゲームの総数は約10 ^(10 ^ 50)です。その数は想像を絶するほど大きいです。
  • 40動き以下のチェスゲームの数は約10 ^ 40です。それはまだ信じられないほど大きい数です。
  • 可能なチェスの位置の数は約10 ^ 46です。
  • 完全なチェス検索ツリー(シャノン数)は、平均分岐係数35および平均ゲーム長80に基づいて、約10 ^ 123です。
  • 比較のために、観測可能な宇宙の原子の数は一般に約10 ^ 80であると推定されます。
  • 6ピース以下のすべてのエンドゲームは 照合および解決済み です。

私の結論:チェスは理論的には解決可能ですが、お金、モチベーション、コンピューティングパワー、またはそれを行うためのストレージはありません。

13
RoadWarrior

実際、一部のゲームは解決されています。 Tic-Tac-Toeは非常に簡単な方法で、常に勝つか引き分けられるAIを構築します。最近、Connect 4も同様に解決されました(完璧なプレイは負けてしまうため、2番目のプレイヤーには不公平であることが示されています)。

しかし、チェスは解決されておらず、それが公正なゲームであるという証拠はないと思います(つまり、完璧なプレイが引き分けになるかどうか)。厳密に言えば、理論的な観点から言えば、チェスのピース構成には限りがあります。したがって、検索スペースは有限です(ただし、非常に大きい)。したがって、完全に再生できる決定論的なチューリングマシンが存在します。ただし、構築できるかどうかは別の問題です。

9
Cybis

平均的な1000ドルのデスクトップは、2040年までにわずか5秒でチェッカーを解決できます(5x10 ^ 20の計算)。

この速度でも、チェスを解くにはこれらのコンピューターのうち100台が約6.34 x 10 ^ 19years必要です。まだ実現できません。程遠い。

2080年頃、私たちの平均的なデスクトップでは、1秒あたり約10 ^ 45の計算が行われます。 1台のコンピューターで約27.7時間でチェスを解くことができます。過去30年間のようにコンピューティング能力が成長し続ける限り、2080年までに確実に実行されます。

2090年までに、約1秒でチェスを解くのに十分な計算能力が1000ドルのデスクトップに存在します...その日までに、それは完全に些細なものになります。

チェッカーが2007年に解決され、1秒でそれを解決する計算能力が約33-35年遅れることを考えると、おそらくおおよそチェスを推定できます2055年から2057年の間に解決されます。より多くの計算能力が利用可能になると(45年後にはそうなるでしょう)、おそらくもっと早く、このようなプロジェクトにより多くを費やすことができます。しかし、私は早くとも2050年、遅くとも2060年と言います。

2060年には、チェスを解くのに平均100台のデスクトップが3.17 x 10 ^ 10年かかります。ベンチマークとして1000ドルのコンピューターを使用していますが、価格とパフォーマンスの比率も向上しているため、大規模なシステムやスーパーコンピューターもおそらく利用可能になるでしょう。また、計算能力の大きさはより速いペースで増加します。スーパーコンピューターが1秒あたり2.33 x 10 ^ 15の計算を実行できるようになり、1000ドルのコンピューターが約2 x 10 ^ 9を実行できるようになりました。比較すると、10年前は10 ^ 6ではなく10 ^ 5でした。 2060年までに、大きさの差のオーダーはおそらく10 ^ 12になり、これでさえ予想よりも速く増加する可能性があります。

これの多くは、人間としてチェスを解く意欲があるかどうかに依存しますが、計算能力により、この頃に(私たちのペースが続く限り)実行可能になります。

別の注意として、三目並べのゲームは、はるかに単純ですが、2,653,002の計算が可能です(オープンボードで)。 Tic-Tac-Toeを約2.5秒(1秒あたり100万回の計算)秒で解決する計算能力は、1990年に達成されました。

1955年に遡ると、コンピューターには約1か月(1秒間に1回の計算)で三目並べを解く力がありました。繰り返しますが、これは、コンピューターにパッケージ化できる場合に1000ドルが得られることに基づいています(1955年には明らかに1000ドルのデスクトップは存在しませんでした)、andこのコンピュータは三目並べを解くことに専念していたでしょう。..これは1955年には当てはまりませんでした。計算は高価で、この目的には使用されませんでしたが、 Tic-Tac-Toeはコンピューターによって「解決」されたと見なされましたが、実際の計算能力に遅れをとっていると確信しています。

また、45年で1000ドルを考慮すると、現在よりも約4倍の価値がなくなるため、このようなプロジェクトにはさらに多くのお金を費やすことができますが、計算能力は引き続き低下します。

8
Frank

実際には 可能 両方のプレイヤーが順不同で無限のゲームで勝利戦略を持っているためです。ただし、チェスはよく整理されています。実際、 50-moveルール のため、ゲームが持つことができる動きの数には上限があり、したがって、チェスの可能なゲームの数は限られています(正確に解決するために列挙できます..理論的には、少なくとも:)

引数の終わりは、最新のチェスプログラムの動作方法によってサポートされていますnow。チェスプログラムをコーディングして決定論的に動作させるのはリソースが多すぎるため、このように動作します。必ずしもalways動作するわけではありません。チェスはいつか 解決済み になる可能性があり、それが起こった場合、おそらくコンピューターによって解決されるでしょう。

6
Bill the Lizard

この質問の目的であるゲーム理論から、答えはイエスです。チェスは完璧にプレイできます。ゲーム空間は既知/予測可能であり、はい、孫の量子コンピューターがあれば、おそらくすべてのヒューリスティックを排除できます。

完璧な三目並べマシンを、今日ではどのスクリプト言語でも書くことができ、リアルタイムで完璧に動作します。

Othelloは、現在のコンピューターで簡単に完璧にプレイできる別のゲームですが、マシンのメモリとCPUには少し助けが必要です

チェスは理論的には可能ですが、実際には不可能です(2008年)

i-Goはトリッキーで、可能性の空間は宇宙の原子の量を超えているため、完璧なi-Goマシンを作るには時間がかかるかもしれません。

5
Robert Gould

チェスは、マトリックスゲームの例であり、定義により最適な結果が得られます(ナッシュの均衡を考えてください)。プレイヤー1と2がそれぞれ最適な動きをする場合、特定の結果に常に到達します(勝ち負けかどうかはまだ不明です)。

5
Jon Smock

1970年代のチェスプログラマーとして、私は間違いなくこれについて意見を持っています。私が約10年前に書いたことは、今日でも基本的に真実です。

「未完成の仕事とチェスプログラマーへの挑戦」

当時は、適切に行えばチェスを従来通りに解決できると思っていました。

Checkersは最近解決されました(Yay、University of Alberta、Canada !!!)が、それはBrute Forceで効果的に行われました。従来のチェスを行うには、より賢くなければなりません。

もちろん、 Quantum Computing が現実にならなければ。もしそうなら、チェスは三目並べと同じくらい簡単に解決されます。

サイエンティフィックアメリカンの1970年代初頭に、私の注意を引いた短いパロディがありました。チェスのゲームがロシアのチェスコンピュータによって解決されたという発表でした。両側で完璧なプレーで勝利を確実にする白のための1つの完璧な動きがあり、その動きは次のとおりであると判断しました:1. a4!

5
lkessler

記録のために、 checkers で勝つまたは結びつけることができるコンピューターがあります。同じことがチェスにもできるかどうかはわかりません。動きの数ははるかに多いです。また、物が変化するのは、ピースが前後だけでなく、あらゆる方向に移動できるためです。私は確信していませんが、そのチェスは決定論的であると思いますが、コンピューターが合理的な時間内にすべての動きを現在決定するには、あまりにも多くの可能な動きがあります。

5
Kibbee

あなたは死んでいると思います。 Deep BlueやDeep Thoughtなどのマシンには、多数の定義済みゲームと、それらのゲームの終わりまでツリーを解析するための巧妙なアルゴリズムがプログラムされています。これはもちろん、劇的な単純化です。ゲームの進行に沿って、コンピューターを「ビート」するチャンスが常にあります。これによって、コンピューターに最適ではない(それが何であれ)移動を強制する移動を行うことを意味します。移動の制限時間前にコンピューターが最適なパスを見つけられない場合、望ましくないパスの1つを選択することにより、間違いを犯す可能性が非常に高くなります。

実際の機械学習、または遺伝的プログラミング/進化的アルゴリズムを使用するチェスプログラムの別のクラスがあります。一部のプログラムは進化しており、ニューラルネットワークなどを使用して決定を下しています。このタイプの場合、私はコンピューターが「間違い」を犯すかもしれないが、それでも勝利に終わることを想像します。

Blondie24 と呼ばれるこのタイプのGPに関する魅力的な本があります。チェッカーについてですが、チェスにも適用できます。

5
Jason Jackson

ここで多くの答えがゲームの理論上の重要なポイントになります:

  1. チェスは、ゲームの状態に関する完全な情報を備えた有限の決定論的ゲームです
  2. 有限のゲームを解決し、完璧な戦略を特定できます
  3. ただし、チェスは十分に大きいため、ブルートフォース方式では完全に解決することはできません。

しかし、これらの観察は重要な実用的なポイントを見逃しています:無敵のマシンを作成するために完全なゲームを完全に解決する必要はありません

実際、可能な状態空間のごく一部を検索することなく、無敵のチェスマシンを作成できる可能性が非常に高いです(つまり、負けず、常に勝ちまたは引き分けを強制します)。

たとえば、次の手法はすべて、必要な検索スペースを大幅に削減します。

  • アルファ/ベータまたは MTD-f のようなツリーの枝刈り技術は、すでに検索スペースを大幅に削減します
  • 立証可能な勝利ポジション。多くのエンディングがこのカテゴリに分類されます。たとえば、KR対Kを検索する必要はありません。これは実証済みの勝利です。いくつかの作業により、より多くの保証された勝利を証明することが可能です。
  • ほぼ確実な勝利-馬鹿げたミスのない「十分に良い」プレイ(ELO 2200+についてなど)の場合、多くのチェスポジションはほぼ確実な勝利です。プログラムがそのような位置を強制することができ、位置の優位性を検出するのに十分なヒューリスティックを持っている場合、それは勝つか、少なくとも100%の確率で引き込むと安全に想定できます。
  • ツリー検索のヒューリスティック-十分なパターン認識により、「興味深い」動きの関連サブセットにすばやく焦点を合わせることができます。これは人間のグランドマスターがプレイする方法であるため、明らかに悪い戦略ではありません.....そしてパターン認識アルゴリズムは常に改善されています
  • リスク評価-ポジションの「リスク」のより良い概念は、結果がより不確実な状況に計算能力を集中させることにより、はるかに効果的な検索を可能にします(これは Quiescence Search の自然な拡張です)

上記の手法を適切に組み合わせれば、「無敵の」チェスをするマシンを作成できると断言できます。私たちはおそらく、現在の技術でそれほど遠くないでしょう。

このマシンに勝てないことを証明することはほぼ確実に難しいことに注意してください。おそらくライマン仮説のようなものになるでしょう-それが完全に機能し、失われないことを示す経験的な結果になると確信しています(数十億のストレートドローを含む)が、実際には証明する。

「完璧さ」に関する追加メモ:

ゲーム理論的な意味でマシンを「完璧」とは言わないように注意します。これは、次のような異常に強い追加条件を意味するためです

  • 勝利の組み合わせがどんなに複雑であっても、強制的に勝利することが可能なあらゆる状況で常に勝利します。 win/drawの境界には、これを完全に計算するのが非常に難しい状況があります。
  • 対戦相手のプレイにおける潜在的な不完全性に関するすべての利用可能な情報を活用します。たとえば、対戦相手が欲張りすぎて、対戦相手がミスを犯す可能性が高いという理由で、通常よりもやや弱いラインを意図的にプレイしている可能性があると推測します。不完全な対戦相手に対して、対戦相手がおそらく強制的な勝利を見つけられない可能性があり、それがあなた自身に勝つ可能性が高いと推定する場合、実際にlosingを行うことが最適です。

完全性(特に不完全で未知の相手に与えられる)は、単に無敵であることよりもmuchより難しい問題です。

3
mikera

「チェスに最適なアルゴリズムはありますか?」

はいあります。たぶん、白が常に勝つことでしょう。たぶん、黒人が常に勝つことでしょう。たぶん、少なくとも両方が常に結びついていることでしょう。私たちはどちらを知りません、そして決して知りませんが、確かに存在します。

こちらもご覧ください

2

それは完全に解決可能です。

10 ^ 50の奇数の位置があります。私の計算によると、各位置には最低64ラウンドバイトを格納する必要があります(各正方形には2つのアフィリエーションビット、3つのピースビットがあります)。それらが照合されると、チェックメイトであるポジションを特定し、ポジションを比較して関係を形成し、どのポジションが大きな結果ツリーの他のポジションにつながるかを示すことができます。

次に、そのようなものが存在する場合、プログラムは最も低い片側のチェックメイトルートのみを見つける必要があります。いずれにせよ、チェスは最初の段落の終わりにかなり単純に解決されました。

2
Solomon

player1/2の動きのすべての組み合わせのスペース全体を検索する場合、コンピューターが各ステップで決定する単一の動きはヒューリスティックに基づいています。

競合する2つのアイデアがあります。 1つは、考えられるすべての動きを検索することであり、もう1つは、ヒューリスティックに基づいて決定することです。ヒューリスティックは、適切な推測を行うためのシステムです。考えられるすべての動きを検索している場合、推測はしていません。

2
Joel Coehoorn

私はこれを見つけました John MacQuarrieによる記事 「ゲーム理論の父」による参照 Ernst Friedrich Ferdinand Zermelo 。次の結論を導き出します。

チェスでは、白が勝ちを強要するか、黒が勝ちを強めるか、両側が少なくとも引き分けを強要することができます。

論理は私には聞こえます。

2
Ben Gartner

思考実験には2つの間違いがあります。

  1. チューリングマシンが(メモリ、速度などで) "制限"されていない場合、ヒューリスティックを使用する必要はありませんが、最終状態(win、loss、draw)の評価を計算できます。完璧なゲームを見つけるには、Minimaxアルゴリズム( http://en.wikipedia.org/wiki/Minimax を参照)を使用して各プレイヤーの最適な動きを計算するだけで、 1つ以上の最適なゲーム。

  2. 使用されるヒューリスティックの複雑さにも制限はありません。完全なゲームを計算できる場合は、そこから完全なヒューリスティックを計算する方法もあります。必要に応じて、チェスの位置を「この状況Sにいる場合、私の最高の動きはM」という方法でマッピングする機能だけです。

他の人がすでに指摘したように、これは3つの可能な結果に終わります。白は勝ちを強制でき、黒は勝ちを強制でき、そのうちの1つは引き分けを強制できます。

完璧なチェッカーゲームの結果はすでに「計算済み」です。人類が以前に自分自身を破壊しない場合、いつかはコンピューターが十分なメモリと速度を持つように進化したチェスの計算もあります。または、いくつかの量子コンピューターがあります...または誰か(研究者、チェスの専門家、天才)がゲームの複雑さを大幅に減らすアルゴリズムを見つけるまで。例を挙げましょう:1から1000までのすべての数字の合計は何ですか? 1 + 2 + 3 + 4 + 5 ... + 999 + 1000を計算することも、単純に計算することもできます。N*(N + 1)/ 2 with N = 1000; result =500500。今、その式について知らないこと、数学的帰納法について知らないこと、数字を掛けたり足したりする方法さえ知らないことを想像してください。最終的にこのゲームの複雑さを軽減する未知のアルゴリズムであり、現在のコンピューターで最高の動きを計算するのに5分かかります。時間があれば、紙のペンで人間として、あるいはあなたの心の中でさえ、それを推定することさえ可能かもしれません。

だから、簡単な答えは次のとおりです。もし人類が十分に長く生き残るのであれば、それは時間の問題です!

1
SDwarfs

私は、状態空間のサイズが解決策を期待することを不可能にするという主張に納得しています。

確かに、10 ^ 50は信じられないほど大きい数です。状態空間のサイズをnと呼びましょう。

可能な限り長いゲームでの移動回数の制限は何ですか?すべてのゲームは有限数の動きで終了するため、そのような限界が存在するため、mと呼びます。

初期状態から始めて、O(m) spaceですべてのnの動きを列挙することはできませんか?もちろん、O(n)時間ですが、宇宙の大きさからの引数はそれを直接扱っていないO(m)スペースはあまりないかもしれない。O(m)このトラバース中に、トラバースするパスに沿った状態の継続が、EtherMayWin、EtherMayForceDraw、WhiteMayWin、WhiteMayWinOrForceDraw、BlackMayWin、またはBlackMayWinOrForceDrawにつながるかどうかも追跡できませんでしたか?ラティスミートでトラバースの履歴の各状態に注釈を付けます。)

私が何かを逃していない限り、それはO(n) time/O(m)チェスが可能なカテゴリーのどれに該当するかを決定するための空間アルゴリズムです。ウィキペディアでは、宇宙の年齢の推定値をプランク時間の約10 ^ 60分の1に挙げていますが、宇宙論の議論に入ることなく、宇宙の熱/寒さ/死に至るまでの時間が残っていると推測しましょう。 10 ^ 10番目のプランク時間ごと、または10 ^ -34秒ごとに1つの動きを評価します。これはあり得ないほど短い時間です(これまでに観測された最短時間よりも約16桁短くなります)。存在する、または予見される非量子Pが適切なNPの技術であるラインの上で実行する実装は、評価することを望んでいます(一歩前進し、結果の状態を中間体として分類します)状態または3つの終了状態の1つ)100 MHzのレートでの状態(10 ^ -8秒ごとに1回)このアルゴリズムは並列化できるので、このようなコンピューターの10 ^ 26番目、または私の体にあるatomごとに1台ずつ)と、結果を収集する機能が必要になります。

ブルートフォースソリューションには常に希望があります。幸運なことに、白の可能な最初の動きの1つだけを調査する際に、平均よりはるかに低いファンアウトを持つものと、白が常に勝つか勝ちか引きかを選択します。

また、チェスの定義をいくぶん縮小し、道徳的には同じゲームであると全員に説得することも期待できます。ドローの前にポジションを3回繰り返す必要があるのでしょうか?逃亡者に50ムーブで逃げる能力を発揮させる必要が本当にあるのでしょうか? en passantルールで一体何が起きているのか、誰でも理解できますか? ;)より深刻なことに、プレイヤーがチェックを逃れるためだけに動いている場合、または行き詰まりがenpassantキャプチャである場合、プレイヤーを強制的に移動させる必要がありますか?希望の非クイーンプロモーションが即時のチェックまたはチェックメイトにつながらない場合、ポーンをプロモーションできるピースの選択を制限できますか?

また、各コンピューターのハッシュベースでゲーム後期の大規模なデータベースへのアクセスを許可し、その結果(既存のハードウェアと既存のエンドゲームデータベースで比較的実行可能)が検索を早期にプルーニングするのに役立つかどうかもわかりません。明らかに、O(n)ストレージなしでは関数全体をメモすることはできませんが、大きな整数を選択して、それぞれの可能性から逆に列挙する多くのエンドゲームをメモすることができます状態を終了します。

1
Doug McClean

私はこれが少しバンプであることを知っていますが、ここに5セントの価値を入れなければなりません。コンピューター、またはその人は、勝つまたは膠着状態で、参加するすべてのチェスゲームを終了することができます。

ただし、これを実現するには、考えられるすべての動きや反応などを正確に把握し、ゲームの結果を1つずつ確認し、これを視覚化するか、この情報を分析する簡単な方法を考えて、常に分岐するマインドマップとして。

中央のノードがゲームの開始点になります。各ノードからの各ブランチは、移動を象徴し、それぞれはその兄弟の移動とは異なります。このマナーでそれを提示するには、特に紙の上でこれを行っている場合は、多くのリソースが必要になります。コンピューターでは、ブランチを戻さない限り、非常に多くの反復的な動きがあるため、これには数百テラバイトのデータが必要になる可能性があります。

しかし、そのようなデータを記憶することは、不可能ではないにしても、信じがたいことです。 (最大)8つの瞬時に可能な動きから取り出すための最適な動きをコンピューターに認識させることは可能ですが、妥当ではありません...そのコンピューターはその動きを過ぎたすべてのブランチを処理できる必要があるため、結論に至るまで、勝利または膠着状態に至るすべての結論を数え、結論を失うことに対してその数の勝利の結論に基づいて行動し、それはRAMそしてテラバイト以上!そして今日の技術では、そのようなコンピューターは世界で最も裕福な5人の男性および/または女性の銀行残高以上のものを必要とするでしょう!

したがって、すべてのその検討の後、それを行うことができましたが、誰もそれを行うことができませんでした。このようなタスクには、チェスだけでなく、科学技術やコンピューター技術でも、今日生きている30人の最も明るい頭脳が必要です。また、そのようなタスクは、少なくとも1世紀は存在しない可能性のある超大型コンピューター。完了します!この生涯ではありません。

1
MrDeeJayy

数学的には、チェスは ミニマックスアルゴリズム によって解決されました。これは1920年代に遡ります(ボレルまたはフォンノイマンによって発見されました)。したがって、チューリングマシンは実際に完璧なチェスをプレイできます。

ただし、チェスは計算が複雑なため、実際には実行できません。現在のエンジンは、いくつかの改善とヒューリスティックを使用しています。今日のトップエンジンは、プレーの強さの点で最高の人間を上回っていますが、使用しているヒューリスティックのために、無限の時間を与えられたときに完璧にプレーできない場合があります(たとえば、ハッシュの衝突が誤った結果につながる可能性があります)。

現在、完璧なプレイに関して最も近いのは、 endgame tablebases です。それらを生成する一般的な手法は、 逆行解析 と呼ばれます。現在、6個までのすべての位置が解決されています。

0
Philipp Claßen

それは単に解決可能かもしれませんが、何かが私を悩ませます:たとえツリー全体を横断できたとしても、相手の次の動きを予測する方法はまだありません。次の動きは常に相手の状態に基づいて行い、「最良の」動きを利用可能にする必要があります。その後、次の状態に基づいて、再度実行します。そのため、対戦相手が特定の方法で移動する場合、最適な移動は最適である可能性があります。相手の動きによっては、最後の動きが最適ではない場合があります。

すべてのステップで「完璧な」動きがどのように発生するかを確認できません。

そのためには、[現在のゲームの]状態ごとに、対戦相手の次の動き(三目並べなど)に関係なく、勝利につながるツリー内のパスが必要です。それを考え出す時間。

0
E Dominique