NP-Vollständigkeit

Begriff aus der Informatik
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. Juli 2003 um 14:58 Uhr durch Koethnig (Diskussion | Beiträge) (uiuiui, da muß noch viel korrigert, verbessert, deutlicher gemacht, angemerkt werden...). Sie kann sich erheblich von der aktuellen Version unterscheiden.

NP-Vollständigkeit

Ein Problem (genauer: ein Entscheidungsproblem) L heisst NP-vollständig, wenn es eine Polynomialzeitreduktion aller Probleme in P auf L gibt.

Genau so wird dies natürlich nicht so häufig für konkrete Probleme gezeigt, weil es recht schwierig ist, eine Aussage für beliebige Probleme in P zu zeigen. Vielmehr nimmt man ein Problem, für das die NP-Vollständigkeit schon bekannt ist und reduziert es auf dasjenige Problem, für das man die Eigenschaft der NP-Vollständigkeit zeigen will. Aus der Transitivität von Polynomialzeitreduktionen folgt dann, dass alle Probleme aus P auch auf das betrachtete Problem reduzierbar sind.

Klassische Vertreter NP-vollständiger Probleme sind etwa

Erstaunlicherweise lassen sich diese schweren Probleme der Informatik zwar wahrscheinlich (unter der Annahme, dass PNP gilt) nicht im Allgemeinen lösen, jedoch in einigen Fällen beliebig genau mit sogenannten Approximationsschemata approximieren.

NP-Härte

Ein verwandter Begriff zur NP-Vollständigkeit ist die NP-Schwere (oft auch als "NP-Härte" aus dem englischen zurückübersetzt). Der Begriff NP-Vollständigkeit bezieht sich nur auf Probleme aus NP (also Entscheidungsprobleme). Ein Problem heisst dann NP-schwer, wenn die Bedingungen von oben erfüllt sind, das Problem jedoch nicht in NP liegt.

starke und schwache NP-Vollständigkeit

Weiter kann man die NP-vollständigen Probleme noch einteilen in

  • stark NP-vollständige und
  • schwach NP-vollständige Probleme


Bleibt das Problem auch noch mit unärer Kodierung der Eingabe NP-vollständig, so heisst das Problem stark NP-vollständig, ansonsten schwach NP-vollständig.