Skip to content

pkoopongithub/PrimatenSim

Repository files navigation

PrimatenSim – Kulturelle Evolutionssimulation

PrimatenSim ist eine agentenbasierte Simulationsanwendung für Windows zur Erforschung kultureller Dynamiken in Primatengruppen. Die App wurde mit .NET 8.0 und WPF entwickelt und visualisiert die Ausbreitung und Evolution von Kulturen in einer räumlichen Umgebung.


📋 Inhaltsverzeichnis


🎯 Überblick

PrimatenSim simuliert die Entwicklung von 9 verschiedenen Kulturen (K1-K9) in einer Population von Primaten auf einem 40×40 Gitter. Jeder Primat besitzt individuelle Eigenschaften:

Eigenschaft Beschreibung
Status Jung oder erwachsen
Alter In Ticks (max. 20)
Geschlecht Weiblich (1) oder Männlich (2)
Primärkultur Hauptkultur (1-9)
Sekundärkultur Zweitkultur (Hybridisierung)
Macht Sozialer Einfluss (1-9)

Die Simulation basiert auf einem zellulären Automaten mit toroidaler Geometrie (die Ränder sind miteinander verbunden).


✨ Features

Kernfunktionen

  • Agentenbasierte Simulation auf 40×40 Gitter (1600 Zellen)
  • 9 verschiedene Kulturen mit individuellen Farben und Toleranzwerten
  • Echtzeit-Visualisierung mit drei Ansichtsmodi
  • Interaktive Steuerung (Start, Stopp, Zufallsverteilung)
  • Geschwindigkeitsregler (20-500 ms pro Tick)
  • Auto-Stopp bei Monokultur
  • CSV-Export der Simulationsdaten
  • Klick-Info für jeden Primaten (Tooltip mit Details)

Visualisierungsmodi

Modus Beschreibung
Kulturansicht Farbcodierte Darstellung der Primärkultur
Statusansicht Geschlecht und Alter (jung/erwachsen)
Ressourcenansicht Ressourcenverteilung (Grüntöne)

Diagramm

  • Live-Chart der Kulturentwicklung über die Zeit
  • Bis zu 500 Datenpunkte im sichtbaren Fenster
  • Populationslinie optional ein-/ausblendbar

🧬 Die 5 Erweiterungen

1. Kulturelle Hybridisierung

Jeder Primat besitzt eine Primärkultur und eine Sekundärkultur. Kinder erben die Primärkultur von der Mutter und die Sekundärkultur vom Vater.

2. Macht-Puffer für Kulturwechsel

Erwachsene Männchen können ihre Kultur ändern, wenn ein deutlich mächtigerer (Macht +3) Rivale in der Nachbarschaft ist. Die eigene Macht sinkt dabei um 1.

3. Weibliche Affinität bei Partnerwahl

Bei der Partnerwahl wird nicht nur die Macht der Männchen berücksichtigt, sondern auch die kulturelle Nähe (0.8 × Macht + 0.2 × kulturelle Affinität).

4. Ressourcen-System

Jede Zelle besitzt Ressourcen (0-5). Diese werden beim Verbrauch reduziert und regenerieren sich langsam. Ressourcenreiche Gebiete bieten einen Bonus für Machtgewinn.

5. Kulturelle Toleranz

Jede Kultur hat einen individuellen Toleranzwert (0.1-0.9). Bei kultureller Isolation (viele fremde Nachbarn) steigt die Sterbewahrscheinlichkeit:
P(Tod) = Isolationsgrad × (1 - Toleranz)


🛠 Technologie-Stack

Komponente Technologie Version
Framework .NET 8.0 8.0
Sprache C# 12.0
UI-Framework WPF -
Charts LiveCharts.Wpf 0.9.7
JSON-Parser Newtonsoft.Json 13.0.3
Build-Tool MSBuild -
Mindest-Windows Windows 10 1809+

📊 Simulationslogik

Lebenszyklus eines Primaten

Geburt → Jung (Alter 0-2) → Erwachsen (Alter 3-19) → Tod (Alter 20)

Einflussfaktoren pro Tick

  1. Alterung (80% Wahrscheinlichkeit)
  2. Ressourcenverbrauch (falls verfügbar)
  3. Kulturelle Isolation (Tod durch Fremde)
  4. Kulturelle Beeinflussung (nur erwachsene Männchen)
  5. Geburt (25% Wahrscheinlichkeit bei Paar in Nachbarschaft)
  6. Migration (0.05% spontane Neubesiedlung)

