Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60

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

Grundbegriffe der Informatik

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

class Vertex { class Edge { } Vertex end; } class Graph { Vertex[] vertices; Edge[] edges; }

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik Musterlösung zu Aufgabenblatt 9

2. Repräsentationen von Graphen in Computern

Grundbegriffe der Informatik

Algebraische und arithmetische Algorithmen

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

6. Transitive Hülle. 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive Hülle Ring Z(+, ) Semiring N(+, )

Gliederung. Algorithmen und Datenstrukturen II. Graphen: All-pairs shortest paths. Graphen: All-pairs shortest paths. Graphen: Kürzeste Pfade III

Tutorium 23 Grundbegriffe der Informatik (7. Sitzung)

Randomisierte Algorithmen

Algebraische und arithmetische Algorithmen

Algorithmen & Komplexität

Graphenalgorithmen I

Algorithmische Methoden zur Netzwerkanalyse

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

Algorithmen und Datenstrukturen (für ET/IT)

Einführung in die Informatik 2

Wenn wir zudem a ii = 1 für 1 i n setzen, dann gilt für A k (boolesches Produkt, A 0 = I) 0 falls es im Graphen keinen Pfad von v i nach v j,

ADS 2: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

Programmierung 2 Studiengang MI / WI

Algorithmische Graphentheorie

Algorithmen und Datenstrukturen (für ET/IT)

15. Elementare Graphalgorithmen

Motivation Kap. 6: Graphen

Lernmodul 7 Algorithmus von Dijkstra

Grundbegriffe der Informatik

Algorithmen und Datenstrukturen 2

ij. , d (k 1) + d (k 1)

Graphen. Anwendung, Repräsentation, Tiefensuche, Breitensuche, Warshall s Algorithmus, kürzeste Wege.

Minimal spannende Bäume

Teil I. Lineare Algebra I Vorlesung Sommersemester Olga Holtz. MA 378 Sprechstunde Fr und n.v.

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Graphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Algorithmen und Datenstrukturen 13

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

8. Übung zu Algorithmen I 15. Juni 2016

5. Bäume und Minimalgerüste

MLAN1 1 MATRIZEN 1 0 = A T =

23. Graphen. Königsberg Zyklen. [Multi]Graph

Fortgeschrittene Netzwerk- und Graph-Algorithmen

1 Algebraische Strukturen

Vorlesung Datenstrukturen

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq

Graphenalgorithmen I

Wir nennen einen Pfad in einem gerichteten Graphen Zyklus, wenn der Pfad im gleichen Knoten beginnt und endet, d. h.

Einführung in die Informatik 2

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Relationen und Graphentheorie

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Routing Algorithmen. Begriffe, Definitionen

Programmiertechnik II

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen

Übersicht Kapitel 9. Vektorräume

FAKULTÄT FÜR INFORMATIK

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Programmiertechnik II

Informatik II, SS 2016

Wintersemester 2004/ Februar 2005

2.5 Gauß-Jordan-Verfahren

Grundbegriffe der Informatik

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 15/16

2. Das single-source-shortest-path-problem

Grundbegriffe der Informatik

12. Graphen. Königsberg Zyklen. [Multi]Graph

1 Datenstrukturen Datenstrukturen und Algorithmen

5 Graphen. Repräsentationen endlicher Graphen. 5.1 Gerichtete Graphen. 5.2 Ungerichtete Graphen. Ordnung von Graphen

Algorithmen und Datenstrukturen

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

16. November 2011 Zentralitätsmaße. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87

Ecken des Zuordnungsproblems

Beispiele 1. Gegeben ist das lineare System. x+4y +3z = 1 2x+5y +9z = 14 x 3y 2z = 5. Die erweiterte Matrix ist

Beispiele 1. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix (A

7 Matrizen über R und C

Mengen und Relationen

Informatik II, SS 2014

Übersicht. Bielefeld Hannover. Kamen Paderborn. Unna Wünnenberg Kassel. Ziffer wählen. abheben. auflegen. Gespräch führen

Informatik II, SS 2016

Digraphen, DAGs und Wurzelbäume

Teil I. Lineare Algebra I Vorlesung Sommersemester Olga Holtz. MA 378 Sprechstunde Fr und n.v.

Algorithmen und Komplexität

Einheit 11 - Graphen

Kap. 6.6: Kürzeste Wege

Randomisierte Algorithmen 2. Erste Beispiele

Transkript:

Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60

Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 2/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Überblick 3/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Repräsentation von Graphen im Rechner 4/60

Knoten, Kanten und Graphen als Objekte class Vertex { String name; } class Edge { Vertex start; Vertex end; } class Graph { Vertex[] vertices; Edge[] edges; } // oder was auch immer Repräsentation von Graphen im Rechner 5/60

Knoten, Kanten und Graphen als Objekte class Vertex { String name; } class Edge { Vertex start; Vertex end; } class Graph { Vertex[] vertices; Edge[] edges; } // oder was auch immer Repräsentation von Graphen im Rechner 5/60

Knoten, Kanten und Graphen als Objekte class Vertex { String name; } class Edge { Vertex start; Vertex end; } class Graph { Vertex[] vertices; Edge[] edges; } // oder was auch immer Repräsentation von Graphen im Rechner 5/60

Knoten, Kanten und Graphen als Objekte class Vertex { int id; } class Edge { Vertex start; Vertex end; } class Graph { Vertex[] vertices; Edge[] edges; } Repräsentation von Graphen im Rechner 6/60

Adjazenzlisten class Vertex { int id; Vertex[] neighbors; } // Feldlänge = Knotengrad class Edge { Vertex start; Vertex end; } class Graph { Vertex[] vertices; Edge[] edges; } Repräsentation von Graphen im Rechner 7/60

Inzidenzlisten class Vertex { int id; Edge[] incoming; Edge[] outgoing; } class Edge { Vertex start; Vertex end; } class Graph { Vertex[] vertices; Edge[] edges; } Repräsentation von Graphen im Rechner 8/60

Variante von Adjazenzlisten class Vertex { int id; boolean[] is connected to; // Feldlänge = V } class Graph { Vertex[] vertices; } Knoten: Objekte u, v der Klasse Vertex { true u.is_connected_to[v.id] = false falls (u, v) E falls (u, v) / E Repräsentation von Graphen im Rechner 9/60

Beispielgraph 0 1 2 Objekt u, das Knoten 0 repräsentiert: 3 u.id 0 u.is_connected_to false true false true 0 1 2 3 Repräsentation von Graphen im Rechner 10/60

Beispielgraph 0 1 2 Objekte für alle Knoten untereinander: u.id u.is connected to 0 false true false true 1 false false false false 2 false true true true 3 false false true false 0 1 2 3 3 Repräsentation von Graphen im Rechner 11/60

Adjazenzmatrix Adjazenzmatrix eines gerichteten Graphen G = (V, E) mit V = n ist eine n n-matrix A mit der Eigenschaft: { 1 falls (i, j) E A ij = 0 falls (i, j) / E Beispiel: 0 1 2 3 0 1 2 3 0 0 1 0 1 1 0 0 0 0 2 0 1 1 1 3 0 0 1 0 Adjazenzmatrix eines ungerichteten Graphen U = (V, E) ist die Adjazenzmatrix von G = (V, E g ) Repräsentation von Graphen im Rechner 12/60

Adjazenzmatrix Adjazenzmatrix eines gerichteten Graphen G = (V, E) mit V = n ist eine n n-matrix A mit der Eigenschaft: { 1 falls (i, j) E A ij = 0 falls (i, j) / E Beispiel: 0 1 2 3 0 1 2 3 0 0 1 0 1 1 0 0 0 0 2 0 1 1 1 3 0 0 1 0 Adjazenzmatrix eines ungerichteten Graphen U = (V, E) ist die Adjazenzmatrix von G = (V, E g ) Repräsentation von Graphen im Rechner 12/60

Repräsentation von Relationen durch Matrizen endliche Menge M mit n Elementen binäre Relation R M M repräsentiert durch n n-matrix A(R): { 1 falls (i, j) R d. h. also irj (A(R)) ij = 0 falls (i, j) / R d. h. also (irj) zu verschiedenen Relationen gehören verschiedene Matrizen und umgekehrt Repräsentation von Graphen im Rechner 13/60

Wegematrix eines Graphen Erreichbarkeitsrelation E als Matrix repräsentierbar die sogenannte Wegematrix W des Graphen: { 1 falls (i, j) E W ij = 0 falls (i, j) / E { 1 falls es in G einen Pfad von i nach j gibt = 0 falls es in G keinen Pfad von i nach j gibt algorithmisches Problem: gegebene Probleminstanz: Adjazenzmatrix eines Graphen gesucht: zugehörige Wegematrix des Graphen Repräsentation von Graphen im Rechner 14/60

Was ist wichtig Das sollten Sie mitnehmen: Repräsentation von Relationen als Matrizen z. B. Kantenrelation eines Graphen: Adjazenzmatrix Das sollten Sie üben: zu gegebenem Graphen die Adjazenzmatrix hinschreiben zu gegebener Adjazenzmatrix den Graphen hinmalen z. B. für irgendwelche speziellen Graphen und Matrizen Repräsentation von Graphen im Rechner 15/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 16/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 17/60

Ein Beispielgraph 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 2 0 1 0 1 0 0 1 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 6 0 0 0 0 1 0 0 von Interesse: Pfade der Länge 2 von Knoten 2 zu Knoten 4 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 18/60

Ein Beispielgraph 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 2 0 1 0 1 0 0 1 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 6 0 0 0 0 1 0 0 von Interesse: Pfade der Länge 2 von Knoten 2 zu Knoten 4 hinsehen: (2, 1, 4) und (2, 1, 6) Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 19/60

Beispielgraph: systematische Suche nach Pfaden Wie findet man systematisch alle interessierenden Pfade? prüfe alle Knoten k V : Ist (2, k, 4) ein Pfad? Ist (2, k) E und (k, 4) E? Ist A2k = 1 und A k4 = 1? Ist A2k A k4 = 1? durchlaufe nacheinander parallel alle A 2k und alle A k4, d. h. Zeile für Knoten 2 und Spalte für Knoten 4 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 20/60

Beispielgraph: systematische Suche nach Pfaden Wie findet man systematisch alle interessierenden Pfade? prüfe alle Knoten k V : Ist (2, k, 4) ein Pfad? Ist (2, k) E und (k, 4) E? Ist A2k = 1 und A k4 = 1? Ist A2k A k4 = 1? durchlaufe nacheinander parallel alle A 2k und alle A k4, d. h. Zeile für Knoten 2 und Spalte für Knoten 4 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 20/60

Beispielgraph: systematische Suche nach Pfaden Wie findet man systematisch alle interessierenden Pfade? prüfe alle Knoten k V : Ist (2, k, 4) ein Pfad? Ist (2, k) E und (k, 4) E? Ist A2k = 1 und A k4 = 1? Ist A2k A k4 = 1? durchlaufe nacheinander parallel alle A 2k und alle A k4, d. h. Zeile für Knoten 2 und Spalte für Knoten 4 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 20/60

Beispielgraph: systematische Suche nach Pfaden Wie findet man systematisch alle interessierenden Pfade? prüfe alle Knoten k V : Ist (2, k, 4) ein Pfad? Ist (2, k) E und (k, 4) E? Ist A2k = 1 und A k4 = 1? Ist A2k A k4 = 1? durchlaufe nacheinander parallel alle A 2k und alle A k4, d. h. Zeile für Knoten 2 und Spalte für Knoten 4 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 20/60

Beispielgraph: systematische Suche nach Pfaden Wie findet man systematisch alle interessierenden Pfade? prüfe alle Knoten k V : Ist (2, k, 4) ein Pfad? Ist (2, k) E und (k, 4) E? Ist A2k = 1 und A k4 = 1? Ist A2k A k4 = 1? durchlaufe nacheinander parallel alle A 2k und alle A k4, d. h. Zeile für Knoten 2 und Spalte für Knoten 4 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 20/60

Beispielgraph: systematische Suche nach Pfaden 0 1 2 3 4 5 6 1 1 0 0 0 0 1 0 1 2 0 1 0 1 0 0 1 3 4 5 6 0 1 2 3 4 5 6 0 1 0 0 0 0 1 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 21/60

Beispielgraph: Zählen der Pfade 0 1 2 3 4 5 6 1 1 0 0 0 0 1 0 1 2 0 1 0 1 0 0 1 3 4 5 6 2 0 1 0 0 0 0 1 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 22/60

Beispielgraph: Zählen der Pfade (2) P 24 = 6 k=0 A 2k A k4 0 1 2 3 4 5 6 1 1 0 0 0 0 1 0 1 2 0 1 0 1 0 0 1 3 4 5 6 2 Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel 23/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixmultiplikation 24/60

Matrixmultiplikation es sei A eine l n-matrix B eine n m-matrix die l m-matrix C mit n 1 C ij = A ik B kj k=0 heißt das Produkt von A und B geschrieben C = A B Achtung: im Allgemeinen A B B A! Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixmultiplikation 25/60

Matrixmultiplikation: algorithmisch n 1 C ij = A ik B kj k=0 erst mal nur die naheliegende Möglichkeit es geht auch anders! for i 0 to l 1 do for j 0 to m 1 do C ij 0 for k 0 to n 1 do C ij C ij + A ik B kj od od od Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixmultiplikation 26/60

Einheitsmatrizen Einheitsmatrix: n n-matrix I, bei der für alle i und j gilt: { 1 falls i = j I ij = 0 falls i j für jede m n-matrix A gilt: I A = A = A I Beachte: verschiedene Größen der Einheitsmatrizen links und rechts Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixmultiplikation 27/60

Potenzen quadratischer Matrizen A 0 = I n N0 : A n+1 = A n A Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixmultiplikation 28/60

Quadrierte Adjazenzmatrix Quadrat der Adjazenzmatrix A enthält nach Definition der Matrixmultiplikation als Eintrag in Zeile i und Spalte j n 1 (A 2 ) ij = A ik A kj. k=0 Jeder Summand A ik A kj ist 1 gdw. A ik = A kj = 1 ist, also gdw. Kanten von i nach k und von k nach j existieren, also gdw. (i, k, j) ein Pfad der Länge 2 von i nach j ist. und 0 sonst. Für k 1 k 2 sind (i, k 1, j) und (i, k 2, j) verschiedene Pfade. Also ist n 1 (A 2 ) ij = A ik A kj k=0 gleich der Anzahl der Pfade der Länge 2 von i nach j. Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixmultiplikation 29/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixaddition 30/60

Matrixaddition es seien A und B zwei m n-matrizen die m n-matrix C mit heißt die Summe von A und B geschrieben C = A + B stets A + B = B + A C ij = A ij + B ij neutrales Element: die Nullmatrix, die überall Nullen enthält geschrieben 0 algorithmisch: for i 0 to m 1 do for j 0 to n 1 do C ij A ij + B ij od od Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen Matrixaddition 31/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Einfache Berechnung der Erreichbarkeitsrelation 32/60

Die naheliegende Idee Benutze E = um die Wegematrix zu berechnen. Probleme: Was kann man gegen das unendlich tun? Woher kommen die Matrizen für die Relationen E i? Welcher Matrizen-Operation entspricht die Vereinigung? i=0 E i Einfache Berechnung der Erreichbarkeitsrelation 33/60

Die naheliegende Idee Benutze E = um die Wegematrix zu berechnen. Probleme: Was kann man gegen das unendlich tun? Woher kommen die Matrizen für die Relationen E i? Welcher Matrizen-Operation entspricht die Vereinigung? i=0 E i Einfache Berechnung der Erreichbarkeitsrelation 33/60

Die naheliegende Idee Benutze E = um die Wegematrix zu berechnen. Probleme: Was kann man gegen das unendlich tun? Woher kommen die Matrizen für die Relationen E i? Welcher Matrizen-Operation entspricht die Vereinigung? i=0 E i Einfache Berechnung der Erreichbarkeitsrelation 33/60

Die naheliegende Idee Benutze E = um die Wegematrix zu berechnen. Probleme: Was kann man gegen das unendlich tun? Woher kommen die Matrizen für die Relationen E i? Welcher Matrizen-Operation entspricht die Vereinigung? i=0 E i Einfache Berechnung der Erreichbarkeitsrelation 33/60

Beseitigung der unendlichen Vereinigung bei Graphen spezieller: nur endlich viele Knoten Frage: Existiert ein Pfad in G von Knoten i nach Knoten j? Sei G = (V, E) mit V = n Knoten. p = (i0, i 1,..., i k ) ein Pfad mit i 0 = i und i k = j. Wenn k n, dann kommen in der Liste p also k + 1 n + 1 Knotennamen vor. aber G hat nur n verschiedene Knoten. Also muss ein Knoten x doppelt in der Liste p vorkommen. p enthält Zyklus von x nach x Weglassen des Zyklus ergibt kürzeren Pfad, der immer noch von i nach j führt. wiederhole, solange Pfad mindestens n + 1 Knoten enthält Ergebnis: Pfad, in dem höchstens noch n Knoten, also höchstens n 1 Kanten, vorkommen, und der auch immer noch von i nach j führt. Einfache Berechnung der Erreichbarkeitsrelation 34/60

Beseitigung der unendlichen Vereinigung bei Graphen spezieller: nur endlich viele Knoten Frage: Existiert ein Pfad in G von Knoten i nach Knoten j? Sei G = (V, E) mit V = n Knoten. p = (i0, i 1,..., i k ) ein Pfad mit i 0 = i und i k = j. Wenn k n, dann kommen in der Liste p also k + 1 n + 1 Knotennamen vor. aber G hat nur n verschiedene Knoten. Also muss ein Knoten x doppelt in der Liste p vorkommen. p enthält Zyklus von x nach x Weglassen des Zyklus ergibt kürzeren Pfad, der immer noch von i nach j führt. wiederhole, solange Pfad mindestens n + 1 Knoten enthält Ergebnis: Pfad, in dem höchstens noch n Knoten, also höchstens n 1 Kanten, vorkommen, und der auch immer noch von i nach j führt. Einfache Berechnung der Erreichbarkeitsrelation 34/60

Beseitigung der unendlichen Vereinigung bei Graphen spezieller: nur endlich viele Knoten Frage: Existiert ein Pfad in G von Knoten i nach Knoten j? Sei G = (V, E) mit V = n Knoten. p = (i0, i 1,..., i k ) ein Pfad mit i 0 = i und i k = j. Wenn k n, dann kommen in der Liste p also k + 1 n + 1 Knotennamen vor. aber G hat nur n verschiedene Knoten. Also muss ein Knoten x doppelt in der Liste p vorkommen. p enthält Zyklus von x nach x Weglassen des Zyklus ergibt kürzeren Pfad, der immer noch von i nach j führt. wiederhole, solange Pfad mindestens n + 1 Knoten enthält Ergebnis: Pfad, in dem höchstens noch n Knoten, also höchstens n 1 Kanten, vorkommen, und der auch immer noch von i nach j führt. Einfache Berechnung der Erreichbarkeitsrelation 34/60

Beseitigung der unendlichen Vereinigung bei Graphen spezieller: nur endlich viele Knoten Frage: Existiert ein Pfad in G von Knoten i nach Knoten j? Sei G = (V, E) mit V = n Knoten. p = (i0, i 1,..., i k ) ein Pfad mit i 0 = i und i k = j. Wenn k n, dann kommen in der Liste p also k + 1 n + 1 Knotennamen vor. aber G hat nur n verschiedene Knoten. Also muss ein Knoten x doppelt in der Liste p vorkommen. p enthält Zyklus von x nach x Weglassen des Zyklus ergibt kürzeren Pfad, der immer noch von i nach j führt. wiederhole, solange Pfad mindestens n + 1 Knoten enthält Ergebnis: Pfad, in dem höchstens noch n Knoten, also höchstens n 1 Kanten, vorkommen, und der auch immer noch von i nach j führt. Einfache Berechnung der Erreichbarkeitsrelation 34/60

Beseitigung der unendlichen Vereinigung bei Graphen spezieller: nur endlich viele Knoten Frage: Existiert ein Pfad in G von Knoten i nach Knoten j? Sei G = (V, E) mit V = n Knoten. p = (i0, i 1,..., i k ) ein Pfad mit i 0 = i und i k = j. Wenn k n, dann kommen in der Liste p also k + 1 n + 1 Knotennamen vor. aber G hat nur n verschiedene Knoten. Also muss ein Knoten x doppelt in der Liste p vorkommen. p enthält Zyklus von x nach x Weglassen des Zyklus ergibt kürzeren Pfad, der immer noch von i nach j führt. wiederhole, solange Pfad mindestens n + 1 Knoten enthält Ergebnis: Pfad, in dem höchstens noch n Knoten, also höchstens n 1 Kanten, vorkommen, und der auch immer noch von i nach j führt. Einfache Berechnung der Erreichbarkeitsrelation 34/60

Beseitigung der unendlichen Vereinigung (2) Für Erreichbarkeit in einem endlichen Graphen mit n Knoten angeht, gilt: E = n 1 Betrachtung höherer Potenzen (längerer Pfade) schadet nicht: Lemma Für jeden gerichteten Graphen G = (V, E) mit n Knoten gilt: i=0 E i k n 1 : E = k i=0 E i Einfache Berechnung der Erreichbarkeitsrelation 35/60

Beseitigung der unendlichen Vereinigung (2) Für Erreichbarkeit in einem endlichen Graphen mit n Knoten angeht, gilt: E = n 1 Betrachtung höherer Potenzen (längerer Pfade) schadet nicht: Lemma Für jeden gerichteten Graphen G = (V, E) mit n Knoten gilt: i=0 E i k n 1 : E = k i=0 E i Einfache Berechnung der Erreichbarkeitsrelation 35/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix 36/60

Potenzierte Adjazenzmatrix Lemma Es sei G ein gerichteter Graph mit Adjazenzmatrix A. Für alle k N0 gilt: (A k ) ij ist die Anzahl der Pfade der Länge k in G von i nach j. Beweis durch vollständige Induktion. Induktionsschritt fast wie im Fall k = 2. Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix 37/60

Die Signum-Funktion Signum-Funktion 1 falls x > 0 sgn : R R : sgn(x) = 0 falls x = 0 1 falls x < 0 Erweiterung auf Matrizen durch komponentenweise Anwendung sgn : R m n R m n : (sgn(m)) ij = sgn(m ij ) Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix 38/60

Matrizen für die Relationen E k Korollar Es sei G ein gerichteter Graph mit Adjazenzmatrix A. Für alle k N0 gilt: 1. 1 falls in G ein Pfad der Länge k sgn((a k von i nach j existiert ) ij ) = 0 falls in G kein Pfad der Länge k von i nach j existiert 2. Matrix sgn(a k ) repräsentiert die Relation E k. Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix 39/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Einfache Berechnung der Erreichbarkeitsrelation Erste Möglichkeit für die Berechnung der Wegematrix 40/60

Vereinigung von Relationen Seien Relationen R M M und R M M repräsentiert durch Matrizen A und A. dann: (i, j) R R (i, j) R (i, j) R A ij = 1 A ij = 1 A ij + A ij 1 (A + A ) ij 1 sgn(a + A ) ij = 1 also: R R wird durch sgn(a + A ) repräsentiert. Einfache Berechnung der Erreichbarkeitsrelation Erste Möglichkeit für die Berechnung der Wegematrix 41/60

Formel für die Wegematrix Lemma Es sei G ein gerichteter Graph mit Adjazenzmatrix A. Dann gilt für alle k n 1: Die Matrix sgn( k i=0 Ai ) repräsentiert die Relation E. Mit anderen Worten: ( k ) W = sgn A i i=0 ist die Wegematrix des Graphen G. Einfache Berechnung der Erreichbarkeitsrelation Erste Möglichkeit für die Berechnung der Wegematrix 42/60

Beweis Man muss sich noch überlegen: n 1 i=0 E i wird durch Matrix sgn( k i=0 sgn(ai )) repräsentiert. leichte Verallgemeinerung des Falles R R In dieser Formel darf man die inneren Anwendungen von sgn weglassen. Wenn alle Matrixeinträge 0 sind, gilt: sgn(sgn(m) + sgn(m )) ij = sgn(m + M ) ij Einfache Berechnung der Erreichbarkeitsrelation Erste Möglichkeit für die Berechnung der Wegematrix 43/60

Einfachster Algorithmus für die Wegematrix / Matrix A sei die Adjazenzmatrix / Matrix W wird am Ende die Wegematrix enthalten / Matrix M wird benutzt um A i zu berechnen W 0 / Nullmatrix for i 0 to n 1 do M I / Einheitsmatrix for j 1 to i do M M A / Matrixmultiplikation od W W + M / Matrixaddition od W sgn(w ) Einfache Berechnung der Erreichbarkeitsrelation Erste Möglichkeit für die Berechnung der Wegematrix 44/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 45/60

Was ist der Aufwand eines Algorithmus? Anzahl Codezeilen? Entwicklungszeit? Anzahl Schritte? nicht immer gleich benötigter Speicherplatz? nicht immer gleich vorläufig(!): Anzahl arithmetischer Operationen Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 46/60

Wieviele elementare Operationen für Matrixaddition? Matrixaddition: for i 0 to m 1 do for j 0 to n 1 do C ij A ij + B ij od od m n Additionen für n n-matrizen: n 2 Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 47/60

Wieviele elementare Operationen für Matrixmultiplikation? Matrixmultiplikation for i 0 to l 1 do for j 0 to m 1 do C ij 0 for k 0 to n 1 do C ij C ij + A ik B kj od od od l m n Additionen und l m n Multiplikationen kleine Variante: l m (n 1) Additionen insgesamt für n n-matrizen: 2n 3 bzw. 2n 3 n 2 Achtung: Niemand sagt, dass das die einzige oder gar beste Methode ist. Sie ist es nicht! Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 48/60

Wieviele elementare Operationen für Wegematrix? Algorithmus: W 0 for i 0 to n 1 do M I for j 1 to i do M M A od W W + M od W sgn(w ) Aufwand: ( n 1 ) i (2n 3 n 2 ) + n n 2 + n 2 = n 5 3 2 n4 + 3 2 n3 + n 2 i=0 Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 49/60

Wieviele elementare Operationen für Wegematrix? Algorithmus: W 0 for i 0 to n 1 do M I for j 1 to i do M M A od W W + M od W sgn(w ) Aufwand: ( n 1 ) i (2n 3 n 2 ) + n n 2 + n 2 = n 5 3 2 n4 + 3 2 n3 + n 2 i=0 Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 49/60

Wieviele elementare Operationen für Wegematrix? Algorithmus: W 0 for i 0 to n 1 do M I for j 1 to i do M M A od W W + M od W sgn(w ) Aufwand: ( n 1 ) i (2n 3 n 2 ) + n n 2 + n 2 = n 5 3 2 n4 + 3 2 n3 + n 2 i=0 Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 49/60

Wieviele elementare Operationen für Wegematrix? Algorithmus: W 0 for i 0 to n 1 do M I for j 1 to i do M M A od W W + M od W sgn(w ) Aufwand: ( n 1 ) i (2n 3 n 2 ) + n n 2 + n 2 = n 5 3 2 n4 + 3 2 n3 + n 2 i=0 Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 49/60

Wieviele elementare Operationen für Wegematrix? Algorithmus: W 0 for i 0 to n 1 do M I for j 1 to i do M M A od W W + M od W sgn(w ) Aufwand: ( n 1 ) i (2n 3 n 2 ) + n n 2 + n 2 = n 5 3 2 n4 + 3 2 n3 + n 2 i=0 Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 49/60

Wieviele elementare Operationen für Wegematrix? Algorithmus: W 0 for i 0 to n 1 do M I for j 1 to i do M M A od W W + M od W sgn(w ) Aufwand: ( n 1 ) i (2n 3 n 2 ) + n n 2 + n 2 = n 5 3 2 n4 + 3 2 n3 + n 2 i=0 Einfache Berechnung der Erreichbarkeitsrelation Zählen durchzuführender arithmetischer Operationen 49/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix50/60

Da kann man etwas besser machen! haben so getan, als wären für A i immer i 1 Matrixmultiplikationen nötig es werden aber ohnehin alle Potenzen A i benötigt also besser immer das alte A i 1 merken und wiederverwenden Algorithmus: W 0 M I for i 0 to n 1 do W W + M M M A od W sgn(w ) Aufwand: n (n 2 + (2n 3 n 2 )) + n 2 = 2n 4 + n 2 Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix51/60

Es geht noch besser! Schon vergessen? k n 1 : E = k i=0 Alle k n 1 sind in Ordnung. Aber warum kann das helfen? wählen statt n 1 kleinste Zweierpotenz k = 2 m n, also m = log 2 n finden eine Matrix F mit W = F 2 m = ( ((F 2 ) 2 ) ) 2 Das sind nur noch m = log2 n Matrixmultiplikationen! Preisfrage: Wie sieht F aus? Antwort: Wähle F = E 0 E 1 = I V E. E i Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix52/60

Es geht noch besser! Schon vergessen? k n 1 : E = k i=0 Alle k n 1 sind in Ordnung. Aber warum kann das helfen? wählen statt n 1 kleinste Zweierpotenz k = 2 m n, also m = log 2 n finden eine Matrix F mit W = F 2 m = ( ((F 2 ) 2 ) ) 2 Das sind nur noch m = log2 n Matrixmultiplikationen! Preisfrage: Wie sieht F aus? Antwort: Wähle F = E 0 E 1 = I V E. E i Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix52/60

Es geht noch besser! Schon vergessen? k n 1 : E = k i=0 Alle k n 1 sind in Ordnung. Aber warum kann das helfen? wählen statt n 1 kleinste Zweierpotenz k = 2 m n, also m = log 2 n finden eine Matrix F mit W = F 2 m = ( ((F 2 ) 2 ) ) 2 Das sind nur noch m = log2 n Matrixmultiplikationen! Preisfrage: Wie sieht F aus? Antwort: Wähle F = E 0 E 1 = I V E. E i Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix52/60

Es geht noch besser! Schon vergessen? k n 1 : E = k i=0 Alle k n 1 sind in Ordnung. Aber warum kann das helfen? wählen statt n 1 kleinste Zweierpotenz k = 2 m n, also m = log 2 n finden eine Matrix F mit W = F 2 m = ( ((F 2 ) 2 ) ) 2 Das sind nur noch m = log2 n Matrixmultiplikationen! Preisfrage: Wie sieht F aus? Antwort: Wähle F = E 0 E 1 = I V E. E i Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix52/60

Es geht noch besser! (2) Sei F = E 0 E 1 dann F 2 = (E 0 E 1 ) (E 0 E 1 ) = E 0 E 1 E 1 E 2 = E 0 E 1 E 2 und F 4 = (F 2 ) 2 = (E 0 E 1 E 2 ) (E 0 E 1 E 2 ) =... = E 0 E 1 E 2 E 3 E 4 per Induktion: Für alle m N0 gilt: F 2m = 2 m E i i=0 Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix53/60

Es geht noch besser! (3) Algorithmus: W A + I m log 2 n for i 1 to m do W W W od W sgn(w ) Aufwand: n 2 + log 2 n + log 2 n (2n 3 n 2 ) + n 2 Beachte: Für die Berechnung des Wertes log 2 n aus n sind höchstens log 2 n Operationen nötig. Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix54/60

Was ist wichtig Das sollten Sie mitnehmen: Manchmal ist der naheliegende Algorithmus nicht der einzige oder gar der schnellste. Denken/Mathematik/Kreativität/Einfach-mal-drüber-schlafen helfen Das sollten Sie üben: Aufwandsabschätzungen bei (ineinander geschachtelten) Schleifen auch mal verrückte Ideen ausprobieren Einfache Berechnung der Erreichbarkeitsrelation Weitere Möglichkeiten für die Berechnung der Wegematrix55/60

Überblick Repräsentation von Graphen im Rechner Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen 2-Erreichbarkeit an einem Beispiel Matrixmultiplikation Matrixaddition Einfache Berechnung der Erreichbarkeitsrelation Potenzen der Adjazenzmatrix Erste Möglichkeit für die Berechnung der Wegematrix Zählen durchzuführender arithmetischer Operationen Weitere Möglichkeiten für die Berechnung der Wegematrix Algorithmus von Warshall Algorithmus von Warshall 56/60

Der Algorithmus von Warshall for i 0 to n 1 do for j 0 to { n 1 do 1 falls i = j W [i, j] A[i, j] falls i j od od for k 0 to n 1 do for i 0 to n 1 do for j 0 to n 1 do W [i, j] max( W [i, j], min(w [i, k], W [k, j]) ) od od od Algorithmus von Warshall 57/60

Zur Funktionsweise des Algorithmus von Warshall algorithmische Idee geht auf eine fundamentale Arbeit von Stephen Kleene zurück Redeweise bei einem Pfad p = (v 0, v 1,..., v m 1, v m ) der Länge m 2 die Knoten v1,..., v m 1 nennen wir Zwischenknoten des Pfades. Pfade der Längen 0 und 1 besitzen keine Zwischenknoten. Invariante für die äußere Schleife for k 0 to n 1 do... od lautet: Für alle i, j Gn: Nach k Durchläufen der äußeren Schleife ist W [i, j] genau dann 1, wenn es einen wiederholungsfreien Pfad von i nach j gibt, bei dem alle Zwischenknoten Nummern in Gk (also < k) haben. Algorithmus von Warshall 58/60

Zum Aufwand des Algorithmus von Warshall drei ineinander geschachtelte Schleifen deren jeweiliger Rumpf n-mal durchlaufen wird irgendwie ungefähr n 3 Operationen Algorithmus von Warshall 59/60

Zusammenfassung Repräsentationen von Graphen im Rechner Berechnung der Wegematrix mit vielen oder weniger Operationen Algorithmus Warshall kommt mit weniger Operationen aus als alle unsere vorherigen Versuche Zusammenfassung 60/60