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:
- 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.
- Generieren Sie eine kleine Zufallszahl und wenden Sie sie auf eine Multi-PV-Punktzahl an
- 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
Die beste Punktzahl ist 0,00. Da dies der erste Schritt ist, gibt es nichts zu tun.
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.
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.