Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

Ähnliche Präsentationen


Präsentation zum Thema: "LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)"—  Präsentation transkript:

1 LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

2 LS 2 / Informatik 2 Graphalgorithmen Bisherige Ergebnisse Dijkstras Algorithmus für positive Kantengewichte Bellman-Ford für allgemeine Kantengewichte; Laufzeit O(|V|²+|V| |E|) Negative Zyklen können erkannt werden Heute All Pairs Shortest Paths (mit negativen Kantengewichten)

3 LS 2 / Informatik 3 Graphalgorithmen All Pairs Shortest Path (APSP) Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a abcdef a b c d e 5890 f 0 b c f e d

4 LS 2 / Informatik 4 Graphalgorithmen All Pairs Shortest Path (APSP) Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg abcdef a b c d e 5890 f a b c f e d

5 LS 2 / Informatik 5 Graphalgorithmen Eingabe APSP Matrix W=(w ), die Graph repräsentiert ij w = 0, wenn i=j Gewicht der ger. Kante (i,j), wenn i j und (i,j) E, wenn i j und (i,j) E ij a b c e d f abcdef a 02 5 b 04 c 01 7 d e 8 0 f 0

6 LS 2 / Informatik 6 Graphalgorithmen Eingabe APSP Matrix W=(w ), die Graph repräsentiert ij w = 0, wenn i=j Gewicht der ger. Kante (i,j), wenn i j und (i,j) E, wenn i j und (i,j) E ij abcdef a 02 5 b 04 c 01 7 d e 8 0 f a b c e d f

7 LS 2 / Informatik 7 Graphalgorithmen Eingabe APSP Matrix W=(w ), die Graph repräsentiert ij w = 0, wenn i=j Gewicht der ger. Kante (i,j), wenn i j und (i,j) E, wenn i j und (i,j) E ij abcdef a 02 5 b 04 c 01 7 d e 8 0 f a b c e d f Annahme: Keine negativen Zyklen! Annahme: Keine negativen Zyklen!

8 LS 2 / Informatik 8 Graphalgorithmen Eine neue Rekursion: Nummeriere Knoten von 1 bis n=|V| Betrachte kürzeste i-j-Wege, die nur über Knoten 1 bis k laufen k=3

9 LS 2 / Informatik 9 Graphalgorithmen Eine neue Rekursion: Nummeriere Knoten von 1 bis n=|V| Betrachte kürzeste i-j-Wege, die nur über Knoten 1 bis k laufen k=3

10 LS 2 / Informatik 10 Graphalgorithmen Zur Erinnerung Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-Weg, der keinen Knoten doppelt benutzt. (Lemma 56) Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-Weg, der nur über Knoten aus {1,…,k} läuft: i j k

11 LS 2 / Informatik 11 Graphalgorithmen Zur Erinnerung Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-Weg, der keinen Knoten doppelt benutzt. (Lemma 56) Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-Weg, der nur über Knoten aus {1,…,k} läuft: i j k Knoten k tritt maximal einmal auf

12 LS 2 / Informatik 12 Graphalgorithmen Zur Erinnerung Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-Weg, der keinen Knoten doppelt benutzt. (Lemma 56) Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-Weg, der nur über Knoten aus {1,…,k} läuft: i j k Weg von u nach k führt nur über Knoten aus {1,…,k-1}

13 LS 2 / Informatik 13 Graphalgorithmen Zur Erinnerung Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-Weg, der keinen Knoten doppelt benutzt. (Lemma 56) Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-Weg, der nur über Knoten aus {1,…,k} läuft: i j k Weg von k nach v führt nur über Knoten aus {1,…,k-1}

14 LS 2 / Informatik 14 Graphalgorithmen Die Rekursion Kürzester i-j-Weg über Knoten aus {1,…,k} ist (a) kürzester i-j-Weg über Knoten aus {1,…,k-1} oder (b) kürzester i-k-Weg über Knoten aus {1,…,k-1} gefolgt von kürzestem k-j- Weg über Knoten aus {1,…,k-1} i j k Fall (b):

