Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vortrag über Graphen Von Jörg Hendricks.

Ähnliche Präsentationen


Präsentation zum Thema: "Vortrag über Graphen Von Jörg Hendricks."—  Präsentation transkript:

1 Vortrag über Graphen Von Jörg Hendricks

2 Inhalt kurze Einführung Begriffserklärung Darstellung im Computer
Algorithmen für Graphen

3 Einleitung Was sind Graphen? Knoten Kanten
Werkzeug zur anschaulichen Darstellung Werkzeug zur Problemlösung

4 Begriffserklärung Allgemeines Schlinge Kantenzug / Weg
erreichbarer Knoten Teilgraph Zyklus Valenz Eigenschaften gerichtet / ungerichtet gewichtet licht, dicht, vollständig schlicht zyklisch

5 Begriffserklärung (Fortsetzung)
Sonderformen Liste Baum Wald Spannbaum Netz, Netzwerk, Netzplan

6 Darstellung im Computer
F E D B C A G I J H Bitte Skript zur Hand nehmen! Danke!

7 Inzidenzmatrix

8 Inzidenzliste

9 Adjazenzmatrix

10 Adjazenzliste

11 Algorithmen für Graphen
und deren Anwendung Die Algorithmen werden anhand von Beispielen vorgestellt. (Um den Ablauf verfolgen zu können bitte das Skript zur Hand nehmen) Danke!

12 Durchsuchen von Graphen
Grundgedanke Wegsuche in einem Graphen Beispiel: Labyrinth Vom Eingang  Ausgang gibt es diesen Weg überhaupt? Algorithmen: Tiefensuche Breitensuche

13 Tiefensuche (Verbindung vorhanden?)
Start Ende 5 4 6 7 3 2 1 Wir werden uns den Algorithmus nun am obenstehenden Graphen verdeutlichen. Weg von 5 (Start) zu 7 (Ende).

14 Teil 1 Zunächst wird die 5 als Startknoten markiert und auf den Stack gelegt. Man nimmt die 5 vom Stack und trägt sie bei den erreichbaren Knoten als Vorgänger ein. 1 5 Start 4 Die Markierung eines besuchten Knotens ist selbstverständlich und wird daher nicht extra erwähnt.

15 Teil 2 Als nächstes wird die 4 vom Stack genommen
Da die 6 von 4 aus erreichbar ist, wird ihr die 4 als Vorgänger eingetragen und die 6 auf den Stack gelegt 5 Start 1 4 6

16 Teil 3 Nun wird die 6 vom Stack genommen und auf erreichbare Knoten untersucht Es gibt aber keine, daher wird das nächste Element vom Stack genommen 4 5 Start 1 6

17 Teil 4 Da die 6 keinen Nachfolger hatte und wir den nächsten Knoten vom Stack nehmen sollten, ist nun die 1 an der Reihe Wir nehmen die erreichbaren Nachfolger und legen sie auf den Stack 1 2 4 5 Start 6

18 Teil 5 Wir nehmen die 2 vom Stack und testen die Nachfolger
Hierbei finden wir die 3 und legen sie auf den Stack Da die 2 eine Schleife hat, finden wir die 2 zwar auch als Nachfolger, aber da sie schon einmal besucht wurde, wird sie nicht auf den Stack gelegt 1 4 5 Start 6 2 3

19 Teil 6 Von 3 aus finden wir die 4 und die 7, die 4 wurde bereits besucht und ist daher uninteressant Die 7 wandert auf den Stack 2 1 4 5 Start 6 3 7 Ende

20 Teil 7 Wenn wir nun von der 7 aus weitere Knoten suchen wollen, gibt es zwei Dinge: 7 ist der Endpunkt 7 hat keine Nachfolger mehr ( zumindest in diesem Beispiel ) Der Tiefensuch-Algorithmus ist beendet 3 2 1 4 5 Start 6 7 Ende Der gefundene Weg lautet: 5 (Start) 1 2 3 7 (Ende) Nun wollen wir uns noch die zugehörige Tabelle ansehen.

21 Teil 8 Schritte Vorg [1] Vorg [2] Vorg [3] Vorg [4] Vorg [5] Vorg [6]
Stack 1. - S (5) 2. 5 - (4) (1) 3. 5 - 4 (6) (1) 4. 5 - 4 (1) 5. 5 1 - 4 (2) 6. 5 1 2 - 4 (3) 7. 5 1 2 - 4 3 (7)

22 Breitensuche (topologisches Sortieren)
1 2 3 4 5 6 7 Wir werden uns den Algorithmus nun am obenstehenden Graphen verdeutlichen.

23 Teil 1 Zunächst wird das Feld der Eingangsgrade initialisiert und die Knoten mit dem Eingangsgrad 0 werden in die Queue eingefügt. 1 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1

24 Teil 2 Der Knoten 1 wird aus der Queue genommen und erhält die Nummer 1. Nun werden seine Nachbarknoten untersucht und diejenigen mit Eingangsgrad 1 in die Queue eingereiht. Somit wandert die 4 in die Queue. Die 2 hat noch Vorgänger und wird dadurch nicht eingereiht. Aber ihr Eingangsgrad wird reduziert. 1 1 2 4 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - 1. 1 - Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1 1. (4) 1 2

25 Teil 3 Die 4 wird aus der Queue entnommen und erhält die nächste Nummer. Die 5 wird als Nachbarknoten mit Eingangsgrad 1 auf E-Grad 0 gesetzt und in die Schlange eingereiht. 1 2 4 2 5 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - 1. 1 - 2. 2 1 - Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1 1. (4) 1 2 2. (5) 1 2

