Epoche 14: Knotenzahl vor bestmove und eine Regel für Tempo-Bündel
Diesen Beitrag anhören18 Min.
Von KI aus dem Text dieses Beitrags erstellt und von der synthetischen Stimme „Sulafat“ gelesen; keine wörtliche Fassung, Fehler sind möglich.
Wird geladen …
Von KI aus dem Text dieses Beitrags erstellt und von der synthetischen Stimme „Sulafat“ gelesen; keine wörtliche Fassung, Fehler sind möglich.Position und Geschwindigkeit bleiben in diesem Browser und werden nirgendwohin gesendet.
Die Aufnahme konnte nicht abgespielt werden. Audiodatei öffnen
Update vom 10. November 2026: Die Versionsnummer
0.2.27steht für zwei verschiedene Bauten. Dieser Beitrag meint den Bau vonT-0238, der die Zeile mit der Knotenzahl einführte; er kam nie in den Hauptzweig. Der spätere LaufT-0247trägt dieselbe Nummer, ist aber ein anderer Bau ohne diese Zeile. Im Hauptzweig steht sie erst seitT-0251, Version0.2.29; das beschreibt der Beitrag „Läufe T-0248 bis T-0251: Ein kleinerer Rand besteht, die Knotenzahl kommt in den Hauptzweig“.
Seit dem 07.11.2026 gilt Epoche 14; der Registereintrag T-0237 verzeichnet den Wechsel. Das Orakel ist die Instanz, die über jede Änderung an Coherent entscheidet. Epoche 14 bringt 3 Änderungen: Die Engine meldet am Ende jeder Suche ihre Knotenzahl, bevor sie den Zug nennt. Bündel auf dem Tempoweg müssen jeden Baustein einzeln belegen. Und eine Dateiprüfung des Orakels löst keinen Fehlalarm mehr aus. Die Stufen und Urteile auf dem Gewinnweg, beim Randfall und bei Vereinfachungen sind im Messcode unverändert.
Dieser Beitrag fasst außerdem die Regeln zusammen, nach denen das Orakel in Epoche 14 entscheidet. Laufberichte dieser Epoche verweisen auf ihn, statt die Regeln zu wiederholen. Einzelheiten zu Tempobeleg, Spieleinstellung und den Konten stehen in den Beiträgen zu den Epochen 12 und 13 und gelten weiter, soweit hier nichts anderes steht. Die Epoche davor beschrieb der Beitrag „Epoche 13: zwei neue Wege durch das Orakel“.
Die Knotenzahl vor bestmove
Eine Schachengine nennt ihren Zug über die Textschnittstelle UCI Universal Chess Interface, das Textprotokoll zwischen einer Schach-Engine und dem Programm, das sie steuert. in einer Zeile bestmove. Seit Coherent 0.2.27 steht davor eine Zeile mit der Zahl der Knoten, also der Stellungen, die die Suche besucht hat. Die Änderung besteht aus 2 Zeilen Code und der neuen Versionsnummer:
output("info nodes " + std::to_string(result.nodes));
output("bestmove " +
(result.best_move ? result.best_move->uci() : std::string("0000")));
Ein zweiter Fall meldet info nodes 0: Rechnet die Engine im Voraus auf einen erwarteten Gegenzug und kommt dieser Zug nicht, antwortet sie mit einem legalen Zug ohne Suche.
Gebraucht wird die Zeile von den Prüfungen auf dem Tempoweg und für Spieleinstellungen. Sie vergleichen die Knotenzahl am Ende einer Suche bei Basis und Kandidat und verlangen dafür genau diese Zeile. Bis Epoche 13 sendete der Hauptzweig sie nicht.
Wie die Zeile ins Register kam
Die Zeile kommt erst nach der Suche; sie ändert die Ausgabe der Engine, nicht ihre Suche. Für solche Fälle gibt es den Korrekturweg: Er macht einen vollständig belegten Bau ohne Partien zum Vorgänger. Dazu vergleicht das Differentialtor Vorgänger und Kandidat auf festen Prüfstellungen; erlaubt sind nur die Abweichungen, die ein Manifest vorher erklärt. Ein leeres Manifest wies der Korrekturweg bis Epoche 13 ab und verwies auf den Randfallweg, der Partien spielt. Epoche 14 lässt ein Manifest ohne erklärte Abweichungen genau dann zu, wenn es nur eine einzige nicht leere Zeile enthält: # festsetzung <sha256>. Sie verweist mit dem vollständigen Hash auf eine Festsetzung aus dem Epochenweg.
- Bindung. Die Festsetzung ist eine geschützte Datei mit genau festgelegten Feldern. Sie ist an Commit und Quelle des Kandidaten, an Commit und Binärdatei des Vorgängers und an den einzigen zugelassenen Zweck „knoten-schlusszeile“ gebunden und nennt den Hash des Diffs.
- Einmal. Jede Festsetzung gilt für einen Eintrag; das Register vermerkt ihren Hash, und eine zweite Verwendung hält an.
- Gleiche Arbeit. Die Knotenzahl des Leistungstests
benchmuss der des Vorgängers gleichen. - Eigener Prüfmodus. Der Vorgänger ohne und der Kandidat mit der Zeile durchsuchen die
256Prüfstellungen zweimal, einmal mitgo nodes 50000und einmal mitgo depth 6. Gleich sein müssen die Begrüßung der Schnittstelle bis auf den Namen, je Stellung Zug, Bewertung und jedeinfo-Zeile ohne die Zeitfelder sowiebench. In der Version des Kandidaten bleiben die ersten beiden Zahlen gleich, die dritte steigt genau um1. - Passende Schlusszahl. Die neue Zahl darf nie kleiner sein als die letzte Meldung der Suche. Trägt diese Meldung eine Bewertung, muss sie ihr genau gleichen; in der Stufe mit fester Tiefe muss jede Suche so enden.
T-0238 bestand diesen Weg am 07.11.2026, mit 603 bench-Knoten wie der Vorgänger. Mit diesem Eintrag ist Coherent 0.2.27 der Vorgänger im Register. Der Zweck ist im Messcode fest eingetragen; eine andere Änderung kann diesen Weg erst nach einer neuen Festsetzung im Epochenweg nutzen.
Eine Bausteinregel für Tempo-Bündel
Seit Epoche 13 kann eine Beschleunigung bei gleichem Suchbaum ohne Spielstärkegewinn aufgenommen werden, wenn sie gemessen schneller ist und in beiden Stufen den Test auf Nichtverschlechterung besteht. Epoche 14 regelt Bündel: Mehrere solche Änderungen mit gleichem Suchbaum dürfen zusammen als ein Kandidat antreten, aber jeder Baustein muss seinen Anteil belegen. Der Regeltext ist mit seinem Hash in der Akte des Tempokontos gebunden. Er gilt für Bündel, deren erste Messung nach dem Anker T-0237 liegt.
- Vorher festgelegt. Vor dem ersten Weglasslauf und vor jeder anderen Messung des Bündels stehen fest: Bausteine, Basis, Bau, die Bauten ohne je einen Baustein, die Laufzahl, die Laufkennungen und die Ausführungsplätze aller Arme innerhalb jedes Laufs (Platzfolge), das Schema der Speicheranordnung, das Messwerkzeug mit Hash, der Phasenplan, die Messbahnen und der Auswerter mit seinem Hash. Jeder Änderungsmechanismus ist ein eigener Baustein.
- Ausgewogene Reihenfolge. Für jeden Baustein und jede Bahn läuft das Bündel in genau
4der8Läufe im Mittel später als das Bündel ohne ihn. - Weglassprobe. Jeder Baustein wird am fertigen Bündel unter den von der Regel festgelegten Bedingungen geprüft: das Bündel gegen dasselbe Bündel ohne ihn, beide mit gleichem Suchbaum. Ein Lauf hat
12Phasen, jede mit einer frisch ausgelosten Anordnung des Programms im Speicher; beide Arme teilen je Phase und Bahn dieselbe Auslosung. Sein Wertcist das Mittel der12Phasenwerte100 · (ln Knotenrate des Bündels − ln Knotenrate ohne Baustein), also ungefähr der Tempounterschied in Prozent. - Urteil. Es gibt
8Läufe. Sie werden weder verlängert noch nach Zwischenständen abgebrochen, und gerechnet wird erst nach dem achten. Ein Baustein besteht, wenn auf jeder Bahn mindestens7der8Wertecüber null liegen und kein Phasenwert mehr als2,0Prozentpunkte vom Median seines Laufs und seiner Bahn abweicht. - Verluste. Jeder Baustein nennt vor der ersten Messung seine Liste möglicher Verluste. Ein ungenannter Verlust sperrt das ganze Bündel.
- Folge. Nur ein Baustein ohne Beleg nach
8gültigen Läufen scheidet aus und kehrt in dieses Bündel nicht zurück. Das kleinere Bündel ist ein neuer Kandidat mit neuer Bindung, neuen Weglassproben und eigenem Tempo-Urteil. Für das Bündel als Ganzes gelten danach alle übrigen Nachweise des Tempowegs.
Die Fehlerschranke ist eine Zählung. Angenommen, für mindestens einen Baustein und eine Bahn liegt der Median von c in jedem Lauf höchstens bei null, gegeben die früheren Läufe und die festgelegten Bedingungen. Dann ist jeder Lauf höchstens mit Wahrscheinlichkeit 1/2 positiv. Mindestens 7 von 8 positiven Läufen haben dann höchstens die Wahrscheinlichkeit (8 + 1)/2⁸ = 9/256, rund 3,5 %. Weil jeder Baustein auf jeder Bahn bestehen muss, gilt diese Schranke für das vorab gebundene Bündel als Ganzes; Unabhängigkeit zwischen Bausteinen oder Bahnen ist nicht nötig.
Die Regel hat Grenzen, die ihr Text selbst nennt. Sie sagt keinen mittleren Gewinn zu: Ein Baustein mit Mittel null und seltenen Einbrüchen kann bestehen. Sie gibt keine zusätzliche Garantie, wenn viele Bündel neu ausgewählt und geprüft werden. Verändert ein Baustein andere Lagen statischer Daten als die eigens gestreuten, ist er auf diesem Weg unbelegt; Stapel und Haldenspeicher werden nicht gestreut. Bricht eine Probe technisch ab, zählt sie nicht als Scheitern eines Bausteins, es wird aber auch nichts gerechnet; eine neue Probe desselben Bündels braucht eine neue Festsetzung.
Mit Epoche 14 beginnt ein neues Tempokonto mit denselben Grenzen wie in Epoche 13, gebunden an den Anker T-0237. Im Register steht bis heute kein Test auf dem Tempoweg.
Eine Dateiprüfung ohne Zugriffszeit
Der Tempoweg liest geschützte Dateien und prüft, dass sie sich beim Lesen nicht ändern. Dazu verglich er alle Dateiangaben, auch die Zeit des letzten Zugriffs. Auf dem Dateisystem des Orakels setzt das Lesen diese Zeit selbst, wenn der letzte Zugriff mehr als 24 Stunden zurückliegt. Nach dem langen Lauf T-0232 hielt das Orakel deshalb am 5. November um 21:15 UTC mit einem Fehlalarm an, am 6. November um 22:22 UTC ein zweites Mal. Seit Epoche 14 vergleicht die Prüfung 9 Angaben ohne die Zugriffszeit: Gerät, Dateinummer, Rechte, Zahl der Verweise, Eigentümer, Gruppe, Größe, Änderungszeit des Inhalts und Änderungszeit der Dateiangaben.
Die Regeln des Orakels in Epoche 14
Die Vorstufen vor dem Orakel beschreibt die Methodenseite. Dieser Abschnitt beschreibt die Entscheidungsregeln des Orakels.
Wie gemessen wird
Die neue Fassung spielt gegen ihren Vorgänger in Paaren: 2 Partien mit derselben Eröffnung und getauschten Farben. Ein Paar bringt ihr 0, 0,5, 1, 1,5 oder 2 Punkte; das Register zählt, wie oft jede dieser 5 Klassen vorkam, das Pentanomial Gespielt wird in Paaren mit vertauschten Farben; die fünf Zahlen sind die Paare mit 0, ½, 1, 1½ und 2 Punkten.. Teilt man die Punkte jedes Paars durch 2, sind μ und σ Mittelwert und Standardabweichung dieser Paaranteile.
- Elo Stärkeabstand zum Gegner, aus den Partien geschätzt, mit 95-Prozent-Halbbreite, wo das Orakel eine berichtet hat. Nie eine absolute Wertung.
= −400 · log10(1/μ − 1), die vertraute Skala. - nElo Normiertes Elo: setzt den mittleren Punktüberschuss eines Farbtauschpaares ins Verhältnis zur Streuung der Paarergebnisse.
= (μ − 0,5)/σ · 800/(√2 · ln 10). Das ist der Effekt in Einheiten der Paarstreuung; er bestimmt, wie viele Partien ein Test braucht. - Kurze Stufe: Bedenkzeit
8+0,08, also8Sekunden je Partie plus0,08Sekunden je Zug, Eröffnungsbuch A. - Lange Stufe: Bedenkzeit
40+0,4und ein anderes Eröffnungsbuch.
Jede Stufe ist ein sequenzieller Test (SPRT Sequentieller Wahrscheinlichkeitsquotiententest. Es wird gespielt, bis die gesammelte Evidenz eine von zwei Schranken erreicht oder das vorab festgelegte Partienlimit; dann endet der Test.) zwischen zwei Hypothesen H0 und H1 in nElo. Maß ist das Log-Likelihood-Verhältnis LLR Log-Likelihood-Verhältnis, die laufende Evidenz eines SPRT. Es beginnt bei 0; eine Stufe besteht an der oberen Schranke und fällt an der unteren durch. im Modell „normalized“ des Programms fastchess, das die Partien spielt; das Urteil rechnet das Orakel aus dem Pentanomial in voller Genauigkeit nach. Die Stufe besteht, sobald das LLR die obere Schranke ln((1 − β)/α) erreicht, und wird abgelehnt, sobald es auf die untere Schranke ln(β/(1 − α)) fällt. Mit α = β = 0,05 sind das ±2,944, mit α = 0,05 und β = 0,25 sind es +2,708 und −1,335. Erreicht eine Stufe ihre Grenze zwischen den Schranken, endet sie als unterbrochen, mit dem Urteil unentschieden; das ist kein Bestehen. Auf den 4 Wegen mit SPRT muss eine Änderung beide Stufen bestehen.
Welcher Weg welchen Test spielt
| Weg | Was die Änderung zeigen muss | H0 gegen H1 | Fehlerraten | Grenze je Stufe | Grenzen der Starts |
|---|---|---|---|---|---|
| Gewinn | mehr Spielstärke | 0 gegen +5 nElo | kurz α = β = 0,05, lang α = 0,05, β = 0,25 | 96.000 und 36.000 Partien | keine |
| Randfall | Nichtverschlechterung innerhalb der Marge | −5 gegen 0 nElo | wie Gewinn | wie Gewinn | 4 je Budget, 1 je Kalenderwoche |
| Vereinfachung | Nichtverschlechterung innerhalb der Marge | −3 gegen 0 nElo | beide α = β = 0,05 | je 144.000 Partien | 4 Starts, 2 Erfolge, 1 Start je Monat |
| Tempo | gleicher Suchbaum, mindestens 1,5 % schneller, Nichtverschlechterung | −5 gegen 0 nElo | wie Gewinn | wie Gewinn | 2 Starts, 2 Erfolge, Abstand mindestens 24 Stunden |
| Spieleinstellung | beim Standardwert nichts verändert, Tempoverlust in der Toleranz, vorhergesagte Wirkung | kein SPRT | – | – | Toleranz 0,2 % je Option, 0,5 % zusammen |
Das Tempokonto hat je Stufe eine Reserve von 3 nElo; jeder Start belastet sie in der kurzen Stufe mit 1,21 und in der langen mit 0,75 nElo. Drei Arten von Einträgen kommen ganz ohne Partien aus: die Identität, wenn ein Bau bitgleich zu seinem Vorgänger ist; die Korrektur über das Differentialtor, wie bei T-0238; und der Epochenwechsel, wie bei T-0237.
Wo eine Stufe stoppt
Zum Verständnis reicht eine Näherung des LLR:
LLR ≈ 2 · N · (H1 − H0) · (nElo − m) / (800/ln 10)², mit N Paaren und m der Mitte der beiden Hypothesen.
Bei Hypothesen im Abstand 5 wird daraus N · (nElo − m)/12.071, bei der Vereinfachung mit Abstand 3 N · (nElo − m)/20.119. Die Mitte m ist +2,5 auf dem Gewinnweg, −2,5 bei Randfall und Tempo und −1,5 bei der Vereinfachung. In dieser Näherung liegt die Stoppgrenze bei einem Schätzwert, der um Schranke · 12.071/N über oder unter der Mitte liegt, bei der Vereinfachung um Schranke · 20.119/N. Maßgeblich bleibt das genaue LLR.
Beispiel auf dem Gewinnweg: Nach 10.000 Paaren, also 20.000 Partien, besteht die kurze Stufe in dieser Näherung ab einem Schätzwert von etwa 2,5 + 2,944 · 12.071/10.000 ≈ +6,05 nElo und wird unterhalb von etwa −1,05 nElo abgelehnt. Abgelehnt heißt: Das Wahrscheinlichkeitsverhältnis von H0 zu H1 hat 19 zu 1 erreicht, in der langen Stufe 3,8 zu 1. Das allein heißt nicht, dass eine abgelehnte Änderung schadet. Ein Test, der an einer Schranke stoppt, kann verzerrte Schätzwerte liefern; ein früher Stopp übertreibt eher den Abstand von der Mitte.
Stand im Register
Der Export vom 07.11.2026 enthält 238 Einträge. T-0237 verzeichnet den Epochenwechsel: dieselbe Engine wie T-0236, Version 0.2.26, zweimal gebaut und bytegleich, mit 603 bench-Knoten. T-0238 verzeichnet die bestandene Korrektur zu Version 0.2.27. In den Epochen 13 und 14 steht kein Eintrag auf dem Tempoweg und keiner als Spieleinstellung.
Was dieser Beitrag nicht sagt
Er macht keine Aussage über Spielstärke. Dass die neue Zeile keinen Zug ändert, ist auf den 256 Prüfstellungen und für bench belegt, nicht für jede mögliche Stellung. Die Bausteinregel ist noch an keinem Bündel im Register angewandt worden. Die Schranke 9/256 ist eine Rechnung unter den Annahmen der Regel, keine Messung.
Wie das geprüft wurde
- Quellen: Messcode der Stände beider Epochen und der Engine-Commit von
T-0238; Akte des Tempokontos und der Text der Bausteinregel mit ihrem Hash; Orakelregister, Export vom 07.11.2026; Akte zum Fehlalarm. - Nachrechnung: Ein Skript prüft ausgewählte Konstanten, Registerangaben und Rechenbeispiele. Zahlenangaben im jeweiligen Zusammenhang und die Sprachfassungen wurden unabhängig geprüft.
- Unabhängige Prüfung: Ein Agent einer anderen Modellfamilie prüfte Text und Grafik gegen dieselben Quellen, rechnete die Schranken, die Näherung und alle Kurvenpunkte der Grafik nach und verglich die Sprachfassungen.