P (Komplexitätsklasse)

In der Komplexitätstheorie ist P (auch: PTIME) diejenige Komplexitätsklasse, die alle Entscheidungsprobleme enthält, die in Polynomialzeit für deterministische Turingmaschinen lösbar sind. Diese Problemklasse wird allgemein als die Klasse der „praktisch lösbaren“ Probleme betrachtet.

Eine Verallgemeinerung von P ist die Klasse NP. Die Probleme aus NP sind zwar ebenfalls in Polynomialzeit entscheidbar, jedoch wird hierfür ein nicht realisierbares, nämlich nichtdeterministisches Maschinenmodell eingesetzt. P ist sicher eine Teilmenge von NP. Es gehört jedoch zu den wichtigsten ungelösten Fragen der theoretischen Informatik, ob P = NP gilt (siehe auch P-NP-Problem).

P ist unter Komplementbildung abgeschlossen.

Formale Definition

Notation:

  • ist die Menge der natürlichen Zahlen mit Null.
  • ist das Alphabet einer formalen Sprache, das heißt jedes Wort ist eine binäre Zeichenfolge bestehend aus und .
  • bezeichnet die Menge aller binären Wörter der Länge .
  • bezeichnet die (abzählbare) Menge aller endlich langen binären Wörter.

Ein Entscheidungsproblem kann nun als formale Sprache dargestellt werden. Jede Probleminstanz wird als Binärstring in ausgedrückt, und enthält genau die Strings, die eine Instanz darstellen, auf die die richtige Antwort „ja“ lautet.

Ein Entscheidungsproblem ist effizient-lösbar, falls ein Algorithmus in Polynomialzeit existiert, so dass für jedes gilt

Dann ist die Klasse der effizient-lösbaren Entscheidungsprobleme, das heißt[1]

Erläuterungen

Ein Algorithmus kann als deterministische Turing-Maschine aufgefasst werden.

Wir haben ein paar Vereinfachungen vorgenommen. Eigentlich meinen wir das Entscheidungsproblem von , aber häufig identifiziert man mit seinem Entscheidungsproblem. Auch den Begriff des Algorithmus haben wir vereinfacht, da korrekterweise nur die dazugehörige Funktion berechnet, wobei Fehler bedeutet (es ging etwas schief), mit der das Problem gelöst wird. Wir haben mit identifiziert aber auf den Endzustand verzichtet.

Beziehung zu anderen Komplexitätsklassen

Die folgenden Beziehungen sind bekannt:

LNLLOGCFLNC ⊆ P ⊆ NPPSPACE = NPSPACE ⊆ EXPTIMENEXPTIMEEXPSPACE = NEXPSPACE
LOGCFL PSPACE EXPSPACE
P EXPTIME

P-Vollständigkeit

Ein Entscheidungsproblem heißt P-vollständig genau dann, wenn es in der Komplexitätsklasse P liegt und wenn jedes Problem in P durch eine Berechnung mit logarithmischem Platzverbrauch auf reduziert werden kann, das heißt, wenn jede dieser Reduktionen in der Komplexitätsklasse L liegt (siehe auch: Vollständigkeit in der Komplexitätstheorie).

Ein bekanntes P-vollständiges Problem ist das Circuit-Value-Problem, bei dem bestimmt werden soll, ob das Ergebnis eines Booleschen Schaltkreises bei gegebener Eingabe einer gegebenen Ausgabe entspricht. Diese Probleme gehören zu den schwersten, noch effizient lösbaren Problemen aus der Komplexitätsklasse P. P-vollständige Probleme sind (momentan) schwer zu parallelisieren.

Bekannte Probleme in P

Sehr viele Probleme liegen in P, was im Allgemeinen nicht besonders wahrgenommen wird; in der Regel kennt man dann auch einen geeigneten Algorithmus (so das Sortierungsproblem mit z. B. Quicksort, Laufzeit usw.).

P-vollständige Probleme

Einzelnachweise

  1. Oded Goldreich: P, NP, and NP-Completeness: The Basics of Computational Complexity. Hrsg.: Cambridge University Press. 2010, ISBN 978-0-521-19248-4 (englisch).