23.06.2013 Aufrufe

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!