Martin Böhmer/Dennis Treder/Marina Schwacke Übungen zu Automatisches Zeichnen von Graphen Ausgabe: Besprechung: Gruppe 2 - Übungsblatt 3 -
Martin Böhmer/Dennis Treder/Marina Schwacke Aufgabe 2 Sugiyama-Verfahren für große Graphen (a) Evaluieren Sie das in OGDF enthaltene Sugiyama- Verfahren als Eignung für große Graphen (mehr als 1000 Knoten): Wo bleibt die Laufzeit? (b) Entwickeln Sie eigene Ideen, wie man das Sugiyama Verfahren abändern könnte, so dass es für große Graphen verwendet werden kann. Welche Qualitätsverluste nehmen Sie dabei in Kauf? Mögliche Ideen finden Sie in der Arbeit von Eiglsperger, Siebenhaller und Kaufmann: An Efficient Implementation of Sugiyamas Algorithm for Layered Graph Drawing. Journal of Graph Algorithms and Applications (JGAA), vol. 9, nr. 3, 305–325, 2005.
Martin Böhmer/Dennis Treder/Marina Schwacke Gliederung Test großer Graphen mit Sugiyama Kleine Graphen testen mit Sugiyama Paper vorstellen eigene Idee vorstellen Test der eigenen Idee
Martin Böhmer/Dennis Treder/Marina Schwacke große Graphen mit Sugiyama Anzahl Graphen: 20 #Knoten: 1206,20 #Kanten: 1677,60 Anzahl Planarer Graphen: keine Gesamtzeit: Phase Ø: 4423,40 2 Phase Ø: ,25 3 Phase Ø: 1228,30 (Millisek.) #crossings Ø:0 Fehler #crossCalls Ø:41847,55
Martin Böhmer/Dennis Treder/Marina Schwacke große Graphen mit Sugiyama
Martin Böhmer/Dennis Treder/Marina Schwacke große Graphen mit Sugiyama
Martin Böhmer/Dennis Treder/Marina Schwacke große Graphen mit Sugiyama
Martin Böhmer/Dennis Treder/Marina Schwacke Kleine Graphen testen mit Sugiyama Anzahl Graphen: 20 #Knoten: 100 #Kanten: 300 Anzahl Planarer Graphen: keine Gesamtzeit: Phase Ø: 21,90 2 Phase Ø: 7367,95 3 Phase Ø: 29,60 (Millisek.) #crossings Ø:3974,35 #crossCalls Ø:3002,70
Martin Böhmer/Dennis Treder/Marina Schwacke Kleine Graphen testen mit Sugiyama
Martin Böhmer/Dennis Treder/Marina Schwacke Kleine Graphen testen mit Sugiyama
Martin Böhmer/Dennis Treder/Marina Schwacke Arbeit von Eiglsperger, Siebenhaller und Kaufmann Problem von Sugiyama: Zu viele Dummy-Knoten! The complexity of algorithms in the Sugiyama framework heavily depends on the number of dummy vertices inserted. Neuer Ansatz:
Martin Böhmer/Dennis Treder/Marina Schwacke Arbeit von Eiglsperger, Siebenhaller und Kaufmann
Martin Böhmer/Dennis Treder/Marina Schwacke Arbeit von Eiglsperger, Siebenhaller und Kaufmann
Martin Böhmer/Dennis Treder/Marina Schwacke Eigene Idee Weniger Crossmin-Aufrufe! Nicht ganz so naiver Ansatz: Gezieltes Auslassen von Crossmin-Aufrufen. Naiver Ansatz: Einfach die Anzahl der Crossmin-Ebenendurchläufe verringern. Führt (natürlich) zu weniger Crossmin-Aufrufen, aber auch (ungezielt) zu mehr Kreuzungen.
Martin Böhmer/Dennis Treder/Marina Schwacke Eigene Idee: CrossminThreshold Crossmin wird nur dann aufgerufen, wenn zwischen den betreffenden Layern überdurchschnittlich viele Kreuzungen auftreten. Umsetzung: Nach jedem Crossmin-Durchlauf wird der Durchschnittswert der Kreuzungen pro Layer ausgerechnet (#Kreuzungen / #Layer). Beim jedem weiteren Durchlauf für jedes Schicht-Paar: if (KreuzungenZwischenSchichten > Grenzwert*Durchschnitt) crossMin else noop Beim Nach Testläufen hat sich Grenzwert = 1 durchgesetzt (guter Kompromiss aus Zeitersparniss und Kreuzungeszahl).
Martin Böhmer/Dennis Treder/Marina Schwacke Eigene Idee: CrossminThreshold Zufallsgraphen: 20 Stück, 100 Knoten, 300 Kanten
Martin Böhmer/Dennis Treder/Marina Schwacke Eigene Idee: CrossminThreshold Wo ist das Problem? Die Graphen sind zu klein - nach wenigen Crossmin-Durchläufen ändert sich nichts mehr. Lösung? Um repräsentativere Ergebnisse zu bekommen, wurde eine Anzahl an Durchläufen gewählt, nach der keine sehr deutliche Verbesserung der Kreuzungszahl mehr auftritt: SG.setRuns(5);
Martin Böhmer/Dennis Treder/Marina Schwacke Eigene Idee: CrossminThreshold
Martin Böhmer/Dennis Treder/Marina Schwacke Barycenter vs. Pyramid
Martin Böhmer/Dennis Treder/Marina Schwacke Eigene Idee: CrossminThreshold 2 * 1000 Knoten, 1500 Kanten & 2 * 1500 Knoten 2000 Kanten
Martin Böhmer/Dennis Treder/Marina Schwacke Eigene Idee: CrossminThreshold Vielen Dank für die Aufmerksamkeit ;)