Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in...

89
Grundbegrie der Informatik Kapitel : Erste Algorithmen in Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester / GBI — Grundbegrie der Informatik KIT, Institut für Theoretische Informatik /

Transcript of Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in...

Page 1: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Grundbegri�e der InformatikKapitel 16: Erste Algorithmen in Graphen

Thomas Worsch

KIT, Institut für Theoretische Informatik

Wintersemester 2015/2016

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 1 / 58

Page 2: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Überblick

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen2-Erreichbarkeit an einem BeispielMatrizenmultiplikation und Matrizenaddition

Einfache Berechnung der ErreichbarkeitsrelationPotenzen der AdjazenzmatrixErste Möglichkeit für die Berechnung der WegematrixZählen arithmetischer OperationenSchnellere Berechnungen der Wegematrix

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 2 / 58

Page 3: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen

Einfache Berechnung der Erreichbarkeitsrelation

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 3 / 58

Page 4: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Objekte im Rechner — Knoten, Kanten und Graphen

class Vertex {String name;

}

class Edge {Vertex start;Vertex end;

}

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

}

«Knoteninhalte» für uns irrelevant

mehr als eine Mengemehr als eine Menge

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 4 / 58

Page 5: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Objekte im Rechner — Knoten, Kanten und Graphen

class Vertex {String name;

}

class Edge {Vertex start;Vertex end;

}

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

}

«Knoteninhalte» für uns irrelevant

mehr als eine Mengemehr als eine Menge

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 4 / 58

Page 6: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Objekte im Rechner — Knoten, Kanten und Graphen

class Vertex {String name;

}

class Edge {Vertex start;Vertex end;

}

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

}

«Knoteninhalte» für uns irrelevant

mehr als eine Mengemehr als eine Menge

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 4 / 58

Page 7: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Objekte im Rechner — Knoten, Kanten und Graphen

class Vertex {int id;

}

class Edge {Vertex start;Vertex end;

}

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

}

Annahme: Wertebereich Z |V |

mehr als eine Mengemehr als eine Menge

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 4 / 58

Page 8: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Adjazenzlisten — eine andere Repräsentation fürGraphen

class Vertex {int id;Vertex[] neighbors;

}

class Edge {Vertex start;Vertex end;

}

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

}

Feldlänge = Knotengrad

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 5 / 58

Page 9: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Inzidenzlisten

class Vertex {int id;Edge[] incoming;Edge[] outgoing;

}

class Edge {Vertex start;Vertex end;

}

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

}

Feldlänge = EingangsknotengradFeldlänge = Ausgangsknotengrad

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 6 / 58

Page 10: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Variante von Adjazenzlisten (auf dem Weg zu Matrizen)

class Vertex {int id;boolean[] is_connected_to;

}

class Graph {Vertex[] vertices;

}

Feldlänge = |V |

u.is_connected_to[v .id]

=

true falls (u,v ) ∈ E

false falls (u,v ) < E

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 7 / 58

Page 11: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Variante von Adjazenzlisten für einen Beispielgraph

0 1 2

3

Objekt u für Knoten 0u.id u.is_connected_to

0 1 2 30 false true false true

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 8 / 58

Page 12: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Variante von Adjazenzlisten für einen Beispielgraph

0 1 2

3

u.id u.is_connected_to0 1 2 3

0 false true false true

1 false false false false

2 false true true true

3 false false true false

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 9 / 58

Page 13: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Variante von Adjazenzlisten für einen Beispielgraph

0 1 2

3

u.id u.is_connected_to0 1 2 3

0 false true false true1 false false false false2 false true true true3 false false true false

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 9 / 58

Page 14: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Adjazenzmatrix eines gerichteten Graphen

0 1 2

3

G = (V ,E) gerichtet mit n Knotenn × n-Matrix A mit

Ai j =

1 falls (i, j ) ∈ E

0 falls (i, j ) < E

ungerichtetes U = (V ,E) ; G = (V ,Eд )

Beispiel

*....,

0 1 2 3

0 0 1 0 11 0 0 0 02 0 1 1 13 0 0 1 0

+////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 10 / 58

Page 15: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Repräsentation von Relationen durch Matrizenendliche Menge M mit n Elementen

binäre Relation R ⊆ M ×M

repräsentiert durch n × n-Matrix A(R):

(A(R))i j =

1 falls (i, j ) ∈ R d. h. also iRj

0 falls (i, j ) < R d. h. also ¬(iRj )

verschiedene Relationen↔ verschiedene Matrizen

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 11 / 58

Page 16: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wegematrix eines GraphenErreichbarkeitsrelation E∗ als MatrixW

Wi j =

1 falls (i, j ) ∈ E∗

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 Graphengesucht: zugehörige Wegematrix des Graphen

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 12 / 58

Page 17: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wegematrix — ein Beispiel

0 1 2

3

A =*....,

0 1 2 3

0 0 1 0 11 0 0 0 12 0 1 1 03 0 0 1 0

+////-

Wi j =

1 falls (i, j ) ∈ E∗

0 falls (i, j ) < E∗

W =*....,

0 1 2 3

0

1 1 1 1

1

0 1 1 1

2

0 1 1 1

3

0 1 1 1

+////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 58

Page 18: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wegematrix — ein Beispiel

0 1 2

3

A =*....,

0 1 2 3

0 0 1 0 11 0 0 0 12 0 1 1 03 0 0 1 0

+////-

Wi j =

1 falls (i, j ) ∈ E∗

0 falls (i, j ) < E∗

W =*....,

0 1 2 3

0

1 1 1 1

1

0 1 1 1

2

0 1 1 1

3

0 1 1 1

+////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 58

Page 19: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wegematrix — ein Beispiel

0 1 2

3

A =*....,

0 1 2 3

0 0 1 0 11 0 0 0 12 0 1 1 03 0 0 1 0

+////-

Wi j =

1 falls (i, j ) ∈ E∗

0 falls (i, j ) < E∗

W =*....,

0 1 2 3

0 1

1 1 1

1

0

1

1 1

2

0 1

1

1

3

0 1 1

1

+////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 58

Page 20: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wegematrix — ein Beispiel

0 1 2

3

A =*....,

0 1 2 3

0 0 1 0 11 0 0 0 12 0 1 1 03 0 0 1 0

+////-

Wi j =

1 falls (i, j ) ∈ E∗

0 falls (i, j ) < E∗

W =*....,

0 1 2 3

0 1 1 1 11

0

1

1 1

2

0 1

1

1

3

0 1 1

1

+////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 58

Page 21: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wegematrix — ein Beispiel

0 1 2

3

A =*....,

0 1 2 3

0 0 1 0 11 0 0 0 12 0 1 1 03 0 0 1 0

+////-

Wi j =

1 falls (i, j ) ∈ E∗

0 falls (i, j ) < E∗

W =*....,

0 1 2 3

0 1 1 1 11 0 1

1 1

2 0

1

1

1

3 0

1 1

1

+////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 58

Page 22: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wegematrix — ein Beispiel

0 1 2

3

A =*....,

0 1 2 3

0 0 1 0 11 0 0 0 12 0 1 1 03 0 0 1 0

+////-

Wi j =

1 falls (i, j ) ∈ E∗

0 falls (i, j ) < E∗

W =*....,

0 1 2 3

0 1 1 1 11 0 1 1 12 0 1 1 13 0 1 1 1

+////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 58

Page 23: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Was ist wichtigDas sollten Sie mitnehmen:

Repräsentation von Relationen als Matrizenz. B. Kantenrelation eines Graphen: Adjazenzmatrix

Das sollten Sie üben:zu gegebenem Graphen die Adjazenzmatrix hinschreibenzu gegebener Adjazenzmatrix den Graphen hinmalenz. B. für irgendwelche „speziellen“ Graphen und Matrizen

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 14 / 58

Page 24: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen2-Erreichbarkeit an einem BeispielMatrizenmultiplikation und Matrizenaddition

Einfache Berechnung der Erreichbarkeitsrelation

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 15 / 58

Page 25: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen2-Erreichbarkeit an einem BeispielMatrizenmultiplikation und Matrizenaddition

Einfache Berechnung der Erreichbarkeitsrelation

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 58

Page 26: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

2-Erreichbarkeit an einem Beispiel

01

2 3 456

*............,

0 1 2 3 4 5 6

0 0 0 0 0 1 0 01 0 0 0 0 1 0 02 0 1 0 1 0 0 13 0 0 0 0 0 0 04 0 0 0 0 0 0 05 0 0 0 0 0 0 06 0 0 0 0 1 0 0

+////////////-

gesucht: Pfade der Länge 2von Knoten 2 zu Knoten 4

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 58

Page 27: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

2-Erreichbarkeit an einem Beispiel

01

2 3 456

*............,

0 1 2 3 4 5 6

0 0 0 0 0 1 0 01 0 0 0 0 1 0 02 0 1 0 1 0 0 13 0 0 0 0 0 0 04 0 0 0 0 0 0 05 0 0 0 0 0 0 06 0 0 0 0 1 0 0

+////////////-

gesucht: Pfade der Länge 2von Knoten 2 zu Knoten 4

hinsehen: (2, 1, 4) und (2, 6, 4)

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 18 / 58

Page 28: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Systematische Suche nach Pfaden im Beispielalle Pfade?

prüfe für alle Knoten k ∈ V :Ist (2,k, 4) ein Pfad?

Ist (2,k ) ∈ E und (k, 4) ∈ E?Ist A2k = 1 und Ak4 = 1?Ist A2k · Ak4 = 1?

durchlaufe sequenziell für alle kgleichzeitig alle A2k und alle Ak4, d. h.Zeile für Knoten 2 und Spalte für Knoten 4

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 19 / 58

Page 29: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Systematische Suche nach Pfaden im Beispielalle Pfade?

prüfe für alle Knoten k ∈ V :Ist (2,k, 4) ein Pfad?Ist (2,k ) ∈ E und (k, 4) ∈ E?

Ist A2k = 1 und Ak4 = 1?Ist A2k · Ak4 = 1?

durchlaufe sequenziell für alle kgleichzeitig alle A2k und alle Ak4, d. h.Zeile für Knoten 2 und Spalte für Knoten 4

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 19 / 58

Page 30: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Systematische Suche nach Pfaden im Beispielalle Pfade?

prüfe für alle Knoten k ∈ V :Ist (2,k, 4) ein Pfad?Ist (2,k ) ∈ E und (k, 4) ∈ E?Ist A2k = 1 und Ak4 = 1?

Ist A2k · Ak4 = 1?

durchlaufe sequenziell für alle kgleichzeitig alle A2k und alle Ak4, d. h.Zeile für Knoten 2 und Spalte für Knoten 4

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 19 / 58

Page 31: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Systematische Suche nach Pfaden im Beispielalle Pfade?

prüfe für alle Knoten k ∈ V :Ist (2,k, 4) ein Pfad?Ist (2,k ) ∈ E und (k, 4) ∈ E?Ist A2k = 1 und Ak4 = 1?Ist A2k · Ak4 = 1?

durchlaufe sequenziell für alle kgleichzeitig alle A2k und alle Ak4, d. h.Zeile für Knoten 2 und Spalte für Knoten 4

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 19 / 58

Page 32: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Systematische Suche nach Pfaden im Beispielalle Pfade?

prüfe für alle Knoten k ∈ V :Ist (2,k, 4) ein Pfad?Ist (2,k ) ∈ E und (k, 4) ∈ E?Ist A2k = 1 und Ak4 = 1?Ist A2k · Ak4 = 1?

durchlaufe sequenziell für alle kgleichzeitig alle A2k und alle Ak4, d. h.Zeile für Knoten 2 und Spalte für Knoten 4

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 19 / 58

Page 33: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Systematische Suche nach Pfaden

*...........,

A: 0 1 2 3 4 5 6

1100001

+///////////-

*...........,

A: 0

1

2 0 1 0 1 0 0 13

4

5

6

+///////////-

0

1

2 3 4

5

6

01

00

00

1

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 58

Page 34: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Zählen der Pfade im Beispiel

*...........,

0 1 2 3 4 5 6

1100001

+///////////-

*...........,

0

1

2 0 1 0 1 0 0 13

4

5

6

+///////////-

*...........,

2+///////////-

01

00

00

1

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 21 / 58

Page 35: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Zählen der Pfade im Beispiel (2)

P24 =6∑

k=0A2k · Ak4

*...........,

0 1 2 3 4 5 6

1100001

+///////////-

*...........,

0

1

2 0 1 0 1 0 0 13

4

5

6

+///////////-

*...........,

2+///////////-

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 22 / 58

Page 36: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen2-Erreichbarkeit an einem BeispielMatrizenmultiplikation und Matrizenaddition

Einfache Berechnung der Erreichbarkeitsrelation

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 23 / 58

Page 37: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Matrizenmultiplikationes sei

A eine ` × n-MatrixB eine n ×m-Matrix

Produkt C = A · B die ` ×m-Matrix mit

Ci j =

n−1∑k=0

Aik · Bk j

im Allgemeinen A · B , B · A

falls überhaupt beides definiert, also ` =m

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 24 / 58

Page 38: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Algorithmus für Matrizenmultiplikation

` Zeilenm Spalten

Ci j =

n−1∑k=0

Aik · Bk j

zunächst die naheliegende Möglichkeitdemnächst: es geht auch anders!

for i ← 0 to ` − 1 dofor j ← 0 to m − 1 doCi j ← 0for k ← 0 to n − 1 doCi j ← Ci j +Aik · Bk j

odod

od

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 25 / 58

Page 39: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Einheitsmatrizen

1 0 · · · 00 1 0

......

0 1 00 1 0

0 1 00 · · · 0 1

Einheitsmatrix I quadratische Matrix mit

Ii j =

1 falls i = j

0 falls i , j

für jedem × n-Matrix A gilt

I · A = A = A · I

linke Einheitsmatrixm ×mrechte Einheitsmatrix n × n

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 26 / 58

Page 40: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Potenzen quadratischer Matrizen

A0 = I

∀n ∈ N0 : An+1 = An · A

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 27 / 58

Page 41: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

�adrierte Adjazenzmatrix

A2 einer Adjazenzmatrix A

(A2)i j =n−1∑k=0

AikAk j

AikAk j = 1⇐⇒ Aik = Ak j = 1⇐⇒ Kanten von i nach k und von k nach j existieren⇐⇒ (i,k, j ) ein Pfad der Länge 2 von i nach j ist.

und 0 sonst.

für k1 , k2 sind (i,k1, j ) und (i,k2, j ) verschieden

(A2)i j ist Anzahl der Pfade der Länge 2 von i nach j

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 58

Page 42: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Matrizenaddition

(1 23 4

)+

(10 2030 40

)=

(11 2233 44

)A und B zweim × n-Matrizen

Summe C = A + B istm × n-Matrix mit

Ci j = Ai j + Bi j

stets A + B = B +A

neutrales Element: Nullmatrix 0, überall Nullen

algorithmisch:

for i ← 0 to m − 1 dofor j ← 0 to n − 1 do

Ci j ← Ai j + Bi jod

od

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 29 / 58

Page 43: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen

Einfache Berechnung der ErreichbarkeitsrelationPotenzen der AdjazenzmatrixErste Möglichkeit für die Berechnung der WegematrixZählen arithmetischer OperationenSchnellere Berechnungen der Wegematrix

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 30 / 58

Page 44: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Berechnung von E∗ — die naheliegende IdeeBenutze

E∗ =⋃i ∈N0

Ei

um die Wegematrix zu berechnen.

Probleme:

Was kann man gegen das unendlich tun?Woher kommen die Matrizen für die Relationen Ei?Welcher Matrizen-Operation entspricht die Vereinigung?

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 31 / 58

Page 45: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Berechnung von E∗ — die naheliegende IdeeBenutze

E∗ =⋃i ∈N0

Ei

um die Wegematrix zu berechnen.

Probleme:Was kann man gegen das unendlich tun?

Woher kommen die Matrizen für die Relationen Ei?Welcher Matrizen-Operation entspricht die Vereinigung?

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 31 / 58

Page 46: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Berechnung von E∗ — die naheliegende IdeeBenutze

E∗ =⋃i ∈N0

Ei

um die Wegematrix zu berechnen.

Probleme:Was kann man gegen das unendlich tun?Woher kommen die Matrizen für die Relationen Ei?

Welcher Matrizen-Operation entspricht die Vereinigung?

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 31 / 58

Page 47: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Berechnung von E∗ — die naheliegende IdeeBenutze

E∗ =⋃i ∈N0

Ei

um die Wegematrix zu berechnen.

Probleme:Was kann man gegen das unendlich tun?Woher kommen die Matrizen für die Relationen Ei?Welcher Matrizen-Operation entspricht die Vereinigung?

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 31 / 58

Page 48: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Beseitigung der unendlichen VereinigungExistiert Pfad in G von Knoten i nach Knoten j ?

SeiG = (V ,E) mit |V | = n

nur endlich viele Knoten

p = (i0, i1, . . . , ik ) ein Pfad mit i0 = i und ik = j.

wenn k ≥ n, dannenthält p Zyklus von x nach xWeglassen ergibt kürzeren Pfad von i nach j

wiederhole, solange Pfadlänge ≥ n

Ergebnis: Pfad mit Länge ≤ n − 1 von i nach j

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 32 / 58

Page 49: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Beseitigung der unendlichen VereinigungExistiert Pfad in G von Knoten i nach Knoten j ?

SeiG = (V ,E) mit |V | = n

nur endlich viele Knoten

p = (i0, i1, . . . , ik ) ein Pfad mit i0 = i und ik = j.

wenn k ≥ n, dannenthält p Zyklus von x nach xWeglassen ergibt kürzeren Pfad von i nach j

wiederhole, solange Pfadlänge ≥ n

Ergebnis: Pfad mit Länge ≤ n − 1 von i nach j

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 32 / 58

Page 50: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Beseitigung der unendlichen VereinigungExistiert Pfad in G von Knoten i nach Knoten j ?

SeiG = (V ,E) mit |V | = n

nur endlich viele Knoten

p = (i0, i1, . . . , ik ) ein Pfad mit i0 = i und ik = j.

wenn k ≥ n, dannenthält p Zyklus von x nach xWeglassen ergibt kürzeren Pfad von i nach j

wiederhole, solange Pfadlänge ≥ n

Ergebnis: Pfad mit Länge ≤ n − 1 von i nach j

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 32 / 58

Page 51: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Beseitigung der unendlichen Vereinigung (2)eben begründet

LemmaFür jeden gerichteten Graphen G = (V ,E) mit n Knoten gilt:

E∗ =⋃i ∈Zn

Ei

längere Pfade schaden nicht

LemmaFür jeden gerichteten Graphen G = (V ,E) mit n Knoten gilt:

∀k ≥ n − 1 : E∗ =⋃i ∈Zk

Ei

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 58

Page 52: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Beseitigung der unendlichen Vereinigung (2)eben begründet

LemmaFür jeden gerichteten Graphen G = (V ,E) mit n Knoten gilt:

E∗ =⋃i ∈Zn

Ei

längere Pfade schaden nicht

LemmaFür jeden gerichteten Graphen G = (V ,E) mit n Knoten gilt:

∀k ≥ n − 1 : E∗ =⋃i ∈Zk

Ei

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 58

Page 53: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen

Einfache Berechnung der ErreichbarkeitsrelationPotenzen der AdjazenzmatrixErste Möglichkeit für die Berechnung der WegematrixZählen arithmetischer OperationenSchnellere Berechnungen der Wegematrix

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 34 / 58

Page 54: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Potenzen der Adjazenzmatrix haben eine Bedeutung

LemmaEs sei G ein gerichteter Graph mit Adjazenzmatrix A.Für alle k ∈ N0 gilt:

(Ak )i j ist die Anzahl der Pfade der Länge k in G von i nach j.

Beweis durch vollständige Induktion.Induktionsschri� fast wie im Fall k = 2.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 58

Page 55: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Signum-Funktion

sgn : R→ R : sgn(x ) =

1 falls x > 00 falls x = 0−1 falls x < 0

bei Matrizen komponentenweise

sgn : Rm×n → Rm×n mit (sgn(M ))i j = sgn(Mi j )

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 36 / 58

Page 56: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Matrizendarstellung für Ek — sgn(Ak ) tut es

KorollarEs sei G ein gerichteter Graph mit Adjazenzmatrix A.Für alle k ∈ N0 gilt:1.

sgn((Ak )i j ) =

1 falls in G ein Pfad der Länge kvon i nach j existiert

0 falls in G kein Pfad der Länge kvon i nach j existiert

2. Matrix sgn(Ak ) repräsentiert die Relation Ek .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 37 / 58

Page 57: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen

Einfache Berechnung der ErreichbarkeitsrelationPotenzen der AdjazenzmatrixErste Möglichkeit für die Berechnung der WegematrixZählen arithmetischer OperationenSchnellere Berechnungen der Wegematrix

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 38 / 58

Page 58: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Vereinigung von RelationenRelationen R ⊆ M ×M und R′ ⊆ M ×M repräsentiert durchMatrizen A und A′.

dann:

(i, j ) ∈ R ∪ R′ ↔ (i, j ) ∈ R ∨ (i, j ) ∈ R′

↔ Ai j = 1 ∨A′i j = 1

↔ Ai j +A′i j ≥ 1

↔ (A +A′)i j ≥ 1↔ sgn(A +A′)i j = 1

R ∪ R′ wird durch sgn(A +A′) repräsentiert

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 39 / 58

Page 59: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Eine erste Formel für die Wegematrix —es gibt auch noch andere . . .

LemmaEs sei G ein gerichteter Graph mit Adjazenzmatrix A.Dann gilt für alle k ≥ n − 1:

Die Matrix sgn(∑k

i=0Ai ) repräsentiert die Relation E∗.

Mit anderen Worten:

W = sgn *,

k∑i=0

Ai+-

ist die Wegematrix des Graphen G.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 58

Page 60: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Beweisnoch zu überlegen⋃n−1

i=0 Ei durch sgn(

∑ki=0 sgn(Ai )) repräsentiert

leichte Verallgemeinerung des Falles R ∪ R′

„innere“ Anwendungen von sgn dürfen fehlenWenn alle Matrixeinträge ≥ 0 sind, gilt:

sgn(sgn(M ) + sgn(M ′))i j = sgn(M +M ′)i j

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 41 / 58

Page 61: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Einfachster Algorithmus für die Wegematrix

〈Matrix A sei die Adjazenzmatrix〉W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

od

{ M = Ai }

W ←W +M

{W =∑i

k=0Ak }

odW ← sgn(W )

{W ist die Wegematrix }

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 42 / 58

Page 62: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Einfachster Algorithmus für die Wegematrix

〈Matrix A sei die Adjazenzmatrix〉W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

od{ M = Ai }

W ←W +M

{W =∑i

k=0Ak }

odW ← sgn(W )

{W ist die Wegematrix }

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 42 / 58

Page 63: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen

Einfache Berechnung der ErreichbarkeitsrelationPotenzen der AdjazenzmatrixErste Möglichkeit für die Berechnung der WegematrixZählen arithmetischer OperationenSchnellere Berechnungen der Wegematrix

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 43 / 58

Page 64: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Was ist der «Aufwand» eines Algorithmus?Anzahl Codezeilen?

Entwicklungszeit?

Anzahl Schri�e?nicht immer gleich

benötigter Speicherplatz?nicht immer gleich

vorläufig: Anzahl arithmetischer Operationenspäter anders

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 58

Page 65: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Matrizenaddition?

for i ← 0 to m − 1 dofor j ← 0 to n − 1 do

Ci j ← Ai j + Bi jod

od

m · n Additionen

für n × n-Matrizen: n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 45 / 58

Page 66: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Multiplikation?

for i ← 0 to ` − 1 dofor j ← 0 to m − 1 doCi j ← 0for k ← 0 to n − 1 doCi j ← Ci j +Aik · Bk j

odod

od

` ·m · n Additionen und` ·m · n Multiplikationen

für n × n-Matrizen: 2n3kleine Variante: 2n3 − n2

Achtung: es geht auch mitweniger Operationen!

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 58

Page 67: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Wegematrix?

W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

odW ←W +M

odW ← sgn(W )

Aufwand:

*,

n−1∑i=0

i+-· (2n3 − n2) + n · n2 + n2

= n5 −32n4 +

32n3 + n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 58

Page 68: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Wegematrix?

W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

odW ←W +M

odW ← sgn(W )

Aufwand:

*,

n−1∑i=0

i+-· (2n3 − n2) + n · n2 + n2

= n5 −32n4 +

32n3 + n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 58

Page 69: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Wegematrix?

W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

odW ←W +M

odW ← sgn(W )

Aufwand:

*,

n−1∑i=0

i+-· (2n3 − n2) + n · n2 + n2

= n5 −32n4 +

32n3 + n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 58

Page 70: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Wegematrix?

W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

odW ←W +M

odW ← sgn(W )

Aufwand:

*,

n−1∑i=0

i+-· (2n3 − n2) + n · n2 + n2

= n5 −32n4 +

32n3 + n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 58

Page 71: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Wegematrix?

W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

odW ←W +M

odW ← sgn(W )

Aufwand:

*,

n−1∑i=0

i+-· (2n3 − n2) + n · n2 + n2

= n5 −32n4 +

32n3 + n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 58

Page 72: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wieviele elementare Operationen für Wegematrix?

W ← 0for i ← 0 to n − 1 doM ← Ifor j ← 1 to i doM ← M · A

odW ←W +M

odW ← sgn(W )

Aufwand:

*,

n−1∑i=0

i+-· (2n3 − n2) + n · n2 + n2

= n5 −32n4 +

32n3 + n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 58

Page 73: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen

Einfache Berechnung der ErreichbarkeitsrelationPotenzen der AdjazenzmatrixErste Möglichkeit für die Berechnung der WegematrixZählen arithmetischer OperationenSchnellere Berechnungen der Wegematrix

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 48 / 58

Page 74: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wiederverwendung —auch bei Zwischenergebnissen eine gute Sache

W ← 0M ← Ifor i ← 0 to n − 1 doW ←W +MM ← M · A

odW ← sgn(W )

für Ai kann man Ai−1 wiederverwenden

Aufwand:

n · (n2 + (2n3 − n2)) + n2 = 2n4 + n2

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 49 / 58

Page 75: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Es geht noch besser —erst mehr denken und dann weniger rechnen

Schon vergessen?

∀k ≥ n − 1 : E∗ =k⋃i=0

Ei

Wie kann ein k > n − 1 helfen?

sta� n − 1 wähle kleinste Zweierpotenz k = 2m ≥ nalsom = dlog2 nefinde Matrix F mitW = F 2

m= (· · · ((F 2)2) · · · )2

nur nochm = dlog2 ne Matrizenmultiplikationen

Preisfrage: Wie sieht F aus?

Wähle Matrix F für Relation E0 ∪ E1 = IV ∪ E.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 50 / 58

Page 76: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Es geht noch besser —erst mehr denken und dann weniger rechnen

Schon vergessen?

∀k ≥ n − 1 : E∗ =k⋃i=0

Ei

Wie kann ein k > n − 1 helfen?sta� n − 1 wähle kleinste Zweierpotenz k = 2m ≥ nalsom = dlog2 nefinde Matrix F mitW = F 2

m= (· · · ((F 2)2) · · · )2

nur nochm = dlog2 ne Matrizenmultiplikationen

Preisfrage: Wie sieht F aus?

Wähle Matrix F für Relation E0 ∪ E1 = IV ∪ E.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 50 / 58

Page 77: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Es geht noch besser —erst mehr denken und dann weniger rechnen

Schon vergessen?

∀k ≥ n − 1 : E∗ =k⋃i=0

Ei

Wie kann ein k > n − 1 helfen?sta� n − 1 wähle kleinste Zweierpotenz k = 2m ≥ nalsom = dlog2 nefinde Matrix F mitW = F 2

m= (· · · ((F 2)2) · · · )2

nur nochm = dlog2 ne Matrizenmultiplikationen

Preisfrage: Wie sieht F aus?

Wähle Matrix F für Relation E0 ∪ E1 = IV ∪ E.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 50 / 58

Page 78: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Es geht noch besser —erst mehr denken und dann weniger rechnen

Schon vergessen?

∀k ≥ n − 1 : E∗ =k⋃i=0

Ei

Wie kann ein k > n − 1 helfen?sta� n − 1 wähle kleinste Zweierpotenz k = 2m ≥ nalsom = dlog2 nefinde Matrix F mitW = F 2

m= (· · · ((F 2)2) · · · )2

nur nochm = dlog2 ne Matrizenmultiplikationen

Preisfrage: Wie sieht F aus?

Wähle Matrix F für Relation E0 ∪ E1 = IV ∪ E.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 50 / 58

Page 79: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Es geht noch besser (2)

F = E0 ∪ E1

F 2 = (E0 ∪ E1) ◦ (E0 ∪ E1) = E0 ∪ E1 ∪ E1 ∪ E2

= E0 ∪ E1 ∪ E2

F 4 = (F 2)2 = (E0 ∪ E1 ∪ E2) ◦ (E0 ∪ E1 ∪ E2)

= . . .

= E0 ∪ E1 ∪ E2 ∪ E3 ∪ E4

Induktion: Für allem ∈ N0 gilt:

F 2m=

2m⋃i=0

Ei

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 51 / 58

Page 80: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Es geht noch besser (3)

F ← I +Am ← dlog2 nefor i ← 1 to m doF ← F · F

odW ← sgn(F )

Berechnung von dlog2 ne aus nbenötigt höchstens dlog2 ne Operationen

Aufwand:n2 + dlog2 ne + dlog2 ne · (2n3 − n2) + n2

= dlog2 ne · 2n3 + · · ·

«besser» als 2n4nächstes Kapitel: präzise ungenau sein

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 52 / 58

Page 81: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Was ist wichtigDas sollten Sie mitnehmen:

die naheliegende Idee nicht immer die besteDenken, Mathematik, Kreativität,Einfach-mal-drüber-schlafen, . . .

Das sollten Sie üben:Aufwandsabschätzungen bei (ineinander geschachtelten)Schleifenauch mal verrückte Ideen ausprobieren

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 53 / 58

Page 82: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Wo sind wir?

Repräsentation von Graphen im Rechner

Berechnung der 2-Erreichbarkeitsrelation und Rechnen mit Matrizen

Einfache Berechnung der Erreichbarkeitsrelation

Algorithmus von Warshall

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 54 / 58

Page 83: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Algorithmus von Warshall — noch ein bisschen schneller

for i ← 0 to n − 1 dofor j ← 0 to n − 1 do

Wi j ←

1 falls i = j

Ai j falls i , j

odod

for k ← 0 to n − 1 dofor i ← 0 to n − 1 dofor j ← 0 to n − 1 doWi j ← max(Wi j ,Wik ·Wk j )

odod

od

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 55 / 58

Page 84: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Algorithmus von Warshall — noch ein bisschen schneller

for i ← 0 to n − 1 dofor j ← 0 to n − 1 do

W [0]i j ←

1 falls i = j

Ai j falls i , j

odod

for k ← 0 to n − 1 dofor i ← 0 to n − 1 dofor j ← 0 to n − 1 doW [k+1]

i j ← max(W [k]i j ,W

[k]ik ·W

[k]k j )

odod

od

Pfad p = (v0,v1, . . . ,vm−1,vm )der Längem

v1, . . . , vm−1 Zwischenknotenm ≤ 1: keine Zwischenknoten

W [k]i j = 1←→Pfad von i nach j undnur Zwischenknoten mitNummern x < k benutzt

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 56 / 58

Page 85: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Algorithmus von Warshall — noch ein bisschen schneller

for i ← 0 to n − 1 dofor j ← 0 to n − 1 do

W [0]i j ←

1 falls i = j

Ai j falls i , j

odod

for k ← 0 to n − 1 dofor i ← 0 to n − 1 dofor j ← 0 to n − 1 doW [k+1]

i j ← max(W [k]i j ,W

[k]ik ·W

[k]k j )

odod

od

Pfad p = (v0,v1, . . . ,vm−1,vm )der Längem

v1, . . . , vm−1 Zwischenknotenm ≤ 1: keine Zwischenknoten

W [k]i j = 1←→Pfad von i nach j undnur Zwischenknoten mitNummern x < k benutzt

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 56 / 58

Page 86: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Algorithmus von Warshall — noch ein bisschen schneller

for i ← 0 to n − 1 dofor j ← 0 to n − 1 do

W [0]i j ←

1 falls i = j

Ai j falls i , j

odod

for k ← 0 to n − 1 dofor i ← 0 to n − 1 dofor j ← 0 to n − 1 doW [k+1]

i j ← max(W [k]i j ,W

[k]ik ·W

[k]k j )

odod

od

Pfad p = (v0,v1, . . . ,vm−1,vm )der Längem

v1, . . . , vm−1 Zwischenknotenm ≤ 1: keine Zwischenknoten

W [k]i j = 1←→Pfad von i nach j undnur Zwischenknoten mitNummern x < k benutzt

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 56 / 58

Page 87: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Algorithmus von Warshall — noch ein bisschen schneller

for i ← 0 to n − 1 dofor j ← 0 to n − 1 do

W [0]i j ←

1 falls i = j

Ai j falls i , j

odod

for k ← 0 to n − 1 dofor i ← 0 to n − 1 dofor j ← 0 to n − 1 doW [k+1]

i j ← max(W [k]i j ,W

[k]ik ·W

[k]k j )

odod

od

Pfad p = (v0,v1, . . . ,vm−1,vm )der Längem

v1, . . . , vm−1 Zwischenknotenm ≤ 1: keine Zwischenknoten

W [k]i j = 1←→Pfad von i nach j undnur Zwischenknoten mitNummern x < k benutzt

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 56 / 58

Page 88: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

Zum Aufwand des Algorithmus von Warshalldrei ineinander geschachtelte Schleifen

deren jeweiliger Rumpf n-mal durchlaufen wird

„irgendwie ungefähr“ n3 Operationen . . .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 57 / 58

Page 89: Grundbegriffe der Informatik - Kapitel 16: Erste Algorithmen in …gbi.ira.uka.de/vorlesungen/k-16-alg-graphen-folien.pdf · 2016. 11. 8. · GBI — Grundbegri˙e der InformatikKIT,

ZusammenfassungRepräsentationen von Graphen im Rechner

Berechnung der Wegematrixmit vielen oder weniger OperationenAlgorithmus von Warshall kommt mit weniger Operationenaus als alle unsere vorherigen Versuche

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 58 / 58