Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ATORF & NUHN, 2009 Malte Nuhn (Physik, Informatik) Linus Atorf (Physik) Die NP-harten Kerle InformatiCup 2008: CargoConcept.

Ähnliche Präsentationen


Präsentation zum Thema: "ATORF & NUHN, 2009 Malte Nuhn (Physik, Informatik) Linus Atorf (Physik) Die NP-harten Kerle InformatiCup 2008: CargoConcept."—  Präsentation transkript:

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

2 ATORF & NUHN, 2009 Gliederung Problembeschreibung Lösungsweg Implementierung Parallelisierung Zusatzaufgabe 2

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

4 ATORF & NUHN, 2009 Terminologie 4 Problemstellung besteht aus: Städten (fest) Grenzpolygon (fest) Problemstellung besteht aus: Städten (fest) Grenzpolygon (fest) Mögliche Lösung besteht aus: Position und Anzahl der Zwischenstationen 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

5 ATORF & NUHN, 2009 Form des Grenzpolygons 5 Konvexe Grenzen: Alle Städte von allen erreichbar: Grenzen automatisch eingehalten Problem des Euklidischen Steinerbaums NP-vollständig 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 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 Algorithmus für konkaven Fall löst auch konvexen Mindestens NP-vollständig

6 ATORF & NUHN, 2009 Lösungsweg 6

7 ATORF & NUHN, 2009 Lösungsidee 7 Reduktion auf Suche nach geeigneten Stationen Zentrale Lösungsidee: 1.Zwischenstationen optimal einfügen 2.GMST (der alle Städte und Stationen verbindet) liefert für gewählte Stationen opt. Tunnelnetz Zentrale Lösungsidee: 1.Zwischenstationen optimal einfügen 2.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) 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) Unser Ansatz: Genetischer Algorithmus Spezielle Heuristik zu aufwändig Fitness-Funktion bereits bekannt (gesamte Tunnellänge) Parameterraum eingeschränkt (nur Position der Zwischenstationen)

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

9 ATORF & NUHN, 2009 Genetischer Algorithmus 9 Evolution eines Individuums: Fitness berechnen Selektion Kreuzung Mutation Optimierung Initialisierung Selektion: Entfernt schwache Individuen Durch Backup bisheriger Generationen niemals Verschlechterung Selektion: Entfernt schwache Individuen Durch Backup bisheriger Generationen niemals Verschlechterung Initialisierung: Alle Grenzpunkte zur Liste der Zwischenstationen hinzufügen Dadurch Wegfindung garantiert 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 Fitness-Funktion: Bewertet Lösungsansätze Wegen GMST-Berechnung (Grenzen) sehr rechenintensiv

10 ATORF & NUHN, 2009 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 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 10 Mutation: Zufällige Anwendung auf Teil der gesamten Generation Stationen werden verschoben, entfernt oder hinzugefügt Mutation: Zufällige Anwendung auf Teil der gesamten Generation Stationen werden verschoben, entfernt oder hinzugefügt Optimierung: Verschiedene Verfahren Optimierung: Verschiedene Verfahren

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

12 ATORF & NUHN, 2009 Implementierung 12

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

14 ATORF & NUHN, 2009 Erste Veranschaulichung in MATLAB: Aller Anfang ist schwer… 14 x x y y Gesamte Tunnellänge

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

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

17 ATORF & NUHN, 2009 Prototyp des aktuellen Designs: Aller Anfang ist schwer… 17

18 ATORF & NUHN, 2009 Die ausgewachsene Anwendung: Aller Anfang ist schwer… 18

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

20 ATORF & NUHN, 2009 Details zur Implementierung 20 Unterstützte Daten-Formate: Eigenes Map-Format (simpel & schnell) GPX (Aufgabenstellung), DOM-Parser (flexibel) OpenStreetMap (nur lesen), SAX-Parser (performant) 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 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 C-Extension für Python: Effiziente Implementierung der GMST-Suche Geometrische Algorithmen Berücksichtigung numerisch schwieriger Fälle: z.B. Zwischenstation = Grenzpunkt

21 ATORF & NUHN, 2009 GUI Demo 1 21

22 ATORF & NUHN, 2009 GUI Demo 2 22

23 ATORF & NUHN, 2009 Parallelisierung 23

24 ATORF & NUHN, 2009 Parallelisierung, Möglichkeit 1 24 Mehrere Kontinente: Entkoppelte Evolutionszyklen je Kontinent Mehrere Kontinente: Entkoppelte Evolutionszyklen je Kontinent Kontinent 1 Generation 1 Generation 2 Generation 3 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 Vorteile: Relativ seltene, asynchrone Kommunikation möglich Nahezu vollständig parallele Evolution Nachteile: Resultate des Algorithmus von Kontinenten abhängig Hoher Implementierungs- aufwand Nachteile: Resultate des Algorithmus von Kontinenten abhängig Hoher Implementierungs- aufwand

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

26 ATORF & NUHN, 2009 Zusatzaufgabe 26

27 ATORF & NUHN, 2009 Zusatzaufgabe 27 Bisher: Grenzen durch einfaches Polygon gegeben Einfach zusammenhängendes Gebiet 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 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 Erkenntnis: Vorgestelltes Verfahren setzt den einfachen Zusammenhang des Gebietes nicht voraus Keine grundlegenden Veränderungen notwendig

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

29 ATORF & NUHN, 2009 GUI Demo 3 29

30 ATORF & NUHN, 2009 Vielen Dank für Ihre Aufmerksamkeit 30

31 ATORF & NUHN, 2009 Anhang 31

32 ATORF & NUHN, 2009 Verbesserungen 32 Seit Release 1.0 verbessert: Kleinere Bugfixes GUI stabiler Pausenfunktion verbessert Kommandozeilen-Schalter für automatische Stapelverarbeitung 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 … 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 ATORF & NUHN, 2009 Backup Folien 33 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) 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 ATORF & NUHN, 2009 Backup Folien 34 Lookuptables:

35 ATORF & NUHN, 2009 Backup Folien 35 Analyse der GA-Parameter:


Herunterladen ppt "ATORF & NUHN, 2009 Malte Nuhn (Physik, Informatik) Linus Atorf (Physik) Die NP-harten Kerle InformatiCup 2008: CargoConcept."

Ähnliche Präsentationen


Google-Anzeigen