Adiazenzmatrix des Graphen

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Advertisements

Freie Universität Berlin Institut für Informatik
Berechne den optimalen (kürzesten, schnellsten) Weg
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Single-Source Shortest Paths: SSSP
Minimum Spanning Tree: MST
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
ADS Vorlesung Prof. Dr. W. Conen, FH Gelsenkirchen
Manfred Thaller, Universität zu Köln Köln 22. Januar 2009
Einführung in die Informationsverarbeitung Teil Thaller Stunde VI: Wege und warum man sie geht Graphen. Manfred Thaller, Universität zu Köln Köln.
Programmieren 2 Future Car Projekt Praktikum 6
Programmieren 2 Future Car Projekt Praktikum 6
Baumstrukturen Richard Göbel.
Schleifen-beobachtung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 – Graphen)
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26 - Graphen) Prof. Th. Ottmann.
Bestimmung des Next-Arrays im KMP-Algorithmus
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Graphentheorie Gibt es in Königsberg einen Spaziergang, bei dem man jede der sieben Pregelbrücken genau einmal überquert? Prof. Dr. Dörte Haftendorn, Leuphana.
Minimum Spanning Tree: MST
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Vortrag über Graphen Von Jörg Hendricks.
Effiziente Algorithmen
Geometrische Netze Erstellung.
Chromatische Zahl.
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Animation von Dijkstra
Algorithmus von Dijkstra. 0 Algorithmus von Dijkstra s Priority Queue PQ: Knoten, Priorität Weglänge Kandidatenmenge.
Animation von Dijkstra
Institut für Theoretische Informatik
Jan Hinzmann – – GIS Praxis II – Slide 1/10 Der Algorithmus von Dijkstra (Berechnung kürzester Wege in bewerteten Graphen) GIS Praxis II, Jan Hinzmann,
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Manfred Thaller, Universität zu Köln Köln 30. Januar 2014
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Analyse der Laufzeit von Algorithmen
Manfred Thaller, Universität zu Köln Köln 11. Dezemberr 2014
Eine kurze Geschichte der Graphentheorie
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Graph_Algorithmen Gewichtete Graphen - Minimum Spanning Tree und shortest path aus Implementierungssicht Prof. Dr. Reiner Güttler.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Graph_Algorithmen Einführung Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Graphentheorie Gibt es in Königsberg einen Spaziergang, bei dem man jede der sieben Pregelbrücken genau einmal überquert? Prof. Dr. Dörte Haftendorn, Leuphana.
Graphen.
Philip Schill Erik Kurrat Simon Walther
Das Problem des Handlungsreisenden
Referenten: Moritz S., Ina B. und Sebastian R.
Algorithmen und Datenstrukturen
Projekt Graphentheorie Eulerpfad
Kniffelergebnisse.
Christian Scheideler WS 2008
Wiederholung Breitensuche BFS mit Startknoten s Tiefensuche
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
 Präsentation transkript:

