Graphenalgorithmen I

Ähnliche Dokumente
Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen Graphen - Einführung

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Customization (Zuschneiden)

8 Diskrete Optimierung

Algorithmen und Datenstrukturen 2

1 topologisches Sortieren

Breiten- und Tiefensuche in Graphen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

Graphen: Datenstrukturen und Algorithmen

Routing Algorithmen. Begriffe, Definitionen

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

Das Briefträgerproblem

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Algorithmen und Datenstrukturen (WS 2007/08) 63

10 Graphenalgorithmen in Java

16. All Pairs Shortest Path (ASPS)

Anmerkungen zur Übergangsprüfung

Guten Morgen und Willkommen zur Saalübung!

8 Graphrepräsentation

2. Repräsentationen von Graphen in Computern

Algorithmen und Datenstrukturen 2-2. Seminar -

Konzepte der Informatik

11.1 Grundlagen - Denitionen

Datenstrukturen. Mariano Zelke. Sommersemester 2012

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

9.4.1 Wegsuche von a nach z

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Einführung in Heuristische Suche

Datenstrukturen & Algorithmen

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Flüsse, Schnitte, bipartite Graphen

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Vorlesung 4 BETWEENNESS CENTRALITY

Grundlagen der Künstlichen Intelligenz

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

4.7 Der Algorithmus von Dinic für maximalen Fluss

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Effiziente Algorithmen I

Randomisierte Algorithmen

Erzeugung zufälliger Graphen und Bayes-Netze

Kapitel MK:IV. IV. Modellieren mit Constraints

Lehrerbildungszentrum Informatik an der Universität Göttingen

Praktikum Planare Graphen

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

3. Musterlösung. Problem 1: Boruvka MST

4 Greedy-Algorithmen (gierige Algorithmen)

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

2 Lösungen "Peptide de novo Sequencing"

Kapitel 6: Graphalgorithmen Gliederung

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

Mathe & Informatik II

Übungen zu Programmierung I - Blatt 8

Algorithmen und Datenstrukturen

Wiederholung zu Flüssen

Uninformierte Suche in Java Informierte Suchverfahren

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume

Vorlesung 3 MINIMALE SPANNBÄUME

Grundwissen Informatik Q11/12 Fragenkatalog

Rechnerische Komplexität

Algorithmische Mathematik

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

Grundlagen der Programmierung 2. Bäume

Algorithmen und Datenstrukturen Suchbaum

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Algorithmische Methoden zur Netzwerkanalyse

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

Algorithmen und Datenstrukturen Kapitel 10

Algorithmische Methoden zur Netzwerkanalyse

Überblick. Einführung Graphentheorie

Algorithmus zum Graphen-Matching. und. Anwendung zur inhaltsbasierten Bildersuche

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

SS / 12

Algorithmentheorie Maximale Flüsse

Methoden der Netzwerkanalyse

Algorithmische Methoden der Netzwerkanalyse

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

Scheduling-Theorie. Mathematische Modelle und Methoden für deterministische Scheduling-Probleme. LiSA - A Library of Scheduling Algorithms

Vorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN

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

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

WS 2009/10. Diskrete Strukturen

Datenbanken und Informationssysteme

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

2. Lernen von Entscheidungsbäumen

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen zur Berechnung von Matchings

Klassische Themen der Computerwissenschaft Constraint Programming: Exercises. Gruppe: 100. Inhaltsverzeichnis

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Transkript:

Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33

Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket im Internet am schnellsten von A nach B? Herangehensweise Verkehrs- bzw. Computernetz als Graph darstellen, kürzesten Weg suchen Graphenalgorithmen I 2/33

Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket im Internet am schnellsten von A nach B? Herangehensweise Verkehrs- bzw. Computernetz als Graph darstellen, kürzesten Weg suchen Graphenalgorithmen I 2/33

Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket im Internet am schnellsten von A nach B? Herangehensweise Verkehrs- bzw. Computernetz als Graph darstellen, kürzesten Weg suchen Graphenalgorithmen I 2/33

Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 3/33

Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 4/33

Graphen Definition Ein Graph G ist ein 2-Tupel (V, E) mit V Menge der Knoten (en. vertex, pl. vertices) E Menge der Kanten (en. edge, pl. edges) Beispiel 2 C B 2 4 A V = {A, B, C} E = { (A, B, 4), (A, C, 2), (C, B, 2) } Graphenalgorithmen I 5/33

Graphen Definition Ein Graph G ist ein 2-Tupel (V, E) mit V Menge der Knoten (en. vertex, pl. vertices) E Menge der Kanten (en. edge, pl. edges) Beispiel 2 C B 2 4 A V = {A, B, C} E = { (A, B, 4), (A, C, 2), (C, B, 2) } Graphenalgorithmen I 5/33

Kanten Kanten Kanten gibt es in verschiedenen Ausführungen: gerichtet und ungerichtet mit und ohne Gewicht/Kosten Beispiel C A ungerichtet ohne Gewicht: V = {A, B, C} E = { {A, B}, {A, C}, {B, C} } B Graphenalgorithmen I 6/33

Kanten Kanten Kanten gibt es in verschiedenen Ausführungen: gerichtet und ungerichtet mit und ohne Gewicht/Kosten Beispiel C A ungerichtet ohne Gewicht: V = {A, B, C} E = { {A, B}, {A, C}, {B, C} } B Graphenalgorithmen I 6/33

Kanten Kanten Kanten gibt es in verschiedenen Ausführungen: gerichtet und ungerichtet mit und ohne Gewicht/Kosten Beispiel C 2 B 2 4 A ungerichtet mit Gewicht: V = {A, B, C} { ({A, ) ( ) ( ) } E = B}, 4, {A, C}, 2, {B, C}, 2 Graphenalgorithmen I 6/33

Knoten Der Grad eines Knotens 2 4 4 Grad eines Knotens = Anzahl der Kanten an diesem Knoten 3 3 Graphenalgorithmen I 7/33

dünn und dicht besetzte Graphen E V 2 dünn besetzt E V 2 dicht besetzt Graphenalgorithmen I 8/33

Zyklen in Graphen azyklisch zyklisch Graphenalgorithmen I 9/33

Zyklen in Graphen azyklisch zyklisch Graphenalgorithmen I 9/33

Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 1/33

Adjazenzliste Adjazenzliste Jedem Knoten wird eine Liste von ausgehenden Kanten zugeordnet Speicherung in Art ungewichtet gewichtet Datenstruktur List<V>[] mit V als Index List<tuple<V, Weight>>[] mit V als Index Speicherbedarf O ( E + V ) v.a. bei dünn besetzten Graphen effizient Suchen von eingehenden Kanten nicht a möglich a oder nur schlecht Graphenalgorithmen I 11/33

Adjazenzliste Adjazenzliste Jedem Knoten wird eine Liste von ausgehenden Kanten zugeordnet Speicherung in Art ungewichtet gewichtet Datenstruktur List<V>[] mit V als Index List<tuple<V, Weight>>[] mit V als Index Speicherbedarf O ( E + V ) v.a. bei dünn besetzten Graphen effizient Suchen von eingehenden Kanten nicht a möglich a oder nur schlecht Graphenalgorithmen I 11/33

Adjazenzliste Beispiel Beispiel 2 C B 2 4 A Knoten Kanten A (B, 4), (C, 2) B (A, 4), (C, 2) C (A, 2), (B, 2) Graphenalgorithmen I 12/33

Adjazenzmatrix Adjazenzmatrix V V -Matrix; a ij ist falls (i, j) V (d.h. die Kante von i nach j existiert): das Gewicht der Kante in gewichteten Graphen 1 in ungewichteten Graphen ein ungültiger Wert, falls die Kante nicht existiert (z.b. ) für ungerichtete Graphen nur Dreiecksmatrix nötig Prüfen der Existenz einer Kante: O (1) ( Speicherbedarf O V 2), unabhängig von E Graphenalgorithmen I 13/33

Adjazenzmatrix Adjazenzmatrix V V -Matrix; a ij ist falls (i, j) V (d.h. die Kante von i nach j existiert): das Gewicht der Kante in gewichteten Graphen 1 in ungewichteten Graphen ein ungültiger Wert, falls die Kante nicht existiert (z.b. ) für ungerichtete Graphen nur Dreiecksmatrix nötig Prüfen der Existenz einer Kante: O (1) ( Speicherbedarf O V 2), unabhängig von E Graphenalgorithmen I 13/33

Adjazenzmatrix Beispiel Beispiel 2 C B 2 4 A A B C A 4 2 B 2 C Graphenalgorithmen I 14/33

Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 15/33

Tiefensuche Tiefensuche Durchsuchen eines Graphen z.b. zum Finden von Zyklen O ( V + E ) begin DFS start, ziel if start = ziel then return true; if start als besucht markiert then return false; start als besucht markieren; foreach n: start.children do if DFS(n, ziel) then return true; end return false end Graphenalgorithmen I 16/33

Tiefensuche Tiefensuche Durchsuchen eines Graphen z.b. zum Finden von Zyklen O ( V + E ) begin DFS start, ziel if start = ziel then return true; if start als besucht markiert then return false; start als besucht markieren; foreach n: start.children do if DFS(n, ziel) then return true; end return false end Graphenalgorithmen I 16/33

Iterative Tiefensuche 1 p u b l i c c l a s s DFSIter { 2 p u b l i c s t a t i c boolean d f s ( L i s t <Vertex > v e r t i c e s, L i s t < Edge> edges, V e r t e x s t a r t, V e r t e x end ) { 3 Stack<Vertex > l i s t = new Stack<Vertex >() ; 4 TreeSet<Vertex > v i s i t e d = new TreeSet<Vertex >() ; 5 6 l i s t. push ( s t a r t ) ; 7 w h i l e ( l i s t. s i z e ( ) > ) { 8 V e r t e x v = l i s t. pop ( ) ; 9 1 i f ( v i s i t e d. c o n t a i n s ( v ) ) c o n t i n u e ; 11 v i s i t e d. add ( v ) ; 12 13 i f ( s t a r t == end ) r e t u r n t r u e ; 14 f o r ( V e r t e x c : v. c h i l d r e n ) 15 i f (! v i s i t e d. c o n t a i n s ( c ) ) 16 l i s t. push ( c ) ; 17 } 18 r e t u r n f a l s e ; 19 } 2 } Graphenalgorithmen I 17/33

Breitensuche 1 p u b l i c c l a s s BFS { 2 p u b l i c s t a t i c boolean b f s ( L i s t <Vertex > v e r t i c e s, L i s t < Edge> edges, V e r t e x s t a r t, V e r t e x end ) { 3 Queue<Vertex > l i s t = new Queue<Vertex >() ; 4 TreeSet<Vertex > v i s i t e d = new TreeSet<Vertex >() ; 5 6 l i s t. add ( s t a r t ) ; 7 w h i l e ( l i s t. s i z e ( ) > ) { 8 V e r t e x v = l i s t. remove ( ) ; 9 1 i f ( v i s i t e d. c o n t a i n s ( v ) ) c o n t i n u e ; 11 v i s i t e d. add ( v ) ; 12 13 i f ( s t a r t == end ) r e t u r n t r u e ; 14 f o r ( V e r t e x c : v. c h i l d r e n ) 15 i f (! v i s i t e d. c o n t a i n s ( c ) ) 16 l i s t. add ( c ) ; 17 } 18 r e t u r n f a l s e ; 19 } 2 } Graphenalgorithmen I 18/33

