Graphenalgorithmen und lineare Algebra Hand in Hand

Transcription

Graphenalgorithmen und lineare Algebra Hand in Hand
Graphenalgorithmen und lineare Algebra Hand in Hand
Vorlesung für den Bereich Master Informatik
Dozent: Juniorprof. Dr. Henning Meyerhenke
PARALLELES RECHNEN
INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK
KIT – Universität des Landes Baden-Württemberg und
nationales Forschungszentrum in der Helmholtz-Gemeinschaft
www.kit.edu
15. April 2014
VORLESUNG 1
Einführung
2
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Motivation
!   Graphen wichtige abstrakte Datenstrukturen
!   Mächtiges Werkzeug zur Modellierung komplexer Probleme
! Allgegenwärtig in täglichen Anwendungen
!
!
!
!
!
3
 
 
 
 
 
Straßennetzwerke in Navigationsgeräten
Soziale Netzwerke
Kommunikationsnetze
UML-Diagramme
Bildverarbeitung
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispielalgorithmen und -anwendungen
!   APSP: Vorverarbeitung bei der
Routenplanung
!   Partitionierung und
Lastbalancierung: Effizientes
paralleles Rechnen
!   Netzwerkanalyse: Hauptakteure in
einem (sozialen) Netzwerk
!   Visualisierung von Graphen:
Technische Zeichnungen,
Geschäftsdatenanalyse
http://www.facebook.com/marketing
4
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Netzwerkanalyse
!   Empirische Untersuchung von Daten, die als Netzwerk
(Graph) modelliert werden können
!
!
!
!
 
 
 
 
Modelle
Struktur
Maßzahlen
Algorithmen
!   Anwendungsgebiete (Auswahl):
!
!
!
!
5
 
 
 
 
[http://www.swisscinema.org/gimage/
eec89088ee408b80387155272b113256.jpg]
[http://www.utoronto.ca/boonelab/
research_projects/images/fig11-3.gif]
Technik: Internet und Telefon, Strom, Transport und Logistik, ...
Information: WWW, Zitierungen, ...
Biologie: Protein-Protein-Interaktionen, ...
Soziales: Soziale Online-Netzwerke, Politik, ...
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Skalierbare Verarbeitung
!   Große Datenmengen ! Skalierbare Verarbeitung
!   Herausforderung: Implementierung von Graphenalgorithmen
mit guter (paralleler) Performanz
!   Analyse mit Methoden der Matrixalgebra häufig sehr nützlich
!   Implementierung mit Matrixalgebra oft deutlich kürzer
6
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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 (teilweise) auch auf Aspekte der Parallelverarbeitung ein
!   Vorgestellte Methoden selbstständig auf verwandte
Fragestellungen anwenden
7
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Vorlesungsübersicht
!   Dualität von Graphen und Matrizen
!   Grundlegende Graphenalgorithmen in Matrixalgebra
!   Netzwerkanalyse
!   Optimierung von Matrixstrukturen für Graphenalgorithmen
!   Spektrale Methoden
!
!
!
!
Lastbalancierung mit Diffusion
  Spektrale Partitionierung
  Ausdünnung von Graphen
  Gleichungssystemlöser
