Frage:
Ist es möglich, unterschiedliche Ergebnisse von einem Computer gegenüber demselben Computer auf demselben Computer zu erwarten?
Lynob
2013-07-20 19:39:17 UTC
view on stackexchange narkive permalink

Ich wollte sehen, ob ein Computer denselben Computer auf demselben Computer schlagen kann.

Das erste Spiel ist auf chess.com, ich habe gegen Computer gespielt, ich öffne zwei Registerkarten, die erste ist Computer (weiß) gegen mich (schwarz) und auf der zweiten Registerkarte spiele ich als Weiß gegen Computer (schwarz).

Ich habe beide Spiele gleichzeitig gespielt, die Computerebene ist Experte, Bewertung 2000 +. Ich habe darauf gewartet, dass der Computer auf der ersten Registerkarte seine Bewegung als weiß ausführt. Ich habe die gleiche Bewegung wie Weiß auf der zweiten Registerkarte ausgeführt. Ich habe darauf gewartet, dass Schwarz seine Bewegung ausführt. Ich habe die gleiche Bewegung auf der ersten Registerkarte ausgeführt. Es war ein Unentschieden, wie Sie vielleicht erwarten würden.

  [FEN ""] 1. a3 d5 2. Sf3 Sc6 3. d4 Sf6 4. e3 Lg4 5. Lb5 e6 6. Lxc6 + bxc6 7. h3 Bxf3 8. Dxf3 Be7 9. Sc3 c5 10. OO Bd6 11. dxc5 Bxc5 12. e4 Sxe4 13. Sxe4 dxe4 14. Dxe4 OO 15. Lf4 Qe7 16. Rad1 Rae8 17. Rfe1 Rb8 18. b4 Bd6 19. Qe3 Rfd8 20. Lxd6 cxd6 21. c4 Dc7 22. Tc1 Rbc8 23. Rf1 Kh8 24. Dd2 Qd7 25. c5 d5 26. Rfe1 d4 27. Dg5 Qa4 28. Ra1 d3 29. Df4 Rxc5 30. Dxf7 Rc3 31. De7 Re8 32. Dd6 Db3 33. Dd7 Rf8 34. Dd6 Kg8 35. Re4 Rc2 36. Rf4 Rxf4 37. Dxf4 Dc4 38. Db8 + Dc8 39. Dd6 Rc1 + 40. Rxc1 Dxc1 + 41. Kh2 d2 42. Dxe6 + Kf8 43. Df5 + Ke7 44. De5 + Kd8 45. Dd5 + Kc7 46. De5 + Kb6 47. De6 + Kc7 48. De5 + Kd8 49. Dd6 + Kc8 50. De6 + Kb7 51. Dd5 + Kc7 52. De5 +  

Aber ich war mit dem nicht zufrieden erstes Ergebnis, ich habe Shredder auf meinem PC, also habe ich den Test überarbeitet, Shredder zweimal geöffnet, gegen Shredder mit voller Stärke gespielt und die Bewegungen nachgeahmt, es war auch ein Unentschieden. Ich habe den Test auf höchstem Niveau durchgeführt, um Fehler so weit wie möglich zu beseitigen.

  [FEN ""] 1. d4 {0s} Sf6 {+ 0,06 / 5 0s} 2. Sf3 {28s} d5 {+ 0,12 / 13 0s} 3. Lf4 {24s} Bf5 {+ 0,18 / 12 0s} 4. e3 {31s} e6 {+0,18 / 12 1s} 5. Bd3 {34s} Bxd3 {+ 0,10 / 12 0s} 6. Dxd3 {12s} Bd6 {+ 0,11 / 12 0s} 7. Nbd2 {37s (OO)} OO {+ 0,04 / 9 1s} 8 OO {24: 11m} Lxf4 {0,00 / 17 1s} 9. exf4 {22s} Dd6 {+ 0,08 / 12 0s} 10. f5 {28s} exf5 {0,00 / 13 0s} 11. Dxf5 {13s} Sc6 {+ 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)} Sg6 {-0.11 / 10 2s} 16. Qg3 {27s} Rac8 {-0.08 / 12 0s} 17. Ne5 {36s (Qh3)} Re6 {-0.07 / 9 1s} 18. Sxg6 {18s} hxg6 {-0.06 / 14 0s} 19. Re5 {16s} Rce8 {-0.17 / 14 0s} 20. Txe6 {31s} Rxe6 {-0,21 / 15 0s} 21. Dd3 {16s} Dd6 {-0,11 / 14 0s} 22. Sf3 {1: 04m} Df4 {-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. De8 + {17s} Kh7 {+ 0,01 / 16 0s} 30. Kg2 {44s} Qb1 {+0,01 / 16 0s} 31. Sf3 {37s} f6 {+ 0,01 / 16 0s} 32. b4 {21s} Nd3 {0,00 / 17 0s} 33. Dh5 + {1: 01m} Kg8 {0,00 / 20 0s} 34. De8 + { 23s} Kh7 {0,00 / 19 0s} 35. Dh5 + {52s} Kg8 {0,00 / 20 0s} 36. De8 + {6s} Kh7 {0,00 / 99 0s} 1 / 2-1 / 2  

Ich war auch mit diesem Ergebnis nicht zufrieden, also habe ich den Test mit Shredder überarbeitet und es wurden genau die gleichen Schritte ausgeführt!

Bei dieser Frage geht es nicht um " wie Schachmaschinen denken ", dieses Thema wird viele Male diskutiert es auf dieser Seite. Ich habe mein Experiment durchgeführt, weil ich sehen wollte, ob sich der Computer auf derselben Maschine selbst schlagen kann.

Mein HP Laptop ist Core I5, 8 GB RAM DDR3 unter Windows 7 64 Bit. Aber ich habe den Test auch auf Chess.com-Servern durchgeführt und habe immer noch die gleichen Ergebnisse erzielt. Ich weiß nicht, welche Server sie verwenden.

Früher hatte ich tiefes Blau und es gab eine Option, bei der die Die Engine kann gegen sich selbst spielen, und eine Seite hat früher gewonnen. Ich kann diese Option auf Shredder nicht finden, aber es scheint, dass der Computer sich nicht selbst schlagen kann, wenn Sie seine Bewegungen nachahmen, mit anderen Worten, wenn Sie dies explizit tun Sagen Sie Deep Blue, dass es gegen Deep Blue spielen soll. Der Motor macht Fehler, sodass Sie sehen können, wie eine Seite gewinnt. Wenn Sie jedoch das tun, was ich getan habe, ahmen Sie seine eigenen Bewegungen in einem anderen Fenster nach, es wird ein Unentschieden.

Ich werde die Spiele nicht analysieren, aber einige Dinge waren für mich interessant:

  • Im ersten Spiel auf chess.com würde jeder Neuling verstehen, dass Sie alles tun müssen, um den Bauern auf d2 zu befördern, Königinnen auszutauschen, den Bauern zu befördern und Beende das Spiel.

  • In beiden Spielen wirkte Schwarz aggressiver, konnte aber nicht gewinnen.

Das weiß ich Bei Computer-gegen-Computer-Wettbewerben werden Supercomputer verwendet. Gibt es jedoch eine Chance, dass sich der Computer auf derselben Maschine selbst schlägt?

Ich habe den Test dreimal auf Shredder durchgeführt und er hat dieselben Schritte ausgeführt! Ich denke, sie tun

 , wenn d4do Nf6  

Deshalb bin ich enttäuscht, ich erwarte, dass der allmächtige Aktenvernichter etwas KI verwendet, zumindest versucht Bei verschiedenen Eröffnungen habe ich keine Öffnungsdatenbank verwendet, aber man würde erwarten, dass Shredder mit einigen der grundlegenden Öffnungen gefüllt ist, und die chess.com-Engine konnte sich auch nicht selbst schlagen.

So ist es auch möglich Erwarten Sie unterschiedliche Ergebnisse von Computer zu demselben Computer auf demselben Computer?

Bitte schreiben Sie Standard-Englisch, einschließlich Großbuchstaben. (Interessante Frage.)
Sie schreiben, dass Sie nicht wissen möchten, wie Schach-Engines denken, aber um eine gute Antwort zu schreiben, muss ich eine Erklärung hinzufügen, wie Computer und Engines funktionieren (ich bevorzuge Arbeit, nicht Denken). Die kurze Antwort ist, dass es darauf ankommt.
@Halvard Ja, zögern Sie nicht, über irgendetwas in Ihrer Antwort zu sprechen. Ich habe nur gesagt, damit die Benutzer meinen Standpunkt sehen können. Ich möchte nicht, dass sie denken, dass dies ein Duplikat ist, aber in Ihrer Antwort können Sie über alles sprechen überhaupt
In meinem Houdini finde ich immer unterschiedliche Ergebnisse. Ich habe beide auf Turnierniveau mit 3000 Elo gespielt, da Arena diesen Wert nur zulässt.
Vier antworten:
Halvard
2013-07-23 12:59:30 UTC
view on stackexchange narkive permalink

Zuerst eine Klarstellung:

Sie schreiben:

mit anderen Worten, wenn Sie Deep Blue ausdrücklich anweisen, gegen Deep Blue zu spielen, Der Motor macht Fehler, sodass Sie sehen können, wie eine Seite gewinnt. Wenn Sie jedoch das tun, was ich getan habe, ahmen Sie die eigenen Bewegungen in einem anderen Fenster nach. Dies ist ein Unentschieden.

Dies ist nicht der Fall . Das Nachahmen der Züge und das explizite Spielen selbst macht keinen großen Unterschied. Die Engines sind nicht so programmiert, dass sie, wenn sie wissen, dass sie selbst spielen, weniger genau spielen.

Determinismus

Als ldog In seiner Antwort schrieb er, dass hier mehrere Fragen zu einer zusammengefasst sind. Eine ist, wenn Sie das gesamte Szenario genau neu erstellen, wird ein Computer die gleichen Schritte ausführen? Wenn Determinismus zutrifft, lautet die Antwort Ja, da selbst Zufälligkeit nicht wirklich zufällig ist (nur etwas, das wir aufgrund mangelnden Verständnisses nicht im Voraus vorhersagen können). Nun, ich werde die philosophische Diskussion beiseite lassen, da es viele Faktoren gibt, die es unmöglich machen, genau dasselbe Szenario neu zu erstellen.

Zufälligkeit

Die meisten Motoren haben Bücher öffnen. In Ihrem Fall hat Shredder vielleicht nur eine Zeile. Eröffnungsbücher sind fest codierter If-else-Code. Der Grund dafür ist, dass Computer noch nicht stark genug sind, um das menschliche Wissen über die Öffnung in der Vergangenheit zu analysieren. Daher ist es sinnvoll, dieses Wissen nur direkter hinzuzufügen. Die meisten Motoren haben jetzt allerdings ein großes Buch. Hier kommt die Zufälligkeit ins Spiel. Wenn es zufällig 1.e4 anstelle von 1.d4 spielt, entsteht ein völlig neues Spiel. Die meisten kommerziellen Engines (Houdini, Fritz) und viele kostenlose Engines (Stockfish) haben auch Einstellungen dafür, wie zufällig das Buch ist.

Ein weiterer Zufallsaspekt ist das Denken, während der Gegner denkt. Die meisten neueren Motoren tun dies. Dies bedeutet, dass selbst wenn Sie es auf ein bestimmtes Niveau einstellen, es auch an Ihre Zeit denkt. Wenn Sie bei einer solchen Engine versuchen, die Bewegungen nachzuahmen, stellen Sie möglicherweise fest, dass sie plötzlich anders abgespielt wird, weil Sie die Bewegungen nicht in genau der gleichen Anzahl von Millisekunden spielen können (und zu diesem Zeitpunkt erreicht die Engine möglicherweise nur eine tiefere Position Stufe).

KI

Zusätzlich zur Zufälligkeit kann KI verwendet werden, sobald die Engine das Buch verlassen hat. Hier ist ein einfacher Test, den Sie mit Houdini durchführen können: Spielen Sie bei jeder Bewegung, bis sich die Bewertung auf die eine oder andere Weise ein wenig ändert. Gehen Sie dann zehn halbe Züge zurück und es könnte anders spielen. Obwohl dies keine KI ist, berücksichtigt sie die bereits durchgeführte Analyse.

Es gibt andere Engines, sogar Open-Source-Projekte, die sich mit reinerer KI befassen. Diese Engines spielen möglicherweise nicht zweimal denselben Zug (insbesondere wenn er verloren hat), wie dies aus früheren Erfahrungen hervorgeht. Sie können diese Frage lesen, um zu verstehen, warum die meisten kommerziellen Engines noch keine KI verwenden, aber es wird wahrscheinlich bald passieren.

Schlussfolgerung

Sobald Sie Zufälligkeit (und Verwerfen der unpraktischen Diskussionen, die sich aus Determinismus ergeben) und / oder KI im Spiel haben, werden Sie feststellen, dass Sie, wenn Sie zwei Engines auf demselben Computer gegeneinander antreten, ab und zu unterschiedliche Spiele erhalten Die Seite schlägt die andere.

Die Antwort hängt also vom Motor ab und davon, ob Sie an einen praktischen Test denken (und nicht an einen theoretischen Test). Der Computer, auf dem es gespielt wird, sollte keine Rolle spielen, und die Nachahmung erhöht tatsächlich die Wahrscheinlichkeit, dass es anders abgespielt wird.

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

Ihre Frage

Ist es also möglich, unterschiedliche Ergebnisse von einem Computer gegenüber demselben Computer auf demselben Computer zu erwarten?

ist möglicherweise etwas zu komplex mit zu vielen Variablen. Betrachten Sie stattdessen die einfachere Frage

. Produzieren Schach-Engines bei gleicher Position und gleichen Einstellungen (Schichttiefe, Zeitsteuerung) denselben Zug?

Wenn die Antwort auf diese Frage Ja lautet, sollten Sie niemals erwarten, dass ein Computer von seinen Auswahlmöglichkeiten abweicht. Nach meinem Verständnis, wie Schach-Engines die Suche durchführen, hängt die Antwort Ja auf diese Frage weitgehend von zwei Faktoren ab.

1) Wenn zwei Züge identische Positionsbewertungen erzielen (dies geschieht mit Wahrscheinlichkeit 0, wenn die Punktzahlen real sind), muss bei der Beantwortung dieser Frage berücksichtigt werden, wie die Schachmaschine gebundene Züge auflöst.

