Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...
Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...
Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Da nun alle Knoten auf Knoten 1 zeigen, kann man erkennen, dass es eine große zusammenhängen<strong>de</strong><br />
Komponente im Graphen gibt, mit an<strong>de</strong>rn Worten, <strong>de</strong>r Graph ist<br />
zusammenhängend. Der Algorithmus wird die fünf Teilschritte noch einmal durchlaufen,<br />
da log 2 (8) = 3. Es wird sich jedoch nichts mehr än<strong>de</strong>rn, da keine Verbindung zu<br />
einer an<strong>de</strong>ren Komponente mehr gefun<strong>de</strong>n wer<strong>de</strong>n kann. Das Beispiel kann also hier als<br />
abgeschlossen betrachtet wer<strong>de</strong>n. Das En<strong>de</strong>rgebnis wird in Abbildung 3.13 graphisch<br />
dargestellt. Bei einem nicht zusammenhängen<strong>de</strong>n Graphen wür<strong>de</strong>n nach Terminierung<br />
<strong>de</strong>s Algorithmus im Vektor C min<strong>de</strong>stens zwei unterschiedliche Repräsentanten stehen.<br />
Man kann direkt aus <strong>de</strong>m Vektor auslesen, wie groß die Komponenten sind und welche<br />
Knoten zu ihnen gehören.<br />
Abbildung 3.13.: Ergebnis nach <strong>de</strong>m fünften Schritt <strong>de</strong>s zweiten Durchlaufs. Um Verwirrung<br />
aufgrund von Kantenüberschneidungen zu vermei<strong>de</strong>n, wur<strong>de</strong>n<br />
auch hier die Position <strong>de</strong>r Knoten teilweise variiert.<br />
3.1.3.2. Komplexitätsbetrach<strong>tu</strong>ng auf <strong>de</strong>r P-RAM<br />
Der Algorithmus benötigt, so wie er vorgestellt wur<strong>de</strong>, eine Laufzeit von<br />
O(log 2 (n)) bei <strong>de</strong>r Benutzung von O( n2 ) Prozessoren. In diesem Abschnitt soll ver<strong>de</strong>utlicht<br />
wer<strong>de</strong>n, dass diese Abschätzung gerechtfertigt<br />
log(n)<br />
ist.<br />
Da die fünf Teilschritte (im Folgen<strong>de</strong>n nur noch Schritte genannt) <strong>de</strong>s Algorithmus<br />
log(n)-mal wie<strong>de</strong>rholt wer<strong>de</strong>n, darf je<strong>de</strong>r Schritt nicht mehr als eine Laufzeit von<br />
O(log(n)) haben, damit die Gesamtlaufzeit von O(log 2 (n)) erfüllt ist. Die Aufgabe dieses<br />
Abschnitts ist es also, für je<strong>de</strong>n Schritt darzulegen, dass er wirklich in O(log(n)) Zeit<br />
ablaufen kann.<br />
Für <strong>de</strong>n ersten Schritt ist nicht offensichtlich, dass er in O(log(n)) ausführbar ist. Immerhin<br />
müssen potentiell n Werte bestimmt und daraus das Minimum gebil<strong>de</strong>t wer<strong>de</strong>n.<br />
Um diesen Schritt in <strong>de</strong>r gewünschten Zeit ausführen zu können, muss man geschickt<br />
zusätzliche Prozessoren einsetzen. In [GR98] wird <strong>de</strong>r erste Schritt in drei Teilschritte<br />
42