!   Layouten von Graphen
8
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
ORGANISATORISCHES
14
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Bachelor-/Masterarbeiten
!   Gerne!
!   Insbesondere in den vorher
genannten Themengebieten
!   Beschreibungen liegen aus und
sind auf Gruppenwebseite zu
Studium und Lehre:
[http://www.uni-rostock.de/weiterbildung/fernstudien/medien-bildung/masterabschluss/]
! http://parco.iti.kit.edu/lehre.shtml
!   Bei Interesse einfach
ansprechen!
15
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
[http://www.oc.tu-bs.de/dickschat/masterarbeiten_de.html]
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Stellenangebote
! HiWi-Stellen
!   Doktorandenstellen
!   Zur Zeit eine HiWi-Stelle ausgeschrieben
[http://www.ausbildungplus.de/
images_content/Berufswahl_180px.jpg]
!   Unterstützung in Forschung und Lehre
!   Themenbereich parallele Algorithmentechnik
!   Analyse von (sozialen) Netzwerken
!   Beschleunigung wissenschaftlicher Simulationen
!   Studiengänge?
16
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Organisatorisches zur Veranstaltung
!   Vorlesung und Übung kombiniert
!   Termine:
!   Dienstags 11:30-13:00 Uhr im SR 236
!   Donnerstags 15:45-17:15 Uhr im SR 236
!   Übersicht auf
Vorlesungswebseite
!   SWS: 2+1
[http://igd-r.fraunhofer.de/awf_organisatorisches/?L=1]
!   Sprechstunde: Nach Vereinbarung (E-Mail)
!   Webseite zur Vorlesung (bzw. Link auf weitere Details):
http://parco.iti.kit.edu/henningm/lehre.shtml
17
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Methodik des Übungsbetriebs
!   Aufgaben sowohl theoretisch (z. B.
vglw. einfache Beweise) als auch
praktisch (z. B. Implementierung)
!   Übungen: Teilnehmer präsentieren
ihre Lösungen zu Übungsaufgaben
[http://www.verlag-bauer.de/UserFiles/Image/start_uebung.gif]
!   Bonuspunkte für erfolgreiches
Programmierprojekt
!   Projektvorstellung am Ende der
Vorlesungszeit
!   Mündliche Prüfung voraussichtlich
in KW 32 und Sep/Okt 2014
18
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
[http://www.slideshine.de/browser/uploads/412/Intelligente%20Wege%20zu%20
neuen%20Ideen%20%28Clipart%29/7598-Gl%C3%BChbirne%20Aha.jpg]
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Projekthilfsmittel NetworKit
!   Software zur interaktiven Netzwerkanalyse
!   Schnell durch C++ und OpenMP
!   Anwendungsarbeit im Browser (ipython notebook)
!   Paralleles Backend kann auf Server laufen
! http://www.network-analysis.info
!   Begleitende Programmierübung
!   Projektthemen erscheinen in ca. zwei Wochen
!   Bedarf?
19
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Literatur
!   Weitere Literatur: Angabe bei Bedarf auf Folien
20
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Abschnitt 1:
EINLEITUNG UND MOTIVATION
21
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Was ist ein Algorithmus?
!   Definition: Ein Algorithmus ist eine eindeutige
Beschreibung eines Verfahrens zur Lösung einer
bestimmten Klasse von Problemen.
Schlüsselworte:
Genauer: Ein Algorithmus ist eine Menge von Regeln für ein
umBeschreibung
aus gewissen Eingabegrößen bestimme
!Verfahren,
  Eindeutige
herzuleiten. Dabei muss
!Ausgabegrößen
  eines Verfahrens
1.  Lösung
Das Verfahren in einem endlichen Text beschreibbar sein.
!   zur
2.  Jeder Schritt des Verfahrens auch tatsächlich ausführbar sein.
!   einer
Klasse von Problemen
3.  Der Ablauf des Verfahrens zu jedem Zeitpunkt eindeutig
definiert sein.
22
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Kriterien für Algorithmen
"  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
23
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Definition: Multimenge
!   Eine Menge E mit einer Vielfachheit # E : E →  0 ihrer
Elemente heißt Multimenge.
!   Die Kardinalität von E ist | E |=
∑#
E
(e).
e∈E
!   Kurzschreibweise:
!   # e für # E (e)
! 
24
e ∈k E , falls e ∈E und # e = k
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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 2 {(v, v) | v 2 V} nennen wir Schleifen.
!   Kanten e 2 E in einem Multigraphen mit k > 1
(Mehrfachauftreten) heißen Multikanten.
!   Ein Graph ist schlicht (simple), wenn er weder Schleifen noch
Multikanten hat.
25
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel
! mit und für
!   ist eine Multikante
!   (3,3) ist eine Schleife
!
!
!
!
26
Graphenalgorithmen und lineare Algebra Hand in Hand
 
 
 
 
1 ist Vorgänger von 2
2 ist Nachfolger von 1
1 ist adjazent zu 2
(1, 2) ist inzident zu 1
(bzw. 2)
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Jetzt sind Sie dran:
!   Frage: Welche Matrizen kennen Sie, um einen Graphen zu
repräsentieren?
27
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel für Dualität [KG, S. 4f.]
!   BFS und Matrix-Vektor-Produkt
!   BFS(G, s) # AT v, v(s) = 1
!   Graphenalgorithmen in Halbringnotation
! Halbring: Algebraische Struktur mit
!
!
!
!
!
 
 
 
 
 
einer (nichtleeren) Menge und mit
zwei zweistelligen Verknüpfungen (Addition, Multiplikation).
Addition ist eine kommutative Halbgruppe,
Multiplikation ist eine Halbgruppe,
es gelten die Distributivgesetze.
!   A op1.op2 v: Abkürzung für Matrix-Multiplikation
28
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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?
29
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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
30
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Nachteile der Nutzung der Dualität
!   Frage: Was fällt Ihnen ein?
31
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Ansatz der Vorlesung
!   Zunächst anhand grundlegender Algorithmen Dualität
erklären
!   Implementierungsaspekte beleuchten
!   Anwendung der Dualität:
!   Algorithmisch
!   Analytisch
32
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
ZUSAMMENHANG
33
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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
!   ...
34
Graphenalgorithmen und lineare Algebra Hand in Hand
[http://ars.sciencedirect.com/
content/image/1-s2.0-S0370157309002841-gr4.jpg]
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zusammenhang
Definition (Zusammenhang):
! Ein Multigraph G=(V, E) heißt stark zusammenhängend, falls
er für jedes Paar (u, v) in V V sowohl einen (u,v)-Weg als
auch einen (v,u)-Weg enthält.
!   G heißt (schwach) zusammenhängend, wenn der
symmetrische Multigraph (Kanten doppelt gerichtet)
zu G stark zusammenhängend ist.
35
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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.
36
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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.
37
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel Starke ZHK
Quelle:
http://www.cs.berkeley.edu/~vazirani/s99cs170/notes/lec12.pdf
38
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Algorithmus zum Finden der starken ZHK
!   Wollen nun starke ZHK in einem gerichteten Graphen finden
!   Beispiel: s. Tafel
!   Frage: Gibt es Vorschläge?
39
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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?
40
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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?
41
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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?
42
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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: Welches Kriterium für unsere Zwecke?
43
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
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
44
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik