質問:
同じマシン上の同じコンピューターとコンピューターで異なる結果を期待することは可能ですか?
Lynob
2013-07-20 19:39:17 UTC
view on stackexchange narkive permalink

コンピューターが同じコンピューターで同じコンピューターを打ち負かすことができるかどうかを確認したかった。

最初の試合はchess.comで、コンピューターと対戦し、2つのタブを開きます。最初のタブははコンピューター(白)と私(黒)で、2番目のタブでは、白とコンピューター(黒)としてプレイします。

両方のゲームを同時にプレイしました。コンピューターレベルはエキスパートで、評価は2000です。 +。私は最初のタブのコンピューターが彼の動きを白にするのを待ち、2番目のタブの白と同じ動きをし、黒が彼の動きをするのを待ち、最初のタブで同じ動きをしました。予想通り引き分けでした。

  [FEN ""] 1. a3 d5 2. Nf3 Nc6 3. d4 Nf6 4. e3 Bg4 5. Bb5 e6 6. Bxc6 + bxc67。 h3 Bxf3 8. Qxf3 Be7 9. Nc3 c5 10. OO Bd6 11. dxc5 Bxc5 12. e4 Nxe4 13. Nxe4 dxe4 14. Qxe4 OO 15. Bf4 Qe7 16. Rad1 Rae8 17​​. Rfe1 Rb8 18. b4 Bd6 19. Qe3 Rfd8 20. Bxd6 cxd6 21. c4 Qc7 22. Rc1 Rbc8 23. Rf1 Kh8 24. Qd2 Qd7 25. c5 d5 26. Rfe1 d4 27. Qg5 Qa4 28. Ra1 d3 29. Qf4 Rxc5 30. Qxf7 Rc3 31. Qe7 Re832。 Qd6 Qb3 33. Qd7 Rf8 34. Qd6 Kg8 35. Re4 Rc2 36. Rf4 Rxf4 37. Qxf4 Qc4 38. Qb8 + Qc8 39. Qd6 Rc1 + 40. Rxc1 Qxc1 + 41. Kh2 d2 42. Qxe6 + Kf8 43. Qf 45. Qd5 + Kc7 46. Qe5 + Kb6 47. Qe6 + Kc7 48. Qe5 + Kd8 49. Qd6 + Kc8 50. Qe6 + Kb7 51. Qd5 + Kc7 52. Qe5 +  

しかし、私は満足していませんでした。最初の結果、私はPCにシュレッダーを持っているので、テストをやり直し、シュレッダーを2回開き、フルストレングスシュレッダーと対戦し、動きを模倣しました。これも引き分けでした。失敗を可能な限り排除するために、最高レベルでテストを行いました。

  [FEN ""] 1。 d4 {0s} Nf6 {+0.06 / 5 0s} 2. Nf3 {28s} d5 {+0.12 / 13 0s} 3. Bf4 {24s} Bf5 {+0.18 / 12 0s} 4. e3 {31s} e6 {+0.18 / 12 1s} 5. Bd3 {34s} Bxd3 {+0.10 / 12 0s} 6. Qxd3 {12s} Bd6 {+0.11 / 12 0s} 7. Nbd2 {37s(OO)} OO {+0.04 / 9 1s} 8 .OO {24:11m} Bxf4 {0.00 / 17 1s} 9. exf4 {22s} Qd6 {+0.08 / 12 0s} 10. f5 {28s} exf5 {0.00 / 13 0s} 11. Qxf5 {13s} Nc6 {+ 0.04 / 13 0s} 12. Rfe1 {33s} Rfe8 {0.00 / 13 0s} 13. c3 {21s} Ne7 {+0.07 / 12
0s} 14. Qe5 {44s(Qh3)} Qb6 {-0.04 / 10 1s} 15. Rab1 {1:15m(b3)} Ng6 {-0.11 / 10 2s} 16. Qg3 {27s} Rac8 {-0.08 / 12 0s} 17. Ne5 {36s(Qh3)} Re6 {-0.07 / 9 1s} 18. Nxg6 {18s} hxg6 {-0.06 / 14 0s} 19. Re5 {16s} Rce8 {-0.17 / 14 0s} 20. Rxe6 {31s} Rxe6 {-0.21 / 15 0s} 21. Qd3 {16s} Qd6 {-0.11 / 14 0s} 22. Nf3 {1:04m} Qf4 {-0.06 / 14 0s} 23. Re1 {45s} Rxe1 + {- 0.14 / 14 0s} 24. Nxe1 {12s} Qc1 {-0.04 / 14 0s} 25. Qe2 {32s} g5 {0.00 / 14 0s} 26. h3 {16s} Ne4 {+0.02 / 14 0s} 27. g4 { 28s} c5 {+0.05 / 15 0s} 28. dxc5 {1:00m} Nxc5 {+0.09 / 12 1s} 29. Qe8 + {17s} Kh7 {+0.01 / 16 0s} 30. Kg2 {44s} Qb1 {+0.01 / 16 0s} 31. Nf3 {37s} f6 {+0.01 / 16 0s} 32. b4 {21s} Nd3 {0.00 / 17 0s} 33. Qh5 + {1:01m} Kg8 {0.00 / 20 0s} 34. Qe8 + { 23s} Kh7 {0.00 / 19 0s} 35. Qh5 + {52s} Kg8 {0.00 / 20 0s} 36. Qe8 + {6s} Kh7 {0.00 / 99 0s} 1 / 2-1 / 2  

