Informatik · Klasse 12–13 · aktualisiert
P-NP-Problem einfach erklärt: P, NP und Reduktion
Du unterscheidest P und NP, machst aus dem Handlungsreisenden eine Ja-Nein-Frage und deutest Reduktion und NP-Vollständigkeit.
0 von 9 Aufgaben gelöst
Kurz gesagt
P enthält die Entscheidungsprobleme, die ein deterministischer Rechner in Polynomialzeit löst. NP enthält die, bei denen sich ein Beweis für „Ja“ in Polynomialzeit prüfen lässt. Ob P und NP gleich sind, ist ungelöst.
Ein Navi soll eine kurze Route durch viele Orte finden. Eine vorgeschlagene Route nachzurechnen ist leicht, eine beweisbar beste zu finden ist sehr schwierig. Dieser Unterschied zwischen Prüfen und Finden spielt bei P und NP eine zentrale Rolle.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Die Komplexitätstheorie fragt, wie schnell der Aufwand eines Problems mit der Größe der Eingabe wächst. Beim Sortieren von Karteikarten ist die Größe der Eingabe zum Beispiel die Anzahl der Karteikarten. Ein Entscheidungsproblem hat als Antwort nur „Ja“ oder „Nein“.
Die Klasse P enthält die Entscheidungsprobleme, die eine deterministische Turingmaschine in Polynomialzeit löst. „Deterministisch“ heißt: Der Rechenweg ist immer eindeutig bestimmt. „Polynomialzeit“ heißt: Es gibt ein Polynom wie f(n)=n^{k}+c mit natürlichen Zahlen c und k, das die Zahl der Rechenschritte für jede Eingabe der Länge n nach oben beschränkt.
Die Klasse NP enthält die Entscheidungsprobleme, bei denen es für „Ja“-Antworten Beweise gibt, die sich in Polynomialzeit verifizieren lassen. Es kann aber aufwändig sein, einen solchen Beweis zu finden. Ein Beispiel: Derzeit ist kein deterministischer Algorithmus bekannt, der eine gegebene Zahl in Polynomialzeit faktorisiert. Es ist jedoch sehr einfach prüfbar, ob ein vorgeschlagener Faktor die Zahl ohne Rest teilt.
NP lässt sich gleichwertig über die nichtdeterministische Turingmaschine (NTM) beschreiben. Sie kann in einer Situation mehrere Möglichkeiten haben, ihre Berechnung fortzusetzen. Das ist nur ein theoretisches Modell, denn es gibt keine real existierenden Computer, die ihren Rechenweg derart verzweigen können.
Eine deterministische Turingmaschine ist ein Spezialfall der NTM. Darum ist P eine Teilmenge von NP. Ein häufiger Irrtum ist, NP für die Klasse der Probleme zu halten, die sich nicht in Polynomialzeit lösen lassen. NP legt aber lediglich eine obere Schranke fest und enthält auch alle Probleme aus P.
Definition
Zertifikat
Ein Zertifikat ist ein Beweis (auch Zeuge genannt) dafür, dass die Antwort auf eine Eingabe „Ja“ ist. Bei einem Problem in NP lässt es sich in Polynomialzeit prüfen.
Beispiel: Karteikarten sortieren
- 1Eingabe: n Karteikarten. Die Größe der Eingabe ist die Anzahl n.
- 2Es gibt Algorithmen, die n Karteikarten in einer Zeit sortieren, die durch eine quadratische Funktion in n beschränkt ist.
- 3Deshalb liegt das Sortierproblem in P.
Merke: P: in Polynomialzeit lösbar. NP: Ein Beweis für „Ja“ ist in Polynomialzeit prüfbar. P ist eine Teilmenge von NP.
Teste dich
Beim Problem des Handlungsreisenden (englisch Traveling Salesman Problem, kurz TSP) werden mehrere Orte nacheinander besucht. Keine Station außer der ersten darf mehr als einmal vorkommen, die erste Station ist gleich der letzten, und die gesamte Strecke soll möglichst kurz sein. Das ist ein Optimierungsproblem: Gesucht ist die beste Lösung.
Man modelliert es als Graphen. Die Knoten sind die Städte, jede Kante zwischen zwei Knoten hat eine Länge, die zum Beispiel als Strecke, Reisezeit oder Kosten gelesen werden kann. Eine Tour ist ein Kreis, der jeden Knoten genau einmal enthält. Gesucht ist eine möglichst kurze Tour.
NP-Vollständigkeit ist formal nur für Entscheidungsprobleme definiert. Deshalb macht man aus der Optimierung eine Ja-Nein-Frage. Statt „Wie kurz ist die kürzeste Rundreise?“ fragt die Entscheidungsversion: Gibt es durch die gegebenen Städte eine Rundreise, deren Länge eine gegebene Grenze nicht überschreitet? Für Optimierungs- und Suchprobleme spricht man von NP-Äquivalenz. Umgangssprachlich sagt man trotzdem oft „NP-vollständig“. Das ist möglich, da verschiedene Problemtypen ineinander überführbar sind.
Wende die Definition von NP auf diese Frage an: Ein Zertifikat wäre eine vorgeschlagene Rundreise. Ob sie jede Stadt genau einmal besucht und ob ihre Länge die Grenze nicht überschreitet, lässt sich durch Nachrechnen der Streckenlängen prüfen. Das ist eine Anwendung der allgemeinen Definition, keine feste Regel zum Auswendiglernen.
Die Bestimmung guter Lösungen ist beim TSP vergleichsweise leicht, das Finden einer beweisbar optimalen Lösung ist sehr schwierig. Hat man einen Rechner, der die Lösung für 30 Städte in einer Stunde berechnet, dann braucht dieser für zwei zusätzliche Städte annähernd die tausendfache Zeit; das sind mehr als 40 Tage.
Beispiel: Aus der Optimierung wird eine Frage (ausgedachte Grenze)
- 1Optimierung: Welche Rundreise durch A, B, C und D ist am kürzesten?
- 2Entscheidung: Gibt es eine Rundreise durch A, B, C und D, deren Länge höchstens 100 beträgt? (Die Grenze 100 ist ausgedacht.)
- 3Die Antwort ist nur „Ja“ oder „Nein“.
- 4Ein vorgeschlagener Weg, zum Beispiel A, B, C, D, A, lässt sich prüfen, indem man seine Kantenlängen addiert und mit der Grenze vergleicht.
Merke: Die Entscheidungsversion fragt nach einer Rundreise, deren Länge eine gegebene Grenze nicht überschreitet. Die Antwort ist nur „Ja“ oder „Nein“.
Teste dich
Eine Polynomialzeitreduktion (auch polynomielle Reduktion) führt ein Entscheidungsproblem L auf ein Entscheidungsproblem L' zurück. Dafür braucht man eine Funktion f, die in polynomieller Zeit berechenbar ist. Für jedes Wort w muss gelten: w liegt in L genau dann, wenn f(w) in L' liegt. Ja-Antworten bleiben also Ja-Antworten, Nein-Antworten bleiben Nein-Antworten.
Ein Problem X ist NP-schwer, wenn man jedes Problem in NP durch Polynomialzeitreduktion auf X reduzieren kann. Ein Problem ist NP-vollständig, wenn es in NP liegt und NP-schwer ist. Es gehört damit zu den schwierigsten Problemen in NP.
So weist man NP-Vollständigkeit nach: Die erste Eigenschaft ist in aller Regel einfach. Man „rät“ eine Lösung und zeigt, dass man in Polynomialzeit verifizieren kann, ob sie wirklich zutrifft. Für die zweite Eigenschaft nimmt man gewöhnlich ein ähnliches Problem, dessen NP-Vollständigkeit schon bekannt ist, und reduziert es auf das neue Problem. Wegen der Transitivität von Polynomialzeitreduktionen sind dann alle Probleme aus NP auf das neue Problem reduzierbar.
Den Begriff der NP-Vollständigkeit führte 1971 Stephen A. Cook ein. Er zeigte, dass das Erfüllbarkeitsproblem der Aussagenlogik NP-vollständig ist. Richard Karp wies 1972 mit der Technik der Polynomialzeitreduktion für weitere 21 populäre Probleme die NP-Vollständigkeit nach.
Was NP-vollständig bedeutet, deutest du vorsichtig: Solche Probleme lassen sich vermutlich nicht effizient lösen. Das ist eine Vermutung, kein Beweis. Für viele NP-vollständige Probleme gibt es Lösungsverfahren, mit denen sie für in der Praxis auftretende Größenordnungen in akzeptabler Zeit lösbar sind.
Nicht jedes Problem in NP ist NP-vollständig. Das Graphisomorphieproblem (die Frage, ob zwei Graphen zueinander isomorph sind) liegt in NP. Man weiß nicht, ob es NP-vollständig ist. Falls P ≠ NP gilt, ist es ein Kandidat für ein Problem, das weder in P liegt noch NP-vollständig ist.
Definition
Polynomialzeitreduktion
Eine Polynomialzeitreduktion ist eine Reduktion, die deterministisch in Polynomialzeit berechnet werden kann. Sie führt ein Problem so auf ein anderes zurück, dass Ja und Nein erhalten bleiben.
Beispiel: CLIQUE auf Independent set reduzieren
- 1Eine Clique ist eine Gruppe von Knoten, die paarweise immer durch eine Kante verbunden sind.
- 2Ein Independent set ist eine Gruppe von Knoten, zwischen denen es paarweise keine Kanten gibt.
- 3Ein Graph G hat genau dann eine Clique der Größe k, wenn der Komplementgraph ein Independent set der Größe k hat.
- 4Den Komplementgraphen zu erstellen geht in polynomieller Zeit, da die Adjazenzmatrix genau einmal durchlaufen werden muss.
- 5Also ist die Reduktion polynomiell. Aus der NP-Vollständigkeit von CLIQUE kann man auf die NP-Vollständigkeit von Independent set schließen.
Merke: Zum Nachweis der NP-Schwere reduziert man gewöhnlich ein bekanntes NP-vollständiges Problem auf das neue Problem.
Teste dich
Die P-NP-Frage lautet: Sind die Menge der schnell lösbaren Probleme (P) und die Menge der schnell prüfbaren Probleme (NP) identisch? Dass alles schnell Lösbare auch schnell prüfbar ist, ist offensichtlich. Die Gegenrichtung ist nicht klar. Die Frage ist bis heute ungelöst. Erkannt wurde sie zu Beginn der 1970er Jahre durch unabhängige Arbeiten von Stephen Cook und Leonid Levin. Das Clay Mathematics Institute hat sie in die Liste der Millennium-Probleme aufgenommen.
Wenn ein einziges NP-vollständiges Problem für alle Eingaben in Polynomialzeit lösbar wäre, wäre jedes Problem in NP in Polynomialzeit lösbar, weil man es per Reduktion auf dieses Problem zurückführen könnte. Dann gälte P = NP. Für P ≠ NP müsste dagegen für ein Problem aus NP bewiesen werden, dass kein deterministischer Polynomialzeitalgorithmus es löst. Bisher ist keins von beidem gelungen. Der Großteil der Fachwelt vermutet P ≠ NP.
Sehr viele praktisch relevante Probleme sind NP-vollständig, zum Beispiel das Problem des Handlungsreisenden, das Rucksackproblem oder die Färbung von Graphen. Im Fall P = NP wären sie theoretisch optimal in kurzer Zeit lösbar. Allerdings könnten die Exponenten und Konstanten eines Polynomialverfahrens so hoch sein, dass für praktisch relevante Anwendungen ein bisher bekanntes Verfahren, zum Beispiel ein approximatives oder probabilistisches, immer noch das bessere ist. Große Bedeutung für die Praxis könnte P = NP haben, muss es aber nicht.
Auch die Kryptologie ist betroffen. Die Sicherheit einiger asymmetrischer Verschlüsselungsverfahren basiert allein auf dem Aufwand, sie zu brechen. Ein Beweis von P = NP würde bedeuten, dass die Aussicht besteht, diese Kryptosysteme in der Praxis zu brechen.
Mit einem Beweis von P ≠ NP wären NP-Probleme endgültig als schwer lösbar klassifiziert. Das entspricht derzeit der Annahme der meisten Wissenschaftler, und dieser Beweis wäre weniger folgenschwer als der Beweis von P = NP.
| Fall | Folge |
|---|---|
| P = NP | Jedes Problem in NP wäre in Polynomialzeit lösbar; große Bedeutung für die Praxis möglich, aber nicht sicher |
| P ≠ NP | NP-Probleme wären endgültig als schwer lösbar eingeordnet; der Beweis wäre weniger folgenschwer |
Merke: Die Frage ist ungelöst. Die Fachwelt vermutet P ≠ NP, bewiesen ist es nicht.
Teste dich
Alles auf einen Blick
P-NP-Problem
Klasse P
Entscheidungsprobleme, die ein deterministischer Rechner in Polynomialzeit löst
Klasse NP
Entscheidungsprobleme, bei denen sich ein Beweis für „Ja“ in Polynomialzeit prüfen lässt; P ist eine Teilmenge von NP
Entscheidungsversion
Statt der kürzesten Rundreise fragt man, ob eine Rundreise existiert, die eine gegebene Grenze nicht überschreitet
Reduktion
Eine in Polynomialzeit berechenbare Umwandlung, bei der Ja-Antworten und Nein-Antworten erhalten bleiben
NP-vollständig
Das Problem liegt in NP und ist NP-schwer; es lässt sich vermutlich nicht effizient lösen
P-NP-Frage
Ob P = NP gilt, ist ungelöst; die Fachwelt vermutet P ≠ NP
Musteraufgabe · Schritt für Schritt
Vorgeschlagene Faktoren für 91 prüfen (ausgedachtes Beispiel)
- 1Aufgabe: Prüfe die vorgeschlagenen Faktoren 7 und 6 für die Zahl 91. (Die Zahlen sind ausgedacht.)
- 2Prüfen heißt hier: Teilt der Vorschlag die Zahl ohne Rest?
- 3Vorschlag 7: 91 : 7 = 13 Rest 0. Der Rest ist 0, also ist 7 ein Faktor von 91.
- 4Vorschlag 6: 91 : 6 = 15 Rest 1. Der Rest ist nicht 0, also ist 6 kein Faktor.
- 5Das Prüfen war jeweils eine einzige Division. Einen Faktor zu finden ist schwerer: Derzeit ist kein deterministischer Algorithmus bekannt, der eine gegebene Zahl in Polynomialzeit faktorisiert.
Fehler finden
Prüfe die Aussagen zum Graphisomorphieproblem In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 3Das ist ein Fehlschluss: NP enthält auch alle Probleme aus P. Richtig: Man weiß bisher weder, ob das Graphisomorphieproblem in P liegt, noch ob es NP-vollständig ist.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Für ein Problem in NP lässt sich ein Beweis für eine Ja-Antwort in prüfen, auch wenn das Finden des Beweises aufwändig sein kann. Die Entscheidungsversion des Handlungsreisenden fragt, ob eine Rundreise existiert, deren Länge eine gegebene Grenze . Eine deterministische Turingmaschine ist ein Spezialfall der nichtdeterministischen, darum ist .
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback