Projekttag Informatik 2015

Deep Game

Das Projekt Deep-Game hat es sich zur Aufgabe gemacht, intelligente Computerspieler, sogenannte Agenten, für unterschiedliche Gesellschaftsspiele zu entwickeln. Es werden verschiedene algorithmische Ansätze verwendet, um möglichst gute Lösungen zu erzielen. Ein gemeinsames Merkmal der betrachteten Spiele ist es, dass jeder Zug eine Vielzahl möglicher Folgezüge hat. Dadurch entstehen sehr große Suchräume, die effizient traversiert werden müssen.

Ein Ansatz verfolgt die Idee, dem Agenten nur die Spielregeln zur Laufzeit zu liefern, jedoch keine Strategien um das Spiel zu gewinnen. Dazu haben wir bestimmte Voraussetzungen festgelegt, die auf diese Spiele zutreffen müssen. Zum Beispiel muss es ein rechteckiges Spielfeld geben und man muss jederzeit alle Informationen zum Spielzustand besitzen. Der Agent evaluiert dann systematisch verschiedene Strategien und lässt sie gegeneinander antreten, bis er eine gute Strategie gefunden hat. Dieser Agent kann jedes beliebige Spiel spielen, das den Voraussetzungen entspricht, und kann es gut spielen, sofern er genug Zeit zum Lernen hat. Wir implementieren verschiedene klassische Brettspiele wie Dame, Schach und TicTacToe.

Auch beschäftigt sich das Projekt mit der Lösung des Spiels Arimaa, eine Variante von Schach, die dafür entwickelt wurde, dass es für Menschen einfach zu spielen ist jedoch für Agenten sehr schwierig. Es werden vorhandene Ansätze analysiert und verbessert. Die Schwierigkeit eines Agenten für dieses Spiel ist der große Suchraum, der klassische Algorithmen ineffizient macht. Weiterhin wird der Agent online gegen andere Agenten spielen um sich mit denen zu vergleichen.

Des weiteren wird das Kartenspiel Dominion betrachtet und implementiert. Hierzu wurden Merkmale formal untersucht und verschiedene Arten von Agenten realisiert. Existierende Strategien wurden analysiert und in Reflexagenten umgesetzt. Ein weiterer Ansatz ist es, den vorhandenen Spielzustand zu bewerten und daraus die optimale Aktion abzuleiten. Genetische Algorithmen werden verwendet, um die Regeln bei den Reflexagenten zu gewichten sowie die Bewertungsfunktionen zusammenzustellen. Suchstrategien werden bei einem Agenten verwendet, um die Konsequenzen von Spielzügen zu erkennen. Auch wird eine Wissensdatenbank verwendet, um Entscheidungen zu treffen.