Adiazenzmatrix des Graphen 28.06.10 Graphentheorie Modulphase 08.03. – 10.07.2010, Kurse 05, 06, 07 Für das Poster verantwortlich: Julia Klein, Janek Wettstein, Mirjam Schäfer, Sebastian Baur, Silvie Müller Was haben wir gemacht? Einführung Anfangs lernten wir Graphen kennen, bewiesen einfache Eigenschaften von Graphen (z.B. ist ein Graph eulerisch, wenn der Grad aller Ecken gerade ist), und beschäftigten uns mit einfacheren Aufgaben, wie das Prüfen zweier Graphen auf Isomorphie (bedeutet Gleichheit). Graphen im Alltag Vom Problem zum Algorithmus Wir behandelten verschiedene Problemstellungen, z.B. den kürzesten Weg von einer U-Bahn-Station zu einer anderen zu finden. Für dessen Bestimmung gab es verschiedene Lösungsansätze. Zuerst setzten wir das Netz in einen Graphen um und versuchten Strategien für das Finden von kürzesten Wegen zu bestimmen, was zu in Worten gefassten Algorithmen führte. Um intensiv daran arbeiten zu können verbrachten wir ein Wochen- ende im Landschulheim in Unterhöll- grund. Dabei kam auch der Spaß nicht zu kurz. Computeralgorithmen Unser eigentliches Ziel war allerdings, Algorithmen für einen Computer zu programmieren. Dies wurde mit Hilfe von „Cinderella“, einem dynamischen Geometrieprogramm, während zwei Treffen mit dessen Entwicklern Prof. Kortenkamp und Dr. Fest an der PH Karlsruhe umgesetzt. Dabei wurden neben einfachen Algorithmen, wie z.B. der Tiefensuche, auch kompliziertere programmiert, beispielsweise ein Algorithmus zum Bestimmen eines Minimal-Spanning-Trees. Ein Breitensuchprogramm Was ist ein Graph? - Menge von Ecken und Kanten Jede Kante verbindet zwei Ecken. Der Grad einer Ecke gibt an, wie viele Kanten von einer Ecke ausgehen. Eine Schleife erhöht den Grad um zwei. - Unbewerteter Graph: alle Kantenwerte gleich Bewerteter Graph: festgelegte Kantenlängen (Gewichte) Adjazenzmatrix: Tabelle, in der man sieht, welche Ecken miteinander ver- bunden sind. Hat man den Verdacht, dass zwei Graphen isomorph (gleich) sind, kann man dies mithilfe der Adjazenzmatrix herausfinden. Die Breitensuche bestimmt die Länge des kürzesten Wegs zwischen zwei Ecken in einem unbewerten Graph. Isolierte Ecke private Graph graph; private VertexQueue queue = new VertexQueue(); private Hashtable<Vertex, Vertex> vorgaenger; @Override protected void init() { this.graph = this.getGraph(); } protected void runAlgorithm() { Vertex startVertex = this.getStartVertex(this.graph); Vertex endVertex = this.getFinishVertex(this.graph); this.queue = new VertexQueue(); this.queue.add(startVertex); this.vorgaenger = new Hashtable<Vertex,Vertex>(); boolean endpunktGefunden = false; while (!queue.isEmpty() || endpunktGefunden) { Vertex v = queue.remove(); Iterator<Edge> kantenIterator = this.graph.outgoing(v).iterator(); while (kantenIterator.hasNext()) { Edge e = kantenIterator.next(); Vertex x = e.otherVertex(v); if (!this.vorgaenger.containsKey(x)) { this.vorgaenger.put(x, v); this.queue.add(x); if (x.equals(endVertex)) { endpunktGefunden = true; break; Vertex v = endVertex; while (!v.equals(startVertex)) { Vertex parent = this.vorgaenger.get(v); this.graph.findEdge(parent, v). setColor(Color.BLUE); v = parent; Initialisiere den Graphen Bestimme den Start- und Endpunkt Lege eine Queue an und füge den Startpunkt hinzu, erstelle eine Hashtable (weist einem Schlüsselwert einen anderen Wert zu) Wiederhole, solange der Endpunkt nicht gefunden wurde oder die Queue leer ist. Nimm den ersten Punkt aus der Queue. Iteriere durch alle ausgehenden Kanten und bestimme anderen Knoten (der nicht v ist). Prüfe, ob für diesen Knoten schon ein Vorgänger eingetragen ist (d.h. ob er schon geprüft wurde), falls nicht, Knoten v als Vorgänger von Knoten x festlegen und Knoten x zur Queue hinzufügen Prüfe, ob Knoten x der Endpunkt ist Verfolge Weg zurück, indem man sich vom Endpunkt aus die Vorgänger bestimmen lässt, bis man beim Startpunkt landet. Ecke Kante Schleife 2 4 3 Wir sehen in unserer Umgebung übrigens auch jeden Tag Graphen: jedes Straßen-bahnnetz ist ein Graph, ebenso wie ver-legte Kabel. Dabei ist jeder Stecker oder jedes Gerät eine Ecke und jedes Kabel eine zwei Ecken verbindende Kante. Adiazenzmatrix des Graphen Spezielle Graphen: Hamiltonscher Graph: Ein geschlossener Weg, der jede Ecke genau einmal enthält, heißt hamiltonscher Kreis, der nur in Hamiltonschen Graphen möglich ist. Eulertour: Eine Eulertour ist ein Weg, der jede Kante des Graphen genau einmal enthält und bei dem Anfangs- und End- punkt übereinstimmen. Tree: Ein Baum ist ein Graph, dessen Ecken mit möglichst wenig Kanten verbunden sind und in dem es keine Kreise gibt. Minimal Spanning Tree: Der Minimal Spanning Tree ist ein spezieller Tree in bewerteten Graphen. In ihm sind alle Ecken mit möglichst wenigen Kanten verbunden, die mit einem möglichst kleinen Gesamtgewicht bewertet sind. Nicht hamiltonisch hamiltonisch 1