
Zitat von
Rasmus
...
Das wird zwar gerne als Ausrede benutzt, wenn ein Programm patzt, ist aber praktisch bedeutungslos. Zwar sind Indexkollisionen häufig, aber es wird an der Position ja auch noch der eigentliche Hashkey gespeichert. Das Paper ist leider nicht mehr online verfügbar, aber Robert Hyatt (Crafty) hat das untersucht. Ergebnis: Ab 48bit Schlüssellänge spielen Hashkollisionen keine Rolle mehr.
Wenn man einen besten Zug in der Tabelle mit gespeichert hat, kann man auch untersuchen, ob der denn pseudolegal ist. Hyatt hatte lange Jahre in Crafty dieses Überprüfungs-Feature, welches ihm zufolge auch nie angeschlagen hat.
...
viele Grüße, Rasmus
>> Hallo Rasmus,
erfreut nehme ich zur Kenntnis, dass wir nun einen weiteren Experten im Forum haben
Dem Thema Hashtable-Kollisionen hatte auch der Nizmo-Autor sehr intensiv gewidmet.
Einen sehr interessanten, wenn auch fast schon wissenschaftlichen Beitrag gab es zu dem Thema in Computerschach & Spiele, Heft 4/94 ab Seite 38. Der Artikel "Der Fleischwolf im Schachprogramm" von Dr. Christian Donninger) beschreibt dort die Funktionsweise von Hashtabellen und auch das
Problem der Hashtables-Kollisionen. Die 160 KB des CGP sind bei einem so schnellen Prozessor einfach nicht ausreichend. Hier bedarf es sicher 2 MB und mehr um diese Effekte ausreichend zu minimieren.
Mir fehlen hier ganz einfach die Detailkenntnisse ob Rober Hyatt oder Dr. Christian Donninger falsch liegen.
Ich zitiere einen kurzen Auszug aus seinen Analysen:
"...eine Stellung wird unter Umständen gänzlich falsch bewertet, mysteriöse, oft nicht reproduzierbare Züge erscheinen am Brett. Das Schachprogramm erhält "menschliche Eigenschaften..."
Im weiteren Verlauf räumt der Autor jedoch ein, dass das Problem eher selten auftaucht.
Gruß
Egbert
PS: Eine Frage habe ich noch Rasmus, hast Du auch Erfahrungen mit der Programmierung von Emulatoren?
Gruß
Egbert