05.08.2013 Aufrufe

Praktische Grenzen der Berechenbarkeit - Informatik

Praktische Grenzen der Berechenbarkeit - Informatik

Praktische Grenzen der Berechenbarkeit - Informatik

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.

Unser Ziel ist es nun, diejenigen Probleme zu klassifizieren, für die möglicherweise<br />

ein schneller Algorithmus existiert.<br />

6 Nichtdeterministische Algorithmen, P und NP<br />

Wir wenden uns noch einmal dem Problem Hamilton–Zyklus zu. Wie oben gesehen<br />

besteht eine Möglichkeit zur Lösung des Problems darin, ausgehend von<br />

einem Startknoten <strong>der</strong> Reihe nach alle (n − 1)! Permutationen <strong>der</strong> übrigen Knoten<br />

daraufhin zu überprüfen, ob sie einen Rundweg im Graphen darstellen. Dazu<br />

kann man sich die Knoten in einem Auswahlbaum angeordnet vorstellen, wie dies<br />

Abbildung 14 für den in Abbildung 13 gezeigten Graphen verkürzt darstellt.<br />

7<br />

8<br />

6<br />

5<br />

1 2<br />

Abbildung 13: Graph zum Problem Hamilton–Zyklus<br />

Wir betrachten nun den folgenden ” Lösungsalgorithmus“:<br />

— Errate einen Pfad im Auswahlbaum.<br />

— Überprüfe, ob es sich um einen Hamilton–Zyklus handelt.<br />

Wenn eine bestimmte Knotenfolge vorgegeben ist, lässt sich leicht überprüfen,<br />

ob es sich um einen Hamilton–Zyklus handelt: Die Knoten müssen <strong>der</strong> Reihe<br />

nach durch Kanten verbunden sein. Auch das Auswählen eines Pfades erfor<strong>der</strong>t<br />

keinen großen Rechenaufwand. Beide Schritte sind mit polynomialem Zeitaufwand<br />

durchführbar. Dennoch wird man das Verfahren nicht ohne weiteres als<br />

Lösungsalgorithmus bezeichnen. Was diesen Algorithmus von bisherigen unterscheidet,<br />

ist das Raten <strong>der</strong> richtigen Lösung. Hier ist nicht festgelegt, auf welche<br />

Art diese Lösung bestimmt wird. Einen solchen Algorithmus, in dem es mehrere<br />

Möglichkeiten für den konkreten Ablauf <strong>der</strong> Bearbeitung gibt, bezeichnet man<br />

als nichtdeterministisch.<br />

Nichtdeterministische Algorithmen bestehen also aus einer Ratephase, in <strong>der</strong><br />

Lösungskandidaten bestimmt werden, und einer Prüfphase, in <strong>der</strong> die Kandidaten<br />

daraufhin getestet werden, ob sie tatsächlich eine Lösung des Problems darstellen.<br />

Theoretisch gesehen erzeugt ein nichtdeterministischer Algorithmus für alle<br />

möglichen Lösungskandidaten eine Kopie von sich selbst. In <strong>der</strong> Praxis können<br />

22<br />

4<br />

3

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!