Algorithmen und Datenstrukturen
C7. Graphen: Ausblick
Gabriele R¨ oger
Universit¨ at Basel
20. Mai 2020
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 1 / 15
Algorithmen und Datenstrukturen
20. Mai 2020 — C7. Graphen: Ausblick
C7.1 Andere Graphenprobleme
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 2 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
C7.1 Andere Graphenprobleme
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 3 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Inhalt dieser Veranstaltung
A&D
Sortieren Komplexit¨ ats-
analyse Fundamentale Datenstrukturen
Suchen Graphen
Repr¨ asentation Exploration Exploration:
Anwendungen Minimale Spannb¨ aume
K¨ urzeste Pfade Andere Graphenprobleme Strings
Weiterf¨ uhrende Themen
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 4 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Crashkurs Komplexit¨ atstheorie
I Entscheidungsprobleme: Ja/Nein-Antwort gesucht Gegeben gewichteter Graph, Knoten s, t und Zahl K.
Gibt es einen Pfad von s nach t mit Kosten h¨ ochstens K?
I Suchprobleme: tats¨ achliche L¨ osung gesucht Gegeben gewichteter Graph und Knoten s, t.
Finde einen k¨ urzesten Pfad von s nach t.
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 5 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Crashkurs Komplexit¨ atstheorie
Wir unterscheiden verschiedene Klassen von Problemen:
I P: alle Probleme, die man mit einem polynomiellen
Algorithmus (in O(p) f¨ ur irgendein Polynom p) l¨ osen kann.
I NP: alle Probleme, bei denen man einen Beweis f¨ ur eine Ja-Antwort des Entscheidungsproblems in polynomieller Zeit verifizieren kann.
Beweis: z.B. konkreter Pfad mit Kosten ≤ K
I P 6= NP? Wir wissen es nicht.
I NP-schwere Probleme: Probleme, die mindestens so schwierig sind, wie die schwierigsten Probleme in NP.
→ keine polynomiellen Verfahren bekannt.
I NP-vollst¨ andige Entscheidungsprobleme: NP-schwer & in NP I NP-¨ aquivalente Suchprobleme: zugeh¨ origes
Entscheidungsproblem NP-vollst¨ andig
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 6 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Fl¨ usse in Graphen I
Definition (Flussnetzwerk)
Ein Flussnetzwerk N = (G , s , t, k ) ist gegeben durch I einen gerichteten Graphen G = (V , E ),
I einer Quelle (source) s ∈ V , I einer Senke (target) t ∈ V , und I einer Kapazit¨ atsfunktion k : E → R ∞ + .
s 1
2
3 4
5 t
7 18
8
5 3
5 13
6
2 1
6 12
5
1
12 16
4
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 7 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Fl¨ usse in Graphen II
Definition (Fluss)
Ein s-t-Fluss f weisst jeder Kante einen Wert aus R ≥0 zu, wobei I der Flusswert die Kapazit¨ at der Kante nicht ¨ ubersteigt:
f (e) ≤ k(e) f¨ ur alle e ∈ E I bei allen Knoten ausser der Quelle und der Senke
genauso viel hinein wie hinaus fliesst:
X
(u,w)∈E w=v
f ((u, w )) = X
(u,w)∈E u=v
f ((u, w )) f¨ ur alle v ∈ V \ {s, t}
Der Wert des Flusses ist der ¨ Uberschuss in der Senke:
|f | = X
(u,w)∈E w=t
f ((u, w )) − X
(u,w)∈E u=t
f ((u, w ))
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 8 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Beispiel
s 1
2
3 4
5 t
7
18 18
0 8
5 5 3 3
2 5
13 13
6 2
2 0 0 1
6 6 3 12
5 0
1 1
12 4 16 1
4 0
Wie schwer ist es, einen maximalen Fluss zu finden?
z.B. mit Edmonds-Karp-Algorithmus in O(|E| 2 |V |)
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 9 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Cliquen
Definition (Clique)
Eine Clique in einem ungerichteten Graphen (V , E ) ist eine
Teilmenge C ⊆ V der Knoten, bei der jedes Knotenpaar durch eine Kante verbunden ist: f¨ ur u, v ∈ C mit u 6= v gilt {u, v } ∈ E .
0 1
2 3
4 5
6
7
Wie schwer ist es, eine gr¨ osste Clique in einem Graphen zu finden?
NP-¨ aquivalent
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 10 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Graphenisomorphie
Definition (Graphenisomorphie)
Zwei Graphen sind isomorph, wenn sie bis auf die Namen der Knoten gleich sind.
0 1
2 3
4
5 6
7 b g
k f
h l
p
d
Wie schwer ist es zu entscheiden, ob zwei Graphen isomorph sind?
In NP, aber unbekannt ob in P und/oder NP-vollst¨ andig
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 11 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
F¨ arbbarkeit
Definition (k-F¨ arbbarkeit)
Ein ungerichteter Graph G = (V , E) ist k -f¨ arbbar (k ∈ N ), falls es eine F¨ arbung f : V → {1, . . . , k} gibt, so dass f¨ ur alle {v , w } ∈ E gilt: f (v ) 6= f (w ).
0 1
2
3 4
5 6
7
Wie schwer ist es zu entscheiden, ob ein gegebener Graph k-f¨ arbbar ist?
NP-vollst¨ andig
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 12 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
K¨ onigsberger Br¨ uckenproblem
Gibt es einen Rundweg, der jede Br¨ ucke exakt einmal verwendet?
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 13 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Eulerkreis
Definition (Eulerkreis)
Ein Eulerkreis in einem Graphen ist ein Zyklus, der jede Kante genau einmal enth¨ alt.
Wie schwer ist es zu entscheiden, ob ein Graph einen Eulerkreis hat?
Hat Eulerkreis gdw. jeder Knoten geraden Grad hat und Graph verbunden ist.
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 14 / 15
C7. Graphen: Ausblick Andere Graphenprobleme
Inhalt dieser Veranstaltung
A&D
Sortieren Komplexit¨ ats-
analyse Fundamentale Datenstrukturen
Suchen Graphen
Strings
G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 15 / 15