InformatiCup 2008: CargoConcept

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Memetische Algorithmen …der Versuch einer Einordnung
Simulationsansätze in der BWL: Erstellung eines eigenen Projekts
Fast Fourier Transformation
Matrixmultiplikation
Christian Scheideler SS 2009
Kap. 13 Sweep-Line Algorithmen Kap Schnittprobleme
Programmieren im Großen von Markus Schmidt und Benno Kröger.
PG Air Seminararbeit März 2002 Jürgen Wieners
Geometrie von Objektoberflächen
Genetische Algorithmen für die Variogrammanpassung
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2012.
Simulated Annealing Marco Block & Miguel Domingo Seminar : Maschinelles Lernen und Markov KettenSommersemester 2002.
Verifizieren versus Berechnen
Genetische Algorithmen
Genetische Algorithmen
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Heuristiken Automatic Problem Solving Institut für Informatik
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
1WS 06/07 Organisatorisches 1.Vorlesung am Montag, : 9-11 Uhr in Gebäude 106, Raum Podcasts: Probleme mit der Videoqualität sind behoben.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 7 – Bin Packing
Geometrisches Divide and Conquer
Genetische Algorithmen
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Klausur „Diskrete Mathematik II“
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
eXtreme Programming (XP)
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Grundschutztools
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
… oder wie finde ich den Weg
Analyse von Ablaufdiagrammen
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
A. Gebert / A. Henke Ant colony simulation.
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Managemententscheidungsunterstützungssysteme (Ausgewählte Methoden und Fallstudien) ( Die Thesen zur Vorlesung 3) Thema der Vorlesung Lösung der linearen.
Das IT - Informationssystem
LOD Levels of Detail Oliver Gassner Christian Troger.
Analyseprodukte numerischer Modelle
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Das Traveling Salesman Problem (TSP)
Ilka Rehr, Geodätisches Institut, Leibniz Universität Hannover
STLB-Bau – Vernetzung von Fachinformationen
Analyse der Laufzeit von Algorithmen
Das IT - Informationssystem
Routenplanung querfeldein - Geometric Route Planning
Der A*-Algorithmus.
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Programmierung von CNC-Messgeräten mit genetischen Algorithmen Simeon Perlov.
Focusing Search in Multiobjective Evolutionary Optimization through Preference Learning from User Feedback Thomas FoberWeiwei ChengEyke Hüllermeier AG.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
 Präsentation transkript:

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

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

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

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

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

Lösungsweg

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)

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

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

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

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

Implementierung

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

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

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

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

Aller Anfang ist schwer… Prototyp des aktuellen Designs:

Aller Anfang ist schwer… Die ausgewachsene Anwendung:

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

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

GUI Demo 1

GUI Demo 2

Parallelisierung

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

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

Zusatzaufgabe

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

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

GUI Demo 3

Vielen Dank für Ihre Aufmerksamkeit

Anhang

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 …

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)

Backup Folien Lookuptables:

Backup Folien Analyse der GA-Parameter: