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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6.2.4 Interne Brettdarstellung mit Bitboards<br />

Die Bitboards verfolgen ein anderes Konzept. Mit einem 64-Bit Wort lässt sich die<br />

Position eines bestimmten Typs von Stein darstellen. Dabei repräsentiert das 0. Bit<br />

das Spielfeld A1 <strong>und</strong> das 63. Bit Spielfeld H8. Für alle sechs Spielsteine (König,<br />

Königin, Turm, Läufer, Springer <strong>und</strong> Bauer) <strong>und</strong> für jeweils beide Farben gibt es eine<br />

Repräsentation in Form eines 64-Bit Wortes.<br />

Diese Form der Brettdarstellung ist nicht sonderlich verbreitet, da sie den Nachteil<br />

hat, durch die vielen Bitoperationen relativ unübersichtlich zu sein. Das Programm<br />

Crafty verwendet aber solche Bitboards. Der Autor gibt selbst sogar an, daß er mit<br />

dieser Art von Darstellung anfänglich (etwas über ein Jahr) Probleme hatte.<br />

Beispiel für "bit-parallele" Operationen<br />

Wenn z.B. überprüft werden soll, ob ein schwarzer Bauer auf dem Feld d5, d6, d7,<br />

e5, e7, f5, f6 oder f7 steht, lässt sich dies mit einer einfachen And-Operation<br />

überpüfen. Um dies zu bewerkstelligen, muss ein Bitboard erstellt werden, das die<br />

entsprechenden Felder auf 1 setzt. Führt man nun eine AND Verknüpfung mit dem<br />

Bitboard der schwarzen Bauern aus, kann man das Ergebnis direkt auswerten. Wenn<br />

es ungleich null ist, muss auf einem der 8 Felder mindestens ein Bauer stehen. Im<br />

Prinzip wurden also mit einer Operation 8 Anfragen parallel bearbeitet. Die Position<br />

der Bauern lässt sich bei Bedarf mit Hilfe von Shift-Operationen bestimmen.<br />

Bei einer der Array-Brettdarstellungen müsste man dies mit Hilfe von mehreren<br />

Operationen für jeden Stein separat überprüfen.<br />

Fazit<br />

Bitboards bringen nur auf 64-Bit Maschinen wirkliche Geschwindigkeitsvorteile, da<br />

die Bitoperationen dort effizient umgesetzt werden können. Führt man Programme,<br />

die eine andere Form der Brettdarstellung gewählt haben, auf so einer Maschine<br />

aus, lässt sich dieser Vorteil nicht ausnutzen.<br />

19

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!