Strategie

Eindeutiger-Kandidat-Elimination: Regionen früh, Zeilen spät

Die Elimination durch eindeutigen Kandidaten ist die eine Technik, die jede Meowdoku-Spielerin bereits nutzt, ob sie einen Namen dafür hat oder nicht: Eine Zeile, Spalte oder Region mit genau einer verbliebenen zulässigen Zelle enthält eine Katze, ohne weiteres Nachdenken. Der Beitrag zu den Eröffnungszügen auf dieser Seite hat gemessen, welche der drei diese eine Zelle am häufigsten findet, direkt nachdem die kostenlosen Katzen gesetzt sind, und Regionen gewannen mit großem Abstand. Das war eine Momentaufnahme. Verfolgt man das durch eine ganze Lösung hindurch, ist das Bild schärfer als diese Momentaufnahme nahelegte — und es zeigt etwas, das die Eröffnung allein nicht zeigen kann: wann sich welche Sichtweise überhaupt zu prüfen lohnt.

Was Eindeutiger-Kandidat-Elimination ist

Eine Zeile, Spalte oder Region ist ein Behälter, der genau eine Katze enthalten muss. Streiche jede Zelle, die ein Behälter nicht rechtmäßig nutzen kann, und bleibt nur eine Zelle übrig, ist diese Zelle eine Katze — der Rest des Feldes muss dabei nicht berücksichtigt werden. Es ist dieselbe Idee, die Sudoku „Naked Single“ nennt, nur auf drei statt zwei Arten von Behältern angewendet.

Der Mechanismus ist bei allen drei identisch: Zähle die noch zulässigen Zellen des Behälters, und ist die Zahl eins, setze die Katze dorthin. Nichts an der Technik bevorzugt Zeilen gegenüber Regionen oder Regionen gegenüber Spalten. Was sich unterscheidet — und was der Rest dieses Beitrags misst — ist schlicht, wie oft und wie früh jede Art von Behälter dort tatsächlich ankommt.

Das vollständige Bild, nicht nur die Eröffnung

Der Beitrag zu den Eröffnungszügen stellte eine Frage: Welche Art von Behälter ist direkt nach dem Setzen der kostenlosen Katzen am wahrscheinlichsten schon auf einen einzigen Kandidaten reduziert? Regionen gewannen klar — auf einem Schwer-Feld waren zu genau diesem Zeitpunkt 12 % der offenen Regionen erzwungen, gegenüber 0,7 % der offenen Zeilen.

Das beantwortet, was man zuerst prüfen sollte. Es beantwortet nicht, was man als Fünftes prüft, oder als Zehntes, oder im Endspiel. Um das herauszufinden, führt dieser Beitrag die Eindeutiger-Kandidat-Elimination bis zum Ende durch — jede gefundene erzwungene Katze wird gesetzt, dann wird erneut gescannt, immer wieder, bis keine Zeile, Spalte oder Region mehr nur eine zulässige Zelle übrig hat — und erfasst, welche Art von Behälter jede Katze unterwegs erzeugt hat und wie viele Katzen zu diesem Zeitpunkt schon auf dem Feld waren.

Regionen leisten von Anfang bis Ende den größten Teil der Arbeit

Über vierhundert Spielfelder je Schwierigkeitsgrad, bis zu dem Punkt geführt, an dem die Elimination stockt, zeigt sich, welche Art von Behälter jede erzwungene Katze über die gesamte Trajektorie erzeugt hat, nicht nur in der Eröffnung:

Anteil jeder Eindeutiger-Kandidat-Schlussfolgerung während einer rein durch Elimination gelösten Partie, nach Behältertyp.
SpielfeldAus ZeilenAus SpaltenAus Regionen
Leicht 5×531%31%38%
Normal 7×720%20%60%
Schwer 9×915%15%69%
Extrem 10×105%6%89%

Zeilen und Spalten teilen sich den Rest bei jedem Schwierigkeitsgrad fast genau gleich auf, was zu erwarten ist — nichts an diesem Regelwerk bevorzugt die eine gegenüber der anderen, sie sind dieselbe Form, nur um neunzig Grad gedreht. Nicht symmetrisch ist ihr Anteil gegenüber den Regionen, und dieser Abstand wächst mit jeder Vergrößerung des Feldes.

Zeilen und Spalten sind ein Endspielwerkzeug

Der Anteil allein unterschätzt, wie schief das Timing tatsächlich ist. Für jede erzwungene Katze wird erfasst, wie viele Katzen bereits auf dem Feld waren, als diese Schlussfolgerung verfügbar wurde:

Mittlere Anzahl bereits gesetzter Katzen in dem Moment, in dem jeder Behältertyp eine erzwungene Katze erzeugt.
SpielfeldZeilenSpaltenRegionenFeldgröße
Leicht 5×52.92.92.75
Normal 7×74.54.53.47
Schwer 9×96.66.54.59
Extrem 10×108.07.63.310

Bei Extrem erscheint eine durch eine Zeile erzwungene Katze im Schnitt, wenn acht von zehn Katzen bereits gesetzt sind — typischerweise die vorletzte Katze auf dem Feld. Eine durch eine Region erzwungene Katze erscheint bei 3,3, nicht einmal ein Drittel des Weges. Als Anteil am Spielverlauf rücken Regionsschlussfolgerungen mit wachsenden Feldern immer weiter nach vorn — von etwa der Hälfte bei Leicht auf ein Drittel bei Extrem —, während Zeilen- und Spaltenschlussfolgerungen immer weiter nach hinten rücken, von knapp über der Hälfte auf vier Fünftel.

Warum Regionen zuerst kommen und Zeilen zuletzt

