Graphenalgorithmen und lineare Algebra Hand in...

29
KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK www.kit.edu Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke

Transcript of Graphenalgorithmen und lineare Algebra Hand in...

Page 1: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK

www.kit.edu

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

Dozent: Juniorprof. Dr. Henning Meyerhenke

Page 2: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

2

VORLESUNG 1 Einführung

17. April 2012

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 3: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

3

Motivation

!   Graphen wichtige abstrakte Datenstrukturen !   Mächtiges Werkzeug zur Modellierung komplexer Probleme ! Allgegenwärtig in täglichen Anwendungen

!   Routenplanung !   Suchmaschine ! Matching: Partnersuche !   Netzwerkauslastung und -analyse !   Energieversorgung

!   Zunehmende Komplexität è Parallele Verarbeitung !   Herausforderung: Implementierung von Graphenalgorithmen

mit guter paralleler Performanz !   Analyse mit Methoden der Matrixalgebra häufig sehr nützlich

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 4: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

4

Lernziele

!   Verständnis für Zusammenhang zwischen Graphen und Matrizen

!   Auftretende Fragestellungen aus der Graphentheorie auf ihren algorithmischen Kern reduzieren

!   Analyse und/oder Lösung mit Techniken der linearen Algebra

!   Effiziente praktische Lösung der behandelten Probleme ist wichtiger Bestandteil der Übungen

!   Geht auch auf Aspekte der Parallelverarbeitung ein

!   Vorgestellte Methoden selbstständig auf verwandte Fragestellungen anwenden

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 5: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

5

Vorlesungsübersicht

!   Dualität von Graphen und Matrizen !   Zusammenhangskomponenten, kürzeste Wege !   Zentralitäten, Clusteranalyse

!   Tensoren ! Teilgrapherkennung !   Optimierung von Matrixstrukturen für Graphenalgorithmen

!   Spektrale Graphentheorie ! Lastbalancierung mit Diffusion !   Visualisierung von Graphen

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 6: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

10

Organisatorisches

!   Vorlesung und Übung kombiniert, dienstags ab 14:45 Uhr !   Sprechstunde: Nach Vereinbarung (E-Mail) !   Betreuung von Studien-/Bachelor- sowie Diplom- und

Masterarbeiten !   Webseite zur Vorlesung: http://parco.iti.kit.edu/henningm/lehre.shtml

!   Literatur:

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 7: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

11

EINLEITUNG UND MOTIVATION Abschnitt 1:

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 8: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

12

Was ist ein Algorithmus? !   Definition: Ein Algorithmus ist eine eindeutige

Beschreibung eines Verfahrens zur Lösung einer bestimmten Klasse von Problemen.

Schlüsselworte: !   Eindeutige Beschreibung !   eines Verfahrens !   zur Lösung !   einer Klasse von Problemen

Graphenalgorithmen und lineare Algebra Hand in Hand

Genauer: Ein Algorithmus ist eine Menge von Regeln für ein Verfahren, um aus gewissen Eingabegrößen bestimme Ausgabegrößen herzuleiten. Dabei muss

1.  Das Verfahren in einem endlichen Text beschreibbar sein. 2.  Jeder Schritt des Verfahrens auch tatsächlich ausführbar sein. 3.  Der Ablauf des Verfahrens zu jedem Zeitpunkt eindeutig

definiert sein.

Page 9: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

13

Ø Algorithmen müssen korrekt sein.

→ Benötigen Korrektheitsbeweise.

Ø Algorithmen sollen zeit- und speichereffizient sein.

→ Benötigen Analysemethoden für Zeit- und Speicherbedarf.

Ø Analyse basiert in der klassischen Algorithmik nicht auf empirischen Untersuchungen, sondern auf mathematischen Analysen. Man nutzt hierfür Pseudocode und Basisoperationen.

Ø Algorithmentechnik: Zyklus von Entwurf, Analyse, Implementierung und Experiment

Kriterien für Algorithmen

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 10: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

14

Definition: Multimenge

!   Eine Menge E mit einer Vielfachheit ihrer Elemente heißt Multimenge.

!   Die Kardinalität von E ist

!   Kurzschreibweise: !   für !   , falls und

Graphenalgorithmen und lineare Algebra Hand in Hand

| E |= #Ee∈E∑ (e).

#E : E→ 0

e∈k E e∈E# e #E (e)

# e = k

Page 11: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

15

Definition: Graph, Multigraph

