Praktische Grenzen der Berechenbarkeit - Informatik
Praktische Grenzen der Berechenbarkeit - Informatik
Praktische Grenzen der Berechenbarkeit - Informatik
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