Universität Bielefeld Angewandte Informatik “Komplizierte Probleme” der Informatik Marc Hanheide Juli 2003 Komplexitätsklassen TSP Lösungstrategien Zusammenfassung Randomisierte Algorithmen Universität Bielefeld Angewandte Informatik Problemklassen • EXPTIME: exponentiell • NP: nichtdeterministisch polynomial (Rucksackproblem, Traveling Salesman Problem, Erfüllbarkeit) • P: determinitisch polynomial ( Sortieren, usw. ) • Für Probleme in EXPTIME besteht keine Hoffnung auf effiziente Algorithmen • Probleme aus NP können in polynomialer Zeit mit einem nichtdeterministischen Algorithmus gelöst werden. • Für kein NP-hartes Problem konnte bisher ein deterministischer polynomialer Algorithmus gefunden werden • Große Frage der theoretischen Informatik: NP = P ? (1 Mio $ von Clay Mathematics Institute) “Komplizierte Probleme” ∧ ∨ > 1 Universität Bielefeld Angewandte Informatik Ein Beispiel: Weltreiseproblem (TSP) Aufgabe: Plündere alle 193 Staaten der Erde auf der kürzesten Strecke! kürzester Weg über alle Knoten eines Graphen mit gewichteten Kanten “Komplizierte Probleme” ≺ < ∧ ∨ > 2 Universität Bielefeld Angewandte Informatik Ein Beispiel: Weltreiseproblem (TSP) Aufgabe: Plündere alle 193 Staaten der Erde auf der kürzesten Strecke! kürzester Weg über alle Knoten eines Graphen mit gewichteten Kanten • Weltreise durch alle 193 Länder ⇒ 192! = 3.549967931 · 10356 mögliche Routen • Universum hat 6 · 1077 Atome und ist erst 12, 5 · 109 Jahre alt “Komplizierte Probleme” ≺ < ∧ ∨ > 2 Universität Bielefeld Angewandte Informatik Ein Beispiel: Weltreiseproblem (TSP) Aufgabe: Plündere alle 193 Staaten der Erde auf der kürzesten Strecke! kürzester Weg über alle Knoten eines Graphen mit gewichteten Kanten • Weltreise durch alle 193 Länder ⇒ 192! = 3.549967931 · 10356 mögliche Routen • Universum hat 6 · 1077 Atome und ist erst 12, 5 · 109 Jahre alt • exakte Lösung so nicht berechenbar ( O((n − 1)!/2)) “Komplizierte Probleme” ≺ < ∧ ∨ > 2 Universität Bielefeld Angewandte Informatik Ein Beispiel: Weltreiseproblem (TSP) Aufgabe: Plündere alle 193 Staaten der Erde auf der kürzesten Strecke! kürzester Weg über alle Knoten eines Graphen mit gewichteten Kanten • Weltreise durch alle 193 Länder ⇒ 192! = 3.549967931 · 10356 mögliche Routen • Universum hat 6 · 1077 Atome und ist erst 12, 5 · 109 Jahre alt • exakte Lösung so nicht berechenbar ( O((n − 1)!/2)) “Komplizierte Probleme” ≺ < ∧ ∨ > Was tun? 2 Universität Bielefeld Angewandte Informatik Lösungsansätze NP-harter Probleme Subklassenidentifikation Viele auftretende Probleme sind in der realen Anwendung an Vorbedingungen geknüpft, die das Problem zum Teil erheblich vereinfachen. Randomisierung Vermeidung „ungeschickter” Ausgangskonfigurationen durch Zufallsverteilung, verbessert nicht die worst-case-Komplexität, aber den averagecase. → Mathias Katzer Approximation Durch effizientere Verfahren eine Lösung ermitteln, die nur um einen bestimmten Fehler von der optimalen Lösung abweicht “Komplizierte Probleme” ≺ < ∧ ∨ > 3 Universität Bielefeld Angewandte Informatik Lösungsansätze NP-harter Probleme Subklassenidentifikation Viele auftretende Probleme sind in der realen Anwendung an Vorbedingungen geknüpft, die das Problem zum Teil erheblich vereinfachen. Randomisierung Vermeidung „ungeschickter” Ausgangskonfigurationen durch Zufallsverteilung, verbessert nicht die worst-case-Komplexität, aber den averagecase. → Mathias Katzer Approximation Durch effizientere Verfahren eine Lösung ermitteln, die nur um einen bestimmten Fehler von der optimalen Lösung abweicht Ein Standardapproximationsverfahren ist die Klasse der „greedy” (gierigen) Algorithmen: • ermittelt immer die lokale beste Lösung, u. U. auf Kosten eines schlechteren Gesamtergebnisses (daher gierig) • vorwiegend für Optimierungsaufgaben (Minimum, Maximum eingesetzt) • lokale Optimierung führt (hoffentlich) zu guter globaler Approximation “Komplizierte Probleme” ≺ < ∧ ∨ > 3 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems I Berechne Minimal-spanning-Tree [Prim, 1957]. . . • Wähle eine Startknoten • Wähle kürzeste verfügbare Kante, die nicht behandelte, erreichbare Knoten mit bereits verarbeiteten verbindet • Füge nächsten Knoten Lösungsgraphen hinzu dem • Ende, wenn alle Knoten bearbeitet • Laufzeit: O(n2) “Komplizierte Probleme” ≺ < ∧ ∨ > 4 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c d “Komplizierte Probleme” • Lösung: Rmst = (a f b e ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c d “Komplizierte Probleme” • Lösung: Rmst = (a, c f b e ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c d “Komplizierte Probleme” • Lösung: Rmst = (a, c, d f b e ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c d “Komplizierte Probleme” • Lösung: Rmst = (a, c, d, f f b e ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c d “Komplizierte Probleme” • Lösung: Rmst = (a, c, d, f , b f b e ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c d “Komplizierte Probleme” • Lösung: Rmst = (a, c, d, f , b, e f b e ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c d “Komplizierte Probleme” • Lösung: Rmst = (a, c, d, f , b, e, a) f b e ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c • Lösung: Rmst = (a, c, d, f , b, e, a) f • Laufzeit: O(n) d “Komplizierte Probleme” b • Qualität der Approximation: e ≺ < ∧ l(Rmst ) ≤ 2l(Ropt ) ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c • Lösung: Rmst = (a, c, d, f , b, e, a) f • Laufzeit: O(n) d b • Qualität der Approximation: e l(Rmst ) ≤ 2l(Ropt ) DEMO “Komplizierte Probleme” ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik Approximation des TSP-Problems II a . . . und traversiere den Baum • Traversiere depth-first vom Startpunkt ausgehend • Überspringe bereits besuchte Knoten c • Lösung: Rmst = (a, c, d, f , b, e, a) f • Laufzeit: O(n) d b • Qualität der Approximation: e l(Rmst ) ≤ 2l(Ropt ) • Jan Schäfer: genetischer Algorithmus DEMO & DEMO “Komplizierte Probleme” ≺ < ∧ ∨ > 5 Universität Bielefeld Angewandte Informatik TSP-Anwendungen • Schweißroboter: Trajektorienplanung • Process-Scheduling • Platinenlayout • Flugrouten • Navigationssysteme • Basis für viele andere geometrische Algorithmen “Komplizierte Probleme” ≺ < ∧ ∨ > 6 Universität Bielefeld Angewandte Informatik TSP-Anwendungen • Schweißroboter: Trajektorienplanung • Process-Scheduling • Platinenlayout • Flugrouten • Navigationssysteme • Basis für viele andere geometrische Algorithmen • und natürlich: Raubzüge “Komplizierte Probleme” ≺ < ∧ ∨ > 6 Universität Bielefeld Angewandte Informatik Take-Home-Messages • Beweist NP = P oder NP 6= P und Ihr seid reich • Findet gute Approximationsalgorithmen für NP-harte Probleme • Vermeidet NP-harte Probleme “Komplizierte Probleme” ≺ < ∧ ∨ 7 Universität Bielefeld Angewandte Informatik Take-Home-Messages • Beweist NP = P oder NP 6= P und Ihr seid reich • Findet gute Approximationsalgorithmen für NP-harte Probleme • Vermeidet NP-harte Probleme und nun Mathias Katzer: Randomisierte Algorithmen “Komplizierte Probleme” ≺ < ∧ ∨ 7