P-NP-Problem SS10

Aus ProgrammingWiki
< AuK
Archivierte Version vom 2010-06-04T08:32:38+00:00. Aktuelle Version

Inhaltsverzeichnis

Autoren:

  1. Ragna-Diana Steglich (sirasteg@stud.hs-zigr.de)
  2. Elisabeth Vogel (sielvoge@stud.hs-zigr.de)

Motivation

Komplexitätsklassen

In den meisten Fällen ist es sehr schwierig zu entscheiden, ob ein Problem einfach oder nur sehr schwer lösbar ist. Es ist zum Beispiel ohne weiteres möglich, dass Probleme, die sich formulierungstechnisch nur sehr gering unterscheiden, vollkommen unterschiedliche Aufwände zu ihrer Lösung verlangen. Die folgende Tabelle kann dies verdeutlichen:

Vergleich.PNG

Für das P-NP-Problem ist es von Vorteil die Komplexitätsklassen \mathcal{P},\mathcal{NP}, und \mathcal{EXPTIME} genauer zu untersuchen, wobei \mathcal{P} und \mathcal{NP} im Vordergrund stehen werden. Die Probleme, die mehr oder weniger leicht und informell effizient lösbar sind, schreibt man der Komplexitätsklasse \mathcal{P} zu. \mathcal{NP} definiert die Probleme, für die eine Lösung in polynomialer Zeit einfach zu verfizieren ist. Ferner kann die Klasse \mathcal{EXPTIME} als eine Art "Überklasse" bezeichnet werden, denn es gilt \mathcal{P} \subset \mathcal{EXPTIME}. Leider ist aber noch unbekannt ob \mathcal{NP} \subset \mathcal{EXPTIME} oder \mathcal{NP} = \mathcal{EXPTIME} ist. Untereinander verhalten sich die Komplexitätsklassen \mathcal{P} und \mathcal{NP} ähnlich undurchsichtig, denn es ist noch nicht geklärt, ob \mathcal{P} ={NP} oder \mathcal{P} \subset \mathcal{NP} gilt, wobei nur die wenigsten Forscher an \mathcal{P} ={NP} glauben. Die folgende Grafik illustriert die mögliche Verbindung der Klassen untereinander:

Klasse P

Definition
\mathcal{P} ist die Klasse aller Probleme, die mit deterministischen Algorithmen in polynomialer Zeit gelöst werden können.


Der Klasse \mathcal{P}, manchmal findet sich auch die Bezeichnung \mathcal{PTIME}, werden also Probleme der Größe \mathcal{n} (Eingabewort) zugeordnet, für deren Lösung der Aufwand im worst-case durch ein Polynom in \mathcal{n} nach oben beschränkt werden kann. Das Polynom besitzt dann dann die Größe der Eingabe. Abstrakter gesagt umfasst die Klasse \mathcal{P} Entscheidungsprobleme die in Polynomzeit für deterministische TURING-Maschinen lösbar sind. Allgemein wird diese Komplexitätsklasse auch als Klasse der "praktisch lösbaren" Probleme betrachtet. Algorithmen, deren Komplexität nicht durch Polynome beschränkt werden können sind ineffizient, das heißt, dass der Aufwand mit der Anzahl der Eingaben exponentiell nach oben steigt. Daraus ergibt sich die unumgängliche Tatsache, dass diese Algorithmen die Rechenkapazität jedes irdischen Computers irgendwann bei weitem sprengen würden.

Klasse NP

Reduktion

Polynomiale Reduktion

NP-Vollständigkeit

NP-schwere Probleme

NP-vollständige Probleme

Stephen A. Cook

Zur Person Cook

Einer der bedeutesten Professoren der Informatik ist Steven Arthur Cook. Er wurde am 14.Dezember 1939 in Buffalo, New York geboren und lebt heute in Kanada, wo er an der University of Toronto unterrichtet. Die größte Aufmerksamkeit widmete er der Komplexitätstheorie, in der er 1971 mit dem ‚Satz von Cook‘ berühmt wurde und 1982 den Turing Award erhielt, welcher an Personen verliehen wird, die besonders zur Entwicklung der Informatik beigetragen haben.

Satz von COOK

