NP (Komplexitätsklasse)
In der Informatik bezeichnet NP (für nichtdeterministisch polynomielle Zeit) eine fundamentale Komplexitätsklasse aus dem Bereich der Komplexitätstheorie.
Intuitiv beschrieben, enthält NP die Entscheidungsprobleme, bei denen es für „Ja“-Antworten Beweise gibt, die effizient (in Polynomialzeit) verifiziert werden können. Es kann aber mitunter aufwendig sein, einen solchen Beweis zu finden. Eine alternative Beschreibung von NP ist als die Klasse aller Entscheidungsprobleme, die von einer nichtdeterministischen Turingmaschine bezüglich der Eingabelänge in Polynomialzeit gelöst werden können. Hierbei wird eine Instanz mit „Ja“ beantwortet, wenn mindestens eine der möglichen Berechnungen der nichtdeterministischen Turingmaschine dies tut.
Besonders interessant sind Probleme, die vollständig für die Klasse NP sind. NP-vollständige Probleme lassen sich vermutlich nicht effizient lösen. Alle bekannten deterministischen Algorithmen für diese Probleme erfordern exponentiellen Rechenaufwand, und erfahrene Informatiker erwarten, dass es keine effizienteren Algorithmen gibt. Die Bestätigung oder Widerlegung dieser Vermutung ist das P-NP-Problem, eines der wichtigsten offenen Probleme der Informatik. Das vielleicht bekannteste NP-vollständige Problem ist das Problem des Handlungsreisenden.
Gelegentlich wird NP als die Klasse der nicht in Polynomialzeit lösbaren Probleme bezeichnet. Hier ist aber Vorsicht geboten: Die Klasse NP definiert lediglich eine obere Schranke für die Komplexität der enthaltenen Probleme und enthält auch alle in Polynomialzeit lösbaren Probleme. Richtig ist, dass NP-schwere Probleme vermutlich nicht in Polynomialzeit gelöst werden können. Es gibt aber NP-schwere Probleme, die selbst nicht in NP liegen, also noch schwerer als NP sind.
Inhaltsverzeichnis |
Äquivalente Charakterisierungen [Bearbeiten]
Nach einer alternativen Definition ist ein Entscheidungsproblem genau dann in NP, wenn eine gegebene Lösung für das entsprechende Suchproblem von einer deterministischen Turingmaschine in Polynomialzeit überprüft werden kann. Im deutschen Sprachraum hat diese Definition den Vorteil, dass sich der Ausdruck NP-Problem auch als Nachweis-polynomielles Problem lesen lässt, das heißt, der Nachweis einer positiven Antwort kann in polynomiell beschränkter Zeit vollzogen werden.
Eine weitere Charakterisierung von NP gibt es in der deskriptiven Komplexitätstheorie. Nach dem Satz von Fagin ist eine Sprache L genau dann in NP, wenn es einen Satz in der existenziellen Prädikatenlogik zweiter Stufe (SO∃) gibt, der L beschreibt.
Formale Definition [Bearbeiten]
Von beiden Charakterisierungen kann man eine formale Definition wie folgt angeben:
Sprachakzeptanz-Definition [Bearbeiten]
Eine Sprache
ist in
, falls es eine nichtdeterministische Turingmaschine
und ein Polynom
gibt, sodass gilt:
- Bei Eingabe von
hält
nach höchstens
Schritten (jeder Lauf von
auf
hat also maximal Länge
)
genau dann, wenn es mindestens einen akzeptierenden Lauf von
auf
gibt.
Mit anderen Worten ist
genau dann, wenn es einen polynomiell rechenzeitbeschränkten Verifikator
für alle Wörter aus L mit
gibt.
Suchproblem-Definition [Bearbeiten]
Eine Sprache
ist in
, falls es eine Relation
und ein Polynom
gibt, sodass gilt:
wird von einer deterministischen und polynomiell zeitbeschränkten Turingmaschine erkannt, und
genau dann, wenn es
gibt mit
und
.
Hierbei wird
auch Zertifikat von x genannt, und, im Wahrheitsfall, ein „Beweis“ (proof) oder ein „Zeuge“ (witness) für
, daher auch der (engl.) Name „witness relation“ für die Relation
.
Äquivalenz der Definitionen [Bearbeiten]
Gibt es eine NTM
, die
erkennt, so gibt es zu jedem
eine akzeptierende Rechnung von
, welche sich in einen String
kodieren lässt. Die Relation
ist dann
für alle
und erfüllt die obigen Eigenschaften, denn die akzeptierende Rechnung ist polynomiell in der Länge von
beschränkt und kann deterministisch in polynomieller Zeit überprüft werden.
Gibt es umgekehrt eine Relation
nach obiger Definition, so kann eine NTM
konstruiert werden, die ein entsprechendes
zunächst nichtdeterministisch rät, und dann mittels einer DTM für
überprüft, ob
, also
.
Beziehung zu anderen Komplexitätsklassen [Bearbeiten]
Die Klasse der Entscheidungsprobleme, deren Komplemente in NP liegen, wird mit Co-NP bezeichnet. NP und Co-NP sind wegen
nicht disjunkt. Es ist unklar, ob
gilt. Dies würde jedoch aus
folgen, da
unter Komplementbildung abgeschlossen ist.
Meist sind für Beziehungen zwischen Komplexitätsklassen nur Inklusionsrelationen bekannt. Nicht bekannt ist, ob jeweils eine echte Teilmengenbeziehung gilt:
Die folgenden echten Inklusionen sind bekannt:
- LOGCFL ⊂ PSPACE
- P ⊂ EXPTIME
- Q ⊂ NP
Eigenschaften von NP [Bearbeiten]
Die Klasse NP ist abgeschlossen unter
- Vereinigung
- Durchschnitt
- Konkatenation
- Kleene-Stern
- epsilon-freien Homomorphismen
- inversen Homomorphismen
Offene Probleme [Bearbeiten]
Die Antworten auf die folgenden Fragen sind bisher nicht bekannt:
? (P-NP-Problem)
?
?
?
?
Bekannte Probleme in NP [Bearbeiten]
- Karps 21 NP-vollständige Probleme
- SAT ist NP-vollständig.
- Das Cliquenproblem ist NP-vollständig.
- Das Hamiltonkreisproblem ist NP-vollständig.[1]
- Das Rucksackproblem ist NP-vollständig.
- Independent Set ist NP-vollständig.[2]
- CSAT ist NP-vollständig.[3]
- 3-SAT ist NP-vollständig.[4]
- NODE-COVER ist NP-vollständig.[5]
- Problem des Handlungsreisenden ist NP-vollständig.[6]
Alle Probleme in
sind auch in
enthalten, da sich aus jeder deterministischen Turingmaschine trivialerweise eine äquivalente nichtdeterministische Turingmaschine konstruieren lässt. Das Problem zu entscheiden, ob zwei Graphen zueinander isomorph sind (Graphisomorphieproblem), ist ebenfalls in
und es ist nicht bekannt, ob es NP-vollständig ist.
Siehe auch [Bearbeiten]
Weblinks [Bearbeiten]
- NP. In: Complexity Zoo. (englisch)
Quellen [Bearbeiten]
- Christos H. Papadimitriou: Computational Complexity. Addison-Wesley, ISBN 978-0201530827
Einzelnachweise [Bearbeiten]
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 2., überarb. Auflage. Pearson Studium, München 2002 (Originaltitel: Introduction to automata theory, languages, and computation, übersetzt von Sigrid Richter, Ingrid Tokar), ISBN 3-8273-7020-5, S. 461.
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 2., überarb. Auflage. Pearson Studium, München 2002 (Originaltitel: Introduction to automata theory, languages, and computation, übersetzt von Sigrid Richter, Ingrid Tokar), ISBN 3-8273-7020-5, S. 457.
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 2., überarb. Auflage. Pearson Studium, München 2002 (Originaltitel: Introduction to automata theory, languages, and computation, übersetzt von Sigrid Richter, Ingrid Tokar), ISBN 3-8273-7020-5, S. 449.
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 2., überarb. Auflage. Pearson Studium, München 2002 (Originaltitel: Introduction to automata theory, languages, and computation, übersetzt von Sigrid Richter, Ingrid Tokar), ISBN 3-8273-7020-5, S. 453.
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 2., überarb. Auflage. Pearson Studium, München 2002 (Originaltitel: Introduction to automata theory, languages, and computation, übersetzt von Sigrid Richter, Ingrid Tokar), ISBN 3-8273-7020-5, S. 460.
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 2., überarb. Auflage. Pearson Studium, München 2002 (Originaltitel: Introduction to automata theory, languages, and computation, übersetzt von Sigrid Richter, Ingrid Tokar), ISBN 3-8273-7020-5, S. 469.
Schritten (jeder Lauf von
und
.
? (
?
?
?
?