Dieses Projekt implementiert ein Q-Learning-Modell in C#. Es trainiert ein Modell basierend auf definierten Zuständen und Aktionen und speichert die Belohnungen pro Episode in einer JSON-Datei. Zusätzlich wird ein Python-Skript verwendet, um die Ergebnisse zu visualisieren.
Diese Datei enthält die Hauptlogik des Q-Learning-Modells. Es umfasst Funktionen zum Initialisieren des Q-Tables, zur Auswahl von Aktionen, zum Lernen und Aktualisieren der Q-Werte und zur Überprüfung der Konvergenz des Lernprozesses.
Dies ist der Einstiegspunkt des Programms. Es erstellt eine Instanz von KLerning
, führt das Training aus und speichert die Belohnungen pro Episode in einer JSON-Datei. Nach Abschluss des Trainings wird versucht, ein Python-Skript (plot_data.py
) zu starten, um die Ergebnisse zu visualisieren.
Ein Python-Skript, das die matplotlib
-Bibliothek verwendet, um die in der rewardsPerEpisode.json
-Datei gespeicherten Trainingsbelohnungen zu visualisieren. Es erstellt ein Liniendiagramm, das den Fortschritt des Lernens über die Episoden hinweg zeigt.
Eine JSON-Datei, die die Belohnungen speichert, die das Modell in jeder Trainingsepisode erhält. Diese Datei wird von Program.cs
generiert und von plot_data.py
zum Zeichnen des Plots verwendet.
- Klonen Sie das Repository und navigieren Sie zum Projektverzeichnis.
- Führen Sie
dotnet run
aus, um das Training zu starten und die JSON-Datei zu generieren. - Nach dem Training wird automatisch
plot_data.py
aufgerufen, um den Plot zu erstellen.
Nachdem das Training abgeschlossen ist, wird das folgende Bild erzeugt, das den Fortschritt der Trainingsbelohnungen über die Episoden hinweg zeigt:
- .NET 8.0
- Python 3
- Matplotlib für Python
Dieses Projekt wurde speziell für eine Linux-Umgebung entwickelt. Die Visualisierung erfolgt über ein externes Python-Skript aufgrund der Kompatibilitätsprobleme von ScottPlot unter Linux.