Kapitel 8: Umgang mit algorithmisch schwierigen Problemen

Werbung
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Gliederung
1.  Grundlagen
2.  Analyse der Laufzeit von Algorithmen
3.  Untere Schranken für algorithmische Probleme
4.  Sortier- und Selektionsverfahren
5.  Paradigmen des Algorithmenentwurfs
6.  Ausgewählte Datenstrukturen
7.  Algorithmische Geometrie
8.  Umgang mit algorithmisch schwierigen Problemen
• 
• 
• 
8/2, Folie 1
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Problemstellung / Beispiele
Einordnung
Fallstudie MINTRAVELINGSALESMAN
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Gliederung
u  Fahrplan (/* Einordnung */)
• 
• 
• 
• 
8/2, Folie 2
Komplexitätsklassen und Entscheidungsprobleme
Komplexitätsklassen P und NP
NP-vollständige Entscheidungsprobleme
NP-schwere Optimierungsprobleme
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Schwerpunkt
• 
8/2, Folie 3
welche Eigenschaften müssen Optimierungsprobleme haben, damit
man davon ausgeht, dass es für sie höchstwahrscheinlich keine
effizienten Lösungsalgorithmen gibt
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Entscheidungsprobleme
• 
ein Entscheidungsproblem ist gegeben durch:
• 
• 
• 
8/2, Folie 4
eine Menge I von Instanzen
eine Teilmenge Y von I, die so genannten ‚Ja‘-Instanzen, also
Instanzen in I mit einer interessierenden Eigenschaft
es geht darum, die Frage zu beantworten, ob eine gegebene Instanz
eine ‚Ja‘-Instanz ist
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Beispiel Entscheidungsproblem COMPOSITENUMBER
8/2, Folie 5
• 
jede Instanz I ist eine natürliche Zahl
• 
eine ‚Ja‘-Instanz ist eine natürliche Zahl, die sich als Produkt zweier
natürlicher Zahlen a und b mit a,b > 1 darstellen lässt
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Komplexitätsklassen
8/2, Folie 6
• 
zu einer Komplexitätsklasse gehören alle Entscheidungsprobleme, die
gleich schwierig sind ...
• 
zur Komplexitätsklasse P gehören alle Entscheidungsprobleme, für die
es einen effizienten Lösungsalgorithmus gibt
• 
zur Komplexitätsklasse NP gehören alle Entscheidungsprobleme, für
die es einen effizienten Verifikationsalgorithmus gibt
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Lösungsalgorithmus für ein Entscheidungsproblem
• 
ein Lösungsalgorithmus ist ein Algorithmus A, der
• 
• 
• 
• 
zu jeder Instanz I die Ausgabe ‚ja‘ bzw. ‚nein‘ bestimmt
falls I eine ‚Ja‘-Instanz ist, muss die Ausgabe ‚ja‘ bestimmt werden
falls I keine ‚Ja‘-Instanz ist, muss die Ausgabe ‚nein‘ bestimmt
werden
ein Lösungsalgorithmus A ist effizient, falls es ein Polynom p gibt, so
dass A bei Eingabe jeder Instanz I höchstens p(|I|) Rechenschritte
arbeitet
... |I| bezeichnet die Größe der Instanz I, d.h. wie viele Bits
benötigt werden, um I möglichst platzsparend zu kodieren
8/2, Folie 7
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Verifikationsalgorithmus für ein Entscheidungsproblem
• 
ein Verifikationssalgorithmus ist ein Algorithmus V, der
• 
• 
• 
• 
8/2, Folie 8
zu jeder Instanz I und jedem Binärstring w die Ausgabe ‚ja‘ bzw.
‚nein‘ bestimmt
falls I eine ‚Ja‘-Instanz ist, so muss V für mindestens eine Eingabe
(I,w) die Ausgabe ‚ja‘ bestimmen
falls I keine ‚Ja‘-Instanz ist, so muss für jede Eingabe (I,w) die
Ausgabe ‚nein‘ bestimmen
ein Verifikationsalgorithmus V ist ein effizienter Algorithmus, falls es
ein Polynom p gibt, so dass V bei Eingabe jeder Eingebe (I,w) maximal
p(|I|) Rechenschritte arbeitet
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Beispiel (/* ein effizienter Verifikationsalgorithmus für COMPOSITENUMBER */)
• 
sei I die gegebene Instanz von COMPOSITENUMBER und w der
zusätzlich gegebene Binärstring, wobei w als Kodierung eines
Paars natürlicher Zahlen a und b interpretiert wird
• 
teste, ob die in w kodierten Zahlen a und b beide größer 1
und kleiner I sind
• 
• 
falls dieser Test nicht erfolgreich ist, gibt ‚nein‘ aus
andernfalls teste, ob a*b = I gilt
• 
• 
8/2, Folie 9
© 2015 Prof. Steffen Lange
-
falls ja, so gib ‚ja‘ aus
falls nein, gib ‚nein‘ aus
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  Anmerkungen
• 
man kann sich leicht überlegen, dass jedes Entscheidungsproblem
aus P auch zu NP gehört
• 
beim berühmten P/NP-Problem geht es um die Frage, ob auch
die Umkehrung dieser Aussage gilt, also ob jedes Entscheidungsproblem
aus NP auch zu P gehört
... es gibt gute Gründe zu vermuten, dass das nicht so ist
8/2, Folie 10
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  NP-vollständige Entscheidungsprobleme
• 
ein Entscheidungsproblem ist NP-vollständig, falls gilt:
• 
• 
dieses Entscheidungsproblem gehört zu NP
falls es einen effizienten Lösungsalgorithmus für dieses
Entscheidungsproblem gibt, so kann man auch für jedes andere
Entscheidungsproblem in NP einen effizienten Lösungsalgorithmus
angeben
... man kennt aktuell mehr als 2000 NP-vollständige Entscheidungsprobleme
... da man für keines dieser Entscheidungsprobleme einen effizienten Lösungsalgorithmus kennt, geht man davon aus, dass es höchstwahrscheinlich für
keines dieser Entscheidungsprobleme einen effizienten Lösungsalgorithmus gibt
8/2, Folie 11
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 8: Umgang mit algorithmisch schwierigen Problemen
Einordnung
u  NP-schwere Optimierungsprobleme
• 
ein Optimierungsproblem ist NP-schwer, falls gilt:
• 
wenn es einen effizienten Lösungsalgorithmus für dieses
Optimierungsproblem gibt, so kann man auch einen effizienten
Lösungsalgorithmus für ein NP-vollständiges Entscheidungsproblem angeben (/* und damit für jedes Entscheidungsproblem in
NP einen effizienten Lösungsalgorithmus angeben */)
... da man für kein NP-vollständiges Entscheidungsprobleme einen
effizienten Lösungsalgorithmus kennt, geht man davon aus, dass es
höchstwahrscheinlich keinen effizienten Lösungsalgorithmus für ein
NP-schweres Optimierungsproblem gibt
8/2, Folie 12
© 2015 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Herunterladen