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