Skip to content

fynn-madrian/predator_prey_simulation

Repository files navigation

Predator-Prey Reinforcement Learning Simulation

Dieses Projekt simuliert ein dynamisches Predator-Prey-Szenario zur Untersuchung lernfähiger Agenten mit Hilfe von Reinforcement Learning. Die Agenten agieren in einer physikalisch plausiblen 2D-Umgebung mit Hindernissen, Futterquellen und einem jagenden Gegenspieler. Das Trainingsverfahren basiert auf PPO (Proximal Policy Optimization) mit LSTM zur Verarbeitung sequentieller Beobachtungen.

Ziel ist es, die Lernfähigkeit und Generalisierbarkeit von Agentenverhalten in verschiedenen Subtasks wie Navigation, Flucht und Nahrungssuche zu analysieren. Die Umgebung ist vollständig modular und nutzt die PettingZoo-Schnittstelle.


Visualisierte Verhaltensbeispiele

Die folgenden GIFs zeigen exemplarische Durchläufe trainierter Agenten in verschiedenen Szenarien. Alle Clips sind im Repository unter animated_runs/ verfügbar:

  • circle_field: Ein Agent leert effizient ein Futterfeld und weicht dabei gleichzeitig dem Jäger aus

  • flee_river: Der Agent nutzt einen engen Pfad mit Fluss als Deckung und entkommt dem Jäger

  • flee_rocks: Der Agent verwendet große Felsen zur Flucht und Sichtblockade gegenüber dem Jäger

  • spinning_navigate: Navigation durch ein komplexes Feld mit Hindernissen zur Erreichung eines Ziels


Installation

# Virtuelle Umgebung erstellen
python -m venv venv
source venv/bin/activate      # Linux/macOS
venv\Scripts\activate       # Windows

# Abhängigkeiten installieren
pip install -r requirements.txt

Konfiguration

Alle konfigurierbaren Parameter zur Umgebungsstruktur und Trainingsstrategie befinden sich in:

  • config.json – grundlegende Einstellungen zur Map, Sichtfeld, Belohnungsstruktur etc.
  • algorithms.py – Trainingsarchitektur und PPO-Hyperparameter

Training

python main.py

Trainingsdaten werden automatisch unter logs/<timestamp>/ gespeichert.

Trainingsanalyse

python analyze_run.py

Generiert in graphs/ verschiedene Plots zur Reward-Entwicklung, Episodenlängen etc.

Video-Visualisierung eines Trainingslaufs

python visualize_run.py

Erzeugt ein .avi-Video der Simulation basierend auf Umgebungsdaten und Agentenpfaden.


Evaluation

python evaluate.py

Das Evaluationsskript erlaubt eine systematische Bewertung von trainierten Modellen. Dabei werden je nach Szenario spezifische Metriken wie „Zeit bis Ziel“, „Überlebenszeit“ oder „gesammeltes Futter“ extrahiert. Die besten 5 Durchläufe werden unter evaluate_log/ gespeichert.

About

Bachelorarbeit: Simulation einer Predator und Prey Umgebung und Trainingsszenarien für optimiertes Verhalten durch Reinforcement Learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages