Praktikum aus Künstlicher Intelligenz
Learning to Play Bughouse
News
Zeit und Ort
Das erste Treffen findet am Mittwoch, 24.04.2019 um 17:10h in E202 statt. Eine Teilnahme an dieser Vorbesprechung ist notwendig, da in diesem Treffen die Plätze vergeben werden.
Weitere Treffen werden ebenfalls Mittwochs um 17:10h in E202 stattfinden, jedoch nicht notwendigerweise jede Woche.
Die momentane Termin-Planung ist wie folgt:
Inhalt
Im Zuge dieses Praktikums werden wir versuchen, in Gruppen eine KI für Bughouse zu entwickeln. Bughouse, zu Deutsch auch Tandem-Schach genannt, ist eine Schach-Variante, in der Teams von jeweils 2 Spielern gegeneinander antreten, wobei ein Spieler die weißen und sein Partner die schwarzen Steine führt. Die Besonderheit des Spiels liegt darin, dass jeder Spieler einen von seinem Partner geschlagenen Stein an Stelle eines Zugs auf seinem Brett einsetzen kann.
Sieger ist das Team, das als erstes eine der beiden Partien gewinnt, entweder durch Schachmatt oder durch Zeitüberschreitung des Gegners. Dadurch erhält das Spiel auch eine besondere Dynamik, da ein Spieler, der ein Matt im nächsten Zug nicht mehr verhindern kann, keinen Zug mehr machen wird und darauf hofft, dass sein Partner gewinnen kann bevor die eigene Bedenkzeit ausläuft.
Hintergrund der Aufgabenstellung ist, dass 2018 ein Team von Studenten der TU Darmstadt einen Bot entwickelt hat, der in der verwandten Schach-Variante Crazyhouse den Bot CrazyAra entwickelt hat, der in einem Wettkampf den Weltmeister besiegen konnte. Crazyhouse ist die Ein-Personen-Variante von Bughouse, in der die Figuren, die man selbst schlägt, die Farbe wechseln und auf der eigenen Seite wieder eingesetzt werden können. Im Gegensatz zu Crazyhouse kommen bei Bughouse durch das Spiel auf 2 Brettern gleichzeitig noch Kooperationsaspekte hinzu, wie z.B. das Handling der beschränkten Bedenkzeit oder ggf. auch Kommunikation mit dem Partner.
Vorkenntnisse
Um an diesem Praktikum teilzunehmen, sollten Sie mitbringen
- Vorkenntnisse in Künstlicher Intelligenz, insbesondere Suchalgorithmen wie Monte-Carlo Tree Search (z.B. Absolvierung der Vorlesung "Einführung in die Künstliche Intelligenz")
- Grundkenntnisse in Deep Learning (z.B. Absolvierung der Vorlesung "Deep Learning: Methods & Architectures")
- Elementare Kenntnisse in Schach (zumindest die Grundregeln), sowie Begeisterung für Brettspiele im allgemeinen
Literatur
Sie sollten sich insbesondere mit den AlphaGo sowie AlphaZero vertraut machen.
- David Silver, Aja Huang, Chris J. Maddison, Arthur Guez, Laurent Sifre, George van den Driessche, Julian Schrittwieser, Ioannis Antonoglou, Vedavyas Panneershelvam, Marc Lanctot, Sander Dieleman, Dominik Grewe, John Nham, Nal Kalchbrenner, Ilya Sutskever, Timothy P. Lillicrap, Madeleine Leach, Koray Kavukcuoglu, Thore Graepel, Demis Hassabis: Mastering the game of Go with deep neural networks and tree search. Nature 529(7587): 484-489 (2016).
- David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy P. Lillicrap, Karen Simonyan, Demis Hassabis:
Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm. CoRR abs/1712.01815 (2017)
Software und Tools
- Lc0 (Leela Chess Zero) Implementation/Tutorial und Discord Server
- Cody2007's Implementierung und Tutorial
- Surag's allgemeine Implementierung und Tutorial für verschiedene Spielvarianten
- Wee Tee Soh's Tutorial und Implementierung für Vier Gewinnt und Schach
Es gibt auch einige Schach-Programme, die Bughouse spielen können, wie z.B.
Die Programme sind in Bughouse meist bedeutend schwächer als im regulären Schach.Ablauf
Die Studenten werden das Praktikum in Teams bearbeiten, die jeweils eigenständige Lösungen erarbeiten, wobei natürlich ein Austausch erwünscht ist.
Als Lösungsweg ist angedacht, einen Grundspieler mittels Deep Learning aus menschlichen Spielen und/oder aus Spielen gegen sich selbst lernen zu lassen, und diesen dann um entsprechende Funktionalitäten zur Koordination mit dem Partner zu erweitern.
Als Trainingsmaterial steht zum Beispiel eine Datenbank von auf einem Schach-Server gespielten Bughouse-Spielen zur Verfügung. Die darin verwendete standardisierte Notation von Bughouse-Spielen ist hier beschrieben.
Beurteilung
Die Lösung wird in Kleingruppen erstellt werden. Der Fortschritt der Arbeit wird in den regelmäßigen Treffen diskutiert und bewertet. Am Ende des Semesters ist ein schriftlicher Bericht, der die in der Gruppe erarbeitete Lösung beschreibt, zu erstellen (in Englisch), der ebenfalls in die Bewertung einfließen wird.
Beurteilt wird Ihr Engagement für das Praktikum und die Qualität Ihres Lösungsweges (nicht unbedingt die Qualität der Lösung selbst, d.h. das Abschneiden in Vergleichskämpfen mit anderen Lösungen ist nicht notenrelevant).
Kontakt
Johannes Fürnkranz, Tobias Joppen, Markus Zopf