Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

InformatiCup 2008: CargoConcept

Ähnliche Präsentationen


Präsentation zum Thema: "InformatiCup 2008: CargoConcept"—  Präsentation transkript:

1 InformatiCup 2008: CargoConcept
Die NP-harten Kerle Malte Nuhn (Physik, Informatik) Linus Atorf (Physik)

2 Problembeschreibung Lösungsweg Implementierung Parallelisierung
Gliederung Problembeschreibung Lösungsweg Implementierung Parallelisierung Zusatzaufgabe

3 Aufgabenstellung CargoConcept
Gegeben: Städte (Punkte in der Ebene) Grenzen (Einfach zusammen- hängende Fläche) Gesucht: Kürzestes Tunnelnetz, das alle Städte verbindet Bedingungen: Beliebige Zwischenstationen können eingefügt werden Tunnel dürfen keine Grenzen kreuzen Mit Zwischenstation „z“ Ohne Zwischenstation Konkave Grenzen

4 Problemstellung besteht aus: Städten (fest) Grenzpolygon (fest)
Terminologie Problemstellung besteht aus: Städten (fest) Grenzpolygon (fest) Mögliche Lösung besteht aus: Position und Anzahl der Zwischenstationen Problemstellung Mögliche Lösung Minimaler Spannbaum (MST) Grenzenberücksich- tigender MST (GMST) Entfernungsmessung auf der Erde (Kugeloberfläche) wird durch Euklidische Distanz (Ebene) nur angenähert

5 Form des Grenzpolygons
Konvexe Grenzen: Alle Städte von allen erreichbar: Grenzen automatisch eingehalten Problem des Euklidischen Steinerbaums NP-vollständig Konkave Grenzen: Grenzen müssen eingehalten werden Städte evtl. ohne Stationen nicht erreichbar: Problem der Wegfindung Algorithmus für konkaven Fall löst auch konvexen „Mindestens“ NP-vollständig

6 Lösungsweg

7 Reduktion auf Suche nach geeigneten Stationen
Lösungsidee Zentrale Lösungsidee: Zwischenstationen optimal einfügen GMST (der alle Städte und Stationen verbindet) liefert für gewählte Stationen opt. Tunnelnetz Reduktion auf Suche nach geeigneten Stationen Wegen NP-Vollständigkeit: Erschöpfende Suche für „große Probleme“ nicht realistisch Approximation der Lösung (z.B. durch Heuristiken) Unser Ansatz: Genetischer Algorithmus Spezielle Heuristik zu aufwändig Fitness-Funktion bereits bekannt (gesamte Tunnellänge) Parameterraum eingeschränkt („nur“ Position der Zwischenstationen)

8 Genetischer Algorithmus
Evolution eines Individuums: Fitness berechnen Selektion Kreuzung Mutation Optimierung Initialisierung Individuum: Stellt mögliche Lösung dar Liste von Zwischenstationen Generation: Menge der aktuellen Individuen Wird laufend weiterentwickelt

9 Genetischer Algorithmus
Evolution eines Individuums: Fitness berechnen Selektion Kreuzung Mutation Optimierung Initialisierung Initialisierung: Alle Grenzpunkte zur Liste der Zwischenstationen hinzufügen Dadurch Wegfindung garantiert Fitness-Funktion: Bewertet Lösungsansätze Wegen GMST-Berechnung (Grenzen) sehr rechenintensiv Beispiel: Selektion: Entfernt „schwache“ Individuen Durch Backup bisheriger Generationen niemals Verschlechterung

10 Genetische Operationen
Evolution eines Individuums: Fitness berechnen Selektion Kreuzung Mutation Optimierung Initialisierung Kreuzung: Zufällige Anwendung auf Teil der gesamten Generation Individuen tauschen oder kopieren Zwischenstationen Fitte Individuen werden häufiger als Partner ausgewählt Mutation: Zufällige Anwendung auf Teil der gesamten Generation Stationen werden verschoben, entfernt oder hinzugefügt Optimierung: Verschiedene Verfahren

11 Lokale Optimierungen Hinzufügen: Stationen werden regelmäßig optimiert (rechenintensiv, daher nur Teil der Generation) Verschieben: Entfernen:

12 Implementierung

13 Verwendete Sprachen und Hilfsmittel
Programmiersprachen PyQt (Bibliothek) Plattformunabhängig Natives Look & Feel C Low level Python High level Werkzeuge Subversion Versionskontroll- system Eclipse Entwicklungs- umgebung Trac Projektmanagement Tickets & Wiki

