Wie ahmt eine Schachmaschine eine Elo-Wertung nach?

7

Ich bin ein ziemlich neuer Schachspieler (sagen wir 1400) und würde gerne gegen Stockfish spielen und manchmal gewinnen. Wenn ich die Stärke auf 1400 ändere, was macht der Algorithmus dann tatsächlich? Macht es zufällige Fehler oder reduziert es einfach seine Tiefe und sieht dabei nur die einfachsten taktischen Kombinationen von Zügen. Wenn ja, wie hoch wäre die Tiefe für eine Bewertung von 1400?

Dom
quelle
4
Wenn es das überhaupt tut, wird es dies tun, indem es absichtlich (oder zufällig) schlechte Züge auswählt. Keiner der Motoren macht das gut. Wenn Sie einige Spiele gewinnen möchten, empfehle ich Ihnen, Ihren örtlichen Schachclub zu besuchen und Menschen zu spielen.
Tony Ennis
Stockfisch wechselt zwischen extrem starken und extrem schwachen Bewegungen, wenn er auf niedrige Werte eingestellt ist. Ich denke, Shredder oder The Chess Crazy Bishop spielen bei niedrigeren Elos auf einem konstanteren Level. Motoren mit niedriger Nennleistung von CCRL sind möglicherweise auch konsistenter.
Ein Passant

Antworten:

6

Im Kraftreduzierungsmodus startet Stockfish einen Multi-PV, bei dem die Engine nach mehr als einem besten Zug sucht. Wenn die Engine eine Bewegung ausführen muss, sucht sie nach allen Möglichkeiten in den Multi-PV-Bewegungen und wählt eine Bewegung mit dem folgenden Algorithmus aus:

  1. Filtern Sie einen Zug heraus, wenn es sich um einen groben Fehler handelt. Dies geschieht durch Vergleichen der Punktzahl mit einer anderen Multi-PV-Punktzahl.
  2. Generieren Sie eine kleine Zufallszahl und wenden Sie sie auf eine Multi-PV-Punktzahl an
  3. Wählen Sie den Zug, wenn die transformierte Punktzahl die beste ist

Es mag kompliziert klingen, ist es aber nicht. Lassen Sie uns ein Beispiel machen.

Sag mal, ich habe meine Königin mit deiner ausgetauscht. Du könntest meine Königin mit deinem Bischof oder Bauern nehmen. Wenn Sie es mit Ihrem Bischof getan hätten, wäre die Position gleich gewesen. Wenn Sie mit Ihrem Bauern gearbeitet hätten, wäre Ihre Bauernposition ruiniert worden und hätte zu einer etwas schlechteren Position geführt. Wenn Sie noch etwas tun würden, wäre ich eine Königin voraus.

Eine mögliche Wertung wäre:

  • BxQ -> 0,00
  • PxQ -> -0,34
  • Kh8 -> -9,99

Die Königin nicht zurückzunehmen ist ein grober Fehler und sollte nach Möglichkeit vermieden werden. Bei Anwendung auf den Algorithmus:

Berechnung

    1. Motor berücksichtigt BxQ

Die beste Punktzahl ist 0,00. Da dies der erste Schritt ist, gibt es nichts zu tun.

    1. Motor berücksichtigt PxQ

Beachten Sie, dass PxQ ohne einen kleinen zufälligen Boost niemals ausgewählt werden würde, da die beste Punktzahl (0,00) größer ist als die Punktzahl für PxQ (-0,34).

Stockfisch erzeugt eine kleine positive Zahl und fügt sie PxQ hinzu. Nun gibt es zwei Möglichkeiten. Wenn die Zufallszahl zu klein ist, z. B. 0,10, ist die hinzugefügte Punktzahl (-0,34 + 0,10 = -0,24) im Vergleich zur besten Punktzahl (0,00) immer noch zu klein und wurde verworfen. Wenn die generierte Zufallszahl ausreicht, um die PxQ-Punktzahl über die beste Punktzahl zu bringen, z. B. 0,40. Die neue Punktzahl für PxQ wäre 0,06 gewesen und größer als 0,00. Daher würde Stockfish den PxQ auswählen.

    1. Motor betrachtet Kh8

Die Königin nicht zurückzunehmen ist ein grober Fehler. Der Unterschied zum vorherigen Zug ist zu groß (-9,99 - -0,34). Stockfisch würde es nicht in Betracht ziehen und es sofort wegwerfen.

Implikation

  • Die Engine spielt kein zufälliges Schach
  • Die Möglichkeit einer minderwertigen Bewegung hängt vom Zufallsgenerator ab. Der Nutzen des Generators hängt auch von der Stärke ab. Je schwächer Sie Stockfish fragen, desto wahrscheinlicher wird der Generator eine größere Anzahl erzeugen.
  • Dumme Fehler werden vermieden
  • Der Zug, den Stockfish spielt, ist unvorhersehbar und simuliert das unvorhersehbare Verhalten des Menschen.
  • Stockfish ahmt die Elo-Bewertung nicht nach. Es gibt Ihnen nur 20 Stärken.

Bearbeitet

Das Poster war besorgt über einen Link zum Stockfish für iOS in den Kommentaren. Bitte beachten Sie, dass die Aussage im Link "Stellen Sie die Stärke des Motors auf einer Skala von 0 bis 2500 ein. Diese Skala entspricht in etwa der menschlichen ELO-Skala. 0 ist ein absolut schreckliches Spiel, während 2500 die maximale Stärke ist."ist irreführend und einfach falsch. Um zu sehen warum, wurde die Seite nicht von einem Stockfish Engine-Entwickler geschrieben. Der Autor hat die in der App angegebene Skalierung falsch interpretiert. Wenn Sie der App beispielsweise Elo 2000 geben, ordnet die App sie in Wirklichkeit einer der 20 Stärken zu. Unabhängig davon, welche Elo-Bewertung Sie in der App sehen, bedeutet dies absolut nichts. Für den Endbenutzer ist dies nur eine einfache Möglichkeit, die Stufen anzupassen. Es gibt keine direkte Beziehung zwischen einer Stärke und einer Elo-Bewertung. Denken Sie so, wenn ich den Quellcode ändere und den Bereich von 0,20 bis 0,40 erweitere. Wenn Sie nun Stärke 30 wählen, wie hoch ist die Bewertung? Ich könnte Ihnen sagen, es ist Elo 2400 oder Elo 2500 oder Elo 3500.

Am Ende des Tages ahmt Stockfish die Stärke von Elo nicht nach. Die Elo-Labels, die Sie in der App sehen, sind einfach nur schöne Labels, die so tun, als ob es eine Beziehung gibt.

SmallChess
quelle
2
Vielen Dank. Wenn Sie hier unter support.stockfishchess.org/kb/ios-app/… nachsehen , heißt es: " Stellen Sie die Stärke des Motors auf einer Skala von 0 bis 2500 ein. Diese Skala entspricht in etwa der menschlichen ELO-Skala. 0 ist ein absolut schreckliches Spiel. während 2500 maximale Stärke ist "
Dom
Siehe meine bearbeitete Antwort.
SmallChess
1
Einfache Antwort: Was Sie im Link gesehen haben, war nicht korrekt.
SmallChess
Glauben Sie außerdem wirklich, dass Stockfish nur bis zu Elo 2500 funktioniert? Es ist ein viel stärkerer Motor als dieser.
SmallChess
1
Ich habe keinen Glauben an Stockfisch. Ich berichte einfach, was auf ihrer Support-Site geschrieben steht (Links von der Haupt-Stockfish-Site).
Dom
0

Wenn Sie einen "freundlichen" Computergegner wollen, bieten einige der verfügbaren Pakete die Möglichkeit, "zu sparen", in dem sie Ihre Züge bewerten und auf diese Weise eine Bewertung für Sie generieren. Dann passen sie ihr Spiel so an, dass es (ungefähr) auf Ihrem Niveau liegt.

Fritz hat zum Beispiel eine Vielzahl solcher "Humpel" -Methoden, einschließlich

  • " Freund " -Modus (der sich wie beschrieben verhält),
  • " Sparring " -Modus, in dem das Programm gelegentlich taktische Fehler macht, mit 3 Spielebenen, einschließlich einer optionalen "Alarm" -Funktion, um Sie zu ermutigen, nach einem solchen Fehler zu suchen
  • " Handicap- und Spaßmodus ", in dem Sie Variablen anpassen, die sich auf das Spiel auswirken, wie z. B. Spielstärke (sie sagen in ELO-Punkten, aber siehe oben), Stückverzerrungen, Königssicherheit, Angriffstendenz usw.

Beachten Sie, dass meine Kommentare zu Fritz für Version 9 sind und jetzt bei 15 sind, also ist es wahrscheinlich ein bisschen anders.

Jaxter
quelle