Topologische Sortierung Topsort Arbeitet auf gerichteten, azyklischen Graphen (sog. DAGs) Interpretiert Kanten als Abhängigkeiten und sortiert die Knoten so in eine Liste, dass die Abhängigkeiten erfüllt sind Es kann mehrere solche topologische Sortierungen geben Algorithmus: 1. Suche Knoten ohne Eingangskante 2. Markiere und entferne Knoten 3. Wiederhole, bis Graph leer Aufwand analog zu Tiefensuche Graphenalgorithmen I 19/33

Jacke Hose Schuhe Hemd Shorts Socken Graphenalgorithmen I 2/33

Jacke Hose Schuhe Hemd Socken Shorts Graphenalgorithmen I 2/33

Jacke Hose Schuhe Hemd Shorts Socken Graphenalgorithmen I 2/33

Jacke Hose Schuhe Shorts Socken Hemd Graphenalgorithmen I 2/33

Jacke Schuhe Shorts Socken Hemd Hose Graphenalgorithmen I 2/33

Jacke Shorts Socken Hemd Hose Schuhe Graphenalgorithmen I 2/33

Shorts Socken Hemd Hose Schuhe Jacke Graphenalgorithmen I 2/33

Shorts Socken Hemd Hose Schuhe Jacke Graphenalgorithmen I 2/33

Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 21/33

Zusammenhang E E B D B D A C A C zusammenhängend nicht zusammenhängend Graphenalgorithmen I 22/33

Zusammenhang E E B D B D A C A C stark zusammenhängend schwach zusammenhängend Graphenalgorithmen I 23/33

Finden von Zusammenhangskomponenten in ungerichteten Graphen mittels Tiefensuche Färben des Graphen begin FindComponents c := ; visited[] := false; component[] := -1; foreach n: nodes do if! visited[n] then DFS(n, c); increment c; end end end Input: node n, component number c begin DFS n, c if! visited[n] then visited[n] := true; component[n] := c; foreach child: n.children do DFS(child, c) end end end Graphenalgorithmen I 24/33

Finden von Zusammenhangskomponenten in ungerichteten Graphen mittels Tiefensuche Färben des Graphen begin FindComponents c := ; visited[] := false; component[] := -1; foreach n: nodes do if! visited[n] then DFS(n, c); increment c; end end end Input: node n, component number c begin DFS n, c if! visited[n] then visited[n] := true; component[n] := c; foreach child: n.children do DFS(child, c) end end end Graphenalgorithmen I 24/33

Finden von Zusammenhangskomponenten in ungerichteten Graphen mittels Tiefensuche Färben des Graphen begin FindComponents c := ; visited[] := false; component[] := -1; foreach n: nodes do if! visited[n] then DFS(n, c); increment c; end end end Input: node n, component number c begin DFS n, c if! visited[n] then visited[n] := true; component[n] := c; foreach child: n.children do DFS(child, c) end end end Graphenalgorithmen I 24/33

Finden von Zusammenhangskomponenten in gerichteten Graphen mit dem Algorithmus von Kosaraju 1. Alle Knoten durch Tiefensuche nummerieren und bei der Rückkehr aus der Rekursion auf einen Stack legen 2. transponierten Graphen G T = ( V, E T ) erzeugen E T = { (v, u) (u, v) E } 3. Graph analog zur Suche bei ungerichteten Graphen durch Tiefensuche in Reihenfolge des Stacks färben Ein Knoten kann nicht in zwei Zusammenhangskomponenten sein! Graphenalgorithmen I 25/33

F E C D A B Graphenalgorithmen I 26/33

F E C D B Graphenalgorithmen I 26/33

F E 1 D B Graphenalgorithmen I 26/33

F E 1 2 B Graphenalgorithmen I 26/33

F 3 1 2 B Graphenalgorithmen I 26/33

4 3 1 2 B Graphenalgorithmen I 26/33

4F 3 1 2 F B Graphenalgorithmen I 26/33

F E3 1 2 E F B Graphenalgorithmen I 26/33

F E D 1 D2 E F B Graphenalgorithmen I 26/33

F E C D C1 D E F B Graphenalgorithmen I 26/33

A F E C D C D E F A B Graphenalgorithmen I 26/33

