Evolutionäre Algorithmen | 28.07.2009

Schach dem Kreationismus

Evolutionäre Algorithmen werden schon seit längerer Zeit erfolgreich bei der Lösung komplexer Probleme eingesetzt, aber die Demonstration der Verbesserung von intelligentem Verhalten ist besonders eindrucksvoll mit dem lernfähigen, evolutionären Schachprogramm von David B.Fogel und Mitarbeitern von der Firma Natural Selection Inc. in Kalifornien gelungen. Schachprogramme eignen sich besonders gut zur Demonstration der Leistungsfähigkeit von künstlicher Intelligenz, da es einerseits klare Kriterien für ihre Leistungsfähigkeit gibt und andererseits ein Vergleich mit der Fähigkeit von Menschen problemlos möglich ist.

Ältere Schachprogramme bis hin zu Deep_Blue, das sogar den Weltmeister Kasparov geschlagen hat, basieren auf der massiven Rechenleistung von größeren Computern. Ihre Stärke liegt in der Vielzahl der vorausberechneten, möglichen eigenen Züge und den jeweiligen Zügen des Gegners. So konnte Deep Blue in einer Sekunde 200 Millionen alternative Züge durchspielen. Diese Art von Programmen verfolgt aber davon abgesehen keine eigenständige Strategie und ist vor allem nicht lernfähig. Das Programm von David B.Fogel und Mitarbeitern ahmt dagegen das menschliche Strategiedenken und Lernvermögen nach.

Die Grundlagen des Programms sind folgende: Eine bestimmte Spielposition wird durch einen Vektor der Länge 64 dargestellt, d.h. jedem Spielfeld entspricht eine Komponente des Vektors. Da die strategischen Werte der Schachfiguren unterschiedlich sind, steht für jede Figur ein entsprechender Zahlenwert im Vektor (Bauer: 1, Springer: 3, Läufer: 3, Turm: 5, Dame: 9, König: 10000), wobei für ein leeres Feld der Wert 0 verwendet wird. Die Werte für die Figuren des Gegners werden mit einem Minuszeichen versehen. Die Summe der Zahlenwerte des Vektors ist dann ein Maß für den Materialwert der Figuren in der gegenwärtigen Spielsituation. Der strategische Wert einer Figur hängt aber auch noch von ihrer Position auf dem Schachbrett ab. Diese Werte können als Erfahrungswerte aus einer Tabelle entnommen werden, die vorher von Schachexperten angelegt wurde. Bis hierhin besitzt das Programm aber noch keine allzu große eigene Intelligenz.

Um nun noch die strategische Gesamtlage anhand der Position der eigenen Figuren und der des Gegners beurteilen zu können, verfügt das Programm über drei neuronale Netzwerke (in Form von Software). Jedes dieser Netzwerke beurteilt die strategische Lage innerhalb eines bestimmten Gebietes. Netz 1 deckt die Zeilen 1und 2 ab, Netz 2 die Zeilen 7 und 8 und Netz 3 den quadratischen mittleren Bereich von c3 bis f6, Die neuronalen Netze sind vom Typ des Kohonen-Netzes und haben für jedes Feld des Gebietes auf dem Schachbrett einen Eingangskanal. Es folgen 10 verdeckte Netzebenen, die dann in einem einzigen Neuron enden, das den Output erzeugt. Die drei Outputs von den getrennten neuronalen Netzwerken werden aufaddiert. Zusammen mit dem Materialwert und den Positionswerten ergibt sich eine Gesamtbewertung der Lage. Das Ziel des Programms ist es nun, Züge herauszufinden, die längerfristig zu einer Verbesserung der strategischen Lage führen. Um die erforderliche Rechenleistung zu begrenzen, wurde nur bis zum 8. Zug (4 eigene und 4 des Gegners) vorausgerechnet.