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