A F E C D C D E F A 5 Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

B A F E C D C D E F A B Graphenalgorithmen I 26/33

Brücken Brücken Kante, durch deren Entfernung der Graph in zwei Zusammenhangskomponenten zerfallen würde Finden durch Tiefensuche 1. Beim Abstieg: Jedem Knoten Nummer zuweisen 2. Bei der Rückkehr: Jeder Kante Nummer des kleinsten über sie erreichbaren Knotens zuweisen Brücken sind diejenigen Kanten, deren kleinste über sie erreichbare Knotennummer größer als die Nummer des Knotens, von dem aus sie traversiert worden sind, ist Graphenalgorithmen I 27/33

F E C D A B Graphenalgorithmen I 28/33

F E C D B Graphenalgorithmen I 28/33

F E 1 D B Graphenalgorithmen I 28/33

F E 1 D 2 Graphenalgorithmen I 28/33

F E 1 D 2 Graphenalgorithmen I 28/33

F E 1 3 2 Graphenalgorithmen I 28/33

F 4 1 3 2 Graphenalgorithmen I 28/33

5 4 1 3 2 Graphenalgorithmen I 28/33

5 4 3 1 3 2 Graphenalgorithmen I 28/33

3 5 4 3 1 3 2 Graphenalgorithmen I 28/33

3 5 4 3 3 1 3 2 Graphenalgorithmen I 28/33

3 5 4 3 3 1 3 3 2 Graphenalgorithmen I 28/33

3 5 4 3 3 1 3 3 2 Graphenalgorithmen I 28/33

3 5 4 3 3 1 3 3 2 Graphenalgorithmen I 28/33

Artikulationspunkte Artikulationspunkt Knoten, durch dessen Entfernung der Graph in zwei oder mehr Zusammenhangskomponenten zerfallen würde Finden analog zu Brücken durch Tiefensuche Artikulationspunkte sind a diejenigen Knoten, deren kleinste über eine ihrer ausgehenden Kanten erreichbare Knotennummer größer oder gleich ihrer Knotennummer ist Der Startknoten ist Artikulationspunkt, falls zwei oder mehr Kanten davon ausgehen a mit Ausnahme des Startknotens Graphenalgorithmen I 29/33

3 5 4 3 3 1 3 3 2 Graphenalgorithmen I 3/33

3 5 4 3 3 1 3 3 2 Graphenalgorithmen I 3/33

3 5 4 3 3 1 3 3 2 Graphenalgorithmen I 3/33

Gliederung 1 Motivation 2 Grundlagen Definitionen & Begriffe Klassifizierung 3 Datenstrukturen Adjazenzliste Adjazenzmatrix 4 Algorithmen Traversierung Topologische Sortierung 5 Zusammenhangskomponenten Zusammenhang Brücken & Artikulationspunkte 6 Abschluss Zusammenfassung Ende Graphenalgorithmen I 31/33

Zusammenfassung Speicherung Adjazenzliste, Adjazenzmatrix Traversierung & Sortierung Tiefen- und Breitensuche, Topologische Sortierung Zusammenhangskomponenten Finden mit Tiefensuche und Kosaraju, Brücken, Artikulationspunkte Graphenalgorithmen I 32/33

Zusammenfassung Speicherung Adjazenzliste, Adjazenzmatrix Traversierung & Sortierung Tiefen- und Breitensuche, Topologische Sortierung Zusammenhangskomponenten Finden mit Tiefensuche und Kosaraju, Brücken, Artikulationspunkte Graphenalgorithmen I 32/33

Zusammenfassung Speicherung Adjazenzliste, Adjazenzmatrix Traversierung & Sortierung Tiefen- und Breitensuche, Topologische Sortierung Zusammenhangskomponenten Finden mit Tiefensuche und Kosaraju, Brücken, Artikulationspunkte Graphenalgorithmen I 32/33

Q&A Danke für die Aufmerksamkeit Questions & Answers Graphenalgorithmen I 33/33