その結果にも満足できなかったので、シュレッダーを使用してテストをやり直しましたが、まったく同じ動きをしました!

この質問は、「チェスエンジンの考え方」に関するものではありません。 "、そのトピックは多くの時間で議論されていますこのサイトのes。コンピューターが同じマシン上で自分自身を打ち負かすことができるかどうかを確認したかったので、私は実験を行いました。

私のHPラップトップはコアI5、Windows 764ビットを実行する8GBramddr3です。しかし、Chess.comサーバーでもテストを行いましたが、それでも同じ結果が得られました。どのサーバーを使用しているかわかりません。

以前は濃い青でしたが、オプションがありました。エンジンはそれ自体と対戦することができ、片側が勝っていたので、シュレッダーでこのオプションを見つけることはできませんが、その動きを模倣した場合、つまり明示的に行った場合、コンピューターはそれ自体を打ち負かすことができないようですディープブルーとディープブルーを比較すると、エンジンは大失敗を起こし始め、片側が勝つことがわかりますが、私がしたことを実行すると、別のウィンドウで自分の動きを模倣すると、引き分けになります。

ゲームを分析するつもりはありませんが、いくつかのものが私にとって興味深いものでした:

  • chess.comの最初の試合では、初心者なら誰でも、 d2 でポーンを宣伝したり、クイーンを交換したり、ポーンを宣伝したりするためにできることは何でもしなければならないことを理解するでしょう。ゲームを終了します。

  • どちらのゲームでも、黒はより攻撃的に見えましたが、勝つことができませんでした。

私はそれを知っていますコンピューター対コンピューターの競争では、スーパーコンピューターを使用しますが、コンピューターが同じマシンで勝つ可能性はありますか?

シュレッダーで3回テストを行い、同じ動きをしました。だから私は彼らがそうしていると思う

  if d4do Nf6  

それが私ががっかりしている理由です、私は全能のシュレッダーが少なくとも試みて、いくつかのAIを使うことを期待しますさまざまな開口部、私は開口部データベースを使用しませんでしたが、シュレッダーにはいくつかの基本的な開口部が詰め込まれていると予想され、chess.comエンジンもそれ自体を打ち負かすことができませんでした。

コンピューターと同じマシン上の同じコンピューターで異なる結果が予想されますか?

大文字を含む標準英語を書いてください。 (ただし、興味深い質問です。)
あなたはチェスエンジンがどのように考えるか知りたくないと書いていますが、良い答えを書くために、私はコンピューターとエンジンがどのように機能するかについての説明を含める必要があります(私は仕事を好む、考えない)。簡単な答えはそれが依存するということです。
@Halvardはい、あなたの答えの中で何でも気軽に話してください、私はユーザーが私のポイントを見ることができるように、これが重複していると彼らに思わせたくないと言いましたが、あなたの答えでは、何でも気軽に話してくださいまったく
私のHoudiniでは、常に異なる結果が得られます。アリーナはその価値を認めているので、トーナメントレベルで3000Eloで両方プレイしました。
四 答え:
Halvard
2013-07-23 12:59:30 UTC
view on stackexchange narkive permalink

最初の説明:

次のように記述します:

つまり、ディープブルーとディープブルーを明示的に指示すると、エンジンが失敗を開始するので、片側が勝つことがわかりますが、私がしたことを実行すると、別のウィンドウで自分の動きを模倣すると、引き分けになります。

そうではありません。 。動きを模倣し、それ自体を明示的に再生しても、(大部分の)違いはありません。エンジンはプログラムされていないため、自分でプレイすることがわかっている場合は、プレイの精度が低下します。

決定論

ldogとして彼の返事に書いたように、ここにはいくつかの質問が1つにまとめられています。 1つは、シナリオ全体を正確に再現した場合、コンピューターは同じ動きをするでしょうか? 決定論が当てはまる場合、答えはイエスになります。なぜなら、ランダム性でさえ実際にはランダムではないからです(理解が不足しているために事前に予測できないものです)。まったく同じシナリオを再現することを不可能にする多くの要因があるため、哲学的な議論は脇に置いておきます。

ランダム性

ほとんどのエンジンには本を開く。あなたの場合、シュレッダーには1行しかないかもしれません。開く本はハードコードされたif-elseコードです。この理由は、コンピューターはまだオープニングに関する過去の人間の知識を分析するのに十分なほど強力ではないため、この知識をより直接的な方法で追加することは理にかなっています。しかし、ほとんどのエンジンには今では大きな本があります。ここでランダム性が作用します。 1.d4ではなく1.e4をランダムにプレイすることを選択すると、まったく新しいゲームになります。ほとんどの商用エンジン(Houdini、Fritz)と多くの無料エンジン(Stockfish)にも、本のランダム度の設定があります。

もう1つのランダム性の側面は、対戦相手が考えている間に考えていることです。ほとんどの新しいエンジンはこれを行います。これは、特定のレベルに設定した場合でも、時間についても考えることを意味します。このようなエンジンでは、動きを模倣しようとすると、まったく同じミリ秒数で動きを再生できないため、突然異なる再生が行われる場合があります(その時点で、エンジンはより深く到達する可能性があります)レベル)。

AI

ランダム性に加えて、エンジンが本を離れると、AIを使用する場合があります。 Houdiniで実行できる簡単なテストは次のとおりです。評価が少し変化するのがわかるまで、任意の動きを再生します。次に、半分の動きを10回戻すと、再生が異なる場合があります。これはAIではありませんが、すでに行った分析を考慮に入れています。

他のエンジンもあり、より純粋なAIを扱うオープンソースプロジェクトもあります。これらのエンジンは、以前の経験から学習するため、同じ動きを2回再生しない場合があります(特に負けた場合)。 この質問を読んで、ほとんどの商用エンジンがまだAIを使用していない理由を理解することもできますが、おそらく間もなく発生するでしょう。

結論

ランダム性(および決定論に起因する非現実的な議論を破棄する)および/またはAIを使用すると、同じコンピューターで2つのエンジンを互いにピットインすると、異なるゲームが発生し、たまに1つになることがわかります。

したがって、答えはエンジンと、(理論的なテストではなく)実際のテストを考えるかどうかによって異なります。それが再生されるコンピューターは重要ではなく、模倣することで実際には異なる再生が行われる可能性が高くなります。

ldog
2013-07-22 23:37:53 UTC
view on stackexchange narkive permalink

あなたの質問

それで、同じマシン上の同じコンピューターとコンピューターで異なる結果を期待することは可能ですか?

少し複雑すぎるかもしれません変数が多すぎます。代わりに、より単純な質問を検討してください。

チェスエンジンは、同じ位置ですべての設定が等しい場合(プライの深さ、時間制御)、同じ動きを生成しますか?

明らかに、この質問に対する答えがはいの場合、コンピューターがその選択から逸脱することを期待してはなりません。チェスエンジンがどのように検索を実行するかについての私の理解から、この質問に対する答えははいは2つの要因に大きく依存しています