15 LS 2 / Informatik 15 Graphalgorithmen Die Rekursion Sei d die Länge eines kürzesten i-j-Wegs über Knoten aus {1,…,k} Matrix D =(d ) enthält die gesuchte Lösung d = w, falls k=0 min ( d, d + d ), falls k 1 ij (k) (k-1) ij ik kj (n) ij (n)

16 LS 2 / Informatik 16 Graphalgorithmen Floyd-Warshall(W,n) 1. D W 2. for k 1 to n do 3. for i 1 to n do 4. for j 1 to n do 5. d min(d, d + d ) 6. return D (0) (k) ij (n) (k-1) ij (k-1) ik (k-1) kj

17 LS 2 / Informatik 17 Graphalgorithmen D (0) D (1) -3

18 LS 2 / Informatik 18 Graphalgorithmen (0) D (1) -3

19 LS 2 / Informatik 19 Graphalgorithmen D (0) D (1) -3

20 LS 2 / Informatik 20 Graphalgorithmen D (0) D (1) -3

21 LS 2 / Informatik 21 Graphalgorithmen D (0) D (1) -3

22 LS 2 / Informatik 22 Graphalgorithmen D (0) D (1) -3

23 LS 2 / Informatik 23 Graphalgorithmen D (0) D (1) -3

24 LS 2 / Informatik 24 Graphalgorithmen D (1) D (2) -3

25 LS 2 / Informatik 25 Graphalgorithmen D (1) D (2) -3

26 LS 2 / Informatik 26 Graphalgorithmen (1) D (2) -3 D

27 LS 2 / Informatik 27 Graphalgorithmen D (1) D (2) -3

28 LS 2 / Informatik 28 Graphalgorithmen D (1) D (2) -3

29 LS 2 / Informatik 29 Graphalgorithmen D (1) D (2) -3

30 LS 2 / Informatik 30 Graphalgorithmen D (2) D (3) -3

31 LS 2 / Informatik 31 Graphalgorithmen D (2) D (3) -3

32 LS 2 / Informatik 32 Graphalgorithmen D (2) D (3) -3

33 LS 2 / Informatik 33 Graphalgorithmen D (2) D (3) -3

34 LS 2 / Informatik 34 Graphalgorithmen D (2) D (3) -3

35 LS 2 / Informatik 35 Graphalgorithmen D (2) D (3) -3

36 LS 2 / Informatik 36 Graphalgorithmen D (3) D (4) -3

37 LS 2 / Informatik 37 Graphalgorithmen D (3) D (4) -3

38 LS 2 / Informatik 38 Graphalgorithmen D (3) D (4) -3

39 LS 2 / Informatik 39 Graphalgorithmen D (3) D (4) -3

40 LS 2 / Informatik 40 Graphalgorithmen D (3) D (4) -3

41 LS 2 / Informatik 41 Graphalgorithmen D (3) D (4) -3

42 LS 2 / Informatik 42 Graphalgorithmen D (4) D (5) -3

43 LS 2 / Informatik 43 Graphalgorithmen D (4) D (5) -3

44 LS 2 / Informatik 44 Graphalgorithmen D (4) D (5) -3

45 LS 2 / Informatik 45 Graphalgorithmen D (4) D (5) -3

46 LS 2 / Informatik 46 Graphalgorithmen D (4) D (5) -3

47 LS 2 / Informatik 47 Graphalgorithmen D (4) D (5) -3

48 LS 2 / Informatik 48 Graphalgorithmen D (5) D (6) -3

49 LS 2 / Informatik 49 Graphalgorithmen D (5) D (6) -3

50 LS 2 / Informatik 50 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit.

51 LS 2 / Informatik 51 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis Die Laufzeit folgt sofort, da 3 ineinander geschachtelte Schleifen jeweils von 1 bis |V|=n durchlaufen werden.

52 LS 2 / Informatik 52 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis Die Laufzeit folgt sofort, da 3 ineinander geschachtelte Schleifen jeweils von 1 bis |V|=n durchlaufen werden. Korrektheit per Induktion über k. Z.z. die Matrix D enthält die kürzeste Entfernung zwischen allen Paaren von Knoten, wenn die Pfade nur über die Knoten {1,..,k} verlaufen dürfen. (k)

53 LS 2 / Informatik 53 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis Die Laufzeit folgt sofort, da 3 ineinander geschachtelte Schleifen jeweils von 1 bis |V|=n durchlaufen werden. Korrektheit per Induktion über k. Z.z. die Matrix D enthält die kürzeste Entfernung zwischen allen Paaren von Knoten, wenn die Pfade nur über die Knoten {1,..,k} verlaufen dürfen. (I.A.) Die Matrix D ist gleich der Eingabematrix W und enthält somit alle Wege im Graphen, die keinen Zwischenknoten benutzen. (k) (0)

54 LS 2 / Informatik 54 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis Die Laufzeit folgt sofort, da 3 ineinander geschachtelte Schleifen jeweils von 1 bis |V|=n durchlaufen werden. Korrektheit per Induktion über k. Z.z. die Matrix D enthält die kürzeste Entfernung zwischen allen Paaren von Knoten, wenn die Pfade nur über die Knoten {1,..,k} verlaufen dürfen. (I.A.) Die Matrix D ist gleich der Eingabematrix W und enthält somit alle Wege im Graphen, die keinen Zwischenknoten benutzen. (k) (0)

55 LS 2 / Informatik 55 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (k-1)

56 LS 2 / Informatik 56 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (I.S.) Die Matrix D soll nun die kürzesten Wege zwischen Knotenpaaren enthalten, die nur über die Knoten {1,..,k} verlaufen. (k-1) (k)

57 LS 2 / Informatik 57 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (I.S.) Die Matrix D soll nun die kürzesten Wege zwischen Knotenpaaren enthalten, die nur über die Knoten {1,..,k} verlaufen. Da G keine negativen Zyklen hat, gibt es immer einen kürzesten Weg, der jeden Knoten nur maximal einmal besucht. (k-1) (k)

58 LS 2 / Informatik 58 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (I.S.) Die Matrix D soll nun die kürzesten Wege zwischen Knotenpaaren enthalten, die nur über die Knoten {1,..,k} verlaufen. Da G keine negativen Zyklen hat, gibt es immer einen kürzesten Weg, der jeden Knoten nur maximal einmal besucht. Verläuft der kürzeste Weg von i nach j nun über Knoten k, so ist seine Länge nach (I.V.) genau d + d. (k-1) (k) ik kj (k-1)

59 LS 2 / Informatik 59 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (I.S.) Die Matrix D soll nun die kürzesten Wege zwischen Knotenpaaren enthalten, die nur über die Knoten {1,..,k} verlaufen. Da G keine negativen Zyklen hat, gibt es immer einen kürzesten Weg, der jeden Knoten nur maximal einmal besucht. Verläuft der kürzeste Weg von i nach j nun über Knoten k, so ist seine Länge nach (I.V.) genau d + d. Ansonsten verläuft er nicht über k und somit nur über die Knoten {1,..,k-1}. (k-1) (k) ik kj (k-1)

60 LS 2 / Informatik 60 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (I.S.) Die Matrix D soll nun die kürzesten Wege zwischen Knotenpaaren enthalten, die nur über die Knoten {1,..,k} verlaufen. Da G keine negativen Zyklen hat, gibt es immer einen kürzesten Weg, der jeden Knoten nur maximal einmal besucht. Verläuft der kürzeste Weg von i nach j nun über Knoten k, so ist seine Länge nach (I.V.) genau d + d. Ansonsten verläuft er nicht über k und somit nur über die Knoten {1,..,k-1}. Damit ist seine Länge d. (k-1) (k) ik kj (k-1) ij

