06.06.2014 Aufrufe

Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...

Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...

Parallele Algorithmen - Ra.informatik.tu-darmstadt.de - Technische ...

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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!