Skip to end of metadata
Go to start of metadata

JassBot mit Machine Learning

Ausgangslage

Im Frühling 2017 veranstaltete die Firma Zühlke Engineering AG einen Wettbewerb in der Jassvariante Schieber. Das Besondere daran war, dass die Teilnehmenden eigene Programme (Bots) entwickeln mussten, die für sie jassen konnten. Der Veranstalter Zühlke Engineering AG stellte einen Server zur Verfügung, der das Kommunikationsprotokoll und die Spielregeln vorgab. Am Wettkampftag wurde der beste Bot im Jassturnier auserkoren. Als Turnierabschluss durfte der Bot des Siegerteams gegen ein menschliches Turnierteam antreten. Dieses letzte Spiel zeigte, dass auch der beste Bot des Turniers chancenlos gegen das menschliche Team ist. Der hier vorliegenden Forschungsarbeit liegt jener Jasswettbewerb zu Grunde. Ziel dieser Forschungsarbeit war es einen Bot zu entwickeln, welcher nicht nach vorgegebenen heuristischen Instruktionen spielt, sondern den Schieber Jass selber erlernen kann. Bekannt ist diese Idee von Projekten, wie AlphaGo, AlphaGo Zero und AlphaZero, welche von Google für das Spiel Go umgesetzt wurden.

Vorgehen/Technologien

Zur Lösung dieser Fragestellung wurde entschieden, wie bei AlphaGo, mit neuronalen Netzwerken und zwei verschiedenen Lernstrategien zu arbeiten. Für jede Strategie wurde ein Prototyp mit den Machine Learning Bibliotheken TensorFlow und Keras in Python entwickelt. Zur Erforschung einer idealen Konfiguration wurden verschiedene Aufbauarten von neuronalen Netzwerken mit der Strategie Supervised Learning geprüft. Die daraus resultierten Ergebnisse wurden anschliessend in ein Netzwerk mit Reinforcement Learning übernommen, um dieses mit verbesserter Konfiguration zu trainieren. Die Daten von gespielten Jasspartien für das Supervised Learning wurden von Swisslos zur Verfügung gestellt. Als Lernpartner für das Reinforcement Learning konnte der siegende Bot aus dem Zühlke Jasswettbewerb verwendet werden.

Ergebnis

Daraus entstand für beide Lernstrategien je ein Prototyp, welcher auf dem Niveau eines Gelegenheitsjassers spielen kann. Im Turnier gegen den siegenden Bot aus dem Zühlke Jasswettbewerb verlor der beste Prototyp jedoch noch die meisten Spiele. Diese Prototypen könnten mit weiteren Optimierungen der Parameter sowie einer längeren Trainingszeit mit mehr Trainingsdaten noch verbessert werden. Das nächste interessante Ziel wäre die Entwicklung eines Prototyps, in welchem die beiden Lernstrategien kombiniert werden.

  • No labels