61 LS 2 / Informatik 61 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (I.S.) Die Matrix D soll nun die kürzesten Wege zwischen Knotenpaaren enthalten, die nur über die Knoten {1,..,k} verlaufen. Da G keine negativen Zyklen hat, gibt es immer einen kürzesten Weg, der jeden Knoten nur maximal einmal besucht. Verläuft der kürzeste Weg von i nach j nun über Knoten k, so ist seine Länge nach (I.V.) genau d + d. Ansonsten verläuft er nicht über k und somit nur über die Knoten {1,..,k-1}. Damit ist seine Länge d. Somit wird die Länge durch die Rekursion korrekt berechnet. (k-1) (k) ik kj (k-1) ij

62 LS 2 / Informatik 62 Graphalgorithmen Satz 61 Sei G=(V,E) ein Graph ohne negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O(|V|³) Zeit. Beweis (I.V.) Die Matrix D erfüllt die Aussage. (I.S.) Die Matrix D soll nun die kürzesten Wege zwischen Knotenpaaren enthalten, die nur über die Knoten {1,..,k} verlaufen. Da G keine negativen Zyklen hat, gibt es immer einen kürzesten Weg, der jeden Knoten nur maximal einmal besucht. Verläuft der kürzeste Weg von i nach j nun über Knoten k, so ist seine Länge nach (I.V.) genau d + d. Ansonsten verläuft er nicht über k und somit nur über die Knoten {1,..,k-1}. Damit ist seine Länge d. Somit wird die Länge durch die Rekursion korrekt berechnet. (k-1) (k) ik kj (k-1) ij

63 LS 2 / Informatik 63 Graphalgorithmen Aufrechterhalten der kürzesten Wege: Konstruiere Vorgängermatrix Dazu konstruiere Sequenz,…, mit = ist Vorgängermatrix zu D ist Vorgänger von Knoten j auf dem kürzesten Weg von Knoten i über Knoten aus {1,…,k} Die Startmatrix: (n) (1) (n) (k) ij (0) ij nil, falls i=j oder w = i, falls i j und w < ij

64 LS 2 / Informatik 64 Graphalgorithmen Aufrechterhalten der kürzesten Wege: Konstruiere Vorgängermatrix Dazu konstruiere Sequenz,…, mit = ist Vorgängermatrix zu D ist Vorgänger von Knoten j auf dem kürzesten Weg von Knoten i über Knoten aus {1,…,k} Das Aktualisieren: falls d d + d (n) (1) (n) (k) ij (k) ij ik (k-1) ij (k-1) kj (k-1) kj ij (k-1) ik (k-1) kj

65 LS 2 / Informatik 65 Graphalgorithmen SSSP (pos. Kantengewichte): Dijkstra; Laufzeit in der Übung SSSP (allgemeine Kantengewichte) Bellman-Ford; Laufzeit O(|V|²+|V| |E|) APSP (allgemeine Kantengewichte, keine negativen Zyklen) Floyd-Warshall; Laufzeit O(|V|³)

66 LS 2 / Informatik 66 Graphalgorithmen Binäre Relationen Eine (binäre) Relation R zwischen Elementen der Mengen A und B ist eine Teilmenge von A B. Ist A=B, so spricht man auch von einer Relation auf der Menge A Graphen und Relationen Sei G=(V,E) ein gerichteter Graph (möglicherweise mit Selbstschleifen, d.h. Kanten von v nach v) E ist Teilmenge von V V Also kann man E als Relation auf der Menge V interpretieren

67 LS 2 / Informatik 67 Graphalgorithmen Reflexivität Eine Relation R auf der Menge V heißt reflexiv, wenn (v,v) R für alle v V. Interpretation als Graph Alle Knoten haben Selbstschleifen

68 LS 2 / Informatik 68 Graphalgorithmen Symmetrie Eine Relation R auf der Menge V heißt symmetrisch, wenn aus (u,v) R folgt, dass (v,u) R ist. Interpretation als Graph Alle Kanten sind in beiden Richtungen vorhanden (ungerichteter Graph) Selbstschleifen erlaubt

69 LS 2 / Informatik 69 Graphalgorithmen Transitivität Eine Relation R auf der Menge V heißt transitiv, wenn aus (u,v) R und (v,w) R folgt, dass (v,w) R ist. Interpretation als Graph Man kann zwei aufeinanderfolgende Kanten immer abkürzen Wiederholtes Anwenden: Gibt es Weg von u nach v, so gibt es direkte Verbindung

70 LS 2 / Informatik 70 Graphalgorithmen Aquivalenzrelation Eine Relation R auf der Menge V heißt Aquivalenzrelation, wenn sie reflexiv, symmetrisch und transitiv ist. Interpretation als Graph Ungerichteter Graph mit Selbstschleifen an jedem Knoten Zusammenhangskomponenten sind vollständig verbunden

71 LS 2 / Informatik 71 Graphalgorithmen Das transitive Hülle Problem Gegeben sei ein gerichteter, ungewichteter Graph G=(V,E) Gesucht: Die transitive Hülle G*=(V,E*) von G, wobei E*={(u,v): es gibt Weg von u nach v in G} G G*

72 LS 2 / Informatik 72 Graphalgorithmen Transitive Hülle in O(|V|³) Zeit mit Floyd-Warshall In O(|V|²+|V| |E|) Zeit mit Breiten- oder Tiefensuche von jedem Knoten Geht das auch schneller?

73 LS 2 / Informatik 73 Graphalgorithmen Graphen und Matrixmultiplikation Sei A die n n-Adjazenzmatrix eines ungerichteten Graphen G mit Knotenmenge {1,…,n} Was ist A A?

74 LS 2 / Informatik 74 Graphalgorithmen Behauptung 62 Sei Z= A A. Dann gilt z >0, g.d.w. es in G einen Pfad der Länge 2 von Knoten i zu Knoten j gibt. ij

75 LS 2 / Informatik 75 Graphalgorithmen Behauptung 62 Sei Z= A A. Dann gilt z >0, g.d.w. es in G einen Pfad der Länge 2 von Knoten i zu Knoten j gibt. Beweis Es gilt bei der Matrixmultiplikation, dass z = a a. ij ikkj

76 LS 2 / Informatik 76 Graphalgorithmen Behauptung 62 Sei Z= A A. Dann gilt z >0, g.d.w. es in G einen Pfad der Länge 2 von Knoten i zu Knoten j gibt. Beweis Es gilt bei der Matrixmultiplikation, dass z = a a. Da die Einträge von A entweder 0 oder 1 sind, folgt aus z > 0, dass für mindestens einen Index k gilt: a = 1 und a = 1. ij ikkj ik kj ij

77 LS 2 / Informatik 77 Graphalgorithmen Behauptung 62 Sei Z= A A. Dann gilt z >0, g.d.w. es in G einen Pfad der Länge 2 von Knoten i zu Knoten j gibt. Beweis Es gilt bei der Matrixmultiplikation, dass z = a a. Da die Einträge von A entweder 0 oder 1 sind, folgt aus z > 0, dass für mindestens einen Index k gilt: a = 1 und a = 1. Damit gibt es aber eine Kante von i nach k und k nach j, also einen Pfade der Länge 2. ij ikkj ik kj ij

78 LS 2 / Informatik 78 Graphalgorithmen Behauptung 62 Sei Z= A A. Dann gilt z >0, g.d.w. es in G einen Pfad der Länge 2 von Knoten i zu Knoten j gibt. Beweis Es gilt bei der Matrixmultiplikation, dass z = a a. Da die Einträge von A entweder 0 oder 1 sind, folgt aus z > 0, dass für mindestens einen Index k gilt: a = 1 und a = 1. Damit gibt es aber eine Kante von i nach k und k nach j, also einen Pfade der Länge 2. Gibt es einen Pfad der Länge 2 von i nach j, so verläuft dieser über einen weiteren Knoten, sagen wir k. Damit ist a =1 und a =1. ij ikkj ik kj ij ik kj

79 LS 2 / Informatik 79 Graphalgorithmen Behauptung 62 Sei Z= A A. Dann gilt z >0, g.d.w. es in G einen Pfad der Länge 2 von Knoten i zu Knoten j gibt. Beweis Es gilt bei der Matrixmultiplikation, dass z = a a. Da die Einträge von A entweder 0 oder 1 sind, folgt aus z > 0, dass für mindestens einen Index k gilt: a = 1 und a = 1. Damit gibt es aber eine Kante von i nach k und k nach j, also einen Pfade der Länge 2. Gibt es einen Pfad der Länge 2 von i nach j, so verläuft dieser über einen weiteren Knoten, sagen wir k. Damit ist a =1 und a =1. Da die Einträge von A entweder 0 oder 1 sind, folgt z = a a >0. ij ikkj ik kj ij ik kj ij ikkj

80 LS 2 / Informatik 80 Graphalgorithmen Behauptung 62 Sei Z= A A. Dann gilt z >0, g.d.w. es in G einen Pfad der Länge 2 von Knoten i zu Knoten j gibt. Beweis Es gilt bei der Matrixmultiplikation, dass z = a a. Da die Einträge von A entweder 0 oder 1 sind, folgt aus z > 0, dass für mindestens einen Index k gilt: a = 1 und a = 1. Damit gibt es aber eine Kante von i nach k und k nach j, also einen Pfade der Länge 2. Gibt es einen Pfad der Länge 2 von i nach j, so verläuft dieser über einen weiteren Knoten, sagen wir k. Damit ist a =1 und a =1. Da die Einträge von A entweder 0 oder 1 sind, folgt z = a a >0. ij ikkj ik kj ij ik kj ij ikkj

81 LS 2 / Informatik 81 Graphalgorithmen Behauptung 63 Sei Z= A A + A. Dann gilt, dass z >0, g.d.w. es einen Weg der Länge 1 oder 2 von Knoten i zu Knoten j gibt. Beweis Folgt sofort aus dem vorhergehenden Lemma und der Tatsache, dass A genau für die Paare i,j einen Eintrag 1 hat, die durch eine Kante (einen Weg der Länge 1) verbunden sind Konstruiere Matrix B mit: b =1 z >0 ij

82 LS 2 / Informatik 82 Graphalgorithmen Behauptung 64 Der durch Matrix B definierte Graph hat einen Weg von Knoten i nach j, g.d.w. der durch Matrix A definierte Graph einen solchen Weg hat. Beweis Folgt aus der vorherigen Behauptung.

83 LS 2 / Informatik 83 Graphalgorithmen Behauptung 65 Sei P ein Weg der Länge k>1 in G von Knoten i zu Knoten j. Dann gibt es in dem von Matrix B beschriebenen Graphen G einen Weg von i nach j mit Länge maximal 2/3 k.

84 LS 2 / Informatik 84 Graphalgorithmen Behauptung 65 Sei P ein Weg der Länge k>1 in G von Knoten i zu Knoten j. Dann gibt es in dem von Matrix B beschriebenen Graphen G einen Weg von i nach j mit Länge maximal 2/3 k. Beweis Sei P ein Weg in G mit k Kanten.

85 LS 2 / Informatik 85 Graphalgorithmen Behauptung 65 Sei P ein Weg der Länge k>1 in G von Knoten i zu Knoten j. Dann gibt es in dem von Matrix B beschriebenen Graphen G einen Weg von i nach j mit Länge maximal 2/3 k. Beweis Sei P ein Weg in G mit k Kanten. Ist k gerade, dann gibt es in G einen Weg der Länge k/2, da man jeweils zwei aufeinanderfolgende Kanten von P durch eine Kante in G ersetzen kann.

86 LS 2 / Informatik 86 Graphalgorithmen Behauptung 65 Sei P ein Weg der Länge k>1 in G von Knoten i zu Knoten j. Dann gibt es in dem von Matrix B beschriebenen Graphen G einen Weg von i nach j mit Länge maximal 2/3 k. Beweis Sei P ein Weg in G mit k Kanten. Ist k gerade, dann gibt es in G einen Weg der Länge k/2, da man jeweils zwei aufeinanderfolgende Kanten von P durch eine Kante in G ersetzen kann. Ist k ungerade, dann gibt es in G einen Weg der Länge k/2, da man bis auf die letzte Kante jeweils zwei aufeinanderfolgende Kanten von P durch eine Kante in G ersetzen kann.

87 LS 2 / Informatik 87 Graphalgorithmen Behauptung 65 Sei P ein Weg der Länge k>1 in G von Knoten i zu Knoten j. Dann gibt es in dem von Matrix B beschriebenen Graphen G einen Weg von i nach j mit Länge maximal 2/3 k. Beweis Sei P ein Weg in G mit k Kanten. Ist k gerade, dann gibt es in G einen Weg der Länge k/2, da man jeweils zwei aufeinanderfolgende Kanten von P durch eine Kante in G ersetzen kann. Ist k ungerade, dann gibt es in G einen Weg der Länge k/2, da man bis auf die letzte Kante jeweils zwei aufeinanderfolgende Kanten von P durch eine Kante in G ersetzen kann. Somit gilt für k=3, dass die Länge des Weges in G 2/3 der Länge des Weges in G ist. Für k>3 verkürtzt sich die Weglänge entsprechend mehr.

88 LS 2 / Informatik 88 Graphalgorithmen Behauptung 65 Sei P ein Weg der Länge k>1 in G von Knoten i zu Knoten j. Dann gibt es in dem von Matrix B beschriebenen Graphen G einen Weg von i nach j mit Länge maximal 2/3 k. Beweis Sei P ein Weg in G mit k Kanten. Ist k gerade, dann gibt es in G einen Weg der Länge k/2, da man jeweils zwei aufeinanderfolgende Kanten von P durch eine Kante in G ersetzen kann. Ist k ungerade, dann gibt es in G einen Weg der Länge k/2, da man bis auf die letzte Kante jeweils zwei aufeinanderfolgende Kanten von P durch eine Kante in G ersetzen kann. Somit gilt für k=3, dass die Länge des Weges in G 2/3 der Länge des Weges in G ist. Für k>3 verkürtzt sich die Weglänge entsprechend mehr.

89 LS 2 / Informatik 89 Graphalgorithmen Konsequenz aus Beh. 64 und 65 Wenn wir die Berechnung von B log n mal iterieren, haben wir die transitive Hülle berechnet 3/2

90 LS 2 / Informatik 90 Graphalgorithmen TransitiveHülle(A) 1. for i 1 to log n do 2. Z A A+A 3. for i 1 to n do 4. for j 1 to n do 5. if z >0 then b 1 else b 0 6. A B 7. return A 3/2

91 LS 2 / Informatik 91 Graphalgorithmen TransitiveHülle(A) Laufzeit 1. for i 1 to log n do O(log n) 2. Z A A+A M(n) 3. for i 1 to n do O(n) 4. for j 1 to n do O(n²) 5. if z >0 then b 1 else b 0 O(n²) 6. A B O(n²) 7. return A O(1) M(n): Zeit um zwei n n-Matrizen zu multiplizieren 3/2

92 LS 2 / Informatik 92 Graphalgorithmen Satz 66 Der Algorithmus TransitiveHülle berechnet die transitive Hülle eines Graphen G in O(M(n) log n) Zeit, wobei M(n) die Laufzeit zur Multiplikation zweier n n-Matrizen bezeichnet.


Herunterladen ppt "LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)"

Ähnliche Präsentationen


Google-Anzeigen