Checkers (im Deutschen als die anglo-amerikanische Variante von Dame bekannt) ist ein strategisches Brettspiel für zwei Spieler. Im Jahr 2007 wurde durch das Programm Chinook der Beweis erbracht, dass das Spiel bei perfektem Spiel von beiden Seiten unweigerlich in einem Unentschieden (Draw) endet. [1]
Das Lösen von Checkers gilt als einer der bedeutendsten Meilensteine in der Geschichte der Künstlichen Intelligenz und der Spieltheorie, da der Suchraum mit Positionen um Größenordnungen komplexer ist als bei zuvor gelösten Spielen wie Vier gewinnt oder Mühle. [2]
Das Ergebnis: Checkers ist schwach gelöst (weakly solved). Das bedeutet, das spieltheoretische Ergebnis der Startposition ist bekannt (Unentschieden) und es existiert eine Strategie, um dieses Ergebnis gegen jeden beliebigen Gegner zu erreichen. [1:1]
Die Geschichte der Computer-Dame reicht zurück bis in die 1950er Jahre zu Arthur Samuel, dessen Programm bereits 1962 einen (selbsternannten) Meister schlug. Der entscheidende Durchbruch gelang jedoch erst dem Projekt Chinook an der University of Alberta unter der Leitung von Jonathan Schaeffer. [2:1]
Das Ziel war zunächst, den menschlichen Weltmeister Marion Tinsley zu schlagen. Tinsley galt als unbesiegbar und hatte in über 40 Jahren nur drei Partien verloren. In den Matches 1992 und 1994 lieferte sich Chinook enge Duelle mit Tinsley. Nach Tinsleys Rücktritt und Tod verlagerte sich das Ziel des Projekts. Anstatt nur "besser als Menschen" zu spielen, sollte das Spiel mathematisch perfektioniert und gelöst werden. [1:2]
Checkers wird auf einem Brett gespielt (identisch zum Schachbrett).
Die wichtigsten Regeln, die die Komplexität beeinflussen [2:2]:
Um ein Spiel vollständig zu lösen, muss der riesige Zustandsraum bewältigt werden. Schaeffer et al. definierten hierfür verschiedene Härtegrade.
Die folgende Tabelle ordnet Checkers in diesen Kontext ein und verdeutlicht den massiven Anstieg der Komplexität im Vergleich zu anderen, bereits gelösten Spielen [2:3]:
| Spiel | Suchraum (Positionen) | Status | Gelöst durch |
|---|---|---|---|
| Vier gewinnt | \approx 10^ | Stark gelöst | Allis (1988) |
| Mühle | \approx 10^ | Stark gelöst | Gasser (1993) |
| Checkers | Schwach gelöst | Schaeffer et al. (2007) | |
| Schach | \approx 10^ | Ungelöst | - |
Der Unterschied zwischen den Lösungsgraden ist entscheidend:
Checkers ist das mit Abstand komplexeste Spiel, das bisher gelöst wurde – der Suchraum ist etwa eine Million Mal größer als der von Vier gewinnt. Während dieser Meilenstein erreicht ist, bleibt Schach in weiter Ferne: Mit geschätzten Positionen ist der Suchraum von Schach nochmals um Quadratwurzel-Dimensionen größer, weshalb es ohne neue technologische Paradigmen auf sehr lange Zeit ungelöst bleiben wird. [1:3]
Da der Zustandsraum von Positionen zu gigantisch ist, um ihn "brute force" vollständig zu durchsuchen (was für ein "starkes Lösen" nötig wäre), nutzte das Team einen hybriden Ansatz. Dieser besteht aus drei Komponenten, die wie eine Sanduhr ineinandergreifen. Die breite Basis (Endspiel-Datenbanken), die schmale Taille (Vorwärtssuche) und der breite Trichter oben (Eröffnungsanalyse). [1:4]
Das Fundament des Beweises bildet das perfekte Wissen über alle Stellungen mit wenigen Steinen. Hierfür wurde keine Heuristik verwendet, sondern die Retrograde Analyse. Man beginnt bei den terminalen Spielzuständen (Sieg/Niederlage) und rechnet von dort aus rückwärts.
Der Algorithmus startet mit trivialen Stellungen (z.B. 1 Stein gegen 0 Steine = Sieg). Basierend auf diesen Ergebnissen werden alle Stellungen mit 2 Steinen gelöst, dann 3, und so weiter, bis die Grenze der Rechenkapazität erreicht ist.
Perfekte Information durch Lookup: Die Datenbank fungiert als Orakel. Sobald die Vorwärtssuche eine Stellung mit 10 oder weniger Steinen erreicht, wird die Suche sofort abgebrochen. Ein einfacher Datenbank-Zugriff liefert augenblicklich das mathematisch bewiesene Ergebnis (Sieg, Remis oder Niederlage), was die benötigte Suchtiefe drastisch reduziert. [2:5]
Für die Startphase und das Mittelspiel (alles mit mehr als 10 Steinen) musste eine komplexe Sucharchitektur entwickelt werden. Diese teilte sich in zwei Rollen auf. Es gibt den "Manager", der den Überblick behält, und die "Solver", die die Arbeit erledigen. [1:7]

Abb. 2: Schematische Visualisierung der Interaktion (Quelle: Eigene Darstellung, basierend auf Schaeffer et al. [1:8]). Hinweis: Die Animation ist symbolisch und dient nur der Veranschaulichung; die echten Rechenzeiten pro Knoten liegen zwischen 15s und 100s.
Der Manager koordiniert den gesamten Beweisprozess und verwaltet die "Master-Kopie" des Beweisbaums. Er fungiert als zentrale Schaltstelle für das Netzwerk von durchschnittlich 50 parallel arbeitenden Computern. [1:9]
Seine Aufgaben sind weitaus komplexer als nur Arbeit zu verteilen:
Priorisierung durch Proof Number Search (PNS):
Der Manager nutzt den PNS-Algorithmus, um eine priorisierte Liste von Knoten zu erstellen, die untersucht werden müssen. Er sucht dabei stets nach dem "Weg des geringsten Widerstands" im Suchbaum, um eine Position zu beweisen oder zu widerlegen. [1:10]
Iterative Suche über den Fehler ():
Dies ist eine der innovativsten Techniken des Projekts. Statt wie üblich die Suchtiefe iterativ zu erhöhen (Iterative Deepening), iterierte der Manager über den heuristischen Fehler.
Lösung des GHI-Problems:
Ein kritisches Problem in Spielbäumen ist die Graph-History Interaction (GHI). Da dieselbe Brettstellung über verschiedene Zugfolgen erreicht werden kann (Transpositionen), ist es schwierig, Remis durch Zugwiederholung korrekt zu erkennen. Standard-Algorithmen können hier fälschlicherweise ein Remis annehmen. Der Manager implementierte einen neuen Algorithmus, um Zyklen und Wiederholungen im Beweisbaum korrekt als Remis oder Nicht-Remis zu klassifizieren. [1:12]
Datenhaltung:
Der Manager speichert nur den oberen Teil des Beweisbaums permanent auf der Festplatte (ca. Positionen). Sobald eine Anfrage das Ende dieses gespeicherten Baums erreicht, wird dynamisch ein Solver beauftragt, die Linie weiter bis in die Endspiel-Datenbanken zu verfolgen. Dies sparte massiv Speicherplatz (Terabytes), erforderte aber das erneute Berechnen von Zwischenschritten. [1:13]
Der Manager sendet einzelne Positionen an ein Netzwerk von Dutzenden Computern (im Jahr 2007 waren es ca. 50 parallel). Die Solver folgen dabei einem strikten Protokoll. Zuerst wird Chinook für eine schnelle Einschätzung genutzt (ca. 15s). Findet dieser keinen Beweis, wird der rechenintensivere Depth-first PNS Solver gestartet (ca. 100s). [1:14]
Die Solver melden ihre Ergebnisse in drei Kategorien zurück:
| Algorithmus | Funktionsweise | Stärke |
|---|---|---|
| Alpha-Beta | Der klassische Schachcomputer-Ansatz. Sucht tief (17-23 Halbzüge) und nutzt eine heuristische Bewertungsfunktion. (Laufzeit: ~15s) | Gut im Abschätzen von Positionen, die noch nicht bewiesen sind. Findet taktische Fallen. |
| Depth-first PNS | Depth-first Proof-number search. Ein Algorithmus, der versucht, den Beweisbaum so klein wie möglich zu halten. (Laufzeit: ~100s) | Extrem effizient darin, forcierte Gewinn- oder Verlustwege zu beweisen, ohne unnötige Varianten zu prüfen. |
Das bloße "Lösen der Startaufstellung" reichte nicht aus. Da im professionellen Checkers die ersten drei Halbzüge (Plys) oft zufällig vorgegeben sind ("3-Move Ballot"), um bekannte Remis-Varianten zu vermeiden und das Spiel spannender zu gestalten, musste der Beweis robust gegenüber verschiedenen Eröffnungen sein. Es gibt theoretisch rund 300 solcher Eröffnungssequenzen.
Das folgende Diagramm zeigt den Beweisbaum der ersten 3 Halbzüge für 19 relevante Eröffnungen.

Abb. 3: Der Beweisbaum für die ersten 3 Halbzüge (Quelle: Schaeffer et al. [1:16], Fig. 3).
=L)?Eine wichtige Beobachtung im Diagramm ist Linie 13 (Zugfolge 12-16, 24-19, 09-13), die in einem Verlust endet. Dies ist für das Verständnis des "3-Move Ballots" entscheidend:
09-13 ein Fehler ist. Da Schwarz in derselben Stellung (nach 24-19) alternative Züge wie 09-14 (Linie 14) hat, die das Remis halten, wird ein perfekter Spieler (beim perfekten Spiel vom start aus) die Verlust-Linie 13 niemals wählen. Die übergeordnete Eröffnung gilt somit als "gelöst" (Remis), solange mindestens ein Pfad existiert, der nicht verliert.09-13) erzwingen, müsste der Spieler tatsächlich eine objektiv verlorene Stellung verteidigen. In der Praxis werden solche unfairen Eröffnungen aus dem Lostopf entfernt. Schaeffers Beweis liefert hierfür nun die mathematische Gewissheit: Da Linie 13 nachweislich ein Verlust ist, kann sie im modernen Turnierschach endgültig als unspielbare Eröffnung aus dem Pool gestrichen werden.Fazit des Algorithmus: Das System ist keine reine "Brute Force" Maschine. Es ist eine elegante Kombination aus Wissen (Endspiel-Datenbanken) und Intelligenz (gezielte Suche im Beweisbaum), die es ermöglichte, einen Suchraum zu bewältigen, der eine Million Mal komplexer ist als alles, was zuvor gelöst wurde.
Zusammenfassend ergibt sich durch die Interaktion der drei Komponenten (Datenbanken, Manager, Solver) eine charakteristische Struktur des gelösten Raums, die in der folgenden Grafik visualisiert wird.

Abb. 4: Visualisierung des Suchraums. Unten (schraffiert) die Endspiel-Datenbanken, darüber der relevante Suchraum der Vorwärtssuche (Quelle: Schaeffer et al. [1:17], Fig. 2).
Die Grafik verdeutlicht die Effizienz des Beweises anhand wichtiger Fachbegriffe [1:18]:
Um die enorme Tiefe des Spiels zu bewältigen, müssen die Solver effizient entscheiden, wann sie rechnen und wann sie "wissen". Das folgende Diagramm zeigt die hybride Logik eines Solvers. Er kombiniert die Datenbank-Abfrage für Steine mit der Alpha-Beta-Suche für komplexe Stellungen. [1:19]
Entscheidungsbaum
Pseudocode
def SolvePosition(pos, alpha, beta, depth):
# 1. Datenbank-Lookup (Endspiel)
if NumberOfPieces(pos) ≤ 10:
return EndgameDatabase.lookup(pos)
# 2. Transposition Table (Cache)
if TranspositionTable.contains(pos):
return TranspositionTable.get(pos)
# 3. Vorwärtssuche (Alpha-Beta)
best_value = float('-inf')
for move in GenerateMoves(pos):
# Rekursiver Aufruf
val = -SolvePosition(MakeMove(pos, move),
-beta, -alpha, depth-1)
best_value = max(best_value, val)
alpha = max(alpha, val)
# Pruning (Schnitt)
if alpha ≥ beta:
break
TranspositionTable.store(pos, best_value)
return best_value
Die Berechnung lief fast kontinuierlich von 1989 bis 2007. Zum Höhepunkt der Berechnungen waren über 200 Prozessoren parallel im Einsatz. Das Projekt gilt als eine der längsten durchgehenden Berechnungen der Geschichte. [1:20]
Ein zentrales Problem bei Berechnungen über 18 Jahre ist die Zuverlässigkeit. Wie kann man sicher sein, dass kein Hardwarefehler (Bit-Flip) oder Software-Bug das Ergebnis verfälscht hat?
Das Team argumentiert statistisch:
Selbst wenn ein Fehler tief im Baum auftreten würde (z.B. bei Tiefe 40), ist die Wahrscheinlichkeit, dass dieser Fehler das Ergebnis an der Wurzel (Startposition) ändert, "verschwindend gering" (), da viele alternative Pfade zum gleichen Ergebnis führen und Fehler sich oft gegenseitig aufheben oder in irrelevanten Zweigen passieren. [1:24]
Checkers ist das komplexeste Spiel, das bisher gelöst wurde. Der Erfolg demonstriert weniger "menschliche Intelligenz" im Computer, sondern die Macht von massiver Suche kombiniert mit Wissen (Datenbanken).
SCHAEFFER, Jonathan, et al. Checkers is solved. science, 2007, 317. Jg., Nr. 5844, S. 1518-1522. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
SCHAEFFER, Jonathan; LAKE, Robert. Solving the game of checkers. Games of no chance, 1996, 29. Jg., S. 119-133. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