!   Ein mglw. gerichteter Graph (bzw. Multigraph) ist ein Paar G = (V, E) aus einer endlichen Menge V von Knoten und einer Menge (bzw. Multimenge) E ⊆ V × V von Kanten.

!   Kanten e ∈ {(v, v) | v ∈ V} nennen wir Schleifen. !   Kanten e ∈ E in einem Multigraphen mit k > 1

(Mehrfachauftreten) heißen Multikanten. !   Ein Graph ist schlicht (simple), wenn er weder Schleifen noch

Multikanten hat.

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 12: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

16

Beispiel

!   𝑉={1,  2,  3,4} !   𝐸={(1,2),  (1,4),(2,3),(3,3),(4,1)}mit #(2,3)=2 und #𝑒=1 für 𝑒∈𝐸  \  {(2,3)}

!   (2,3) ist eine Multikante !   (3,3) ist eine Schleife

!   1 ist Vorgänger von 2 !   2 ist Nachfolger von 1 !   1 ist adjazent zu 2 !   (1, 2) ist inzident zu 1

(bzw. 2)

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 13: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

17

Jetzt sind Sie dran:

!   Frage: Welche Matrizen kennen Sie, um einen Graphen zu repräsentieren?

! Adjazenzmatrix ! Laplacematrix !   (Knoten-Kanten-Inzidenzmatrix)

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 14: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

18

Historie

!   Dualität zwischen einem schlichten Graphen (ohne weitere Information) und einer Adjazenzmatrix lange bekannt

!   Matrixalgebra etabliertes Werkzeug in der Graphentheorie

!   Allerdings: In algorithmischer Software wurden meist andere Repräsentationen gewählt

!   Frage: Mögliche Gründe? !   Speichereffizienz !   Semantische Informationen !   Anschaulichkeit

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 15: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

19

Vorteile der Nutzung der Dualität

!   Reduktion der syntaktischen Komplexität: !   Manche Graphenalgorithmen sind kompakter und einfacher

verständlich, wenn sie Array-basiert aufgeschrieben werden !   Personenkreise mit Kenntnissen in linearer Algebra haben

leichteren Zugang zur Graphentheorie (Ingenieure, Physiker, ...) !   Einfache Implementierung:

!   Nutzung der existierenden Software-Infrastruktur für parallele Berechnungen auf dünn besetzten Matrizen

!   Weniger Fehler durch Wiederverwendung !   Bessere Optimierung durch Spezialisten

!   Geschwindigkeit: !   Array-basierte Algorithmen heben stärker das Muster des

Datenzugriffs hervor !   Dadurch bessere Optimierung möglich

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 16: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

20

Nachteile der Nutzung der Dualität

!   Frage: Was fällt Ihnen ein?

!   Mangelnde Anschaulichkeit bei manchen Problemen

!   Bibliotheken ggf. nicht kostenlos erhältlich

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 17: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

21

Beispielalgorithmen und -anwendungen

!   APSP: Vorverarbeitung bei der Routenplanung

!   Partitionierung und Lastbalancierung: Effizientes paralleles Rechnen

!   Netzwerkanalyse: Hauptakteure in einem (sozialen) Netzwerk

! Tensorzerlegungen: Dokumente klassifizieren

!   Visualisierung von Graphen: Technische Zeichnungen, Geschäftsdatenanalyse

Graphenalgorithmen und lineare Algebra Hand in Hand

http://www.facebook.com/marketing

Page 18: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

22

ZUSAMMENHANG

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 19: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

23

Zusammenhangskomponenten

!   Anwendung: Aufteilung eines Web-Graphen in kleinere Teile

!   Mögliche Aufteilung: Starke Zusammenhangskomponenten

!   Mögliche Gründe: !   Analyse des Graphen mit

Algorithmus, der Zusammenhang erfordert

!   Der gesamte Graph ist zu groß für die Analyse

!   ...

Graphenalgorithmen und lineare Algebra Hand in Hand

[http://ars.sciencedirect.com/ content/image/1-s2.0-S0370157309002841-gr4.jpg]

Page 20: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

24

Zusammenhang

Definition (Zusammenhang): ! Ein Multigraph 𝐺=(𝑉,𝐸) heißt stark zusammenhängend, falls

er für jedes Paar 𝑢,𝑣∈𝑉 sowohl einen (𝑢,𝑣)-Weg als auch einen (𝑣,𝑢)-Weg enthält.

!   𝐺 heißt (schwach) zusammenhängend, wenn der symmetrische Multigraph (Kanten doppelt gerichtet) zu 𝐺 stark zusammenhängend ist.

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 21: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

25

Mehrfacher Zusammenhang

!   Ein ungerichteter Multigraph G heißt k-fach knotenzusammenhängend, falls jeder durch Entfernen von höchstens k-1 beliebigen Knoten (und aller inzidenten Kanten) entstehende Teilgraph von G zusammenhängend ist.

!   G heißt k-fach kantenzusammenhängend, falls jeder durch Entfernen von höchstens k-1 beliebigen Kanten entstehende Teilgraph von G zusammenhängend ist.

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 22: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

26

Komponenten

Definition (Komponenten): Zu einem schlichten Multigraphen G heißt ein maximaler

!   stark !   schwach !   k-fach knotenzushgd. !   k-fach kantenzushgd.

zusammenhängender Teilgraph !   starke !   schwache !   k-fache knotenzusammenhängende !   k-fach kantenzusammenhängende

Zusammenhangskomponente.

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 23: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

27

Beispiel Starke ZHK

Quelle: http://www.cs.berkeley.edu/~vazirani/s99cs170/notes/lec12.pdf

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 24: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

28

Algorithmus zum Finden der starken ZHK

!   Wollen nun starke ZHK in einem gerichteten Graphen finden

!   Beispiel: s. Tafel

!   Frage: Gibt es Vorschläge?

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 25: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

29

Die wesentliche Idee

!   Theorem: Ak(i, j) ist die Zahl der Wege der Länge k zwischen i und j

!   Beweis: s. Tafel

!   Definition ZHK: Es gibt einen Weg...

!   Frage (MG): Wie könnte ein Ansatz aussehen?

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 26: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

30

Auf dem Weg zum Algorithmus

!   C = I ∨ A ∨ A2 ∨ A3 ∨ A4 ∨ ... !   Nach Vorüberlegung: C(i,j) > 0 gdw. ein Weg zwischen i und j

existiert

!   Beispiel: s. Tafel

!   Jetzt sind wir noch nicht ganz am Ziel !   Frage: Was fehlt noch?

!   Wie verhält sich das bei ungerichteten Graphen?

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 27: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

31

Schnelle Berechnung von C

!   Statt der Oder-Operation verwenden wir die Addition: D = I + A + A2 + A3 + A4 + ...

!   Beide Matrizen C und D haben dasselbe Muster von Nichtnulleinträgen

!   Sei F := (I - A) D, dann gilt: F = D - AD = I + A + A2 + A3 + A4 + ...

- A - A2 - A3 - A4 - ... = I = (I – A) D

!   Also: D = (I – A)-1

!   Problem: Reihe konvergiert häufig nicht !   Frage (MG): Lösungsvorschläge?

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 28: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

32

Konvergenz

!   Idee: Skalar 0 < α < 1 wird mit der Matrix A multipliziert: D‘ = I + αA + (αA)2 + (αA)3 + (αA)4 + ...

!   Effekte: !   Das Muster der Nichtnulleinträge verändert sich nicht. !   Sei nun F‘ := (I - A) D‘. !   F‘ = I + αA + (αA)2 + (αA)3 + (αA)4 + ...

- αA - (αA)2 - (αA)3 - (αA)4 - ... = I = (I – αA) D‘

!   Also: D‘ = (I – αA)-1 !   Wenn α klein genug gewählt wird, dann konvergiert unsere

unendliche Folge !   Übung: Codebeispiel in Matlab !   Übung: Welches Kriterium für unsere Zwecke?

Graphenalgorithmen und lineare Algebra Hand in Hand

Page 29: Graphenalgorithmen und lineare Algebra Hand in Handparco.iti.uni-karlsruhe.de/henningm/GALA/GALA-slides-01.pdf · Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät

Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

33

Zusammenfassung

!   Starke ZHK ist maximaler stark zusammenhängender Teilgraph (jeder Knoten erreicht jeden anderen in der ZHK)

!   Mit einer potenzierten Adjazenzmatrix lassen sich Wege zählen

!   Reihe von potenzierten Matrizen liefert uns (fast) die Lösung

!   Konvergenz wird durch zusätzliches Skalar erzwungen

!   Unterschied zwischen gerichteten und ungerichteten Graphen

Graphenalgorithmen und lineare Algebra Hand in Hand