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.

Die Komplexitätstheorie, ein Teilgebiet der theoretischen Informatik, beschäftigt sich mit der Klassifizierung von Problemen. 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 - es gibt also eine Nichtdeterministische Turingmaschine, die das Problem in Polynomialzeit lösen kann. NP-Schwere bzw. NP-Härte (Fehlübersetzung des englischen NP-hard), bezeichnet eine Eigenschaft eines Problems. Ein NP-schweres Problem ist mindestens so „schwer“ wie alle Probleme in NP. Das bedeutet, dass ein Algorithmus, der ein NP-schweres Problem löst, benutzt werden kann, um alle Probleme in NP zu lösen.

Intuition[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]

Sei L' \subseteq \Sigma^* eine formale Sprache. L' heißt dann NP-schwer, wenn gilt:

\forall \, L \in {\rm NP} : L \preceq_{\rm p} L' (Alle L aus NP sind polynomiell reduzierbar auf L'.)

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

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

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

Beispiel[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]

  •  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.