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
29
Embed
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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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
! 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
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
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
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
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
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.
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
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
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
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
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?
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
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
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.