Hauptstudiumspraktikum Algorithmen und Datenstrukturen
Hauptstudiumspraktikum Algorithmen und Datenstrukturen
Hauptstudiumspraktikum Algorithmen und Datenstrukturen
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.