Informatik

P-NP-Problem einfach erklärt: P, NP und Reduktion

P-NP-Problem einfach erklärt: P, NP und Reduktion
P-NP-Problem einfach erklärt: P, NP und Reduktion
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Das P-NP-Problem fragt: Ist jedes Entscheidungsproblem, dessen vorgeschlagene Lösung sich in Polynomialzeit prüfen lässt, auch in Polynomialzeit lösbar? Kurz: Gilt $P=NP$? Bis heute ist weder $P=NP$ noch $P\ne NP$ bewiesen.

Auf dieser Seite lernst du, warum „leicht prüfen“ nicht automatisch „leicht finden“ bedeutet, wie Reduktionen Probleme verbinden und welche Aussagen aus den beiden möglichen Antworten folgen.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Was bedeutet „in Polynomialzeit“?

Die Eingabegröße $n$ beschreibt, wie groß eine Problemangabe ist, etwa wie viele Städte eine Routenaufgabe enthält. Ein Algorithmus arbeitet in Polynomialzeit, wenn seine Zahl an Rechenschritten für ein festes $k$ durch einen Ausdruck wie $n^k+c$ begrenzt ist. Typische Laufzeiten sind $O(n)$, $O(n^2)$ oder $O(n^5)$.

Bei $f(n)=3n^2+2n+1$ dominiert für große $n$ der quadratische Term. Deshalb schreibt man $f(n)\in O(n^2)$. Dagegen ist $O(2^n)$ exponentiell: Erhöht sich $n$ um eins, verdoppelt sich der führende Wert.

Merke

„Polynomial“ bezeichnet das Wachstum bei immer größeren Eingaben. Es bedeutet nicht automatisch, dass ein Algorithmus bei realen Eingaben schnell ist: Ein hoher Exponent oder große konstante Faktoren können ihn unpraktisch machen.

Teste dich
Frage 1 von 1LeichtWelche Laufzeit ist polynomial?
Lösung: $O(n^4)$ — Bei Polynomialzeit ist der Exponent eine feste Konstante, wie in $n^4$. $2^n$ und $n!$ wachsen nicht polynomial.
Wie unterscheiden sich P und NP?

In der formalen Theorie betrachtet man Entscheidungsprobleme: Zu jeder Eingabe lautet die Antwort Ja oder Nein.

Definition

P

P ist die Klasse der Entscheidungsprobleme, die eine deterministische Turingmaschine in Polynomialzeit löst. „Deterministisch“ bedeutet: In jedem Rechenschritt ist durch Algorithmus und aktuellen Zustand festgelegt, wie es weitergeht.

Definition

NP

NP ist die Klasse der Entscheidungsprobleme, bei denen jede Ja-Antwort durch ein Zertifikat belegt werden kann, dessen Länge durch ein Polynom der Eingabegröße beschränkt ist und das sich deterministisch in Polynomialzeit prüfen lässt. Gleichwertig kann man NP über eine nichtdeterministische Turingmaschine definieren, die in Polynomialzeit löst. Diese Maschine ist ein theoretisches Modell, kein gewöhnlicher oder Quantencomputer.

Ein Zertifikat ist die mitgelieferte Information, die eine Ja-Antwort belegt. Wer das Zertifikat prüft, muss es nicht selbst finden.

Es gilt sicher $P\subseteq NP$: Ein Prüfer kann bei einem Problem aus P das Zertifikat ignorieren und die Ja-Nein-Frage selbst in Polynomialzeit entscheiden. Offen ist, ob auch $NP\subseteq P$ gilt.

Merke

NP bedeutet nicht „nicht polynomial“. Der Name steht für „nichtdeterministische Polynomialzeit“.

Teste dich
Frage 1 von 1LeichtWelche Aussage ist bewiesen?
Lösung: $P\subseteq NP$ — Jedes polynomial lösbare Entscheidungsproblem ist auch polynomial prüfbar. Ob jedes polynomial prüfbare Problem polynomial lösbar ist, weiß man nicht.
Wie zeigt ein Zertifikat eine Ja-Antwort?

Beim SAT-Problem ist eine aussagenlogische Formel gegeben. Gefragt wird: Gibt es eine Belegung der Variablen mit wahr oder falsch, sodass die gesamte Formel wahr wird?

Beispiel

Betrachte die Formel „(A oder B) und (nicht A oder C)“. Das Zertifikat lautet: A ist falsch, B ist wahr, C ist falsch.

  1. „A oder B“ ist wahr, weil B wahr ist.
  2. „nicht A oder C“ ist wahr, weil nicht A wahr ist.
  3. Beide Teile sind wahr. Das Zertifikat belegt daher die Ja-Antwort.

