Zeichnen von Graphen

Ähnliche Dokumente
Fünf-Farben-Satz. Seminar aus reiner Mathematik, WS 13/14. Schweighofer Lukas, November Seite 1

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

15. Elementare Graphalgorithmen

Isomorphie von Bäumen

Graphen und Bäume. A.1 Graphen

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Grundbegriffe der Informatik

Lernmodul 2 Graphen. Lernmodul 2: Geoobjekte und ihre Modellierung - Graphen

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

6. Übung zur Linearen Optimierung SS08

Algorithmen und Datenstrukturen 2

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete).

Minimal spannende Bäume

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

WS 2009/10. Diskrete Strukturen

Grundbegriffe der Informatik

Bäume und Wälder. Definition 1

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Quicksort ist ein Divide-and-Conquer-Verfahren.

8 Diskrete Optimierung

Die Komplexität von Domino

Algorithmen und Datenstrukturen 2

Algorithmen für schwierige Probleme

Das Heiratsproblem. Definition Matching

WS 2009/10. Diskrete Strukturen

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Algorithmen & Komplexität

3 Klassifikation wichtiger Optimierungsprobleme

Der Fünffarbensatz Proseminar: Graphentheorie Sommersemester 2006 Isa Topac, Markus Kunder, Tim Hahn

2. Repräsentationen von Graphen in Computern

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

Programmierpraktikum WS 16/17

f h c 7 a 1 b 1 g 2 2 d

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Wiederholung zu Flüssen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

1. Einleitung wichtige Begriffe

Das Briefträgerproblem

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

Kodieren Von Graphen

Durchschnitt von Matroiden

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Graphen: Datenstrukturen und Algorithmen

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr

Algorithmen und Datenstrukturen (WS 2007/08) 63

Anmerkungen zur Übergangsprüfung

Wir basteln uns ein Marktdiagramm

ADS: Algorithmen und Datenstrukturen 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

Programmfenster LU 3. Lernübersicht. TZ RB LibreCAD. Programm-Menu Befehle direkt anwählen. copy / paste Ansicht. Rückgängig. Auswahl.

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Diskrete Mathematik für Informatiker

Übungsblatt 2 - Lösung

Minimal spannender Baum

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Kapitel 3. Kombinatorische Optimierung. 3.1 Begriffe aus der Graphentheorie

Bipartite Graphen. Beispiele

Scalable Vector Graphics. Ulrich Hoffmann

Das Multi Traveling Salesman Problem

Algorithmische Mathematik

Ausarbeitung über den Satz von Menger und den Satz von König

Drei Anwendungen der Eulerschen Polyederformel

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Structure/Draw: zwischen den Modi wählen (Structure-Modus zum zeichnen von Molekülen, Draw-Modus zum zeichnen von Geräten und Apparaturen)

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Algorithmen zur Bestimmung von guten Graph-Einbettungen für orthogonale Zeichnungen. Thorsten Kerkhof

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Projiziertes Zeichnen

Datenstrukturen. einfach verkettete Liste

Tensegrity Visualization Framework

Verkettete Datenstrukturen: Bäume

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

4. Kreis- und Wegeprobleme Abstände in Graphen

Zweizusammenhang und starker Zusammenhang

1. Übung Graphentheorie WS2016/17

Ein Turnierplan mit fünf Runden

Softwareentwicklungspraktikum Nebenfach

Verteilen von Bällen auf Urnen

Grafikformate Ein kurzer Überblick

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Einführung in die Graphentheorie. Monika König

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Konzepte der Informatik

Effiziente Algorithmen I

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Praktikum Planare Graphen

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Transkript:

von Graphen Fabio Valdés Programmierpraktikum WS 2016/17 Lehrgebiet Datenbanksysteme für neue Anwendungen FernUniversität in Hagen Programmierpraktikum Zeichnen von Graphen 08.10.2016 1 / 28

Gliederung 1 Einleitung Problemstellung Ziele 2 Einlesen des Graphen Dateiformat Korrektheitsprüfung 3 Zeichnen Graphentheoretische Definitionen Initialisierung Planarisierung Orthogonalisierung Kompaktifizierung 4 Anzeige und Manipulation 5 Export 6 Optionale Erweiterungen Programmierpraktikum Zeichnen von Graphen 08.10.2016 2 / 28

Einleitung Problemstellung Problemstellung Mathematik: Graph durch Knotenmenge, Kantenmenge und ggf. Kantengewichte eindeutig definiert graphische Darstellung: nicht eindeutig 1 5 2 4 3 3 3 4 4 5 5 Programmierpraktikum Zeichnen von Graphen 08.10.2016 3 / 28

