NP-Schwere
NP-Schwere bezeichnet eine Eigenschaft eines algorithmischen 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
Um die Schwere von Problemen zu vergleichen, werden in der theoretischen Informatik Problemreduktionen benutzt. Ein Problem A heißt reduzierbar auf ein anderes Problem B, wenn jeder Algorithmus, der B löst, auch verwendet werden kann, um A zu lösen, indem man eine Probleminstanz von A umrechnet in eine Instanz von B und diese anschließend löst.
Will man durch Reduktionen Aussagen über die Effizienz von Problemen machen, ist die Effizienz der Reduktion ebenfalls wichtig. Hier 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. Wenn ein Problem auf ein zweites in Polynomialzeit reduziert werden kann und das zweite in Polynomialzeit lösbar ist, kann man auch das erste in Polynomialzeit lösen.
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 einzige 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. Alle Probleme, auch solche außerhalb von NP, die mindestens so schwer sind wie sie (auf die also SAT in Polynomialzeit reduziert werden kann), heißen NP-schwer.
Definition
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:
- führe zuerst die Reduktion auf aus und
- 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
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.
Basierend auf einem Artikel in: Wikipedia.de Seite zurück© biancahoegel.de
Datum der letzten Änderung: Jena, den: 20.11. 2020