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

Ähnliche Dokumente
Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

5. Bäume und Minimalgerüste

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

Grundbegriffe der Informatik

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

3. Musterlösung. Problem 1: Boruvka MST

Algorithmen und Datenstrukturen 2-1. Seminar -

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

Algorithmen & Komplexität

ADS: Algorithmen und Datenstrukturen 2

Lösungen zu Kapitel 5

15. Elementare Graphalgorithmen

Grundbegriffe der Informatik

Wie wird ein Graph dargestellt?

Lernmodul 7 Algorithmus von Dijkstra

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

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

Algorithmen und Datenstrukturen

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

Tutoraufgabe 1 (Suchen in Graphen):

Algorithmische Graphentheorie

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

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

Algorithmische Graphentheorie

ADS: Algorithmen und Datenstrukturen 2

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Algorithmen II Vorlesung am

Kapitel IV Minimale Spannbäume

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Algorithmische Graphentheorie

Graphdurchmusterung, Breiten- und Tiefensuche

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Algorithmen und Datenstrukturen 2

2. Repräsentationen von Graphen in Computern

Algorithmen II Vorlesung am

ADS: Algorithmen und Datenstrukturen 2

2.4 Starke Zusammenhangskomponenten in Digraphen

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

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

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

3.2 Generischer minimaler Spannbaum-Algorithmus

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

10. Übungsblatt zu Algorithmen I im SS 2010

ADS: Algorithmen und Datenstrukturen 2

Quicksort ist ein Divide-and-Conquer-Verfahren.

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Freie Bäume und Wälder

Kürzeste-Wege-Algorithmen und Datenstrukturen

Algorithmische Graphentheorie

6. Übung zur Linearen Optimierung SS08

Informatik II, SS 2016

Übungsblatt 2 - Lösung

Einheit 11 - Graphen

WS 2009/10. Diskrete Strukturen

Algebraische und arithmetische Algorithmen

16. All Pairs Shortest Path (ASPS)

Graphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Graphen. Definitionen

9 Minimum Spanning Trees

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Relationen und DAGs, starker Zusammenhang

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

Informatik II, SS 2018

Datenstrukturen und Algorithmen (SS 2013)

Algorithmische Methoden zur Netzwerkanalyse

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Informatik II, SS 2016

Wiederholung zu Flüssen

Nachbarschaft, Grad, regulär, Inzidenz

Kapitel IV Minimale Spannbäume

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Effiziente Algorithmen I

Gruppen. Kapitel Operationen Definiton Gruppe, symmetrische Gruppen. Gruppen und Untergruppen, Lernziele 1. Erzeugendensysteme,

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Berechnung von Abständen

Randomisierte Algorithmen

Algorithmen und Datenstrukturen

Breitensuche BFS (Breadth First Search)

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

ADS: Algorithmen und Datenstrukturen 2

Bemerkung: Der vollständige Graph K n hat n(n 1)

Vorlesung Datenstrukturen

Algebraische und arithmetische Algorithmen

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Vorlesung 2 KÜRZESTE WEGE

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,

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

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

Matrizen spielen bei der Formulierung ökonometrischer Modelle eine zentrale Rolle: kompakte, stringente Darstellung der Modelle

Minimal spannender Baum

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen

Rückblick: divide and conquer

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

Transkript:

5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende Bäume mit minimalen Kosten Sei G = (E, K) zusammenhängend und ungerichtet. 5.1.1 Definition: Ein Graph G' = (E', K') heißt Teilgraph von G = (E, K) (beide schlicht) falls gilt: ungerichteter Fall: E' E, K' K P 2 (E') Ein spannender Baum ist ein Teilgraph S = (E S, K S ) von G (d.h. E S = E, K S K), und S ist ein Baum. Ein spannender Wald für G ist eine Menge von Teilgraphen (E 1, K 1 ),..., (E l, K l ) von G mit folgender Eigenschaft: i : K i K, (E i, K i ) ist Baum; i, j, i j: E i E j = ; E i = E i=1 l Sei κ : K 0 "Kostenfunktion" Die Kosten eines spannenden Baumes κ(s) := Σ k K S κ(k) Ziel: Bestimme einen spannenden Baum mit minimalen Kosten 5.1.2 Lemma Für jeden spannenden Baum S = (E S, K S ) für G gilt: (a) e 1, e 2 E : der Weg zwischen e 1 und e 2 in S ist eindeutig gestimmt (b) wird zu S eine Kante aus K K S hinzugenommen, so entsteht genau ein Zyklus. Beweis: (a) ist trivial, denn wäre der Weg nicht eindeutig, dann enthielte S einen Zyklus (b) ist auch trivial, denn die Endpunkte der hinzugenommenen Kante sind bereits durch genau einen Weg verbunden. Spannende Bäume mit minimalen Kosten lassen sich schrittweise konstruieren: 5.1.3 Lemma Sei κ : K 0 Kostenfunktion für G. Sei {(E 1, K 1 ), (E 2, K 2 ),..., (E l, K l )} ein spannender Wald für l G. Sei K' = K i. Sei k = (e, f) K' eine Kante mit minimalen Kosten, und e E i, f E j mit i j. i=1 Dann existiert ein spannender Baum S = (E, K S ) für G, für den gilt: K' {k} K S, und spannenden Bäume S' = (E, K S ') mit K' K S ' gilt: κ(s') κ(s). Beweis. WA: S' = (E, K S ') sei spannender Baum mit k K S ', und κ(s') < κ(s). Lemma 5.1.2(b) durch Hinzufügen der Kante k entsteht in S' ein Zyklus. Aus der Annahme über k und aus der Waldannahme folgt: Kante k' des Zyklus mit κ(k') κ(k). Sei der Graph S aus S' wie folgt konstruiert: k' wird hinzugenommen, k wird entfernt. Dann gilt: S ist spannender Baum (Lemma 5.1.2(b)!), und κ(s) κ(s') -- Widerspruch. 5.1.4 Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965). Eingabe: G = (E, K) endlich, ungerichtet, κ : K 0 Ausgabe: Spannender Baum (E S,K S ) mit minimalen Kosten Verfahren: K S := ; E S := {{e} e E }; -- E S ist stets P(E) Sei Q eine Liste, in der die Elemente von K nach aufsteigenden Kosten eingetragen sind; while E S > 1 do Sei k = (e, f) die erste Kante in Q; -- k hat minimale Kosten Entferne k aus Q; Sei e W 1, f W 2, wobei W 1, W 2 E S ; 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-1

if W 1 W 2 then E S := (E S {W 1 W 2 }) {W 1, W 2 }; K S := K S {k}; 5.1.5 Satz Sei E = n und K = m; falls G zusammenhängend, bestimmt der Kruskal Algorithmus einen spannenden Baum mit minimalen Kosten für G. Die Zeitkomplexität ist O(m log m). Beweis. Die Korrektheit folgt unmittelbar aus Lemma 5.1.2. Zeitkomplexität: Sortieren der Kanten nach ihren Kosten: O(m log m) While-Schleife wird maximal m mal durchlaufen. Gesamtzahl der Schritte: O(m log m) + mo(log n). Wegen m = O(n 2 ) folgt die Behauptung 5.2 Suchverfahren bei ungerichteten Graphen Hierbei geht es um ein systematisches Durchlaufen aller Knoten eines ungerichteten zusammenhängenden Graphen, ähnlich dem preorder oder postorder bei binären Bäumen. Bekannte Verfahren sind die Tiefensuche und die Breitensuche. Idee der "Tiefensuche": Wähle einen Startknoten x. Besuche eine Nachbarn y 1 von x; besuche Nachbarn y 2 von y 1, u.s.w. solange, bis alle Knoten besucht sind. 5.2.1 Algorithmus Tiefensuche Eingabe: Graph G = (E, K) ungerichtet, zusammenhäng Startknoten x; Ausgabe: Menge von Kanten K S, längs derer neue Knoten besucht werden; Verfahren: Zunächst wird jeder Knoten mit einer Marke "neu" markiert; besuchte Knoten werden mit "alt" markiert; die Prozedur SUCHE(v: Konten) bestimmt von v aus einen neuen noch nicht mit "alt" markierten Knoten w, und setzt dort die Suche rekursiv fort. procedure SUCHE(v: Konten); markiere v mit "alt"; für jeden Knoten w N(v) do -- N(v) = { w {v, w} K } (Menge der zu v adjazenten Knoten) if w ist mit "neu" markiert then K S := K S {{v, w}}; SUCHE(w); Hauptprogramm: for all e E do markiere e mit "neu"; while es existiert ein Knoten e E mit Marke "neu" do SUCHE(e); Bemerkungen: (1) Der Algorithmus gilt auch für nicht zusammenhängende Graphen. Jeder Durchlauf der while-schleife gilt einer Zusammenhangskomponente. (2) (E, K S ) ist ein spannender Wald für (E, K). (3) Die Zeitkomplexität ist O(n 2 ). (4) Die Lösung ist nicht eindeutig 5.2.2 Breitensuche. Idee: Wähle einen Startknoten x. Besuche alle Nachbarn von x der Reihe nach. Danach gehe zum ersten Nachbarn von x und besuche dessen Nachbarn, dann zum zweiten, usw. 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-2

5.2.3 Verallgemeinerung: Der Algorithmus lässt sich auch auf gerichtete Graphen erweitern. N(v) ist dann durch die Menge der von v aus durch eine gerichtete Kante erreichbaren Knoten N'(v) = { w (v, w) K } zu ersetzen. 5.3 Kürzeste Wege in kantenbewerteten Graphen Sei G = (E, K) ein gerichteter endlicher Graph; Kostenfunktion κ : K 0. Kosten eines Weges := Summe der Kosten längs der Kanten des Weges. Problem des kürzesten Weges: Gegeben e, f E ; finde einen Weg von e nach f mit niedrigsten Kosten. 5.3.1 Allgemeinere Behandlung des Problems 5.3.1.1 Definition abgeschlossener Semiring (S, +,, 0, 1) S... Menge von Elementen +,... binäre Operationen, für die gilt: (a) (b) (c) (S, +, 0) ist Monoid (Abgeschlossenheit unter +; + ist assoziativ, 0 ist die Identität) + ist kommutativ und idempotent (a + a = a) (S,, 1) ist Monoid; a S: 0 a = a 0 = 0 (0 ist "Annilihator") Distributivgesetz: (a + b) c = a c + b c; c (a + b) = c a + c b (d) Sei a 1, a 2,, a i, eine abzählbare Folge von Elementen aus S, dann existiert die Summe a 1 + a 2 + + a i + und ist eindeutig z.b. (a 1 + a 2 ) + (a 4 + a 4 ) +... = a 1 + (a 2 + a 3 ) + (a 4 + a 5 ) +... (e) Distributivgesetz für über abzählbaren Summen: (Σa i ) (Σb i ) = Σ (a i b j ) Beispiele von abgeschlossenen Semiringen: 1. S 1 = ({0, 1}, +,, 0, 1) 2. S 2 = ( 0, min, +, +, 0) ( 0 ist die Menge der nichtnegativen reellen Zahlen, einschließlich dem Element + ) Bemerkung: + ist Eins-Element unter min, 0 ist Einselement unter + 3. Σ endliches Alphabet; S 3 = (F Σ,,,, {ε}) F Σ = P(Σ*);... Vereinigung;... Konkatenation Einheitselement für :, und für : {ε} Zur Eigenschaft (d): Sei A i F Σ (i = 1, 2,...); dann: x (A 1 A 2...) : i, x A i 5.3.1.2 Einführung einer unären Operation * (Hülle) Sei (S, +,, 0, 1) abgeschlossener Semiring, a S Definition: a* := i=0 Σ a i [a 0 := 1; a i := a a i 1 ] Eigenschaften: aus (a) (b) und (d) folgt a* S aus (a), (b) und (c) folgt a* = 1 + a a* ferner: 0* = 1 Beispiele: S 1 : 0* = 1* = 1 S 2 : a* = 0 für alle a 0 5.3.2 Zurück zu Graphen S 3 : A* = {ε} { x 1 x 2... x k k 1, x i A für 1 i k } für alle A F Σ Sei G = (E, K) endlich, gerichtet, und (S, +,, 0, 1) abg. Seminring; Sei σ : K S Bewertungsfunktion für die Kanten. 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-3

5.3.2.1 Defninition Wert eines Weges W = k 1 k 2...k l : σ(w) := Π σ(k l ) (Produkt im Semiring) Speziell: Weg der Länge 0 hat den Wert 1 (Einselement im Semiring) Kosten: κ : E E S; κ(e, f) := Summe der Werte aller Wege von e nach f (Semiring-Operation +) Bemerkung: κ(e, f) kann 0 sein, z.b. wenn kein Weg von e nach f existiert. Wenn G Zyklen enthält, kann es unendlich viele Wege von e nach f geben; jedoch κ(e, f) ist stets definiert (wegen Eigenschaft (e)). l i=1 Beispiel 1: G (mit σ im Semiring S 1 ): 0 v 1 w x 1 Wert des Weges wxw ist 1 0 = 0 Jeder Weg von w nach w der Länge > 0 hat Wert σ = 0 Der Weg von w nach w der Länge 0 hat Wert σ = 1 Kosten κ(w,w) = 1 + 0 + 0 +.. = 1 Beispiel 2: G (mit σ im Semiring S 2 ): a 1 7 b c 5 Wert des Weges ac: σ (ac) = 7 Wert des Weges von a über b nach c: σ (abc) = 1 + 5 = 6 Kosten von a nach c: κ(a,c) = min{6, 7} = 6 Daher: hier wird der numerisch kostenminimale Weg bestimmt! Ziel: Bestimmung von κ(v, w) für alle v, w E für gegebenen Graphen G = (E, K) Der folgende Algorithmus benutzt die Semiring-Operationen, +, *. Annahme für die Bestimmung des Zeitaufwandes: alle Operationen brauchen gleich lang (1 Zeiteinheit). 5.3.2.2 Algorithmus zur Bestimmung der Kosten zwischen Knotenpaaren Eingabe: gerichteter Graph G = (E, K), E = {e 1, e 2,..., e n }, Bewertungsfunktion σ : E E S im abgeschlossenen Semiring (S, +,, 0, 1). Sei σ (e i, e j ) = 0 für alle Knotenpaare, die nicht durch eine Kante verbunden sind. Ausgabe: Summe κ : E E S der Werte aller Wege zwischen Knotenpaaren Verfahren: Es werden Werte C k ij (1 i n, 1 j n, 0 k n) bestimmt. C k ij gibt die Summe der Werte aller Wege von e i nach e j an, die über Knoten aus e 1, e 2,..., e k laufen. e i, und e j müssen dabei nicht in {e 1, e 2,..., e k } liegen (z.b. trägt der Weg e 8 e 3 e 5 zu C 4 85, aber nicht zu C 2 85 bei). (1) for i := 1 to n do C 0 ii := 1 + σ (e i, e i ); (2) for all i, j 1..n and i j do C 0 ij := σ (e i, e j ); (3) for k := 1 to n do (4) for all i, j 1..n do C k ij := C k 1 k 1 ij + C ik (C k 1 kk )* C kj (5) for all i, j 1..n do κ (e i, e j ) := C ij n ; 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-4 k 1 ; i k 1.. k 1 j 1.. k 1 5.3.2.3 Satz Algorithmus 5.3.2.2 berechnet κ(e i, e j ) für i, j 1..n in O(n 3 ) Operationen, +, *. Beweis. Zeile (4): wird n 3 mal durchlaufen; je Durchlauf 4 Operationen Schleifen in den Zeilen (1), (2), (5): n 2 Durchläufe. Daher: Zeitkomplexität ist O(n 3 ). 1.. k 1 Beweis der Korrektheit: Mittels Induktion über k wird gezeigt, dass C k ij die behauptete Eigenschaft besitzt. k = 0: C 0 ij erfüllt die Eigenschaft (Zeilen (1) und (2)) Induktionsschritt: folgt aus Zeile (4): Ein Weg von e i nach e j, der über Knoten aus {e 1, e 2,..., e k } läuft, hat

entweder keinen inneren Knoten mit Index > k 1 [Term C k 1 ij ], oder läuft zuerst von e i nach e k, dann 0-, 1- oder mehrmals nach e k, und schließlich von e k nach e j, wobei jeder Teilabschnitt nur über Knoten aus {e 1, e 2,..., e k 1 } läuft [Terme C k 1 ik, C k 1 kk, C k 1 kj ]. Nach Definition des Wertes eines Weges und der Kosten zwischen e i und e j erfolgt die Berechnung in (4) und (5) korrekt. 5.3.2.4 Anwendung des Algorithmus auf spezielle Fälle (a) Berechnung der reflexiv-transitiven Hülle eines Graphen Definition: Sei G = (E, K) gerichteter Graph; G* := (E, K*) "reflexiv-transitive Hülle von G" ist definiert durch: (e, f) K* : Weg von e nach f in G Bestimmung von G* nach Algorithmus 5.3.2.2 mittels Berechnung im Semiring S 1 = ({0, 1}, +,, 0, 1): Addition, Multiplikation und * sind leicht auszuführen; insbesondere: 0* = 1* = 1. Zeile (4) kann daher ersetzt werden durch : C k ij := C k 1 k 1 k 1 ij + C ik C kj Als Bewertungsfunktion σ wird gewählt: σ (e, f) := 0 falls (e, f) K 1 falls (e, f) K Aus dem Algorithmus folgt: κ(e, f) = 1 gdw. ein Weg von e nach f mit der Länge 0 Beispiel: Graph e 1 e 2 e 3 mit σ (e, f): e 1 e 2 e 3 e 1 1 1 1 e 2 1 0 0 e 3 0 1 0 e 1 e 2 e 3 e 1 e 2 e 3 C 0 ij : e 1 1 1 1 e 2 1 1 0... C 3 ij : e 1 1 1 1 e 2 1 1 1 e 3 0 1 1 e 3 1 1 1 (b) Bestimmung des kürzesten Weges in kantenbewerteten Graphen Hierbei wird S 2 = ( 0, min, +, +, 0) zugrunde gelegt. Die Kanten des Graphen werden mit einer Funktion σ : K 0 bewertet, und σ (e i, e j ) := (e i, e j ) K In Zeile (1) des Algorithmus 5.3.2.2 ergibt sich: C 0 ii := min{0, σ (e i, e i )} = 0 für alle i {1,..., n}, und da a* = 0 für alle a 0, vereinfacht sich Zeile 4 des Algorithmus zu C k ij := min(c k 1 ij, C k 1 ik + C k 1 kj ) (hier ist 0 und "+" in S 2 zu verstehen). Beispiel: 8 e 2 Bewertung σ ( ist das 0-Element des Semirings S 2 ) 2 e 1 3 2 e 1 e 2 e 3 e 1 2 8 4 4 e 2 3 e 3 e 3 2 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-5

C ij 0 8 4 3 0 2 0 0 : C ij 0 8 4 3 0 7 2 0 1 : C ij 0 8 4 3 0 7 5 2 0 2 : 3 = C ij 5.3.3 Zusammenhang zwischen Wegeproblemen und Matrizenoperationen Zunächst Matrizen: Sei (S, +,, 0, 1) abgeschlossener Semiring. Seien A, B, C Matrizen der Dimension n n mit Elementen aus S. A + B und Einige Bezeichnungen: M n A B sind wie üblich definiert... Menge aller n n Matrizen über S + n, n... Matrizenaddition, -multiplikation 1 0 n... Nullmatrix, 1 n... Einheitsmatrix 5.3.3.1 Lemma (M n, + n, n, 0 n, 1 n ) ist abgeschlossener Semiring. Beweis: als Übung Bemerkung: in (M n, + n, n, 0 n, 1 n ) ist zu jedem A M n die Hülle A * definiert: 0 n * = 1 n, 1 n * = 1 n, und A * i = Σ A i=0 Zurück zu Graphen: = 1 n + n A n A * Voraussetzung aus 5.3.2.2: gerichteter Graph G = (E, K), E = {e 1, e 2,..., e n }, Bewertungsfunktion σ : E E S im abgeschlossenen Semiring (S, +,, 0, 1), und σ (e i, e j ) = 0 e i, e j E E K. Sei A G die n n Matrix mit (A G ) ij = σ (e i, e j ). Im folgenden wird ein Zusammenhang zwischen κ : E E S der Werte aller Wege zwischen Knotenpaaren und A G * entwickelt. 5.3.3.2 Lemma Es gilt: κ (e i, e j ) = (A G *) ij Andeutung des Beweises: Es gilt A G * = Σ k AG, A 0 G = 1 n, und A k G = A G A k 1 G ( i 1). k=0 Durch Induktion über k wird gezeigt, dass das (i,j)-te Element von A G k gleich ist der Summe der Kosten aller Wege der Länge k von e i nach e j. Daraus und aus der Definition von A G * folgt die Behauptung. Aus diesem Lemma und dem Algorithmus zur Berechnung der Kosten zwischen Knotenpaaren folgt: der Algorithmus bestimmt die Hülle einer Matrix in O(n 3 ) Einzeloperationen. Zum Vergleich: Die Matrizenmultiplikation nach dem "üblichen" Verfahren (Spalten mal Zeilen) benötigt ebenfalls O(n 3 ) Einzeloperationen. Es wird nun gezeigt: Matrizenmultiplikation und Bestimmung der Hülle einer Matrix sind berechnungsäquivalent in folgendem Sinne: Zu jedem Algorithmus zur Matrizenmultiplikation gibt es einen Algorithmus zur Hüllenberechnung dessen Zeitkomplexität von derselben Ordnung ist, und umgekehrt. 5.3.3.3 Satz Wenn die Hülle einer n n-matrix über einem abgeschlossenen Semiring in T(n) Schritten berechnet werden kann, wobei T(3n) 27T(n), dann existiert eine Konstante c, und das Produkt zweier n n- Matrizen kann in T M ct(n) Schritten berechnet werden. Beweis: Seien A, B zwei n n-matrizen; A B ist zu berechnen ( 0 steht für 0 n, 1 steht für 1 n ). Bilde die Matrix X := 0 A 0 0 0 B 0 0 0 Bestimmung der Hülle von X: X 0 = 1 0 0 0 1 0 0 0 1 1 anstelle von + n, n wird auch kurz +, geschrieben, X 1 = X, X 2 = 0 0 A B 0 0 0 0 0 0, X 3 = X 4 =... = 0 3n 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-6

X * = 1 A A B 0 1 B 0 0 1 A B kann also aus X * abgelesen werden. Folglich ist T M T(3n) 27T(n) = O(T(n)). Bemerkung: Die Bedingung T(3n) 27T(n) ist keine Einschränkung, da T(n) O(n 3 ) gilt. Zu Satz 5.3.3.3 gibt es eine Umkehrung:. 5.3.3.4 Satz Wenn das Produkt zweier n n-matrizen über einem abgeschlossenen Semiring in T M (n) Schritten berechnet werden kann, und T M (2n) 4T M (n) gilt, dann existiert eine Konstante c, und die Hülle einer beliebigen n n-matrix kann in T(n) ct M (n) Schritten berechnet werden. Beweis: Sei X eine n n-matrix; sei zunächst angenommen, dass n eine Potenz von 2 ist: n = 2 k. Zerteile X in 4 Teilmatrizen jeweils der Dimension n 2 n 2 : X = A B C D X stellt (als Adjazenzmatrix mit Kantenwerten anstelle von 0, 1) einen kantenbewerteten Graphen G = (E, K) mit E = n Elementen dar. G kann nun so zerlegt werden in E 1, E 2 (E 1 E 2 =, E 1 E 2 = E) und E 1 = E 2 = 2 k 1, dass gilt: A repräsentiert alle Kanten innerhalb von E 1, D alle Kanten innerhalb von E 2, B repräsentiert alle Kanten, die von einem Knoten in E 1 zu einem Knoten in E 2 laufen, und C umgekehrt:. Wir betrachten nun die Matrix X * : diese beschreibt alle Wege im Graphen G. Ein Weg von e 1 nach e 2 mit e 1, e 2 E 1 hat folgende Form: entweder wird E 1 nie verlassen oder: der Weg wechselt zwischen E 1 und E 2 endlich oft hin und her: er verläuft zuerst in E 1 bis zu einem Knoten w 1, er betritt E 2 in einem Knoten x 1 und verläuft dort bis zu einem Knoten y 1, er kommt zurück nach E 1 in einem Knoten z 1 und verläuft dort weiter, bis zu einem Knoten w 2, usw. Schließlich endet der Weg in E 1 im Knoten e 2. Kosten aller Wege dieser Art: (A + B D * C) * : D * y k... Kosten aller Wege innerhalb E 2 B D * e C 2... Kosten aller Wege w i x i... y i z i ( w i, z i E 1, x i, y i E 2 ) A + B D * C... alle Wege zwischen Knoten von E 1, die entweder nur eine einzelne Kante haben, oder direkt nach E 2 springen und irgendwann wieder nach E 1 zurückkommen. Jeder Weg zwischen Knoten aus E 1 kann daher als Folge von Wegen dargestellt werden, die durch A + B D * C beschrieben werden, also durch (A + B D * C) *. Sei E := (A + B D * C) *. In der Matrix befindet sich E im 1. Quadranten (links oben). Ähnlich werden die übrigen Quadranten bestimmt: X * E E B D = * E F D * C E D * +D * C E B D * =: G H Zur Abschätzung des Zeitaufwands wird schrittweise die Berechnung der Quadraten betrachtet: T 1 := D * T 2 := B T 1 T 3 := T 1 C A e 1 E 1 B C E 2 E 1 E 2 w 1 x 1 z 1 w 2... z k y 1 x k D E = (A + T 2 C) * F := F T 2 G := T 3 E H := T 1 + G T 2 Insgesamt werden zur Berechnung von X * benötigt: 2 Hüllengerechnungen (*-Operationen), 6 Matrizenprodukte und 2 Additionen von 2 k 1 2 k 1 Matrizen. Bei rekursiver Berechnung der Hülle von X ergibt sich daher die Rekursionsgleichung für den Zeitaufwand: 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-7

T(1) = 1, T(2 k ) = 2T(2 k 1 ) + 6T M (2 k 1 2k 2 ) + 2 2 (5-1) Behauptung: es existiert eine Konstante c > 0, und T(2 k ) ct M (2 k ) für alle k. Induktion: k = 0: trivial, da c beliebig > 0 gewählt werden kann. Induktionsschritt: Sei c so, dass T(2 k 1 ) ct M (2 k 1 ). Zu zeigen ist: T(2 k ) ct M (2 k ). Aus der Voraussetzung T M (2n) 4T M (n) folgt T M (2 k 1 ) 2 2k 2 T(2 k ) (2c + 8) T M (2 k 1 ), (da T M (1) = 1). Aus (5-1) erhalten wir daher und mit der Voraussetzung T M (2n) 4T M (n) folgt T M (2 k 1 ) 1 4 T M(2 k ), also T(2 k ) ( 1 2 c + 2)T M(2 k ). Wenn c 4 gewählt wird, folgt T(2 k ) ct M (2 k ). Im Falle dass n keine Potenz von 2 ist, wird X in die kleinste Matrix eingebettet, deren Dimension eine Potenz X 0 von 2 ist:. Im ungünstigsten Fall wird die Dimension dadurch fast verdoppelt. Wahl einer neuen 0 1 Konstanten c' = 8c ergibt dann T(n) c't M (n).? ---- Fortsetzung Kapitel 5 folgt ---- 2001 K. Ecker Angewandte und praktische Informatik, Kap. 5: Graphenprobleme 5-8