Einleitung Ziele Ziele in dieser Aufgabe Einlesen eines Graphen aus einer Textdatei Prüfung von Syntax und Semantik Erzeugung einer platzsparenden Gitterdarstellung in vier Schritten Initialisierung Planarisierung Orthogonalisierung Kompaktifizierung weitere Anpassung durch Benutzer Export als SVG-Datei Programmierpraktikum Zeichnen von Graphen 08.10.2016 4 / 28

Einlesen des Graphen Dateiformat Gerichtete Graphen V = {1, 2, 3, 4, 5} E = {1-2, 2-3, 3-4, 4-1, 4--5, 3--5} 1 5 2 4 3 3 3 4 4 5 5 Programmierpraktikum Zeichnen von Graphen 08.10.2016 5 / 28

Einlesen des Graphen Dateiformat Ungerichtete Graphen V = {1, 2, 3, 4, 5} E = {1-2, 2-3, 3-4, 4-1, 4--5, 3--5}u 1 5 2 4 3 3 3 4 4 5 5 Programmierpraktikum Zeichnen von Graphen 08.10.2016 6 / 28

Einlesen des Graphen Dateiformat Kantenbeschriftungen & Knotenkategorien V = {Z:Zentrale, F:Filiale, K1:Kunde, K2:Kunde} E = {Z-F:25, Z-K1:30, Z-K2:35, F-K1:10, F-K2:17, K1-K2:8.5}u Z 25 F 10 30 35 17 K1 8.5 K2 Programmierpraktikum Zeichnen von Graphen 08.10.2016 7 / 28

Einlesen des Graphen Dateiformat Beispiel: ER-Diagramm Programmierpraktikum Zeichnen von Graphen 08.10.2016 8 / 28

Einlesen des Graphen Korrektheitsprüfung Eingabefehler V = {Ü, $, ξ} V = {A, B, C, A} V = {X, Y, Z} E = {X-Y, Y-A} V = {1, 2, 2} E = {1-2, 1-2} Programmierpraktikum Zeichnen von Graphen 08.10.2016 9 / 28

Graphentheoretische Definitionen Teilgraph Ein Graph G = (V,E ) heißt Teilgraph von G = (V,E), falls V V und E E gelten. 3 3 4 5 4 5 G = ({1,2,3,4,5}, G = ({3,4,5}, {(1,2),(1,4),(2,3), {(3,4),(3,5),(4,5)}) (3,4),(3,5),(4,5)}) Programmierpraktikum Zeichnen von Graphen 08.10.2016 10 / 28

Graphentheoretische Definitionen Grad Der Grad grad(v) eines Knoten v V entspricht der Summe der Anzahlen seiner ein- und ausgehenden Kanten, d.h., grad(v) = {(u,v) E} + {(v,w) E}. 3 grad(1) = 2 grad(2) = 2 grad(3) = 4 grad(4) = 4 grad(5) = 4 4 5 Programmierpraktikum Zeichnen von Graphen 08.10.2016 11 / 28

Graphentheoretische Definitionen Planarität Ein Graph G heißt planar, falls er eine Einbettung in die Ebene besitzt, d.h., dass seine Kanten durch stetige, schnittpunktfreie Kurven dargestellt werden können, die sich nur in ihren gemeinsamen Endpunkten schneiden. 1 2 3 4 planarer Graph G 3 4 Einbettung von G Programmierpraktikum Zeichnen von Graphen 08.10.2016 12 / 28

Graphentheoretische Definitionen Planarität Ein Graph G heißt planar, falls er eine Einbettung in die Ebene besitzt, d.h., dass seine Kanten durch stetige, schnittpunktfreie Kurven dargestellt werden können, die sich nur in ihren gemeinsamen Endpunkten schneiden. 3 4 5 nicht-planarer Graph Programmierpraktikum Zeichnen von Graphen 08.10.2016 12 / 28

Graphentheoretische Definitionen Weg & Kreis Ein Weg von v 1 nach v k in G = (V,E) ist eine Folge (v 1,v 2 ),...,(v k 1,v k ) von Kanten, für v 1,...,v k V,(v 1,v 2 ),...,(v k 1,v k ) E. Ein Kreis in G ist ein Weg mit v 1 = v k. Gibt es für alle u,v V höchstens einen Weg von u nach v, heißt G kreisfrei. 3 4 5 Weg von 1 nach 5: (1,2),(2,3),(3,5) Kreis von 1 nach 1: (1,2),(2,3),(3,4),(4, 1) Programmierpraktikum Zeichnen von Graphen 08.10.2016 13 / 28

Graphentheoretische Definitionen Weg & Kreis Ein Weg von v 1 nach v k in G = (V,E) ist eine Folge (v 1,v 2 ),...,(v k 1,v k ) von Kanten, für v 1,...,v k V,(v 1,v 2 ),...,(v k 1,v k ) E. Ein Kreis in G ist ein Weg mit v 1 = v k. Gibt es für alle u,v V höchstens einen Weg von u nach v, heißt G kreisfrei. 3 4 5 kreisfreier Graph Programmierpraktikum Zeichnen von Graphen 08.10.2016 13 / 28

Graphentheoretische Definitionen Zusammenhang & Komponente Ein ungerichteter Graph G = (V,E) heißt zusammenhängend, falls es zu jedem Paar v,w V einen Weg von v nach w gibt. Ein maximaler zusammenhängender Teilgraph K von G heißt Komponente. 3 3 4 5 zusammenhängender Graph 4 5 zwei Komponenten eines nichtzusammenhängenden Graphen Programmierpraktikum Zeichnen von Graphen 08.10.2016 14 / 28

Graphentheoretische Definitionen k-zusammenhang Ein ungerichteter Graph G = (V,E) heißt k-zusammenhängend, falls der Graph (V \ V,E \{(v,w) v V w V }) für alle Mengen V V mit weniger als k Knoten zusammenhängend ist. 5 5 4 3 4 3 2-zusammenhängend zusammenhängend, aber i.a. nicht 2-zusammenhängend 2 Programmierpraktikum Zeichnen von Graphen 08.10.2016 15 / 28

Graphentheoretische Definitionen k-zusammenhang Ein ungerichteter Graph G = (V,E) heißt k-zusammenhängend, falls der Graph (V \ V,E \{(v,w) v V w V }) für alle Mengen V V mit weniger als k Knoten zusammenhängend ist. 5 5 4 3 4 3 2-zusammenhängend 1 zusammenhängend, aber i.a. nicht 2-zusammenhängend Programmierpraktikum Zeichnen von Graphen 08.10.2016 15 / 28

Graphentheoretische Definitionen k-zusammenhang Ein ungerichteter Graph G = (V,E) heißt k-zusammenhängend, falls der Graph (V \ V,E \{(v,w) v V w V }) für alle Mengen V V mit weniger als k Knoten zusammenhängend ist. 5 5 4 3 4 2-zusammenhängend zusammenhängend, aber i.a. nicht 2-zusammenhängend Programmierpraktikum Zeichnen von Graphen 08.10.2016 15 / 28

Graphentheoretische Definitionen k-zusammenhang Ein ungerichteter Graph G = (V,E) heißt k-zusammenhängend, falls der Graph (V \ V,E \{(v,w) v V w V }) für alle Mengen V V mit weniger als k Knoten zusammenhängend ist. 5 5 4 3 3 2-zusammenhängend zusammenhängend, aber i.a. nicht 2-zusammenhängend Programmierpraktikum Zeichnen von Graphen 08.10.2016 15 / 28

Graphentheoretische Definitionen k-zusammenhang Ein ungerichteter Graph G = (V,E) heißt k-zusammenhängend, falls der Graph (V \ V,E \{(v,w) v V w V }) für alle Mengen V V mit weniger als k Knoten zusammenhängend ist. 5 4 3 4 3 2-zusammenhängend zusammenhängend, aber i.a. nicht 2-zusammenhängend Programmierpraktikum Zeichnen von Graphen 08.10.2016 15 / 28

Graphentheoretische Definitionen Dualer Graph Zu einem planaren Graphen G ist der duale Graph G wie folgt definiert: Fläche in G Knoten in G Kante in G Kante in G 1 3 3 2 4 5 Programmierpraktikum Zeichnen von Graphen 08.10.2016 16 / 28

Graphentheoretische Definitionen Dualer Graph Zu einem planaren Graphen G ist der duale Graph G wie folgt definiert: Fläche in G Knoten in G Kante in G Kante in G Programmierpraktikum Zeichnen von Graphen 08.10.2016 16 / 28

Initialisierung Initialisierung Theorie: initiale Positionen irrelevant quadratische Grundstruktur von links oben nach rechts unten zuerst angegebene Knoten weiter links bzw. weiter oben Programmierpraktikum Zeichnen von Graphen 08.10.2016 17 / 28

Zeichnen Planarisierung Planarisierung (a) ursprünglicher Graph G = (V, E ) Programmierpraktikum Zeichnen von Graphen 08.10.2016 18 / 28

Zeichnen Planarisierung Planarisierung (b) Aufteilung der Kanten in planare und nichtplanare (gestrichelt) Programmierpraktikum Zeichnen von Graphen 08.10.2016 18 / 28

Zeichnen Planarisierung Planarisierung (c) nur noch planare Kanten; dualer Graph (grau) Programmierpraktikum Zeichnen von Graphen 08.10.2016 18 / 28

Zeichnen Planarisierung Planarisierung (d) Hinzufügen der restlichen Kanten; kürzester Weg im dualen Graphen für nichtplanare Kante entspricht minimaler Anzahl von Kantenkreuzungen Programmierpraktikum Zeichnen von Graphen 08.10.2016 18 / 28

Zeichnen Planarisierung Planarisierung (e) neue Kante, neuer Knoten für Kantenkreuzung; Aktualisierung des dualen Graphen Programmierpraktikum Zeichnen von Graphen 08.10.2016 18 / 28

Zeichnen Planarisierung Planarisierung (f) vollständig planarisierter Graph Programmierpraktikum Zeichnen von Graphen 08.10.2016 18 / 28

Orthogonalisierung Übersicht für jede Komponente des Graphen: Sichtbarkeitsdarstellung orthogonale Darstellung durch lokale Expansion Begradigung der Kanten Programmierpraktikum Zeichnen von Graphen 08.10.2016 19 / 28

Orthogonalisierung Sichtbarkeitsdarstellung Knoten horizontale Segmente Kanten vertikale Segmente keine Schnitte von Segmenten Programmierpraktikum Zeichnen von Graphen 08.10.2016 20 / 28

Orthogonalisierung Sichtbarkeitsdarstellung Knoten horizontale Segmente Kanten vertikale Segmente keine Schnitte von Segmenten Programmierpraktikum Zeichnen von Graphen 08.10.2016 20 / 28

Orthogonalisierung Lokale Expansion Programmierpraktikum Zeichnen von Graphen 08.10.2016 21 / 28

Orthogonalisierung Lokale Expansion Programmierpraktikum Zeichnen von Graphen 08.10.2016 21 / 28

Orthogonalisierung Begradigung der Kanten Programmierpraktikum Zeichnen von Graphen 08.10.2016 22 / 28

Kompaktifizierung Kompaktifizierung Programmierpraktikum Zeichnen von Graphen 08.10.2016 23 / 28

Anzeige und Manipulation Anzeige und Manipulation Graph im Hauptfenster Zoomen (Vergrößern und Verkleinern) Scrollen (Balken einblenden, wenn nötig) Markieren und Verschieben von Knoten und Kanten mögliche Darstellungen für Knotenkategorien: Kreis Rechteck Raute Ellipse jeweils einfach oder doppelt, oder ohne Umrandung Programmierpraktikum Zeichnen von Graphen 08.10.2016 24 / 28

Export Export Abspeichern des Graphen als SVG-Datei (Scalable Vector Graphics) Textdatei Linien Kreise Text Programmierpraktikum Zeichnen von Graphen 08.10.2016 25 / 28

Optionale Erweiterungen Optionale Erweiterungen Algorithmen komplexere Algorithmen zur Planarisierung und Kompaktifizierung weitere Algorithmen zur Zeichnung von Graphen Auswahl der Verfahrens durch Benutzer Anzeige Ergebnisse der einzelnen Transformationsschritte Auswahl von Farben, Schrifttypen, -größen, -farben für Knotenkategorien und Kanten(beschriftungen) Druckfunktion Ausgabe auf Papier PDF-Ausgabe Export EPS-Format Programmierpraktikum Zeichnen von Graphen 08.10.2016 26 / 28

Optionale Erweiterungen Danke für Ihre Aufmerksamkeit. Programmierpraktikum Zeichnen von Graphen 08.10.2016 27 / 28

Optionale Erweiterungen Quellenangabe http://www.leda-tutorial.org/de/inoffiziell/ch05s03s07.html http://www.rhinodidactics.de/artikel/latex-2006-09-01.html Di Battista, G., Eades, P., Tamassia, R. und Tollis, I.G. Graph Drawing: Algorithms for the Visualization of Graphs. Prentice-Hall, 1999 Tamassia, R. und Tollis, I.G. Planar grid embedding in linear time. IEEE Transactions on Circuits and Systems, 36(9):1230-1234, 1989 Programmierpraktikum Zeichnen von Graphen 08.10.2016 28 / 28