Gliederung der Vorlesung - fbi.h

Werbung
Kap. 3: Grundlagen aus der Komplexitätstheorie
Gliederung der Vorlesung
1
Motivation und Einordnung
2
Begriffe und Notationen
3
Grundlagen aus der Komplexitätstheorie
4
Approximationsalgorithmen konstanter Güte
5
Approximationsschemata
6
Vollständige Approximationsschemata
7
Approximationsalgorithmen nichtkonstanter Güte
8
Entwurfstechniken
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
1 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Relevante Begriffe
wir werden uns mit folgenden Begriffen befassen
Komplexitätsklassen P und NP
NP-vollständige Entscheidungsprobleme
NP-schwere Optimierungsprobleme
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
2 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Einordnung
in der Komplexitätstheorie werden algorithmische Probleme in Bezug
auf die Rechenzeit, die die schnellsten Lösungsalgorithmen für diese
Probleme benötigen, klassifiziert
um die zentralen Begriffsbildungen zu vereinfachen, konzentriert man
sich auf so genannte Entscheidungsprobleme
Anmerkung
für uns sind nur die Komplexitätsklassen P und NP wichtig
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
3 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Entscheidungsprobleme
ein Entscheidungsproblem Π ist gegeben durch
eine Menge I von Instanzen
eine Menge YI von sogenannten ‘Ja’-Instanzen, d.h. diejenige
Teilmenge von I, die alle Instanzen enthält, die eine interessierende
Eigenschaft haben
es geht um die Frage, ob eine gegebene Instanz I ∈ I eine
‘Ja’-Instanz ist
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
4 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Illustration
Beispiel
wir betrachten das Entscheidungsproblem CompositeNumber
dabei geht es um die Frage, ob eine gegebene natürliche Zahl eine
zusammengesetzte Zahl ist
also gilt für dieses Entscheidungsproblem:
die Menge der Instanzen I enthält alle natürlichen Zahlen
die Menge der ‘Ja’-Instanzen YI enthält alle zusammengesetzten
Zahlen
Anmerkung
eine natürliche Zahl x nennt man zusammengesetzt, wenn sie sich als
Produkt zweier natürlicher Zahlen ungleich eins darstellen lässt
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
5 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Effiziente Lösungsalgorithmen
ein Algorithmus A ist ein effizienter Lösungsalgorithmus für ein
Entscheidungsproblem Π, wenn es ein Polynom p gibt, so dass gilt:
A benötigt maximal p(|I |) Rechenschritte, um zu einer Eingabe I die
Ausgabe A(I ) zu bestimmen
wenn I ∈ YI gilt, so ist A(I ) = true
wenn I ∈
/ YI gilt, so ist A(I ) = false
Anmerkung
wie gehabt bezeichnet |I | die Anzahl der Bits, die benötigt werden, um
eine Instanz I möglichst platzsparend zu kodieren
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
6 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Komplexitätsklasse P
Definition
Ein Entscheidungsproblem Π gehört zur Komplexitätsklasse P, wenn es
einen effizienten Lösungsalgorithmus für Π gibt.
Anmerkung
zur Komplexitätsklasse P gehören also alle effizient lösbaren
Entscheidungsprobleme
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
7 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Zwischendiskussion
es gibt eine Vielzahl lösbarer Entscheidungsprobleme, für die offen ist,
ob sie auch effizient lösbar sind
es gibt gute Gründe anzunehmen, dass es für viele dieser
Entscheidungsprobleme keine effizienten Lösungsalgorithmen gibt
in diesem Kontext ist die Komplexitätsklasse NP und der Begriff
NP-vollständiges Entscheidungsproblem wichtig
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
8 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Verfifkationsalgorithmen
ein Verifikationsalgorithmus für ein Entscheidungsproblem Π erhält
neben einer Instanz I einen Binärstring w als Eingabe, in dem
Zusatzinformationen kodiert sind, und bestimmt als Ausgabe ‘true’
oder ’false’
im Unterschied zu einem Lösungsalgorithmus soll ein Verifikationsalgorithmus nur die Frage beantworten, ob die im Binärstring w
kodierte Information belegt, dass I eine ‘Ja’-Instanz ist
Anmerkung
wenn die in w kodierte Information belegt, dass I ein ’Ja’-Instanz ist, so
nennt man w Zeuge bzw. Beweis dafür, dass die Aussage “I ein
’Ja’-Instanz” korrekt ist
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
9 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Illustration
Beispiel
wir betrachten das Entscheidungsproblem CompositeNumber
um zu klären, ob die in einem Binärstring w kodierte Information
belegt, dass eine Instanz I eine ’Ja’-Instanz ist, geht man wie folgt
vor:
man interpretiert w als Kodierung zweier Zahlen a, b ∈
man testet, ob a =
6 1, b 6= 1 und a · b = I gilt
N
falls ja, wird ‘true’ ausgegeben
falls nein, wird ‘false’ ausgegeben
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
10 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Effiziente Verfifkationsalgorithmen
V ist ein effizienter Verifikationsalgorithmus für ein Entscheidungsproblem Π, falls es ein Polynom p gibt, so dass gilt:
V benötigt maximal p(|I |) Rechenschritte, um zu einer Eingabe (I , w )
die Ausgabe V (I , w ) zu bestimmen
wenn I ∈ YI gilt, so gilt V (I , w ) = true für ein w
wenn I ∈
/ YI gilt, so gilt V (I , w ) = false für alle w
Anmerkung
da V maximal p(|I |) Rechenschritte arbeitet, kann V nur solche w sinnvoll
verarbeiten, für die |w | ≤ p(|I |) gilt
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
11 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Illustration
Beispiel
wir betrachten das Entscheidungsproblem CompositeNumber
damit der vorgestellte Verifikationsalgorithmus eine Eingabe (I , w )
effizient verarbeitet, sollte man ihn wie folgt modizieren:
vor der eigentlichen Arbeit prüft man, ob w ein Paar natürlicher Zahlen
(a, b) mit a, b < I kodiert
falls nein, wird ‘false’ ausgegeben
falls ja, wird wie beschrieben weitergearbeitet
Anmerkung
man kann ein Paar natürlicher Zahlen (a, b) mit Hilfe eines Binärstrings
der Länge 2 · (|bin(a)| + |bin(b)| + 1) kodieren
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
12 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Komplexitätsklasse NP
Definition
Ein Entscheidungsproblem Π gehört zur Komplexitätsklasse NP, wenn es
einen effizienten Verifikationsalgorithmus für Π gibt.
Anmerkung
effiziente Verifikationsalgorithmen spielen in der Definition von NP die
selbe Rolle wie effiziente Lösungsalgorithmen bei der Definition von P
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
13 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Zwischendiskussion
es gibt eine Vielzahl praktisch relevanter Entscheidungsprobleme, für
die man keine effizienten Lösungsalgorithmen kennt
für die meisten kennt man aber effiziente Verifikationsalgorithmen
Beispiel
SubsetSum ist das dem Optimierungsproblem MaxSubsetSum
zugeordnete Entscheidungsproblem
gegeben ist eine Menge von Objekten O, deren Größe und eine Zahl b
es geht um die Frage, ob es ein O 0 ⊆ O der Gesamtgröße b gibt
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
14 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Eigenschaften der Komplexitätsklasse NP
Theorem
Sei Π ein Entscheidungsproblem, das zur Komplexitätsklasse NP gehört.
Dann gibt es auch einen exponentiellen Lösungsalgorithmus für Π.
Theorem
Sei Π ein Entscheidungsproblem, das zur Komplexitätsklasse P gehört.
Dann gibt es auch einen effizienten Verifikationsalgorithmus für Π, also
gehört Π auch zur Komplexitätsklasse NP.
Anmerkung
beide Aussagen lassen sind ganz einfach nachweisen (siehe Skript)
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
15 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Das P = NP-Problem
inhaltlich geht es um die Frage, ob sich jedes Entscheidungsproblem,
für das es einen effizienten Verfikationsalgorithmus gibt, auch in
vertretbarer Zeit lösen lässt, d.h. ob es auch einen effizienten
Lösungsalgorithmus für das jeweilige Entscheidungsproblem gibt
formal geht es darum, die Beziehung zwischen den beiden
Komplexitätsklassen P und NP besser zu verstehen,
also darum, ob nicht nur P ⊆ NP sondern auch umgekehrt NP ⊆ P
gilt, oder – ein wenig prägnanter formuliert – ob P = NP gilt
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
16 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Diskussion
das P = NP-Problem ist – nicht zuletzt wegen seiner praktischen
Relevanz – eines der herausfordernsten Probleme in der theoretischen
Informatik
die meisten Fachleute gehen davon aus, dass P 6= NP gilt
dafür gibt es einige recht einleuchtende Argumente
Anmerkung
wer das P = NP-Problem löst, kann nicht nur berühmt, sondern auch
halbwegs reich werden
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
17 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Diskussion (cont.)
ein erstes Argument dafür, dass P 6= NP gilt, ist die folgende
Beobachtung
es ist komplizierter, einen Beweis für eine interessierende Aussage zu
finden, als zu verifizieren, ob ein vorgeschlagener Beweis korrekt ist
Anmerkungen
sei I Instanz eines Entscheidungsproblems Π
uns interessiert, ob die Aussage “I ist eine ‘Ja’-Instanz” korrekt ist
mit einem Verifikationsalgorithmus für Π kann man überprüfen, ob ein
vorgeschlagener Beweis für diese Aussage korrekt ist
in einem Lösungsalgorithmus für Π ist direkt ein Beweis/Gegenbeweis
für diese Aussage kodiert
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
18 / 19
Kap. 3: Grundlagen aus der Komplexitätstheorie
Komplexitätsklassen P und NP
Diskussion (cont.)
ein zweites, formales Argument dafür, dass P 6= NP gilt, resultiert
aus folgenden Beobachtungen
zu NP gehören ein Vielzahl von Entscheidungsproblemen, die so
genannten NP-vollständigen Entscheidungsprobleme
wenn man nur für ein einziges NP-vollständiges Entscheidungsproblem
nachweisen kann, dass es effizient lösbar ist, so weiß man, dass man
jedes Enscheidungsproblem in NP effizient lösen kann
bisher sind alle Versuche gescheitert, einen effizienten Lösungsalgorithmus für irgendein NP-vollständiges Entscheidungsproblem
anzugeben
Anmerkung
jedes dieser NP-vollständigen Entscheidungsprobleme verrät uns alles über
die Beziehung zwischen den beiden Komplexitätsklassen P und NP
Steffen Lange
Approximationsalgorithmen
Kap. 3, Foliensatz 1
19 / 19
Herunterladen