03.01.2013 Aufrufe

Schach-Computer Algorithmen und Architekturen - Weblearn ...

Schach-Computer Algorithmen und Architekturen - Weblearn ...

Schach-Computer Algorithmen und Architekturen - Weblearn ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

nicht. Die Werte werden am Anfang mit –unendlich für Alpha <strong>und</strong> unendlich für Beta<br />

initialisiert. Für unendlich wird natürlich MAX-Integer bzw. MIN-Integer verwendet.<br />

Die Werte werden sozusagen an die Kindknoten vererbt. Die Werte werden<br />

horizontal im Spielbaum angepasst, allerdings gilt das nur für nebenliegende Knoten,<br />

die den gleichen Elternknoten haben. In einer Minimierstufe wird der Alpha-Wert des<br />

nebenliegenden Knotens eventuell nach oben angepasst, wenn der berechnete Wert<br />

(von den Kindknoten oder den Blattknoten) größer als der aktuelle Alpha-Wert ist. In<br />

einer Maximierstufe wird der Beta-Wert des nebenliegenden Knotens nach unten<br />

angepasst, wenn der berechnete Wert kleiner als der aktuelle Beta-Wert ist. In<br />

Abbildung 5 sind zu jeden Knoten drei Werte angegeben. Links der Alpha-Wert, in<br />

der Mitte der Knotenwert <strong>und</strong> rechts der Beta-Wert.<br />

Abbildung 5: Implementierung der Alpha-Beta-Suche [3]<br />

Der Erfolg dieser Optimierung hängt stark davon ab, in welcher Reihenfolge die Züge<br />

berechnet werden. Werden zuerst „schwächere“ Züge berechnet <strong>und</strong> am Ende der<br />

„beste“ Zug, können keine oder nur wenige Äste abgeschnitten werden. Deshalb<br />

werden die Züge in den <strong>Schach</strong>programmen durch ein schnelles Verfahren<br />

vorsortiert, was die offensichtlich unsinnigen Zugmöglichkeiten an das Ende der Liste<br />

setzt. Die Züge werden z.B. erst mit der Suchtiefe 2 berechnet. Die Ergebnisse<br />

werden dann benutzt um die Züge für die nächst höhere Suchtiefe vorzusortieren.<br />

Das Ganze wird auch als „Iterative Deepening“ oder Breitensuche bezeichnet. Der<br />

Vorteil ist, dass man bei zeitkritischen Spielen immer schon komplett berechnete<br />

Züge hat, die dann nach <strong>und</strong> nach tiefer analysiert werden. Das ist besser als nur ein<br />

paar tief analysierte Züge zu haben, während die restlichen Züge noch gar nicht<br />

bearbeitet wurden. Letztendlich entscheidet aber die tiefste Berechnung, welche<br />

Züge gut oder schlecht sind. Es kann also sein, dass ein Zug, der von der<br />

Vorsortierung als schlecht interpretiert wird, von der tiefer gehenden Suche, als sehr<br />

gut eingestuft wird. Dieser Zug ist dann in kleiner Instanz zwar von Nachteil, aber in<br />

der tieferen Berechnung erweist er sich als vorteilhaft. Das könnte beispielsweise ein<br />

Bauernopfer sein. Menschliche Spieler führen intuitiv eine Art Alpha-Beta-Suche<br />

durch. Sie verfolgen offensichtlich unsinnige Züge nicht weiter. Das müssen sie<br />

auch, denn selbst Großmeister können nur wenige Halbzüge - im Gegensatz zu<br />

schnellen <strong>Schach</strong>computern - in die Zukunft blicken.<br />

11

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!