26 Teil 4 Nachdem wir der 5 die Nummer 3 zugewiesen haben, untersuchen wir auch ihre Nachbarn und erhalten 2 und 6 jeweils mit E-Grad 1. Somit werden beide der Reihe nach in die Queue gesetzt. 5 2 1 4 6 3 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - 2. 2 1 1. 3. 3 1 - 2 Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1 2. (5) 1. (4) 3. (2/6) 1 2

27 Teil 5 Nun wird die nächste Zahl (2) aus der Queue genommen und bekommt die folgende Nummer. Wir untersuchen ihre Nachfolger und finden die 3, die nun auch in die Queue gereiht wird. 5 2 1 4 6 3 3 4 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - 2. 2 1 1. 3. 3 4. 4 1 - 2 3 Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1 2. (5) 1. (4) 3. (2/6) 4. (6/3) 2

28 Teil 6 Die nächste Zahl in der Queue ist die 6. Also bekommt sie die nächste Nummer und wir betrachten Ihre Nachfolger. Der Nachfolger ist die 7, sie hat aber den E-Grad 2 und wird daher nur um 1 reduziert, kommt aber nicht in die Queue. 4 5 2 1 6 3 7 5 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - 2. 2 1 1. 3. 3 4. 4 5. 5 1 4 - 2 3 Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1 2. (5) 1. (4) 3. (2/6) 4. (6/3) 5. (3) 1

29 Teil 7 Die nächste Zahl ist die 3. Wir nehmen sie aus der Queue und weisen ihr die nächste Nummer zu. Wir überprüfen die Nachfolger und stoßen auf die 7. Diese wandert nun, da sie den E-Grad 1 hat in die Queue. 5 4 2 1 6 3 7 6 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - 2. 2 1 1. 3. 3 4. 4 5. 5 6. 6 1 4 2 3 5 - Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1 2. (5) 1. (4) 3. (2/6) 4. (6/3) 5. (3) 6. (7)

30 Teil 8 Als letzte Zahl nehmen wir die 7 aus der Queue und geben ihr die Nummer 7. Sie hat keine Nachfolger mehr und somit kann der Algorithmus beendet werden. 5 4 2 1 6 3 7 7 Schritte Nummer Nr.[1] [2] [3] [4] [5] [6] [7] 0. - 2. 2 1 1. 3. 3 4. 4 5. 5 6. 6 7. 7 1 4 6 2 3 5 Schritte Queue E-Grad[1] [2] [3] [4] [5] [6] [7] 0. (1) 2 1 2. (5) 1. (4) 3. (2/6) 4. (6/3) 5. (3) 6. (7) 7. (-)

31 Teil 9 :Nachfolgend erhalten wir die folgende Numerierung der Knoten

32 Minimaler Weg Grundgedanke Algorithmen Dijkstra Floyd
Kürzester Weg durch den Graphen Beispiel: Fahrt von Hamburg nach München Welcher Weg ist: der kürzeste ? der schnellste ? Algorithmen Dijkstra Floyd

33 Prioritätsgesteuerte Breitensuche
(Algorithmus nach Dijkstra)

34 Teil 1 a b C f g d e 4 1 2 3 An diesem Beispiel wollen wir uns den Algorithmus nach Dijkstra verdeutlichen Wir suchen „kürzesten“ oder „kostengünstigsten“ Weg von a nach g

35 Teil 2 Schritt Kosten[a] [b] [c] [d] [e] [f] [g] 0.  1.  2.  3. 1 
4 1 2 3 Schritt Kosten[a] [b] [c] [d] [e] [f] [g] 0. 1. 2. 3. 1 4. 1 3 5. 1 3 4 6. 1 3 4 7. 1 3 4 5 Schritt Vorg [a] [b] [c] [d] [e] [f] [g] P-Queue 0. - (0,a) 1. - a (0,b)(4,f) 2. - a b (1,c)(4,f)(4,d) 3. - a b c (3,d)(4,f) 4. - a b c d (4,f)(4,e) 5. - a b c d f (4,e)(7,g) 6. - a b c d e (5,g) 7. - a b c d e (-,-)

36 Teil 3 Der kürzeste Weg, den man in diesem Graphen nehmen kann, hat die „Länge“ 5 und sieht wie folgt aus: a b C f g d e 4 1 2 3 a b c d e g Knoten 1 2  = 5 Kosten

37 Kürzester Weg für alle Knoten
(Algorithmus nach Floyd)

38 Teil 1 a b C f g d e 4 1 2 3

39 Teil 2 a b C f g d e 4 1 2 3

40 Teil 3 a b C f g d e 4 1 2 3

41 Teil 4 a b C f g d e 4 1 2 3

42 Teil 5 a b C f g d e 4 1 2 3

43 Teil 6 a b C f g d e 4 1 2 3

44 Vielen Dank für Ihr Interesse
ENDE Vielen Dank für Ihr Interesse Auf Wiedersehen sagt Ihr Jörg Hendricks

45 Tiefensuche Start Ende 5 4 6 7 3 2 1

46 Breitensuche 1 2 3 4 5 6 7

47 Minimaler Weg a b C f g d e 4 1 2 3


Herunterladen ppt "Vortrag über Graphen Von Jörg Hendricks."

Ähnliche Präsentationen


Google-Anzeigen