
Zitat von
HPF
Wie kann man feststellen, dass ein Computer Null-Move Züge macht?
Paul
Hallo Paul,
wenn ein Schachprogramm (auch die in unseren Compis) auf der Null-Move Technik beruht, dann macht der Compi ständig solche Züge währen seines Rechenvorgangs, als Nutzer des Geräts kann man das eigentlich nicht 100%ig erkennen, denn auch unerkannte Pattstellungen könnten (wohlgemerkt Konjunktiv!) ja auch auf anderen Unzulänglichkeiten des Programms beruhen, das muss nicht zwangsläufig an dem Null-Move Algo liegen.
Ich versuche mal den Null-Move Algorithmus etwas genauer zu erklären:
Die prinzipielle Funktionsweise eines Schachprogramms kann man sich wie folgt vorstellen: das Programm berechnet einige Halbzüge Brute-Force, d.h. alle Zugmöglichkeiten werden unter Einhaltung der Schachregeln auf einem fiktiven Schachbrett im Speicher des Gerätes bis zu dieser BF-Tiefe durchprobiert. Dabei tritt aber ein Problem auf: Wie soll diese Stellung korrekt bewertet werden? Material zählen allein bringt nicht viel wenn beispielsweise eine Seite eine Figur der anderen Seite geschlagen hat, diese schlagende Figur aber noch nicht zurückgeschlagen wurde. Bevor es die Null-Move Technik gab, kam SEE (Static Exchange Evaluation) zum Einsatz. Dieses Prinzip prüft welche Figuren von welchen gegnerischen Figuren bedroht sind (bsp. Bauer bedroht Dame), ob alle Figuren ausreichend gedeckt sind, ob es hängende Figuren gibt, ob scheinbare Drohungen womöglich durch Fesselungen gar nicht erst echt sind, ob der König bedrohte Figuren korrekt deckt oder die bedrohten Figuren doch hängen. Wie man sich leicht ausmalen kann, gibt es fast unzählige Details die beachtet werden müssen und das kostet auch entsprechend viel Rechenzeit. Die Null-Move Technik verzichtet auf all diese Berechnungen. Stattdessen führt ein solches Programm nach der BF-Tiefe noch einen weiteren Halbzug mit der zuletzt gezogenen Farbe aus. Mit anderen Worten: mit einer Farbe wird zwei mal hintereinander gezogen. Wenn beispielsweise Weiß nach der BF-Tiefe am Zug war und deutlich weniger Material hat (bsp. mit einer Dame im Minus) und mit einem weiteren Zug (also mit dem Zeiten hintereinander) diesen Materialnachteil nicht ausgleichen kann, so kann dieser Ast (ersteinmal) verworfen werden. Falls aber dieser Materialnachteil durch diesen zweiten Zug in Folge ausgeglichen werden kann (bsp. mit einer Mattdrohung), so muss man diesen Zug wieder zurück nehmen und alle Schwarzen Antworten prüfen um sich sicher zu sein, ob Schwarz nicht doch noch Schlupflöcher hat. Auf diese BF-Tiefe folgt dann eine Selektierung der Züge für eine tiefere Suche nach dem selben oder ähnlichen Prinzip (sowohl bei SEE als auch Null-Move Programmen). Die beiden Techniken lassen sich übrigens auch kombinieren.
Dies war nur eine sehr grobe Beschreibung eines Schachprogramms. Die Entwicklung ist nicht stehen geblieben, wie man en den Top Engines sehen kann. Wer weiß was sich die Jungs noch so alles haben einfallen lassen. Ich hoffe aber, dass die grundliegende Funktionsweise vom Null-Move Algorithmus klar geworden ist.
MfG
Vitali