graphenalgorithmen und lineare algebra hand in hand...
TRANSCRIPT
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
KIT – Die Forschungsuniversität 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 Master Informatik
Dozent: Prof. Dr. Henning Meyerhenke
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
2
VORLESUNG 1 Einführung
20. April 2016
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
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 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
4
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
Graphenalgorithmen und lineare Algebra Hand in Hand
http://www.facebook.com/marketing
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
5
Netzwerkanalyse
Empirische Untersuchung von Daten, die als Netzwerk (Graph) modelliert werden können
Modelle Struktur Maßzahlen Algorithmen
Anwendungsgebiete (Auswahl): 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
[http://www.swisscinema.org/gimage/ eec89088ee408b80387155272b113256.jpg]
[http://www.utoronto.ca/boonelab/ research_projects/images/fig11-3.gif]
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
6
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 Produktivität des Programmierers vs Effizienz des Programms
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
7
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
Vorgestellte Methoden selbstständig auf verwandte Fragestellungen anwenden
Inhalte: Effiziente praktische Lösung der behandelten Probleme ist wichtiger Bestandteil der Übungen Geht (teilweise) auch auf Aspekte der Parallelverarbeitung ein
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
8
Vorlesungsübersicht
Dualität von Graphen und Matrizen Grundlegende Graphenalgorithmen in Matrixalgebra
Datenstrukturen für Graphen und dünn besetzte Matrizen
Anwendungsbereiche: Netzwerkanalyse Layouten von Graphen Lastbalancierung mit Diffusion Partitionierung Ausdünnung von Graphen Gleichungssystemlöser
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
14
ORGANISATORISCHES
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
15
Bachelor-/Masterarbeiten
Insbesondere in den vorher genannten Themengebieten
Beschreibungen liegen aus und sind auf Gruppenwebseite zu Studium und Lehre:
http://parco.iti.kit.edu/lehre.shtml
Bei Interesse einfach ansprechen!
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
[http://www.oc.tu-bs.de/dickschat/masterarbeiten_de.html]
[http://www.uni-rostock.de/weiterbildung/fernstudien/medien-bildung/masterabschluss/]
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
16
Stellenangebote
HiWi-Stelle Doktorandenstelle
Unterstützung in Forschung und Lehre Themenbereich parallele Algorithmentechnik
Analyse von (sozialen) Netzwerken Kombinatorisches wissenschaftliches Rechnen Angewandte kombinatorische Optimierung
Studiengänge?
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
[http://www.ausbildungplus.de/ images_content/Berufswahl_180px.jpg]
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
17
Organisatorisches zur Veranstaltung
Vorlesung und Übung kombiniert Termine:
Mittwochs 14:00-15:30 Uhr im SR -119 Donnerstags 14:00-15:30 Uhr im SR -119 Übersicht auf
Vorlesungswebseite
SWS: 2+1
Sprechstunde: Nach Vereinbarung (E-Mail)
Webseite zur Vorlesung (bzw. Link auf weitere Details): http://parco.iti.kit.edu/henningm/lehre.shtml
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse
[http://igd-r.fraunhofer.de/awf_organisatorisches/?L=1]
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
18
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
Bonuspunkte für erfolgreiches Programmierprojekt
Projektvorstellung am Ende der Vorlesungszeit
Mündliche Prüfung voraussichtlich in KW 30 und Sep/Okt 2016
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]
[http://www.verlag-bauer.de/UserFiles/Image/start_uebung.gif]
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
19
Projekthilfsmittel NetworKit
Software zur interaktiven Netzwerkanalyse Schnell durch C++ und OpenMP
Anwendungsarbeit im Browser (Jupyter notebook) Paralleles Backend kann auf Server laufen
http://www.network-analysis.info
Begleitende Programmierübung Projektthemen erscheinen in ca. zwei Wochen Bedarf?
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
20
Literatur
Weitere Literatur: Angabe bei Bedarf auf Folien
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
21
EINLEITUNG UND MOTIVATION Abschnitt 1 (mit einigen Folien von Aydin Buluc, Berkeley Lab):
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
22
Motivation for graphs
A graph is an important abstract data structure Powerful tool for modelling complex problems Models discrete structures
Ubiquituous in daily-life applications: Road networks Social networks Communication networks UML diagrams Image processing
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
http://www.facebook.com/marketing
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
23
Motivation for linear algebra
A matrix is an important abstract data structure Powerful tool for modeling complex problems Models discretized physical processes (often)
Ubiquitous in scientific applications: Physical process: PDE Discretized PDE -> matrix
Numerical simulations FFT (your camera!) …
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
24
„Middleware“
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Computers
Continuous physical modeling
Linear algebra
Discrete structure analysis
Graph theory
Computers
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
25
Why both together?
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Design: Few basic operations
Analysis: As above
Implementation: As above
Experiments: Both types have acted as inputs
for benchmarks
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
26
Layered system approach (with examples)
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Applications
Algorithms
Primitives
Fluid flow simulation
Linear solver
MatVec
Statistical network analysis
Betweenness Centrality
BFS step
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
27
BLAS vs GraphBLAS
BLAS (Basic Linear Algebra Subroutines): Highly successful Used in many other libraries Dense LA
GraphBLAS New effort Standardization in progress Sparse graphs/matrices
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
28
ALGORITHMISCHE GRUNDLAGEN
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
29
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.
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
30
Ø 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
31
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
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
32
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.
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
33
Beispiel
mit und für
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
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
34
Jetzt sind Sie dran:
Frage: Welche Matrizen kennen Sie, um einen Graphen zu repräsentieren?
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
35
Beispiel für Dualität [KG, S. 4, S. 32f.]
BFS und Matrix-Vektor-Produkt BFS(G, s) ó AT x (wiederholt), x(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-Vektor-Multiplikation
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
36
Breadth-first search (BFS)
Basic graph traversal algorithm
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
1 2
3
4 7
6
5
1 2
3
4 7
6
5
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
37
1 2
3
4 7
6
5
AT
1
7
7 1 from
to
BFS in the language of linear algebra
Graph as adjacency matrix A (or AT, stored as sparse matrix) Auv: Edge from u to v
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
38
How do we express one BFS step?
Source: Entry 1 in vector x
What happens in matrix-vector product?
Interpretation: Result: Non-zeros at neighbors of source(s) Another matvec: 2-step neighbors, ...
Trick: Interpret these matvec operations as general semiring operations!
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
x
1
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
39
Semiring
A semiring is a set R equipped with two binary operations + and ·, called addition and multiplication, such that:
(R, +) is commutative semigroup with identity 0 (a + b) + c = a + (b + c) 0 + a = a + 0 = a a + b = b + a
(R, ·) is semigroup with identity 1 (a·b)·c = a·(b·c) 1·a = a·1 = a
Distributive multiplication a·(b + c) = (a·b) + (a·c) (a + b)·c = (a·c) + (b·c)
0 · a = a · 0 = 0
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
40
Other semiring
Exchange (+, ·) by two other operations... Actually we do not have to sum…
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
41
1 2
3
4 7
6
5
xAT
1
7
7 1 from
to
ATx
à
1
1
1
1
1parents:
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Par,cularsemiringopera,ons:Mul$ply:selectAdd:minimum
1
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
42
1 2
3
4 7
6
5
x
4
2
2
AT
1
7
7 1 from
to
ATx
à
2
4
4
2
24
1
1parents:4
2
2
Mul$plytraversesoutgoingedgesAddchoosesamongincomingedges(minimum)
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
11
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
43
1 2
3
4 7
6
5
x
3
AT
1
7
7 1 from
to
ATx
à 3
5
7
3
1
1parents:4
2
2
5
3
Selectvertexwithminimumlabelasparent
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
11
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
44
xAT
1
7
7 1 from
to
ATx
à
6
1 2
3
4 7
6
5
Result:Determinis,cbreadth-firstsearch
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
45
Fazit
BFS(G, s) und Matrix-Vektor-Produkt Vektor x: x(s) = 1, alle anderen Einträge 0 Matrix: AT, geeignete Datenstruktur
Theorem: (Ak)ij = Anzahl Wege der Länge k von i nach j Beweis: Übung!
1. Schritt: BFS(G, s) ó x(1) := AT x(0)
2. Schritt: BFS(G, s) ó x(2) := AT x(1) = (AT)2 x(0)
...
Anpassen der Operationen gemäß Halbring!
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
46
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?
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
47
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
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
48
The case for sparse matrices
Many irregular applications: • Coarse-grained parallelism
• Exploit by abstractions at proper level.
H. Meyerhenke: Graph Algorithms and Linear Algebra Hand in Hand
Traditional graph computations
Graphs in the language of linear algebra
Data driven, unpredictable communication
Fixed communication patterns
Irregular and unstructured, poor locality of reference
Operations on matrix blocks exploit memory hierarchy
Fine grained data accesses, dominated by latency
Coarse grained parallelism, bandwidth limited
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
49
Nachteile der Nutzung der Dualität
Frage: Was fällt Ihnen ein?
Graphenalgorithmen und lineare Algebra Hand in Hand
Prof. Dr. Henning Meyerhenke | Fakultät für Informatik
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
50
Ansatz der Vorlesung
Zunächst anhand grundlegender Algorithmen Dualität erklären Implementierungsaspekte beleuchten
Anwendung der Dualität: Algorithmisch Analytisch
Graphenalgorithmen und lineare Algebra Hand in Hand