Git Product home page Git Product logo

thesishsmz-rltictactoe-java's Introduction

ThesisHSMZ-RLTicTacToe-Java

Dieses Repository enthält die Java Implementierung zu meiner Bachelorarbeit an der HS Mainz im Studiengang Wirtschaftsinformatik dual mit dem Titel:

Evaluation der Reinforcement Learning Algorithmen Sarsa und Q-Learning am Beispiel eines Strategiespiels

Meine Bachelorarbeit kann eingesehen werden im Repository ThesisHSMZ-RLTicTacToe

Allgemeine Informationen

Die Anwendung wurde mit Java 16 erstellt, die zum Zeitpunkt der Bearbeitung die aktuellste Version war. Um die volle Kontrolle über die Implementierung der Reinforcement Learning Algorithmen und Agenten zu haben wurden keine zusätzlichen Bibliotheken eingebunden. Die einzige Ausnahme ist die Bibliothek Apache CommonsCSV, die zur Erstellong von CSV-Dateien genutzt wird.

Alle Klassen und Methoden sind ausführlich mit JavaDoc auf Englisch kommentiert. Eine Beschreibung der Architektur und Implementierung ist in Kapitel 4 meiner Bachelorarbeit, die hier als PDF eingesehen werden kann.

Überblick der Architektur

Das UML-Diagramm stellt keinen Anspruch an Vollständigkeit, sondern dient der Vermittlung eines grundlegenden Verständnisses für die wichtigsten Bestandteile der Anwendung sowie deren Interaktion. Der GameManager ist die zentrale Klasse, die alle anderen Klassen verbindet, um Training und Evaluation der Agenten durchzuführen. Auf Basis, der in ExperimentParameters definierten Werte erstellt der GameManager zwei Agenten und weist diesen eine gemeinsame Experience Instanz zu. Die beiden Agenten werden mittels Self-play trainiert und anschließend in Evaluationsspielen getestet. Zur Bewertung der Agenten verwendet der GameManager den Minimax-Algorithmus. Währenddessen erstellt der GameManager Log-Dateien auf deren Basis die Auswertung erfolgt. Einerseits CSV-Dateien, die zum Plotten der Konvergenz und Berechnen der Spielstärke verwendet werden. Andererseits Dateien, die für Training und Evaluation verwendete Experimentparameter und Spielergebnisse enthalten.

image

thesishsmz-rltictactoe-java's People

Contributors

jonasbingel avatar

Stargazers

Moritz Broft avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.