Kulturelle Toleranzwerte

Kultur K1 K2 K3 K4 K5 K6 K7 K8 K9
Toleranz 0.2 0.8 0.4 0.9 0.5 0.1 0.7 0.3 0.6

💻 Installation

Voraussetzungen

  • Windows 10 oder Windows 11 (64-Bit)
  • .NET 8.0 Desktop Runtime (Download)
  • Visual Studio 2022 (für Entwicklung)

Schritt-für-Schritt Installation

# 1. Repository klonen
git clone https://github.com/yourusername/PrimatenSim.git
cd PrimatenSim

# 2. Projekt in Visual Studio öffnen
start PrimatenSim.sln

# 3. NuGet-Pakete wiederherstellen
dotnet restore

# 4. Build ausführen
dotnet build

# 5. App starten
dotnet run

Ausführbare Datei erstellen

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o ./publish

📁 Projektstruktur

PrimatenSim/
├── PrimatenSim.csproj              # Projektdatei
├── PrimatenSim.sln                 # Visual Studio Projektmappe
├── App.xaml                        # Anwendungsressourcen
├── App.xaml.cs                     # App-Lifecycle
├── MainWindow.xaml                 # Hauptfenster
├── MainWindow.xaml.cs              # Hauptfenster-Logik
├── Models/
│   ├── Primat.cs                   # Primaten-Datenmodell
│   └── SimulationState.cs          # Zustandsspeicherung
├── Engine/
│   ├── SimulationEngine.cs         # Kernlogik (Zellautomat)
│   └── Statistics.cs               # Statistikberechnungen
├── Views/
│   └── SimulationCanvas.xaml       # Interaktive Visualisierung
│   └── SimulationCanvas.xaml.cs    # Canvas-Logik
├── Converters/
│   └── DoubleToBrushConverter.cs   # Wertkonverter
└── Resources/
    └── Styles.xaml                 # Globale UI-Styles

🎮 Steuerung

Element Funktion
▶ Start Startet die Simulation
⏸ Stopp Stoppt die Simulation
🔀 Zufallsverteilung Setzt neue zufällige Population
Geschwindigkeitsregler Steuert die Tick-Geschwindigkeit (20-500 ms)
Auto-Stopp bei Monokultur Stoppt automatisch bei 99.5% Dominanz
Kulturansicht Zeigt farbcodierte Kulturen
Statusansicht Zeigt Geschlecht und Alter
Ressourcenansicht Zeigt Ressourcenverteilung
Klick auf Zelle Zeigt Details des Primaten an
CSV Export Exportiert die Simulationsdaten

📤 Export & Analyse

CSV-Export-Format

Tick;Population;Kultur_1;Kultur_2;...;Kultur_9
0;245;0.12345;0.09876;...;0.06789
1;248;0.12234;0.09765;...;0.06890
...

Statistische Kennzahlen (in Statistics.cs)

Maß Beschreibung
Simpson-Index 1 - Σ(p_i²) → Diversität (0-1)
Shannon-Entropie -Σ(p_i × log₂(p_i)) → Komplexität
Gini-Koeffizient Ungleichverteilung der Kulturen

🚀 Build & Deployment

Entwicklung

# Build ausführen
dotnet build

# App starten
dotnet run

# Release-Build
dotnet build -c Release

# Publish als Einzeldatei
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o ./publish

Systemanforderungen

  • Betriebssystem: Windows 10 / Windows 11 (64-Bit)
  • .NET Runtime: .NET 8.0 Desktop Runtime
  • RAM: mindestens 256 MB
  • Festplatte: etwa 30 MB
  • Bildschirmauflösung: mindestens 1024×768

👨‍💻 Entwicklung

Voraussetzungen

  • Visual Studio 2022 mit .NET-Desktop-Entwicklung
  • .NET 8.0 SDK

Projekt öffnen

start PrimatenSim.sln

Tests ausführen

dotnet test

Simulationsparameter anpassen

Die wichtigsten Parameter finden Sie in Engine/SimulationEngine.cs:

private const int WIDTH = 40;              // Breite des Gitters
private const int HEIGHT = 40;             // Höhe des Gitters
private const double INITIAL_DENSITY = 0.1; // Anfangsdichte (10%)
private const int MAX_HISTORY = 5000;       // Maximale Historie

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages