P-NP-Problem einfach erklärt: P, NP und Reduktion
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.
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.
„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.
Wie unterscheiden sich P und NP?
In der formalen Theorie betrachtet man Entscheidungsprobleme: Zu jeder Eingabe lautet die Antwort Ja oder Nein.
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.
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.
NP bedeutet nicht „nicht polynomial“. Der Name steht für „nichtdeterministische Polynomialzeit“.
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?
Betrachte die Formel „(A oder B) und (nicht A oder C)“. Das Zertifikat lautet: A ist falsch, B ist wahr, C ist falsch.
- „A oder B“ ist wahr, weil B wahr ist.
- „nicht A oder C“ ist wahr, weil nicht A wahr ist.
- 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.
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.
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.
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.
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$.
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.
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.
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.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- 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
- Polynomialzeit
Mit Google fortfahren