finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.2 Die Klassen P und N P, N P-Vollständigkeit<br />
im weiteren nur solche Entscheidungsprobleme betrachten, für die Lösungsalgorithmen<br />
mit endlicher Laufzeitfunktion existieren.<br />
Die Klasse aller derjenigen Entscheidungsprobleme, für die ein polynomialer Lösungsalgorithmus<br />
existiert, wird mit P bezeichnet. Diese Definition ist recht informell. Wenn<br />
wir genauer wären, müßten wir P relativ zu einem Kodierungsschema und zu einem<br />
Rechnermodell definieren. Die Definition würde dann etwa wie folgt lauten. Gegeben sei<br />
ein Kodierungsschema E und ein Rechnermodell M, Π sei ein Entscheidungsproblem,<br />
wobei je<strong>des</strong> Problembeispiel aus Π durch das Kodierungsschema E kodiert werden kann.<br />
Π gehört zur Klasse P (bezüglich E und M), wenn es einen auf M implementierbaren<br />
Algorithmus zur Lösung der Problembeispiele aus Π gibt, <strong>des</strong>sen Laufzeitfunktion auf<br />
M polynomial ist. Wir wollen im weiteren derartig komplizierte und unübersichtliche<br />
Definitionen vermeiden und werden auf dem (bisherigen) informellen Niveau bleiben in<br />
der Annahme, die wesentlichen Anliegen ausreichend klar machen zu können.<br />
Wir werden im Abschnitt 4.3 sehen, dass das Problem „Enthält ein Graph einen Kreis?“<br />
zur Klasse P gehört. Aber trotz enormer Anstrengungen sehr vieler Forscher ist es noch<br />
nicht gelungen, das Problem „Enthält ein Graph einen hamiltonschen Kreis“ in polynomialer<br />
Zeit zu lösen.<br />
Diese Frage ist „offenbar“ schwieriger. Um zwischen den Problemen in P und den<br />
„schwierigeren“ formal unterscheiden zu können, sind die folgenden Begriffe geprägt worden.<br />
Wir sagen – zunächst einmal informell –, dass ein Entscheidungsproblem Π zur Klasse<br />
N P gehört, wenn es die folgende Eigenschaft hat: Ist die Antwort für ein Problembeispiel<br />
I ∈ Π „ja“, dann kann die Korrektheit der Antwort in polynomialer Zeit überprüft<br />
werden.<br />
Bevor wir etwas genauer werden, betrachten wir ein Beispiel. Wir wollen herausfinden,<br />
ob ein Graph einen hamiltonschen Kreis enthält. Jeden Graphen können wir (im Prinzip)<br />
auf ein Blatt Papier zeichnen. Hat der gegebene Graph einen hamiltonschen Kreis, und<br />
hat jemand (irgendwie) einen solchen gefunden und alle Kanten <strong>des</strong> Kreises rot angestrichen,<br />
dann können wir auf einfache Weise überprüfen, ob die rot angemalten Kanten<br />
tatsächlich einen hamiltonschen Kreis darstellen. Bilden sie einen solchen Kreis, so haben<br />
wir die Korrektheit der „ja“-Antwort in polynomialer Zeit verifiziert.<br />
Nun die ausführliche Definition:<br />
(4.3) Definition. Ein Entscheidungsproblem Π gehört zur Klasse N P, wenn es die<br />
folgenden Eigenschaften hat:<br />
1. Für je<strong>des</strong> Problembeispiel I ∈ Π, für das die Antwort „ja“ lautet, gibt es min<strong>des</strong>tens<br />
ein Objekt Q, mit <strong>des</strong>sen Hilfe die Korrektheit der „ja“-Antwort überprüft werden<br />
kann.<br />
2. Es gibt einen Algorithmus, der Problembeispiele I ∈ Π und Zusatzobjekte Q als<br />
Input akzeptiert und der in einer Laufzeit, die polynomial in 〈I〉 ist, überprüft, ob<br />
Q ein Objekt ist, aufgrund <strong>des</strong>sen Existenz eine „ja“-Antwort für I gegeben werden<br />
muss. △<br />
63