1 / 35

Malte Nuhn (Physik, Informatik)

InformatiCup 2008: CargoConcept. Die NP-harten Kerle. Malte Nuhn (Physik, Informatik). Linus Atorf (Physik). Gliederung. Problembeschreibung Lösungsweg Implementierung Parallelisierung Zusatzaufgabe. Aufgabenstellung CargoConcept. Gegeben: Städte (Punkte in der Ebene)

wells
Download Presentation

Malte Nuhn (Physik, Informatik)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Ohne Zwischenstation Mit Zwischenstation „z“ Konkave Grenzen

  4. Terminologie • Problemstellung besteht aus: • Städten (fest) • Grenzpolygon (fest) Problemstellung Mögliche Lösung Minimaler Spannbaum (MST) Grenzenberücksich- tigender MST (GMST) • Mögliche Lösung besteht aus: • Position und Anzahl der Zwischenstationen 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. 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 • Individuum: • Stellt mögliche Lösung dar • Liste von Zwischenstationen • Evolution eines Individuums: Initialisierung Fitness berechnen • Generation: • Menge der aktuellen Individuen • Wird laufend weiterentwickelt Selektion Kreuzung Mutation Optimierung

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

  10. Genetische Operationen • Kreuzung: • Zufällige Anwendung auf Teil der gesamten Generation • Individuen tauschen oder kopieren Zwischenstationen • Fitte Individuen werden häufiger als Partner ausgewählt • Evolution eines Individuums: Initialisierung Fitness berechnen Selektion • Mutation: • Zufällige Anwendung auf Teil der gesamten Generation • Stationen werden verschoben, entfernt oder hinzugefügt Kreuzung Mutation Optimierung • 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 • Werkzeuge • Python • Plattformunabhängig • High level • Subversion • Versionskontroll-system • PyQt (Bibliothek) • Plattformunabhängig • Natives Look & Feel • Trac • Projektmanagement • Tickets & Wiki C • Eclipse • Entwicklungs-umgebung • C • Plattformunabhängig • Low level

  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. 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 Sync Sync • Vorteile: • Relativ seltene, asynchrone Kommunikation möglich • Nahezu vollständig parallele Evolution • Nachteile: • Resultate des Algorithmus von Kontinenten abhängig • Hoher Implementierungs-aufwand Evolution

  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 einfachenZusammenhang 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 Hindernisspolygonewerdenals 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. 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:

More Related