aktuelle Version des Vorlesungsskripts - ZIB
aktuelle Version des Vorlesungsskripts - ZIB
aktuelle Version des Vorlesungsskripts - ZIB
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
4 Komplexitätstheorie und Speicherung von Graphen<br />
Die Probleme „Hat ein Graph G einen Kreis?“, „Hat ein Graph G einen hamiltonschen<br />
Kreis?“ sind somit in N P. Hat nämlich G einen Kreis oder hamiltonschen Kreis, so<br />
wählen wir diesen als Objekt Q. Dann entwerfen wir einen polynomialen Algorithmus,<br />
der für einen Graphen G und eine zusätzliche Kantenmenge Q entscheidet, ob Q ein Kreis<br />
oder hamiltonscher Kreis von G ist. Auch die Frage „Ist n ∈ N eine zusammengesetzte<br />
Zahl?“ ist in N P, denn liefern wir als „Objekt“ zwei Zahlen = 1, deren Produkt n ist, so<br />
ist n keine Primzahl. Die Überprüfung der Korrektheit besteht somit in diesem Fall aus<br />
einer einzigen Multiplikation.<br />
Die obige Definition der Klasse N P enthält einige Feinheiten, auf die ich ausdrücklich<br />
hinweisen möchte.<br />
– Es wird nichts darüber gesagt, wie das Zusatzobjekt Q zu finden ist. Es wird lediglich<br />
postuliert, dass es existiert, aber nicht, dass man es z. B. mit einem polynomialen<br />
Algorithmus finden kann.<br />
– Die Laufzeit <strong>des</strong> Algorithmus 2 in 4.3 ist nach Definition polynomial in 〈I〉. Da<br />
der Algorithmus Q lesen muss, folgt daraus, dass die Kodierungslänge von Q durch<br />
ein Polynom in der Kodierungslänge von I beschränkt sein muss. Auf die Frage<br />
„Hat die Gleichung x 2 + y 2 = n 2 eine Lösung x, y?“ ist „x = n und y = 0“ ein<br />
geeignetes Zusatzobjekt Q, aber weder „x = y = n √ 0.5“ ( √ 0.5 kann nicht endlich<br />
binär kodiert werden) noch „x = n22n<br />
22n , y = 0“ (die Kodierungslänge von x ist<br />
exponentiell in der Inputlänge <strong>des</strong> Problems) wären als Zusatzobjekt Q geeignet,<br />
um die Korrektheit der „ja“-Antwort in polynomialer Zeit verifizieren zu können.<br />
– Ferner ist die Definition von N P unsymmetrisch in „ja“ und „nein“. Die Definition<br />
impliziert nicht, dass wir auch für die Problembeispiele mit „nein“-Antworten Objekte<br />
Q und polynomiale Algorithmen mit den in 4.3 spezifizierten Eigenschaften<br />
finden können.<br />
Wir sagen, dass die Entscheidungsprobleme, die Negationen von Problemen aus der Klasse<br />
N P sind, zur Klasse co−N P gehören. Zu co−N P gehören folglich die Probleme „Hat<br />
G keinen Kreis?“, „Hat G keinen hamiltonschen Kreis?“, „Ist n ∈ N eine Primzahl?“. Es<br />
ist bekannt, dass das erste und das letzte dieser drei Probleme ebenfalls zu N P gehören.<br />
Diese beiden Probleme gehören also zu N P ∩ co−N P. Vom Problem „Hat G keinen hamiltonschen<br />
Kreis?“ weiß man nicht, ob es zu N P gehört. Niemand hat bisher Objekte<br />
Q und einen Algorithmus finden können, die den Forderungen 1 und 2 aus 4.3 genügen.<br />
Das Symbol N P ist abgeleitet vom Begriff „nichtdeterministischer polynomialer Algorithmus“.<br />
Dies sind – grob gesagt – Algorithmen, die am Anfang „raten“ können, also<br />
einen nichtdeterministischen Schritt ausführen können und dann wie übliche Algorithmen<br />
ablaufen. Ein nichtdeterministischer Algorithmus „löst“ z. B. das hamiltonsche Graphenproblem<br />
wie folgt: Am Anfang rät er einen hamiltonschen Kreis. Gibt es keinen, so hört<br />
das Verfahren auf. Gibt es einen, so überprüft er, ob das geratene Objekt tatsächlich ein<br />
hamiltonscher Kreis ist. Ist das so, so antwortet er mit „ja“.<br />
Trivialerweise gilt P ⊆ N P, da für Probleme in P Algorithmen existieren, die ohne<br />
Zusatzobjekte Q in polynomialer Zeit eine „ja“- oder „nein“-Antwort liefern. Also gilt<br />
64