Upload
diedrich-lawrenz
View
109
Download
2
Embed Size (px)
Citation preview
ATORF & NUHN, 2009
Malte Nuhn(Physik, Informatik)
Linus Atorf(Physik)
Die NP-harten Kerle
InformatiCup 2008: CargoConcept
ATORF & NUHN, 2009
2Gliederung
• Problembeschreibung• Lösungsweg• Implementierung• Parallelisierung• Zusatzaufgabe
ATORF & NUHN, 2009
3Aufgabenstellung 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
ATORF & NUHN, 2009
4Terminologie
Problemstellung besteht aus:• Städten (fest)• Grenzpolygon (fest)
Mögliche Lösung besteht aus:• Position und Anzahl der
Zwischenstationen
Problemstellung Minimaler Spannbaum (MST)
Grenzenberücksich- tigender MST (GMST)
Entfernungsmessung auf der Erde (Kugeloberfläche)wird durch Euklidische Distanz (Ebene) nur angenähert
Mögliche Lösung
ATORF & NUHN, 2009
5Form 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
ATORF & NUHN, 2009
6
Lösungsweg
ATORF & NUHN, 2009
7Lösungsidee
Reduktion auf Suche nach geeigneten Stationen
Zentrale Lösungsidee:
1. Zwischenstationen optimal einfügen2. GMST (der alle Städte und Stationen verbindet)
liefert für gewählte Stationen opt. Tunnelnetz
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)
ATORF & NUHN, 2009
8Genetischer Algorithmus
Generation:• Menge der aktuellen Individuen• Wird laufend weiterentwickelt
Individuum:• Stellt mögliche Lösung dar• Liste von Zwischenstationen
Evolution eines Individuums:
Fitness berechnen
Selektion
Kreuzung
Mutation
Optimierung
Initialisierung
ATORF & NUHN, 2009
9Genetischer Algorithmus
Evolution eines Individuums:
Fitness berechnen
Selektion
Kreuzung
Mutation
Optimierung
Initialisierung
Selektion:• Entfernt „schwache“ Individuen• Durch Backup bisheriger
Generationen niemals Verschlechterung
Initialisierung:• Alle Grenzpunkte zur Liste der
Zwischenstationen hinzufügen• Dadurch Wegfindung garantiert
Beispiel:Fitness-Funktion:• Bewertet Lösungsansätze• Wegen GMST-Berechnung
(Grenzen) sehr rechenintensiv
ATORF & NUHN, 2009
10
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
Genetische Operationen
Mutation:• Zufällige Anwendung auf Teil der
gesamten Generation• Stationen werden verschoben,
entfernt oder hinzugefügt
Optimierung:• Verschiedene Verfahren
ATORF & NUHN, 2009
11
Stationen werden regelmäßig optimiert
(rechenintensiv, daher nur Teil der
Generation)
Verschieben: Entfernen:
Hinzufügen:
Lokale Optimierungen
ATORF & NUHN, 2009
12
Implementierung
ATORF & NUHN, 2009
13Verwendete Sprachen und Hilfsmittel
Programmiersprachen
PyQt (Bibliothek)• Plattformunabhängig• Natives Look & Feel
C• Plattformunabhängig• Low level C
Python• Plattformunabhängig• High level
Werkzeuge
Subversion• Versionskontroll-
system
Eclipse• Entwicklungs-
umgebung
Trac• Projektmanagement• Tickets & Wiki
ATORF & NUHN, 2009
14
Erste Veranschaulichung in MATLAB:
Aller Anfang ist schwer…
x
y
Ges
amte
Tun
nellä
nge
ATORF & NUHN, 2009
15
Erste GUI in Visual Basic 6.0, Kommunikation mit Backend über TCP:
Aller Anfang ist schwer…
ATORF & NUHN, 2009
16
Umstieg auf Python & Qt, Brute Force:
Aller Anfang ist schwer…
ATORF & NUHN, 2009
17
Prototyp des aktuellen Designs:
Aller Anfang ist schwer…
ATORF & NUHN, 2009
18
Die ausgewachsene Anwendung:
Aller Anfang ist schwer…
ATORF & NUHN, 2009
19
Programmhierarchie:
Python
Python / Qt GUI (oder Kommandozeile)
Genetischer Algorithmus
Designübersicht
Dateninterface (XML)
C-Extension Fitnessfunktion & Optimierungsroutinen
ATORF & NUHN, 2009
20Details zur Implementierung
Unterstützte Daten-Formate:• Eigenes Map-Format (simpel & schnell)• GPX (Aufgabenstellung), DOM-Parser (flexibel)• OpenStreetMap (nur lesen), SAX-Parser (performant)
Features der GUI:• Komfortable Kartenansicht mit Zoom• Anzeige der bisher besten Lösung• Berechnung jederzeit pausierbar
C-Extension für Python:• Effiziente Implementierung der GMST-Suche • Geometrische Algorithmen• Berücksichtigung numerisch schwieriger Fälle:
z.B. Zwischenstation = Grenzpunkt
ATORF & NUHN, 2009
21GUI Demo 1
ATORF & NUHN, 2009
22GUI Demo 2
ATORF & NUHN, 2009
23
Parallelisierung
ATORF & NUHN, 2009
24Parallelisierung, Möglichkeit 1
Mehrere „Kontinente“:• Entkoppelte Evolutionszyklen je Kontinent
Kontinent 1
Generation 1
Generation 2
Generation 3
Kontinent 2 Kontinent 3Sync
Sync
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
ATORF & NUHN, 2009
25Parallelisierung, Möglichkeit 2
Großer Kontinent Generation N
Worker #1 Worker #2 Worker #3
Generation N+1
Ein Kontinent:• Nur Fitnessfunktion & Optimierungen parallel
Vorteile:• Einfache Implementierung• Funktionsweise des
bestehenden Algorithmus bleibt unverändert
Nachteile:• Synchronisation nach jedem
Evolutionsschritt nötig• Genetische Operationen
weiterhin sequentiell
ATORF & NUHN, 2009
26
Zusatzaufgabe
ATORF & NUHN, 2009
27Zusatzaufgabe
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
ATORF & NUHN, 2009
28Zusatzaufgabe
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
ATORF & NUHN, 2009
29GUI Demo 3
ATORF & NUHN, 2009
30
Vielen Dank für Ihre Aufmerksamkeit
ATORF & NUHN, 2009
31
Anhang
ATORF & NUHN, 2009
32Verbesserungen
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 …
ATORF & NUHN, 2009
33Backup 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)
ATORF & NUHN, 2009
34Backup Folien
Lookuptables:
ATORF & NUHN, 2009
35Backup Folien
Analyse der GA-Parameter: