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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

stellen, welche Nachfolger <strong>de</strong>r Knoten i hat. Möchte man aber testen, ob eine Verbindung<br />

zwischen <strong>de</strong>m i-ten und <strong>de</strong>m j-ten Knoten existiert, so reicht eine Anfrage.<br />

Einer <strong>de</strong>r größten Nachteile dieser Repräsentation ist allerdings, dass man auf einem<br />

klassischen Einprozessor-System minimal O(n 2 ) Schritte benötigt, wenn ein Problem<br />

mit <strong>de</strong>r Matrizendarstellung arbeitet und einen Großteil <strong>de</strong>s Graphen betrachten muss.<br />

Im Laufe dieser Arbeit wird <strong>de</strong>utlich wer<strong>de</strong>n, dass es nicht möglich ist, diesen Aufwand zu<br />

minimieren. Allerdings ist es möglich, Teile <strong>de</strong>s Aufwands auf die Hardware zu verlagern<br />

und so einen Speed-Up zu erzielen.<br />

Diese Aussage wird am Beispiel <strong>de</strong>s Warshall-Algorithmus noch <strong>de</strong>utlicher wer<strong>de</strong>n, wobei<br />

klar sein sollte, dass ein Aufwand von O(n) be<strong>de</strong>utet, dass <strong>de</strong>r Algorithmus eine Laufzeit<br />

von O(n) hat, falls nicht explizit etwas an<strong>de</strong>res erwähnt wird.<br />

3.1. Erkennung von zusammenhängen<strong>de</strong>n Komponenten<br />

eines Graphen<br />

In vielen Aufgabenstellungen aus <strong>de</strong>r Praxis ist es wichtig, zu erkennen, ob Komponenten<br />

eines Graphen zusammenhängen. So möchte man z. B. effizient testen, ob alle Computer<br />

eines Netzwerks verbun<strong>de</strong>n sind.<br />

Auf einem Rechner mit einem Prozessor kann man hier u. a. <strong>de</strong>n Warshall-Algorithmus<br />

anwen<strong>de</strong>n, welcher die transitive Hülle berechnet und somit die Erreichbarkeitsmatrix<br />

liefert. Dabei steht eine 1 in Zeile A und Spalte B <strong>de</strong>r Matrix immer dafür, dass es einen<br />

Weg zwischen <strong>de</strong>m Punkt A und <strong>de</strong>m Punkt B gibt, eine 0 <strong>de</strong>mentsprechend dafür, dass<br />

kein Weg existiert. Der Algorithmus von Warshall benötigt auf einem Einprozessor-<br />

System eine Laufzeit von O(n 3 ). Im folgen<strong>de</strong>n Abschnitt wird schrittweise hergeleitet,<br />

wie man <strong>de</strong>n Warshall-Algorithmus auf <strong>de</strong>m GCA mo<strong>de</strong>llieren kann und wie es möglich<br />

ist, eine Laufzeit von O(n) zu erreichen.<br />

3.1.1. Der Warshall-Algorithmus<br />

Der Warshall-Algorithmus ist eine Spezialisierung <strong>de</strong>s Kleene-Algorithmus und je nach<br />

Litera<strong>tu</strong>r berechnet er die reflexive-transitive-Hülle 1 o<strong>de</strong>r nur die transitive Hülle 2 . Ein<br />

Vorteil <strong>de</strong>r Berechnung <strong>de</strong>r reinen transitiven Hülle ist, dass man sehr leicht mit <strong>de</strong>m<br />

Warshall-Algorithmus testen kann, ob ein Graph Zyklen enthält.<br />

Da es für die Erkennung von zusammenhängen<strong>de</strong>n Komponenten irrelevant ist, ob die<br />

Hülle reflexiv ist o<strong>de</strong>r nicht, wird im weiteren <strong>de</strong>r Warshall-Algorithmus verwen<strong>de</strong>t,<br />

1 Bei <strong>de</strong>r reflexiven Hülle existiert von je<strong>de</strong>m Knoten eine Verbindung zu sich selber. Auf <strong>de</strong>r Diagonalen<br />

stehen also nur Einsen. Die reflexive-transitive Hülle erfüllt die Bedingung <strong>de</strong>r reflexiven Hülle<br />

zusätzlich zu <strong>de</strong>n Bedingungen <strong>de</strong>r transitiven Hülle.<br />

2 Hier steht auf <strong>de</strong>r Diagonale nur dann eine 1, wenn es von <strong>de</strong>m Knoten aus möglich ist, wie<strong>de</strong>r zu<br />

<strong>de</strong>m Knoten zu kommen<br />

28

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!