Ich suche nach einem effizienten Algorithmus, mit dem ich den Minimax-Suchbaum für Schach mit Alpha-Beta-Bereinigung auf einer verteilten Architektur verarbeiten kann. Die Algorithmen, die ich gefunden habe (PVS, YBWC, DTS, siehe unten), sind alle ziemlich alt (1990 ist die neueste). Ich gehe davon aus, dass es seitdem viele wesentliche Fortschritte gegeben hat. Was ist der aktuelle Standard in diesem Bereich?
Bitte verweisen Sie mich auch auf die Erklärung eines Idioten zu DTS, da ich sie aus den Forschungsberichten, die ich gelesen habe, nicht verstehen kann.
Die oben genannten Algorithmen:
- PVS: Prinzipielle Variationsaufteilung
- YBWC: Junge Brüder warten Konzept
- DTS: Dynamische Baumaufteilung
sind alle diskutiert hier .
algorithms
distributed-systems
board-games
verdrahten
quelle
quelle
Antworten:
Ja, die Theorie hat sich aufgrund der Schachanalyseliteratur und der allgemeinen parallelen Programmiertechniken erheblich und etwas weiterentwickelt. Hier sind einige neuere Referenzen zum (Schach-) Alpha-Beta-Beschneiden über verteilte Cluster / Parallelität. Auch einige der frühen Literatur zu verteiltem Computerschach sind älter als viele grundlegende parallele Entwurfsmuster und können in diesem Rahmen konzeptualisiert werden.
Paralleler Alpha-Beta-Algorithmus auf der GPU / Strnad, Guid (2011)
Parallele Alpha-Beta-Suche auf Multiprozessoren mit gemeinsamem Speicher / Manohararajah (2001) 98pp!
Parallelisierung eines einfachen Schachprogramms / Greskamp, 2003
Paralleles Alpha-Beta-Beschneiden von Spielentscheidungsbäumen: Eine Schachimplementierung / Steele 1999
Ist es möglich, eine Minimax-Suche mit Alpha-Beta-Bereinigung parallel zu OpenMP durchzuführen? (Paketüberfluss)
Der DTS-Hochleistungsalgorithmus zur parallelen Baumsuche (Hyatt 1994)
Die Grundidee hinter DTS ist, dass Suchbäume basierend auf der Komplexität von Verschiebung / Layout auf Rechenknoten verteilt werden. Nicht genutzte Prozessoren, die "vorzeitig" fertig werden, können zusätzliche Arbeit leisten, die über eine anfängliche Zuweisung hinausgeht und anfänglich so gleichmäßig wie möglich verteilt werden kann, sich jedoch als ungleichmäßig herausstellt. Daher handelt es sich im Grunde genommen um eine Art "Load Balancing" - und "Producer / Consumer" -Warteschlange oder auch ähnlich wie bei der Auftragsplanung.
quelle