Für das Arbeiten mit dem Satz von Cook ist es wichtig zu wissen, was eigentlich das SAT-Problem ist. Das satisfiability problem zu Deutsch das Erfüllbarkeitsproblem der Aussagenlogik prüft, ob eine aussagenlogische Formel erfüllbar ist. Es ist also gefragt, wie die booleschen Belegungen der Variablen x_i aussehen müssen, damit ein gegebener Ausdruck wahr wird. Damit dieses Problem deterministisch gelöst werden kann, muss eine Tabelle mit allen möglichen Belegungen der Variablen erstellt werden. Bei k Variablen gibt es dabei 2^k mögliche Belegungen. Als Spezialfall des SAT ist noch 3-SAT zu nennen. Hierbei besitzt der gegebene Ausdruck maximal drei Variablen pro Oder-Term. Ein Beispiel hierfür ist:

Da es eine deterministische Lösung gibt, könnte man annehmen, dass dieses Problem in \mathcal{P} liegt, was aber nicht sicher ist. Sicher ist nur, dass es in NP liegt. Weiterhin konnte festgestellt werden, dass dieses Problem \mathcal{NP}-vollständig ist.

Um Probleme als \mathcal{NP}-vollständig zu identifizieren, müssen sie auf ein ähnliches Problem polynomial reduziert werden. Das setzt aber voraus, dass es wenigstens ein Problem gibt, dessen \mathcal{NP}-Vollständigkeit nicht durch Reduktion nachgewiesen wurde, da es sich ja auf kein anderes \mathcal{NP}-vollständiges Problem nachweisen ließ. Dieses Problem existiert auch. Es wurde von Steven A. Cook durch den ‚Satz von Cook‘ nachgewiesen, dass das Erfüllbarkeitsproblem der Aussagenlogik (kurz: SAT) \mathcal{NP}-vollständig ist. Bewiesen wurde es mittels einer Turingmaschine, wobei jedes Merkmal der Maschine als aussagenlogische Formel interpretiert wird. Das SAT-Problem ist somit das erste Problem, für das die \mathcal{NP}-Vollständigkeit ohne polynomiale Reduktion nachgewiesen werden konnte. Jedes Problem lässt sich auf das Wahrheits-Belegungs-Problem von Cook umschreiben. Sollte eines dieser Probleme vom Typ \mathcal{P} sein, wären alle \mathcal{NP}-Probleme letztendlich einfach, also in \mathcal{P}.

CLIQUEN-Problem

NP-Vollständigkeitsbeweis

Praktische Unlösbarkeit

Frank P. Ramsey

Zur Person Ramsey

RAMSEY-Problem

Pseudopolynomiale Algorithmen

Übungsaufgaben

Quellen

Literatur

[1] Christian Wagenknecht
Algorithmen und Komplexität.- Fachbuchverlag Leipzig, 2003.- ISBN 3-446-22314-2
[2] Robert Sedgewick
Algorithmen, 3. unveränderte Auflage - Addison-Wesley, 1994 - ISBN 3-89319-402-9
[1] http
//de.wikipedia.org/wiki/P-NP-Problem
[2] http
//de.wikipedia.org/wiki/Komplexit%C3%A4tsklasse
[3] http
//de.wikipedia.org/wiki/Komplexit%C3%A4tstheorie
[4] http
//de.wikipedia.org/wiki/Liste_von_Komplexit%C3%A4tsklassen
[5] http
//de.wikipedia.org/wiki/Stephen_A._Cook
[6] http
//de.wikipedia.org/wiki/Frank_Plumpton_Ramsey
[7] http
//de.wikipedia.org/wiki/Millennium-Probleme
[8] http
//www.uni-protokolle.de/Lexikon/P/NP-Problem.html
[9] http
//www.informatik.uni-bremen.de/theorie/teach/lehre/thi2/2007/Folien/0406.pdf


Siehe auch

[1] Hompage von Stephen A. Cook
http://www.cs.toronto.edu/~sacook/
[2] Clay Mathematics Institute
http://www.claymath.org/millennium/
[3] MacTutor History of Mathematics archive
http://www-history.mcs.st-andrews.ac.uk/Biographies/Ramsey.html