Die Prüfung wertet die gegebene Belegung aus. Sie muss nicht unter allen Belegungen erst eine passende suchen.

Auch das Problem des Handlungsreisenden lässt sich als Entscheidungsproblem formulieren: „Gibt es eine Rundreise, die jede Stadt genau einmal besucht und höchstens $L$ Kilometer lang ist?“ Ein Zertifikat ist eine konkrete Rundreise. Zur Prüfung kontrollierst du die Besuche, addierst die Streckenlängen und vergleichst die Summe mit $L$.

Das ist nicht dasselbe wie die Behauptung, die Route sei global die kürzeste. Die Prüfung gegen eine vorgegebene Grenze belegt nur: Es gibt eine zulässige Route bis $L$.

Formuliere selbst eine Entscheidungsfrage

Beim Rucksackproblem sind Gegenstände mit Gewicht und Wert gegeben. Der Rucksack darf höchstens das Gesamtgewicht $G$ tragen. Formuliere eine Ja-Nein-Frage, die zusätzlich den Zielwert $W$ verwendet.

Beispiel

Eine passende Entscheidungsfrage lautet: „Gibt es eine Auswahl der Gegenstände, deren Gesamtgewicht höchstens $G$ und deren Gesamtwert mindestens $W$ beträgt?“

Die Antwort kann nur Ja oder Nein sein. Eine konkrete Auswahl dient bei einer Ja-Antwort als Zertifikat: Du addierst Gewichte und Werte und vergleichst beide Summen mit den Grenzen.

Teste dich
Frage 1 von 1MittelWas musst du bei einer vorgeschlagenen TSP-Rundreise für die Entscheidungsfrage prüfen?
Lösung: Sie besucht jede Stadt wie gefordert und ihre Gesamtlänge ist höchstens $L$. — Ein Zertifikat belegt die Ja-Antwort zur gegebenen Grenze. Woher die Route stammt und ob sie die absolut kürzeste ist, gehört nicht zu dieser Prüfung.
Was leisten Reduktionen und NP-Vollständigkeit?

Eine polynomielle Reduktion von Problem A auf Problem B ist eine in Polynomialzeit berechenbare Umformung. Sie übersetzt jede Instanz von A in eine Instanz von B, wobei die Ja-Nein-Antwort erhalten bleibt.

Schreibt man „A reduziert auf B“, dann gilt: Könnte man B polynomial lösen, könnte man zuerst A in B umformen und anschließend B lösen. Damit wäre auch A polynomial lösbar.

Merke

Die Richtung zählt: A auf B zu reduzieren zeigt, dass B mindestens so schwer wie A ist. Die Reduktion liefert nicht automatisch einen schnellen Algorithmus für B.

Definition

NP-schwer und NP-vollständig

Ein Problem ist NP-schwer, wenn sich jedes Problem aus NP in Polynomialzeit darauf reduzieren lässt. Es ist NP-vollständig, wenn es zusätzlich selbst in NP liegt. SAT ist ein NP-vollständiges Problem.

Warum ist das so wichtig? Angenommen, ein NP-vollständiges Problem X läge in P. Dann könnte man jedes Problem aus NP polynomial auf X reduzieren und X polynomial lösen. Also wäre $NP\subseteq P$. Zusammen mit $P\subseteq NP$ folgte $P=NP$.

Teste dich
Frage 1 von 1MittelA reduziert polynomial auf B, und B liegt in P. Was folgt?
Lösung: Auch A liegt in P. — Die Umformung von A nach B und der Polynomialzeitalgorithmus für B ergeben zusammen einen Polynomialzeitalgorithmus für A.
Welche Antworten sind möglich?

Für $P=NP$ würde schon ein Polynomialzeitalgorithmus für ein einziges NP-vollständiges Problem genügen. Ein solcher Algorithmus könnte konstruktiv zeigen, wie sich alle NP-Probleme über Reduktionen polynomial lösen lassen.

Für $P\ne NP$ müsste bewiesen werden, dass mindestens ein Problem aus NP keinen deterministischen Polynomialzeitalgorithmus besitzt. Dass jahrzehntelang kein solcher Algorithmus gefunden wurde, stützt die verbreitete Vermutung $P\ne NP$, ist aber kein Beweis.

Gut zu wissen

Ein Grund für die Schwierigkeit sind Grenzen bekannter Beweisideen. Vollständig relativierende Methoden können die Frage nicht entscheiden: Es gibt theoretische Orakel-Erweiterungen, in denen P und NP gleich sind, und andere, in denen sie verschieden sind. Auch bestimmte „natürliche“ Beweismethoden stoßen unter verbreiteten Annahmen an eine Barriere. Diese Ergebnisse lösen das P-NP-Problem nicht; sie zeigen, dass neue oder kombinierte Ideen nötig sind.