2) Die Abhängigkeit der Schachmaschine von der Zufälligkeit bestimmt dies weitgehend. Die Bewegungsreihenfolge beim Durchsuchen des Suchbaums nach einer Schachmaschine bestimmt weitgehend deren Spielstärke. Inhärent ist die Auswahl einer Zugreihenfolge, die gut funktioniert, keine exakte Wissenschaft, und daher führen verschiedene Schach-Engines dies unterschiedlich aus. Es besteht ein allgemeiner Konsens darüber, was empirisch am besten abschneidet, aber hier unterscheiden sich die meisten Schach-Engines. Insbesondere können einige Schach-Engines die Zugreihenfolge tatsächlich teilweise randomisieren, was wiederum den tatsächlichen Zug, den die Schach-Engine spielen kann, zufällig randomisiert, wenn alles andere gleich ist. Dies ist im Allgemeinen keine beliebte Technik, aber ich habe tatsächlich eine Schach-Engine gespielt, die bei gleicher Position und ohne Zeitsteuerung unterschiedliche Züge ausführt. Dies ist höchstwahrscheinlich auf die Abhängigkeit von einem probabilistischen Ansatz und damit auf die Abhängigkeit von der Zufälligkeit zurückzuführen.

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

Im OP gibt es zwei separate Fragen. Beide ansprechen:

Ist es also möglich, unterschiedliche Ergebnisse von Computer zu Computer auf demselben Computer zu erwarten?

Ja, weil Schach-Engines nicht vorhanden sind ist nicht ganz deterministisch. Siehe diese Frage. Die Antworten auf diese Frage beziehen sich auf traditionelle Motoren. Die neueren auf neuronalen Netzen basierenden Engines sind weniger zufällig als herkömmliche Engines, aber aus ähnlichen Gründen immer noch nicht vollständig deterministisch.

Ich wollte sehen, ob ein Computer denselben Computer auf demselben schlagen kann Maschine.

Auf jeden Fall. Der Grund ist einfach, dass jede Bewegung den Suchbaum verengt. Wenn Sie beispielsweise Shredder in der Startposition ausführen, wird alles von 1. e4 bis 1. Na3 durchsucht. Es wird schließlich der Schluss gezogen, dass 1. Na3 1. e4 unterlegen ist und nicht 1. Na3 spielt, aber dennoch 1. Na3 sucht. Dies ist Rechenleistung, die den Hauptzweig nicht durchsucht. Wenn Shredder Schwarz spielt, weiß er bereits, was der erste Zug seines Gegners ist. Es muss nicht nach einer Antwort auf 1. Na3 gesucht werden, da diese Positionen nicht vorhanden sind.

