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.

Update vom 10. November 2026: Die Versionsnummer 0.2.27 steht für zwei verschiedene Bauten. Dieser Beitrag meint den Bau von T-0238, der die Zeile mit der Knotenzahl einführte; er kam nie in den Hauptzweig. Der spätere Lauf T-0247 trägt dieselbe Nummer, ist aber ein anderer Bau ohne diese Zeile. Im Hauptzweig steht sie erst seit T-0251, Version 0.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.

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.

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.

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

WegWas die Änderung zeigen mussH0 gegen H1FehlerratenGrenze je StufeGrenzen der Starts
Gewinnmehr Spielstärke0 gegen +5 nElokurz α = β = 0,05, lang α = 0,05, β = 0,2596.000 und 36.000 Partienkeine
RandfallNichtverschlechterung innerhalb der Marge−5 gegen 0 nElowie Gewinnwie Gewinn4 je Budget, 1 je Kalenderwoche
VereinfachungNichtverschlechterung innerhalb der Marge−3 gegen 0 nElobeide α = β = 0,05je 144.000 Partien4 Starts, 2 Erfolge, 1 Start je Monat
Tempogleicher Suchbaum, mindestens 1,5 % schneller, Nichtverschlechterung−5 gegen 0 nElowie Gewinnwie Gewinn2 Starts, 2 Erfolge, Abstand mindestens 24 Stunden
Spieleinstellungbeim Standardwert nichts verändert, Tempoverlust in der Toleranz, vorhergesagte Wirkungkein 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.

Ungefähre Stoppgrenzen aus der Normalnäherung; maßgeblich ist das genaue LLR aus dem Pentanomial. Drei Felder nebeneinander mit logarithmischer Waagerechten von 4.000 bis 150.000 Partien und Senkrechten von −20 bis +20 nElo. In jedem Feld nähert sich ein Kurvenpaar mit wachsender Partiezahl der Mitte der Hypothesen: Die obere Kurve markiert, wo eine Stufe besteht, die untere, wo sie abgelehnt wird. Gewinnweg, Mitte +2,5: kurze Stufe durchgezogen bis 96.000 Partien, lange Stufe gestrichelt bis 36.000 Partien, ihre Kurven unsymmetrisch. Randfall und Tempo, Mitte −2,5: dieselben Kurven, um 5 nElo nach unten verschoben. Vereinfachung, Mitte −1,5: ein Paar für beide Stufen bis 144.000 Partien, weiter offen, weil die Hypothesen nur 3 auseinanderliegen. In dieser Näherung stoppt die kurze Stufe des Gewinnwegs bei 20.000 Partien bei etwa +6,05 oder −1,05 nElo.
Wo eine Stufe auf jedem Weg stoppt (Schema)

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