Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Rolf Bieber Geändert vor über 7 Jahren
1
Referenten: Moritz S., Ina B. und Sebastian R.
Graphentheorie Referenten: Moritz S., Ina B. und Sebastian R. Layout: Hannah S., Mark I. 1 1 1
2
Gliederung Einführung - Problemstellung Graphen allgemein
Eigenschaften von Graphen Isomorphe Graphen Euler Graph Hamiltonscher Graph Lösung der Problemstellung Definition Algorithmus Beispiel 2 2 2
3
Einführung Problemstellungen: Routenplanung
Chinesisches Postbotenproblem Königsberger Brückenproblem Bahnverbindungen 3 3 3
4
Graphen allgemein Ecke Kante A B C D E 1 B 2 A 2 E 2 C 2 D 2
1 B 2 A 2 E 2 C 2 Graph = Menge von Ecken und Kanten Jede Kante verbindet 2 Ecken Grad einer Ecke = Anzahl Kanten, die von ihr aus gehen 2 Graphen sind isomorph (gleich), wenn ihre Adjazentmatrizen gleich sind (wenn man den einen durch Umzeichnen des Anderen erhalten kann) -> Adjazenzmatrix erklären D 2 4 4 4
5
Isomorphe Graphen B B‘ C D‘ Symbol für „ist isomorph zu“ A D A‘ C‘
Modulfest 5 5
6
Isomorphe Graphen ? = u v w x y z 1 l m n p q r 1 6 6 6
7
Königsberger Brückenproblem 3 5 3 3 4 3 6 5 4 4
Abbildung: Königsberg im 18. Jhdt Arme des Flusses Pregel umfließen Insel (Kneipenhof) 7 Brücken über Fluss Gibt es einen Weg, der jede Brücke genau einmal benutzt? Umformen zu Graph nicht möglich aber möglich, wenn +zusätzliche Brücke (egal, welche) Rückkehr zu Ausgangspunkt möglich, wenn nochmal + zusätzliche Brücke, sodass jede Ecke geraden Grad -> Mausklick 6 4 4 7 7 7
8
Eulergraph Startpunkt Endpunkt Eulergraph = Graph mit Eulertour
- jede Kante des Graphen genau 1 Mal - Anfang = Ende des Wegs Haus des Nikolaus nicht eulersch: nicht Grad jeder Ecke gerade (notwendig weil: wenn Anfang u. Ende gleich, dann „in jede Ecke rein und wieder raus“) deshalb: Erweiterung Startpunkt Endpunkt 8 8 8
9
Hamiltonscher Graph Hamiltonscher Graph = Graph mit Hamiltonschem Kreis Hamiltonscher Kreis = geschlossener Weg, jede Ecke 1mal 9 9 9
10
Definition Algorithmus:
Algorithmen Definition Algorithmus: Ein Algorithmus ist eine formale Handlungsvorschrift zur Lösung eines Problems (oder einer bestimmten Art von Problemen) in endlich vielen Schritten. Definition: Algorithmus = formale Handlungsvorschrift zur Lösung eines Problems (oder einer bestimmten Art von Problemen) in endlich vielen Schritten Algorithmen steuern in Form von Computerprogrammen Computer und andere Maschinen 10 10 10
11
Algorithmen Wie kommt man von einem Graphenproblem zum Algorithmus?
Quelltextbeispiel //START private Graph graph; private VertexQueue queue = new VertexQueue(); private Hashtable<Vertex, Vertex> vorgaenger; @Override protected void init() { this.graph = this.getGraph(); //(0) } protected void runAlgorithm() { Vertex startVertex = this.getStartVertex(this.graph); //(1) Vertex endVertex = this.getFinishVertex(this.graph); this.queue = new VertexQueue(); //(2) this.queue.add(startVertex); this.vorgaenger = new Hashtable<Vertex,Vertex>(); boolean endpunktGefunden = false; while (!queue.isEmpty() || endpunktGefunden) { //(3) Vertex v = queue.remove(); //(4) Iterator<Edge> kantenIterator = this.graph.outgoing(v).iterator(); //(5) while (kantenIterator.hasNext()) { Edge e = kantenIterator.next(); Vertex x = e.otherVertex(v); if (!this.vorgaenger.containsKey(x)) { //(6) this.vorgaenger.put(x, v); this.queue.add(x); if (x.equals(endVertex)) { //(7) endpunktGefunden = true; break; Vertex v = endVertex; //(8) while (!v.equals(startVertex)) { Vertex parent = this.vorgaenger.get(v); this.graph.findEdge(parent, v).setColor(Color.BLUE); v = parent; //END Wie kommt man von einem Graphenproblem zum Algorithmus? - Vereinfachen auf Instruktionen (Computer ist nicht denkfähig!) - Schreiben in Programmiersprache Lösungsansatz Kürzen auf Instruktionen (Computer nicht denkfähig, genau sagen, was er machen soll) Schreiben in Computersprache Algorithmus in Programmiersprache = Quelltext -> Quellextbeispiel = Breitensuche-Algorithmus (von Projektteilnehmer geschrieben) 11 11 11
12
Straßenbahn Wie kommt man am schnellsten von einer Station (Knoten A) zu einer Zielstation (Knoten H) ? A B C G Anwendungsbeispiel Algorithmus: Straßenbahn fahren links: Straßenbahnnetz rechts: Umsetzung als Graph A=Anfangs- H=Endknoten Ungewichteter Graph -> von einer zur anderen Station immer gleich lang fahren Lösen mit sog. Breitensuche-Algorithmus wenn kantengewichte vorgegeben werden (-> Haltestellen sind unterschiedlich weit voneinander entfernt): statt der Breitensuche = uniforme Kostensuche E D F L K H Modulfest 12 12
13
Algorithmusbeispiel:
Breitensuche Breitensuche = Verfahren zum Durchsuchen bzw Durchlaufen der Knoten eines Graphen ausgehend vom Startpunkt in die Breite (zuerst Knoten, die 1Kante von Startknoten entfernt sind, dann 2Kanten usw) Anwendung z.B. Zum finden kürzester Wege zwischen 2 Knoten (ungewichteter Graph) (-> unser Fall), finden minimaler aufspannender Baum (= kreisfreier Teilgraph von Graph, der alle Knoten enthält) Funktionsweise: 1. Startknoten bestimmen und in Warteschlange abspeichern 2.Knoten an Beginn der Warteschlange nehmen und markieren - wenn gesuchtes Element gefunden: Suche abbrechen; Weg markieren - andernfalls alle bisher unmarkierten Nachbarn dieses Knotens, die sich noch nicht in der Warteschlange befinden, ans Ende der Warteschlange anhängen 3.Schritt 2. wiederholen 4. Wenn die Warteschlange leer ist, wurde jeder Knoten bereits untersucht. Suche beenden 13 13 13
14
Danksagung Wir bedanken uns herzlich bei unseren Projektleitern Frau Körkel und Herr Bühner, sowie bei Prof. Dr. Ulrich Kortenkamp und Dr. Andreas Fest von der PH Karlsruhe. 14 14
15
Projektwochenende 15 15 15
16
Projektwochenende 16 16 16
17
Vielen Dank für Ihre Aufmerksamkeit!
17 17 17
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.