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.

⎛<br />

B =<br />

⎜<br />

⎝<br />

0 0 0 1 0 0 0 0<br />

0 0 1 1 0 0 1 0<br />

0 1 0 0 1 1 0 0<br />

1 1 0 0 0 0 0 1<br />

0 0 1 0 0 0 0 0<br />

0 0 1 0 0 0 0 0<br />

0 1 0 0 0 0 0 0<br />

0 0 0 1 0 0 0 0<br />

⎞<br />

⎟<br />

⎠<br />

Abbildung 3.6.: Beispielgraph für <strong>de</strong>n Algorithmus von Hirschberg<br />

Im ersten Teilschritt wird von je<strong>de</strong>m Knoten ausgehend die Kante zum Nachbarn mit<br />

<strong>de</strong>r kleinsten Nummer gesucht, <strong>de</strong>r noch nicht in <strong>de</strong>r gleichen Komponente enthalten ist.<br />

Dieser Nachbar wird in <strong>de</strong>n Vektor T gespeichert, welchen man wie<strong>de</strong>r als Grundlage<br />

für einen gerichteten Graphen verwen<strong>de</strong>n kann (<strong>de</strong>r Wert j an <strong>de</strong>r Stelle i impliziert eine<br />

gerichtete Verbindung von i nach j). Interpretiert man <strong>de</strong>n Vektor T in dieser Weise, so<br />

entsteht am En<strong>de</strong> <strong>de</strong>s ersten Schritts <strong>de</strong>r Graph aus Abbildung 3.7.<br />

Im ersten Durchlauf än<strong>de</strong>rt <strong>de</strong>r zweite Teilschritt nichts am Vektor T, da bislang 8<br />

Komponenten existieren, in <strong>de</strong>nen jeweils nur ein Knoten, <strong>de</strong>r Repräsentant, enthalten<br />

ist. Ein Minimum über alle Elemente <strong>de</strong>r Komponente wird also nichts än<strong>de</strong>rn und<br />

Abbildung 3.7 repräsentiert somit auch das Ergebnis <strong>de</strong>s zweiten Teilschritts <strong>de</strong>s ersten<br />

Durchlaufs.<br />

Im dritten Teilschritt wird nunmehr eine Kopie angelegt, welche für <strong>de</strong>n fünften und<br />

letzten Teilschritt benötigt wird.<br />

Im vierten Teilschritt wird nun log(n) mal die Doubling-Technik angewen<strong>de</strong>t. Dabei setzt<br />

je<strong>de</strong>r Knoten seinen Nachfolger auf <strong>de</strong>n Nachfolger seines ursprünglichen Nachfolgers.<br />

Diese Aktion wird im Algorithmus log(n)-wie<strong>de</strong>rholt, bis schließlich als Ergebnis <strong>de</strong>r<br />

Graph aus Abbildung 3.8 entsteht. Der Vektor T wird dafür wie<strong>de</strong>r wie vorne beschrieben<br />

interpretiert.<br />

Auffällig am Ergebnis nach <strong>de</strong>m vierten Schritt ist, dass nun vier und nicht mehr, wie<br />

nach <strong>de</strong>m zweiten Schritt, zwei Komponenten vorhan<strong>de</strong>n sind. Solches Auseinan<strong>de</strong>rreißen<br />

von Komponenten ist allerdings unerwünscht, weshalb <strong>de</strong>r fünfte Schritt wie<strong>de</strong>r<br />

38

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!