1)2つの動きが同じ位置評価を獲得する場合(これはスコアが実数値の場合は確率0)この質問に答えるときは、チェスエンジンがタイの動きを解決する方法を考慮する必要があります。

2)主に、チェスエンジンのランダム性への依存性がこれを決定します。検索ツリーでチェスエンジンを検索するときの移動順序は、主にそのプレイの強さを決定します。本質的に、うまく機能する移動順序を選択することは正確な​​科学ではないため、チェスエンジンが異なればこれも異なる方法で実行されます。経験的に最も高いスコアを付けるものについては一般的なコンセンサスがありますが、これがほとんどのチェスエンジンが異なるところです。特に、一部のチェスエンジンは、実際には移動順序を部分的にランダム化し、次に、他のすべてが等しい場合にチェスエンジンが再生する可能性のある実際の移動をランダム化する場合があります。これは一般的に一般的な手法ではありませんが、実際には、同じ位置で時間制御なしで異なる動きをするチェスエンジンをプレイしました。これは、確率論的アプローチへの依存、したがってランダム性への依存が原因である可能性が最も高いです。

Allure
2020-01-28 06:15:49 UTC
view on stackexchange narkive permalink

OPには2つの別々の質問があります。両方に対処する:

それで、同じマシン上の同じコンピューターとコンピューターで異なる結果を期待することは可能ですか?

はい、チェスエンジンはそうではありません。完全に決定論的ではありません。 この質問をご覧ください。その質問への答えは、従来のエンジンを扱っています。新しいニューラルネットワークベースのエンジンは、従来のエンジンよりもランダムではありませんが、同様の理由で完全に決定論的ではありません。

コンピューターが同じコンピューターを同じ上で打ち負かすことができるかどうかを確認したかったのですが、マシン。

もちろんです。その理由は、すべての動きが検索ツリーを狭めるからです。たとえば、開始位置でシュレッダーを実行すると、1。e4から1.Na3までのすべてが検索されます。最終的に、1。Na3は1. e4より劣っていて、1。Na3を再生しないと結論付けられますが、それでも1.Na3を検索します。これは、メインブランチを検索することのない計算能力です。シュレッダーが黒をプレイしているとき、それは相手の最初の動きが何であるかをすでに知っています。これらの位置が発生していないため、1。Na3への応答を検索する必要はありません。

とはいえ、コンピューター対コンピューターゲームの結果として最も可能性が高いのは引き分けであるため、決定的な結果を得るには、数回プレイする必要があります。

興味がある場合は、Stockfishテストグラウンドフィッシュテストをチェックしてください。 Fishtestingは、古い「マスター」バージョンに対して新しいStockfishパッチをテストし、古いバージョンよりも優れている場合はパッチを受け入れます。執筆時点で、これは最新の終了したテストです。結果に注意してください(上部の黄色のボックス内):

合計:52195 W:10011 L:9955 D:32229

再生された新しいバージョン古いものに対して52,195試合、10,011回勝ち、9,955回負け、32,229回引き分け。

edwina oliver
2020-01-24 03:09:13 UTC
view on stackexchange narkive permalink

はい。

コンピュータに同等に評価される2つの動きがある場合、どちらを使用するかをランダムに選択する必要があります。そして、深さが浅い場合、または他の要因がそれが最善の動きをするのを妨げる場合、最初にミスを犯した人はおそらく負けるでしょう。

結局、実際にゲームに負けるのは最後から2番目の間違いです。

明らかに、同じコンピュータハードウェア上にあり、それぞれが他方を再生するように作られている場合でも、コンピュータプログラムは同じプログラムを打ち負かすことができます。

多くの場合、ゲームは引き分けになりますが、勝つことは可能ですが、非常に優れたエンジンでは、時間がかかってもできる限りのことをできるようになることはまれです。

*コンピュータに同等に評価される2つの動きがある場合、どちらを使用するかをランダムに選択する必要があります。* https://chess.stackexchange.com/questions/26509/how-does-an-engine-によると、これは正しくありません。 Choose-between-two-moves-of-equal-evalulation / 26517#26517
ナンセンス。使用しているプログラムによって異なります。アルファベット順などで同じ動きを選択するプログラムでは当てはまらない場合がありますが、プログラムによってはランダムに実行するのが最適な方法です。


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...