Das wahrscheinlichste Ergebnis eines Computer-gegen-Computerspiels ist jedoch ein Unentschieden Sie müssen mehrmals spielen, bevor Sie ein entscheidendes Ergebnis erzielen.

Wenn Sie interessiert sind, besuchen Sie das Stockfish-Testgelände Fishtesting. Fishtesting testet neue Stockfish-Patches gegen die alte "Master" -Version und akzeptiert den Patch, wenn er die alte Version übertrifft. Zum Zeitpunkt des Schreibens ist dies der letzte abgeschlossene Test. Beachten Sie die Ergebnisse (im gelben Feld oben):

Gesamt: 52195 W: 10011 L: 9955 D: 32229

Die neue Version wurde abgespielt 52.195 Spiele gegen das alte, 10.011 Mal gewonnen und 9.955 Mal verloren, mit 32.229 Unentschieden.

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

Ja.

Wenn der Computer zwei Bewegungen hat, die gleich bewertet werden, muss er eine zufällige Auswahl treffen, welche verwendet werden soll. Und wenn die Tiefe gering ist oder andere Faktoren sie davon abhalten, den besten Zug zu machen, wird der erste, der einen Fehler macht, wahrscheinlich verlieren.

Am Ende ist es der vorletzte Fehler, der tatsächlich ein Spiel verliert.

Es ist klar, dass ein Computer-PROGRAMM dasselbe PROGRAMM schlagen kann, selbst wenn es sich auf derselben Computerhardware befindet und jedes zum Spielen des anderen ausgelegt ist.

Oft werden die Spiele unentschieden gespielt, aber Gewinne sind möglich, obwohl dies selten sein sollte, wenn wirklich gute Engines das Maximum herausholen, das sie können, selbst wenn es viel Zeit in Anspruch nimmt.

* Wenn der Computer zwei Bewegungen hat, die gleich bewertet werden, muss er eine zufällige Auswahl treffen. * Dies ist falsch unter https://chess.stackexchange.com/questions/26509/how-does-an-engine- wähle zwischen zwei Zügen gleicher Auswertung / 26517 # 26517
Unsinn. Es hängt davon ab, welches Programm verwendet wird. Es mag bei einigen Programmen nicht zutreffen, die gleiche Züge alphabetisch oder ähnlich auswählen, aber einige Programme tun dies zufällig, was der optimale Weg ist, dies zu tun.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...