• Keine Ergebnisse gefunden

Automatisches Zeichnen von Graphen

N/A
N/A
Protected

Academic year: 2021

Aktie "Automatisches Zeichnen von Graphen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1. Übungsblatt

Automatisches Zeichnen von Graphen

Prof. Dr. Jens M. Schmidt, Dr. Alexander Apke, Arne Heimendahl, David Könen und Robin Kühling.

Aufgabe 1: Es werde Schlicht! (10 Punkte)

Beschreiben Sie einen Algorithmus mit linearer Laufzeit (d.h.O(n+m)), der testet, ob ein gegebener Multigraph schlicht ist (d.h. weder Schleifen noch Parallelkanten enthält).

Aufgabe 2: Kleine Kreuzungszahlen (10 Punkte)

Finden Sie eine geradlinige Zeichnung des folgenden Graphen K6 mit möglichst wenigen Kantenkreuzungen, und beweisen Sie, dass diese Anzahl minimal ist.

Tipp: Erinnern Sie sich für den Beweis an die Grundlagen planarer Graphen, z.B.

an die Eulersche Polyederformel und den Satz von Kuratowski.

Aufgabe 3: Applied Graph Drawing (10 Punkte)

Finden Sie eine möglichst schöne gradlinige Zeichnung des folgenden GraphenG= ({1, . . . ,20}, E). Welche Optimierungskriterien bedient diese?

Adjazenzliste für E:

1→2→5→10 11→8→12→18

2→1→3→6 12→4→11→15

3→2→4→8 13→10→14→16

4→3→5→12 14→5→13→15

5→1→4→14 15→12→14→17

6→2→7→9 16→13→17→20

7→6→8→19 17→15→16→18

8→3→7→11 18→11→17→19

9→6→10→20 19→7→18→20 10→1→9→13 20→9→16→19

(2)

Aufgabe 4: Graphenzeichnen im OGDF (10 Punkte) Schreiben Sie ein Programm innerhalb des Open Graph Drawing Frameworks (OGDF), dass einen zufälligen Graphen G mit 10 Knoten und 12 Kanten erzeugt und dar- aufhin überprüft, ob G ein Dreieck (d.h. einenC3) enthält. Geben Sie Ggraphisch aus und markieren sie die Kanten jedes Dreiecks (falls vorhanden) farblich. Folgen Sie dazu folgenden Anweisungen.

(i) Installieren Sie das OGDF wie folgt (für Linux siehe hier).

(a) Laden Sie die jüngste OGDF-Version und entpacken Sie den Inhalt des Unterordners OGDF-snapshot in das Verzeichnis <PATH> Ihrer Wahl.

(b) Installieren Sie die Binärdistributionvon CMake undVisual Studio Com- munity ≥2017 und fügen Sie bei letzterer die Unterstützung von C++- Konsolenanwendungen hinzu.

(c) Starten Sie CMake, setzen Sie den dortigen SourceCode-Pfad auf <PATH>, den Binaries-Pfad auf <PATH>\binariesund klicken Sie nacheinander auf configure, generate und open project (dies erstellt und öffnet die Visual Studio .sln-Datei). In Visual Studio kompilieren Sie die OGDF mit einem Rechtsklick aufALL_BUILD→Erstellen; dies erstellt die Bibliotheksdatei

<PATH>\binaries\Debug\OGDF.lib (läuft ihr Projekt fehlerfrei, können Sie hier durch das Umstellen der Kompilierung von dem DEBUG auf den RELEASE-Modus einen Geschwindigkeitszuwachs erreichen).

(d) Erstellen Sie in Visual Studio innerhalb der Projektmappe ein neues lee- res Projekt namens Uebung1, markieren dies als Startup-Project und fü- gen Sie die Datei Uebung1.cppder Vorlesungseite zu diesem Projekt hin- zu. Unter Projekteigenschaften → C/C++ fügen Sie <PATH>\include;

<PATH>\binaries\includezu Zusätzliche Includeverzeichnisse und unter Präprozessor OGDF_DEBUG; hinzu. Als Zusätzliche Bibliotheksverzeichnis- se des Linkers fügen Sie<PATH>\binaries\Debug\OGDF.lib;hinzu (ana- log für den Release-Modus <PATH>\binaries\Release\OGDF.lib;). Un- ter Projektabhängigkeiten markieren Sie OGDF.

(ii) Nun sollte das Projekt Uebung1 kompilieren und ein Ausführen die Dateien Ausgabe.gml und Ausgabe.svn erzeugen, welche einen Zufallsgraphen mit 10 Knoten und 12 Kanten enthalten (ein optionales Debuggen benötigt das An- kreuzen der Box Microsoft Symbol Servers unter Tools→ Options → De- bugging→Symbols). Informieren Sie sich in derOGDF-Snapshot-Dokumentation, welcher Befehl was bewirkt, einige Beispiele darin finden Siehier(Achtung: Die Referenzdokumentation auf www.OGDF.net ist im Vergleich dazu veraltet).

(iii) Tauschen Sie die auskommentierte Zeile gegen Ihre Programmlogik aus, die die Kanten jedes Dreiecks im GraphenG färbt; die Ausgabe verwendet dann ein (bereits implementiertes) kräftebasiertes Zeichenverfahren. Schicken Sie Source-Code, lauffähiges Programm und Programmausgabe dem Übungsgrup- penleiter vor dem Übungstermin per EMail und stellen Sie das Programm in der Übungsgruppe vor. MityEdoderGoVisual Diagram Editorlassen sich die Graphen interaktiv anzeigen.

Referenzen

ÄHNLICHE DOKUMENTE

Ein Binärbaum heißt ungeordnet, falls für die Knoten des Baumes nicht festgelegt ist, ob sie linkes oder rechtes Kind ihres Vaters sind?. Wir betrachten das

(ii) Zeigen Sie unter Verwendung des zweiten aus der Vorlesung bekannten Algo- rithmus, dass eine Zeichnung von G existiert, die den Automorphismus π vert darstellt.. (iii) Finden

Eine erste Idee zur heuristischen Lösung von MFS sucht deswegen iterativ nach gerichteten Kreisen und ori- entiert jeweils eine beliebige Kante dieses Kreises um, bis keine Kreise

Es genügt hier, für die einzelnen Schichten die Menge der auf dieser Schicht liegenden Knoten anzugeben.. (ii) Angenommen, Sie haben lediglich Platz für eine Breite b

Aufgabe 3: Barycenter-Heuristik im OGDF (Bearbeitungszeit: 2 Wochen, 10 Punkte) Schreiben Sie ein Programm innerhalb des OGDF, das die Barycenter-Heuristik zur Kreuzungsminimierung

Als Wurzel des DFS-Baumes soll hierbei der Knoten v 1 gewählt werden und während der Tiefensuche soll immer zunächst der Knoten mit kleinerem Index besucht werden. Benutzen Sie

Aufgabe 5: Chain Decompositions im OGDF (Abgabe bis 16. Januar, 10 Punkte) Schreiben Sie ein Programm innerhalb des OGDF, das für den bereitgestellten Graph christmastree.gml eine

Ein Graph heißt außerplanar, falls er eine planare Einbettung hat, dessen äußere Fläche inzident zu jedem Knoten ist.. Finden Sie einen effizienten Algorithmus, der einen Graph G