14 Aller Anfang ist schwer…
Erste Veranschaulichung in MATLAB: Gesamte Tunnellänge x y

15 Aller Anfang ist schwer…
Erste GUI in Visual Basic 6.0, Kommunikation mit Backend über TCP:

16 Aller Anfang ist schwer…
Umstieg auf Python & Qt, Brute Force:

17 Aller Anfang ist schwer…
Prototyp des aktuellen Designs:

18 Aller Anfang ist schwer…
Die ausgewachsene Anwendung:

19 GUI (oder Kommandozeile)
Designübersicht Programmhierarchie: Python / Qt GUI (oder Kommandozeile) Python Genetischer Algorithmus Dateninterface (XML) C-Extension Fitnessfunktion & Optimierungsroutinen

20 Details zur Implementierung
Features der GUI: Komfortable Kartenansicht mit Zoom Anzeige der bisher besten Lösung Berechnung jederzeit pausierbar Unterstützte Daten-Formate: Eigenes Map-Format (simpel & schnell) GPX (Aufgabenstellung), DOM-Parser (flexibel) OpenStreetMap (nur lesen), SAX-Parser (performant) C-Extension für Python: Effiziente Implementierung der GMST-Suche Geometrische Algorithmen Berücksichtigung numerisch schwieriger Fälle: z.B. Zwischenstation = Grenzpunkt

21 GUI Demo 1

22 GUI Demo 2

23 Parallelisierung

24 Parallelisierung, Möglichkeit 1
Mehrere „Kontinente“: Entkoppelte Evolutionszyklen je Kontinent Kontinent 1 Generation 1 Generation 2 Generation 3 Kontinent 2 Kontinent 3 Sync Evolution Vorteile: Relativ seltene, asynchrone Kommunikation möglich Nahezu vollständig parallele Evolution Nachteile: Resultate des Algorithmus von Kontinenten abhängig Hoher Implementierungs-aufwand

25 Parallelisierung, Möglichkeit 2
Ein Kontinent: Nur Fitnessfunktion & Optimierungen parallel Großer Kontinent Generation N Worker #1 Worker #2 Worker #3 Generation N+1 Vorteile: Einfache Implementierung Funktionsweise des bestehenden Algorithmus bleibt unverändert Nachteile: Synchronisation nach jedem Evolutionsschritt nötig Genetische Operationen weiterhin sequentiell

26 Zusatzaufgabe

27 Zusatzaufgabe Bisher: Grenzen durch einfaches Polygon gegeben Einfach zusammenhängendes Gebiet Zusatzaufgabe: Durch weitere Polygone festgelegte Hindernisse (z.B. Seen, hartes Gestein) Landesgebiet nicht mehr einfach zusammenhängend Erkenntnis: Vorgestelltes Verfahren setzt den einfachen Zusammenhang des Gebietes nicht voraus Keine grundlegenden Veränderungen notwendig

28 Zusatzaufgabe Notwendige Änderungen: Editierbare Liste von Hindernispolygonen Stationen dürfen nicht innerhalb der Hindernispolygone liegen Verwende Grenzen- und hindernisberücksichtigenden MST (GHMST) Initialisierung des genetischen Algorithmus: Punkte des Grenz- und der Hindernisspolygone werden als Stationen hinzugefügt, dadurch Wegfindung garantiert

29 GUI Demo 3

30 Vielen Dank für Ihre Aufmerksamkeit

31 Anhang

32 Verbesserungen Seit Release 1.0 verbessert: Kleinere Bugfixes GUI stabiler Pausenfunktion verbessert Kommandozeilen-Schalter für automatische Stapelverarbeitung Ausblick Autotuning für Parameter des Genetischen Algorithmus‘ Dynamische Parameter des Genetischen Algorithmus‘ Ausbau der Parallelisierung C-Extension mit OpenMP (echtes Multi-Threading) OpenSource …

33 Berechnung der Fitnessfunktion: (Details siehe Paper)
Backup Folien Berechnung der Fitnessfunktion: (Details siehe Paper) Komplexitätsklasse O(BS² + C² + BCS) C = Cities (Anzahl Städte) B = Borders (Anzahl Grenzpunkte) S = Stations (Anzahl Zwischenstationen)

34 Backup Folien Lookuptables:

35 Backup Folien Analyse der GA-Parameter:


Herunterladen ppt "InformatiCup 2008: CargoConcept"

Ähnliche Präsentationen


Google-Anzeigen