09.02.2014 Aufrufe

Hauptstudiumspraktikum Algorithmen und Datenstrukturen

Hauptstudiumspraktikum Algorithmen und Datenstrukturen

Hauptstudiumspraktikum Algorithmen und Datenstrukturen

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.

40 Michael Baur, Daniel Fleischer, Robert Schmaus<br />

Dass die Laufzeit von SCC tatsächlich<br />

linear in der Anzahl<br />

der Knoten plus Anzahl der<br />

Kanten ist, zeigt sich in den<br />

Diagrammen der nebenstehenden<br />

Abbildung 2. Bearbeitet<br />

wurden Graphen, deren Kantenanzahl<br />

quadratisch in der<br />

Anzahl der Knoten wächst. Jeder<br />

Graph durchlief SCC 10<br />

Mal; die Diagramme zeigen<br />

die durchschnittliche Laufzeit.<br />

Das obere Schaubild stellt die<br />

Laufzeit des Programms in<br />

Abhängigkeit der Knotenanzahl<br />

dar – wie zu erwarten<br />

ergibt sich kein lineares Verhalten.<br />

Dieses zeigt sich erst<br />

im unteren Schaubild, wo die<br />

Laufzeit in Abhängigkeit von<br />

#V + #E dargestellt wird.<br />

t [ms]<br />

t [ms]<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

0<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

0<br />

t<br />

vertices vs runtime<br />

0 100 200 300 400 500 600 700 800<br />

t<br />

#V<br />

vertices and edges vs runtime<br />

0 50000 100000 150000 200000 250000 300000<br />

#V + #E<br />

Abb. 2: Graphen mit m ∈ O(n 2 )<br />

Um eine Vergleichbarkeit mit anderen Gruppen, die denselben Algorithmus<br />

zu impementieren hatten, zu gewähren, stellen wir an dieser<br />

Stelle noch die Statistik der Graphen aus den beiden .jar-Files zur<br />

Verfügung, die allen Gruppen zugänglich waren.<br />

14000<br />

t<br />

vertices vs runtime<br />

14000<br />

t<br />

edges vs runtime<br />

12000<br />

12000<br />

10000<br />

10000<br />

8000<br />

8000<br />

t [ms]<br />

t [ms]<br />

6000<br />

6000<br />

4000<br />

4000<br />

2000<br />

2000<br />

0<br />

0 10000 20000 30000 40000 50000 60000 70000 80000 90000<br />

#V<br />

0<br />

0 20000 40000 60000 80000 100000 120000 140000 160000 180000<br />

#E<br />

Abb. 3: Graphen aus dem .jar-File graphA2.jar<br />

Die Diagramme in Abbildung 3 zeigen das Laufzeitverhalten von SCC<br />

wieder in Abhängigkeit von n <strong>und</strong> m, wobei m ∈ O(n) (bearbeitet<br />

wurden die Graphen aus dem File graphA.jar). Die Kurve ist zwar<br />

alles andere als glatt . . . was vor allem daran liegt, dass jeder Graph<br />

nur einmal bearbeitet wurde, <strong>und</strong> sich so Unregelmäßigkeiten durch<br />

gleichzeitig laufende Programme u.ä. besonders gravierend zeigen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!