私は最近、チェスコンピュータの可能性について、コーディング担当以外の人と話し合っていました。私は理論に精通していませんが、十分知っていると思います。
私は、チェスで常に勝ったり、止まったりする決定論的なチューリングマシンはあり得ないと主張しました。player1 / 2の動きのすべての組み合わせのスペース全体を検索しても、コンピューターが各ステップで決定する単一の動きは、ヒューリスティックに基づいていると思います。ヒューリスティックに基づいているため、対戦相手が実行できるすべての動きに必ずしも勝るとは限りません。
逆に、私の友人は、コンピュータが「間違い」の動きを起こさなければ、常に勝つか引き分けになると思っていました(しかし、あなたはそれをどのように定義していますか?)。しかし、CSを採用したプログラマーである私は、賢明な反対者が与えられたとしても、あなたの良い選択でさえ、結局は「間違い」の動きを強いられる可能性があることを知っています。あなたがすべてを知っているとしても、あなたの次の動きはヒューリスティックを一致させることに貪欲です。
ほとんどのチェスコンピュータは、可能なエンドゲームを進行中のゲームと一致させようとします。これは、本質的に動的プログラミングトレースバックです。繰り返しになりますが、問題のエンドゲームは回避可能です。
編集:うーん...私はここでいくつかの羽毛をラッフルのように見えます。それは良い。
もう一度考えてみると、チェスのような有限のゲームを解くことには理論的な問題はないようです。チェスはチェッカーよりも少し複雑だと主張します。勝利は必ずしも駒の数の枯渇によるものではなく、仲間によるものです。私の最初の主張はおそらく間違っていますが、私はまだ(正式には)まだ十分に証明されていないものを指摘したと思います。
私の考えた実験は、ツリー内の分岐が行われるときはいつでも、アルゴリズム(または記憶されたパス)は、対戦相手の移動の可能性のある分岐について、(結合されないで)合致へのパスを見つけなければならないというものだったと思います。話し合った後、私たちが夢見るよりも多くのメモリがあれば、これらのパスをすべて見つけることができたので、それを購入します。