Refine
Document Type
- Bachelor Thesis (1)
- Master's Thesis (1)
Language
- German (2)
Has Fulltext
- yes (2)
Is part of the Bibliography
- no (2) (remove)
Keywords
- Deep Reinforcement Learning (1)
- Generics (1)
- Go (1)
- Laufen lernen (1)
- Programmiersprache (1)
- RoboCup (1)
- Übersetzungsstrategie (1)
Open Access
- Open Access (2)
- Diamond (1)
Analyse domänenseitiger Optimierungen für Deep Reinforcement Learning in der RoboCup Umgebung
(2021)
Mit dem Team "magmaOffenburg" nimmt die Hochschule Offenburg seit 2009 am internationalen Wettbewerb "RoboCup" in der 3D-Simulationsliga für Fußball teil. Dabei kommt es vor allem auf den Einsatz guter Lauf- und Kickverhalten an. Seit 2019 ist es dem Team magmaOffenburg möglich auch Deep Reinforcement Learning für die Weiterentwicklung der Verhalten einzusetzen. Während auf diese Weise schon verwendbare Ergebnisse für das Kicken produziert wurden, so fehlt noch ein Fortschritt beim Laufen lernen. Diese Arbeit beschäftigt sich mit den nötigen Optimierungen auf der Domänenseite, um das gelernte Laufen zu verbessern. Das beinhaltet die Optimierung des Observation- und Actionspaces, sowie auch eine Optimierung der Rewardfunktion. Dabei wurde versucht, die einzelnen Einflüsse verschiedener Parameter und Techniken innerhalb dieser drei Bereiche zu evaluieren. So konnte zum Schluss eine Verbesserung in der Laufgeschwindigkeit von etwas unter einem Meter pro Sekunde auf bis zu 1,8 Metern pro Sekunde erreicht werden. Ausschlaggebend für dieses Ergebnis waren vor allem der Verbesserungen in der Rewardfunktion.
Go ist eine 2009 veröffentlichte Programmiersprache mit einem statischen Typsystem. Seit Version 1.18 sind auch Generics ein Teil der Sprache. Deren Übersetzung wurde im de facto Standard-Compiler mittels Monomorphisierung umgesetzt. Diese bringt neben einigen Vorteilen auch Nachteile mit sich. Aus diesem Grund beschäftigt sich diese Arbeit mit einer alternativen Übersetzungsstrategie für Generics in Go und implementiert diese in einem neuen Compiler für Featherweight Generic Go, einem Subset von Go. Zum Schluss steht damit ein nahezu funktionierender Compiler, welcher schließlich Racket-Code ausgibt. Eine Evaluierung der Performanz der Übersetzungsstrategie ist allerdings noch ausstehend.