Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / [Programmierung] Reul: New Architectures in Computer Chess
- - By Karl-Heinz Milaster Date 2009-08-18 09:29
Hallo,

für schlappe 10,00 Euro (einschliesslich Porto) erhält man die Ph.D. Thesis "New Architectures in Computer Chess" von Dr. Fritz Reul (http://www.loopchess.com/index.html), die weit über die rein theoretische Abhandlung hinausgeht. Zu vielen Themen (z.B. optimierte Bitboard-Algorithmen) bietet das gebundene Buch gut dokumentierte C-Code-Schnipsel, die man recht einfach in einer eigenen Engine testen kann.
Neben "Scalable Search in Computer Chess" von Ernst. A. Heinz (erschienen 2000) das beste Buch zum Thema Schach-Programmierung.

Gruss,
khm
Parent - By Peter Martan Date 2009-08-18 11:26
Wow, das nenn ich mal einen echten support!
Parent - - By Reinhard Scharnagl Date 2009-08-18 19:14
Dieses Buch werde ich mir mal anlachen.
Parent - - By Reinhard Scharnagl Date 2009-08-21 14:10
Nun habe ich das Buch einmal kurz überflogen. Da sind doch zahlreiche Details, die bei Bedarf
wirklich nachschlagenswert sind.

Interessant ist insbesondere die erste seiner: "Recommendations for Future Research":
Board Games with N x M > 64 squares (Seite 99).

Dort wird kurz Shogi erwähnt - was das 10x8-Schach angeht, schließe ich mich hier voll an!
Für Schachprogrammierer wird 8x8 sicher zusehends langweiliger. Bei erweiterten Geometrien,
insbesondere bei variabel zu dimensionierenden wie bei SMIRF, zeigt sich erst die wahre
Flexibilität der Lösungsansätze. Bitboard-Darstellungen machen dort ihre eigenen Probleme.

Vermisst habe ich die Betrachtung monochromer Algorithmen (gleiche Verfahren für beide
Seiten ohne lokale Aufsplittung in farbspezifischen Code, (Octopus)) oder eine Befreiung vom
strikten Negamax-Ansatz (unterschiedlich angepasste Bewertungsmodelle für beide Parteien),
da beide kaum mittels derselben Bewertungsfunktion über Züge entscheiden.
Parent - - By Benno Hartwig Date 2009-08-21 14:41
[quote="Reinhard Scharnagl"]... oder eine Befreiung vom
strikten Negamax-Ansatz (unterschiedlich angepasste Bewertungsmodelle für beide Parteien),
da beide kaum mittels derselben Bewertungsfunktion über Züge entscheiden. [/quote]
Eine interessante Idee.
In welchem Maße könnte womöglich eine Engine gegen Rybka3 ohne Tablebases erfolgreicher spielen, wenn ihre Bewertungskriterien sie erkennen ließen, dass das falsche-Läufer-Endspiel zwar remis ist, dass ihr Gegner Rybka3 für sich hier aber einen klaren Vorteil wähnen würde?

Bisweilen könnte die Engine aus schlechter Position eine Stellung herbeiführen, in der sie erkennt, dass der Gegner das Remis verhindern kann, in der sie aber auch erkennt, dass Rybka3 frohgemut in das falsche-Läufer-Endspiel abwickeln wird.
Eine statistisch nicht wichtige Randerscheinung?
Oder würden da doch häufiger mal halbe Punkte eingefahren werden, die ansonsten nicht kämen?
(Jedenfalls gäbe Vas das vielleicht endlich die Motivation, hier nachzubessern!)

Jede Stellung müsste wohl zwei Values bekommen, einen den die Engine für korrekt hält, einen den vermutlich der Gegner für korrekt hält.
Beim Minimax würden dann für alle Knoten jeweils wieder zwei Werte aufgebaut,
- damit die Engine selbst sich entscheiden kann,
- und damit gemutmaßt werden kann, was die Gegnerengine entscheiden würde.
mal so spontan angedacht...

Benno
Parent - By Reinhard Scharnagl Date 2009-08-21 14:47
Selbstverständlich bekommt dann jede Position zwei höchstwahrscheinlich unterschiedliche Bewertungen.
Das Problem hierbei ist aber nicht der Übergang zwischen den Bewertungsmodellen beim zugbedingten
Farb- bzw. Spielerwechsel, sondern die zu erwartende Schwierigkeit, dass die jeweiligen Maxima / Minima
nicht bei identischen Zügen liegen (sonst wäre dieser Ansatz zudem sinnlos).
Parent - By Reinhard Scharnagl Date 2009-08-21 15:04
Sofern die möglichen Bewertungsfunktionen eine parametrisierte Familienschar darstellten,
wäre eine neu hinzukommende Aufgabe, diese Parameter während der Partie optimal zu
modellieren, durch Annäherung an die zwischenzeitlich vom Gegner gespielten Züge,
beispielsweise mittels simulierter Abkühlungsverfahren oder etwa auch per Fuzzy Logic.
Parent - By Reinhard Scharnagl Date 2009-08-21 15:35
Eine weiter Folge solchen Vorgehens wäre, dass diese Art von Bewertung Schach 
als Spiel mit de facto unvollständiger Indformation betrachten würde. Es wäre 
also aus der Sicht beider Seiten KEIN Nullsummenspiel mehr. Die Bewertung des
besten Zuges aus eigener Sicht in eigener Bewertung plus der aus fremder
Sicht in fremder Bewertung wäre dann in der Regel nicht gleich Null. Deshalb
muss man sich dann auch etwas anderes einfallen lassen als den Negamax ...
Dennoch würde es die tatsächliche nicht allwissende Situation besser treffen.
Parent - By Reinhard Scharnagl Date 2009-08-21 15:45
Dieser Bewertungsverschiedene Ansatz hätte selbstverständlich noch weitere
Einsatzmöglichkeiten, besonders eine andere Nutzung mehrerer Prozessorkerne,
was ich mir folgendermaßen vorstelle: eine Engine rechnet parallel mit verschie-
denen Bewertungsfunktionen für sich selber: mal eher defensiv, eher offensiv,
eher Damenflügelorientiert, u.s.w. bei gleichbleibend optimierter Bewertungs-
funktion für die Gegenseite.

Dies würde der Erprobung divergierender STRATEGIEN gleichkommen, deren
erfolgversprechendstes Optimum dann festgestellt und angewandt werden
könnte. (Octopus macht bereits ähnliches in Bäumen unterhalb 0-Moves).

Leider findet sich in deutscher Sprache keine Nachfrage nach solchen Über-
legungen. Kreativität wird nicht honriert, sondern boykotiert oder sabotiert.
Up Topic Hauptforen / CSS-Forum / [Programmierung] Reul: New Architectures in Computer Chess

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill