NP-Schwere

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Mengendiagramm der möglichen Beziehungen zwischen P, NP und den Mengen der NP-schweren und NP-vollständigen Probleme.

NP-Schwere bezeichnet eine Eigenschaft eines komplexitätstheoretischen Problems.

Die Komplexitätstheorie, ein Teilgebiet der theoretischen Informatik, beschäftigt sich mit der Klassifizierung von Problemen bezüglich ihrer Komplexität. Eine wichtige Problemklasse ist die Komplexitätsklasse NP, die Klasse aller Entscheidungsprobleme, für die eine gefundene Lösung effizient überprüft werden kann. Dabei steht NP für nichtdeterministische Polynomialzeit. Ein NP-schweres Problem ist dabei mindestens so „schwer“ wie alle Probleme in NP. Das bedeutet, dass ein Algorithmus, der ein NP-schweres Problem löst, mithilfe einer Reduktion benutzt werden kann, um alle Probleme in NP zu lösen.

Der umgangssprachlich auftretende Begriff NP-Härte ist eine Fehlübersetzung des englischen NP-hard.

Intuition[Bearbeiten | Quelltext bearbeiten]

Um die Schwere von Problemen zu vergleichen, werden in der theoretischen Informatik Problemreduktionen benutzt. Ein Problem heißt reduzierbar auf ein anderes, wenn jeder Algorithmus, der das zweite Problem löst, auch verwendet werden kann, um das erste zu lösen. Beispielsweise ist das Quadrieren einer Zahl reduzierbar auf die Multiplikation zweier Zahlen, denn jeder Algorithmus, der zwei Zahlen multiplizieren kann, kann auch eine Zahl quadrieren (indem er sie mit sich selbst multipliziert). Multiplizieren ist also in diesem Sinne mindestens so schwer wie Quadrieren. Bei der Reduktion ist wichtig, dass sie effizient geschieht. In der Komplexitätstheorie wird Effizienz durch die Forderung formalisiert, dass die Anzahl der Rechenschritte, die die Reduktion durchführt, durch ein Polynom in der Eingabelänge begrenzt wird; eine solche Reduktion heißt Polynomialzeitreduktion.

Anfang der 1970er Jahre zeigten Stephen A. Cook und Leonid Levin unabhängig voneinander, dass es in NP ein Problem gibt, auf das alle anderen Probleme in NP in Polynomialzeit reduziert werden können: das Erfüllbarkeitsproblem der Aussagenlogik (SAT, von englisch satisfiability). Das Problem SAT ist also ein schwerstes Problem in NP (Satz von Cook). Es ist allerdings nicht das schwerste Problem, denn Richard M. Karp zeigte, dass es in NP Probleme gibt, auf die SAT reduziert werden kann, die also genauso schwer sind wie SAT. Diese schwersten Probleme in NP werden NP-vollständig genannt und alle Probleme, die mindestens so schwer sind wie sie, heißen NP-schwer.

Definition[Bearbeiten | Quelltext bearbeiten]

Sei eine formale Sprache. heißt dann NP-schwer, wenn gilt:

(Alle aus NP sind polynomiell reduzierbar auf .)

Dies bedeutet, dass mindestens so schwer wie jedes beliebige Problem aus NP ist. Diese intuitive Deutung wird gerechtfertigt durch die Tatsache, dass sich mit einem Algorithmus , der in Polynomialzeit löst, für jedes Problem aus NP ebenfalls ein polynomialer Algorithmus konstruieren ließe:

  1. führe zuerst die Reduktion auf aus und
  2. anschließend Algorithmus .

selbst kann jedoch auch schwerer sein. Insbesondere muss nicht notwendigerweise in NP liegen (liegt jedoch zusätzlich in NP, so heißt NP-vollständig).

Beispiel[Bearbeiten | Quelltext bearbeiten]

Ein klassisches Beispiel für ein Problem, das NP-schwer ist und nicht in NP liegt, ist das Halteproblem für Turingmaschinen. Beispielsweise lässt sich das Erfüllbarkeitsproblem auf das Halteproblem reduzieren, indem eine Instanz des Erfüllbarkeitsproblems in eine Turingmaschine transformiert wird, die nacheinander alle möglichen Belegungen durchprobiert und hält, sobald eine erfüllende Belegung gefunden ist, andernfalls jedoch in eine Endlosschleife übergeht. Darüber hinaus liegt das Halteproblem aber selbst nicht in NP, da es überhaupt nicht entscheidbar ist.

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Michael R. Garey und David S. Johnson: Computers and Intractability. A Guide to the Theory of NP-Completeness. W. H. Freeman and Company, New York 1979, ISBN 0-7167-1045-5, Kapitel 5: NP-Hardness.