Das P-NP-Problem ist weiterhin offen. Es gehört zu den Millennium-Problemen; für eine anerkannte Lösung ist ein Preis von einer Million US-Dollar vorgesehen.

Teste dich
Frage 1 von 1MittelEine Forscherin testet viele Ansätze und findet keinen Polynomialzeitalgorithmus für SAT. Was hat sie damit bewiesen?
Lösung: Weder P gleich NP noch P ungleich NP. — Eine endliche oder auch jahrzehntelange erfolglose Suche ist kein Unmöglichkeitsbeweis. Für P ungleich NP braucht man eine allgemeine mathematische Begründung.
Was würde eine Lösung praktisch bedeuten?

Falls $P=NP$ gilt, existieren für alle Probleme aus NP Polynomialzeitalgorithmen. Das wäre für Planung, Optimierung und automatisches Schlussfolgern grundlegend. Es würde auch kryptographische Verfahren gefährden, deren Sicherheit auf der Schwierigkeit passender Suchprobleme beruht.

Doch aus $P=NP$ folgt nicht automatisch ein sofort einsetzbarer Turbo-Algorithmus. Die garantierte Laufzeit könnte etwa einen sehr hohen Polynomgrad oder große Konstanten haben. Theoretische Effizienz und praktische Brauchbarkeit sind verschieden.

Falls $P\ne NP$ gilt, gibt es mindestens ein Entscheidungsproblem, dessen Ja-Zertifikate polynomial prüfbar sind, das aber nicht deterministisch in Polynomialzeit lösbar ist. Das würde eine grundlegende Grenze effizienter Berechnung beweisen. Es würde jedoch nicht pauschal die Sicherheit jedes konkreten Kryptosystems garantieren.

Teste dich
Frage 1 von 2SchwerAngenommen, jemand beweist P gleich NP mit einem Algorithmus der Laufzeit $O(n^{100})$. Welche Bewertung ist korrekt?
Lösung: Der Beweis wäre theoretisch entscheidend, der Algorithmus könnte praktisch trotzdem unbrauchbar sein. — P gleich NP betrifft die Existenz polynomialer Verfahren. Ob ein bestimmtes Verfahren praktisch schnell ist, hängt auch von Exponent, Konstanten und Eingabegrößen ab.
Frage 2 von 2SchwerWelche Aussage würde aus einem Beweis von P ungleich NP sicher folgen?
Lösung: Mindestens ein Problem aus NP liegt nicht in P. — P ungleich NP bedeutet, dass NP mindestens ein Problem enthält, das nicht deterministisch in Polynomialzeit lösbar ist. Über die Sicherheit jedes einzelnen Kryptosystems folgt daraus keine pauschale Aussage.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • P-NP-Problem
    • Polynomialzeit
      • asymptotisches Wachstum
      • nicht automatisch praktisch schnell
    • Klassen
      • P: polynomial lösen
      • NP: polynomiell langes Ja-Zertifikat polynomial prüfen
    • Beziehung
      • P ist Teilmenge von NP
      • Umkehrung ist offen
    • Reduktionen
      • übertragen Instanzen und Antworten
      • verbinden NP-vollständige Probleme
    • mögliche Ergebnisse
      • ein NP-vollständiges Problem in P ergibt P gleich NP
      • ein NP-Problem außerhalb P ergibt P ungleich NP
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWas unterscheidet P von NP in der Prüferdefinition?
Lösung: P verlangt polynomialzeitliches Lösen; NP verlangt für Ja-Fälle polynomiell lange, polynomial prüfbare Zertifikate. — P beschreibt effizientes deterministisches Lösen. Bei NP genügt für jede Ja-Instanz die Existenz eines polynomiell langen, polynomial prüfbaren Zertifikats.
Frage 2 von 3MittelWas zeigt ein Polynomialzeitalgorithmus für SAT, da SAT NP-vollständig ist?
Lösung: $P=NP$ — Alle NP-Probleme lassen sich polynomial auf SAT reduzieren. Ein Polynomialzeitalgorithmus für SAT würde daher alle NP-Probleme polynomial lösen.
Frage 3 von 3SchwerEin Problem A reduziert auf B. Für A ist kein Polynomialzeitalgorithmus bekannt. Darf man daraus schließen, dass B nicht in P liegt?
Lösung: Nein, das Fehlen eines bekannten Algorithmus für A ist kein Beweis, dass A oder B außerhalb von P liegt. — Aus A auf B und B in P würde A in P folgen. Ohne einen Beweis, dass A nicht in P liegt, darfst du die Gegenrichtung nicht als Unmöglichkeitsaussage verwenden.

Passend dazu