NP (Komplexitätsklasse)

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Komplexitätsklasse NP)

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 aufwändig sein, einen solchen Beweis zu finden. Eine alternative Beschreibung von NP ist also die Klasse aller Entscheidungsprobleme, die von einer nichtdeterministischen Turingmaschine (NTM) 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 NP-vollständige Probleme (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 es wird stark vermutet, 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 fälschlich als die Klasse der nicht in Polynomialzeit lösbaren Probleme bezeichnet. Die Klasse NP definiert aber lediglich eine obere Schranke für die Komplexität der enthaltenen Probleme und enthält auch alle durch eine deterministische Maschine in Polynomialzeit lösbaren Probleme. Richtig ist, dass für NP-vollständige Probleme (und einige weitere in NP) nicht bekannt ist, ob sie deterministisch in Polynomialzeit lösbar sind; man vermutet, dass dies nicht der Fall ist.

Äquivalente Charakterisierungen

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

Von beiden Charakterisierungen kann man eine formale Definition wie folgt angeben:

Sprachakzeptanz-Definition

Eine Sprache Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L} ist in , falls es eine nichtdeterministische Turingmaschine Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle M} 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 mit Fehler beim Parsen (Konvertierungsfehler. Der Server („https://wikimedia.org/api/rest_“) hat berichtet: „Cannot get mml. Server problem.“): {\displaystyle L(M)=L} gibt.

Suchproblem-Definition

Eine Sprache L ist in NP, falls es eine Relation Fehler beim Parsen (Konvertierungsfehler. Der Server („https://wikimedia.org/api/rest_“) hat berichtet: „Cannot get mml. Server problem.“): {\displaystyle R_{L}\subseteq \{0,1\}^{*}\times \{0,1\}^{*}} und ein Polynom p gibt, sodass gilt:

  • wird von einer deterministischen und polynomiell zeitbeschränkten Turingmaschine erkannt, und
  • xL genau dann, wenn es y gibt mit |y| ≤ p(|x|) und Fehler beim Parsen (Konvertierungsfehler. Der Server („https://wikimedia.org/api/rest_“) hat berichtet: „Cannot get mml. Server problem.“): {\displaystyle (x,y)\in R_{L}} .

Hierbei wird y auch Zertifikat von x genannt, und, im Wahrheitsfall, ein „Beweis“ (proof) oder ein „Zeuge“ (witness) für x, daher auch der (englische) Name „witness relation“ für die Relation .

Äquivalenz der Definitionen

Gibt es eine NTM M, die L erkennt, so gibt es zu jedem xL eine akzeptierende Rechnung von M, welche sich in einen String kodieren lässt. Die Relation ist dann Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle R_L = (x, \alpha_M(x))} für alle xL und erfüllt die obigen Eigenschaften, denn die akzeptierende Rechnung ist polynomiell in der Länge von x beschränkt und kann deterministisch in polynomieller Zeit überprüft werden.

Gibt es umgekehrt eine Relation Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle R_L} nach obiger Definition, so kann eine NTM M konstruiert werden, die ein entsprechendes y zunächst nichtdeterministisch rät, und dann mittels einer DTM für Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle R_L} überprüft, ob Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (x,y) \in R_L} , also xL.

Beziehung zu anderen Komplexitätsklassen

Die Klasse der Entscheidungsprobleme, deren Komplemente in NP liegen, wird mit Co-NP bezeichnet. NP und Co-NP sind wegen Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle P \subseteq \mbox{NP} \cap \mbox{Co-NP}} nicht disjunkt. Es ist unklar, ob NP = Co-NP gilt. Dies würde jedoch aus P=NP folgen, da P unter Komplementbildung abgeschlossen ist.

Meist sind für Beziehungen zwischen Komplexitätsklassen nur Inklusionsrelationen bekannt. Nicht bekannt ist, ob jeweils eine echte Teilmengenbeziehung gilt:

LNLLOGCFLNCPNPPSPACE = NPSPACEEXPTIMENEXPTIMEEXPSPACE = NEXPSPACE

Die folgenden echten Inklusionen sind bekannt:

LOGCFLPSPACE
PEXPTIME
PSPACEEXPSPACE
QNP

Eigenschaften von NP

Die Klasse NP ist abgeschlossen unter

Offene Probleme

Die Antworten auf die folgenden Fragen sind bisher nicht bekannt:

  • NPP? (P-NP-Problem)
  • PSPACENP?
  • EXPTIMENP?
  • NPCo-NP?
  • Co-NPNP?

Bekannte Probleme in NP

Alle Probleme in P sind auch in NP 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 NP und es ist nicht bekannt, ob es NP-vollständig ist.

Siehe auch

Weblinks

  • NP. In: Complexity Zoo. (englisch)

Quellen

  • Christos H. Papadimitriou: Computational Complexity. Addison-Wesley, ISBN 978-0-201-53082-7

Einzelnachweise

  1. 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, ISBN 3-8273-7020-5, S. 461 (Originaltitel: Introduction to automata theory, languages, and computation. Übersetzt von Sigrid Richter, Ingrid Tokar).
  2. 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, ISBN 3-8273-7020-5, S. 457 (Originaltitel: Introduction to automata theory, languages, and computation. Übersetzt von Sigrid Richter, Ingrid Tokar).
  3. 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, ISBN 3-8273-7020-5, S. 449 (Originaltitel: Introduction to automata theory, languages, and computation. Übersetzt von Sigrid Richter, Ingrid Tokar).
  4. 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, ISBN 3-8273-7020-5, S. 453 (Originaltitel: Introduction to automata theory, languages, and computation. Übersetzt von Sigrid Richter, Ingrid Tokar).
  5. 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, ISBN 3-8273-7020-5, S. 460 (Originaltitel: Introduction to automata theory, languages, and computation. Übersetzt von Sigrid Richter, Ingrid Tokar).
  6. 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, ISBN 3-8273-7020-5, S. 469 (Originaltitel: Introduction to automata theory, languages, and computation. Übersetzt von Sigrid Richter, Ingrid Tokar).