Eine Region kann klein anfangen. Nichts hindert eine Region daran, zu Beginn nur zwei oder drei Zellen zu haben, sodass sie nach einer einzigen nahen Platzierung, die den Rest entfernt, erzwungen sein kann. Eine Zeile oder Spalte kann nicht klein anfangen — sie hat immer genau die volle Breite des Feldes, und keine einzelne Eliminationstechnik verkleinert sie um mehr als ein oder zwei Zellen auf einmal.

Eine irgendwo auf dem Feld gesetzte Katze entfernt aus fast jeder anderen Zeile und jeder anderen Spalte genau eine Zelle: die Zelle in ihrer eigenen Spalte, eine pro Zeile. Um eine andere Zeile von N Zellen auf eine zu bringen, muss die Elimination N − 1 ihrer Zellen entfernt haben — was, eine Platzierung nach der anderen, fast den Großteil der übrigen Katzen eines gelösten Feldes braucht. Eine Region kennt diese Untergrenze nicht. Das ist der ganze Grund, warum Zeilen und Spalten ein Spätspiel-Signal sind und Regionen nicht: Es steckt darin, wie groß eine Zeile anfängt, nicht in der Logik selbst.

Wo die drei Sichtweisen tatsächlich konkurrieren

Leicht 5×5 ist das einzige Feld, auf dem das nicht mehr so schief ausfällt. Zeilen und Spalten zusammen machen dort 62 % aller Eindeutiger-Kandidat-Schlüsse aus, gegenüber 38 % für Regionen — Regionen führen einzeln betrachtet immer noch, aber nicht mit dem Abstand, der ab Normal zu sehen ist. Der Beitrag zu den Eröffnungszügen hatte für das frische Feld allein schon dasselbe festgestellt: „nur auf dem 5×5-Feld konkurrieren die drei wirklich miteinander“. Dieser Beitrag bestätigt, dass das für das gesamte Spiel gilt, nicht nur für den ersten Zug.

Der Grund ist derselbe wie in Abschnitt fünf, nur umgekehrt. Eine 5×5-Region startet selten viel kleiner als eine Zeile mit fünf Zellen, sodass der Größenunterschied, der größere Felder schief macht, hier kaum existiert. Gewohnheiten, die auf Leicht entstehen — wo das Prüfen einer Zeile fast so ergiebig ist wie das einer Region — sind genau die Gewohnheiten, die auf Schwer und Extrem in die Irre führen.

Was der Hinweis-Button im Spiel tatsächlich zeigt

Die Hinweis-Funktion sucht nach denselben drei Arten erzwungener Zellen, die dieser Beitrag misst, behandelt sie aber nicht symmetrisch: Sie prüft jede Zeile, bevor sie irgendeine Spalte prüft, und jede Spalte, bevor sie irgendeine Region prüft, und gibt die erste gefundene zurück. Sitzen eine durch eine Zeile erzwungene und eine durch eine Region erzwungene Zelle gleichzeitig auf dem Feld, zeigt der Hinweis die Zeile.

Das ist eine vernünftige Art, einen Hinweis-Button zu bauen — wer um Hilfe bittet, will meist einfach einen zulässigen nächsten Zug, keinen Vortrag darüber, welche Technik ihn erzeugt hat. Aber das bedeutet, dass der Hinweis kein repräsentatives Abbild dessen ist, was während einer Lösung tatsächlich passiert. Verlässt man sich darauf, um die Muster des Spiels zu lernen, zeigt er überproportional die seltenere, später greifende Technik: Die Tabellen oben zeigen, was die Elimination tatsächlich bevorzugt, wenn jeder Behälter ohne Präferenzreihenfolge geprüft wird.

Eine Checkliste: welche Sichtweise wann prüfen

Die praktische Version aller vier Tabellen oben:

Wie das gemessen wurde

Beide Tabellen stammen vom eigenen Generator des Spiels, ausgeführt über vierhundert frische Felder bei jedem der vier Schwierigkeitsgrade. Ausgehend von der Eröffnung — der Startkatze plus jeder Einzelzell-Region, genau wie im vorigen Beitrag definiert — wird jedes Feld gelöst, indem wiederholt jede Zeile, Spalte und Region mit genau einer zulässigen Zelle gefunden, alle gesetzt und erneut gescannt wird, bis nichts mehr erzwungen ist. Jedes solche Ereignis wird mit seinem Behältertyp erfasst sowie damit, wie viele Katzen zu diesem Zeitpunkt bereits auf dem Feld waren; Gleichstände, bei denen eine einzige Zelle gleichzeitig der letzte Kandidat in mehr als einem Behälter ist, werden einfach bei jedem betroffenen Behältertyp mitgezählt.

Das sind Eigenschaften der Spielfelder, die dieser Generator derzeit erzeugt. Die Testsuite, die mit diesem Beitrag ausgeliefert wird, leitet beide Tabellen bei jedem Lauf aus frisch erzeugten Feldern neu ab, sodass eine künftige Nachjustierung der Regionsgröße den Build scheitern lässt, statt eine veraltete Statistik auf der Seite stehen zu lassen.

Probiere es Schritt für Schritt

Starte ein Schwer-9×9-Feld. Prüfe für die erste Hälfte des Feldes nur Regionen und sieh, wie weit dich das allein bringt. Beginne erst mit dem Absuchen von Zeilen und Spalten, wenn sechs oder sieben Katzen gesetzt sind — im Schnitt zahlt sich das erst dann wirklich aus.

Spielfelder werden in deinem Browser erzeugt. Nichts von dem, was du spielst, wird irgendwohin gesendet.