Komplizierte - Universität Bielefeld

Werbung
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
Herunterladen