Sie sind auf Seite 1von 34

Algorithmen und

Wahrscheinlichkeit

Angelika Steger

Institut für Theoretische Informatik


Kapitel 1.3

Zusammenhang
Zusammenhang

Definition: Sei G = (V, E) ein Graph.


G heisst zusammenhängend, wenn
⇤u, v V, u ⇥= v gilt: es gibt einen u-v-Pfad in G.

Heute:
Gegeben ein zusammenhängender Graph.

Wie (sehr) zusammenhängend ist dieser Graph?


k-Zusammenhang

Definition: Sei G = (V, E) ein Graph.


G heisst k-zusammenhängend, wenn gilt:
und

⇥X V mit |X| < k ist G[V \ X] zusammenhängend

Definition: Sei G = (V, E) ein Graph.

G heisst k-kanten-zusammenhängend, wenn gilt:


8X ✓ E mit |X| < k ist (V, E \ X) zusammenhängend
Heute:

Spezialfall k=1
Artikulationsknoten

Definition: Sei G = (V, E) ein zusammenhängender Graph.


Ein Knoten v 2 V heisst Artikulationsknoten (engl. cut vertex)
gdw. G[V \ {v}] nicht zusammenhängend ist
Brücken

Definition: Sei G = (V, E) ein zusammenhängender Graph.


Ein Kante e 2 E heisst Brücke (engl. cut edge)
gdw. G e nicht zusammenhängend ist
Wie findet man Artikulationsknoten
bzw Brücken effizient ?
Tiefensuche

9 3
root
1 4

2 8
12
7
5

10 6

11
Tiefensuche

9 3
root
1 4

2 8
12
7
5

10 6

11
Tiefensuche

9 3
root
1 4

2 8
12
7
5

10 6

11
Tiefensuche

dfs / low
9/1 3/1
root
1 4/3

12/10 2/1 8/3


7/3
5/3

6/3
10/10

11/10
Tiefensuche

dfs / low
9/1 3/1
s=root
1 4/3

12/10 2/1 8/3


7/3
5/3

6/3
10/10

11/10
Tiefensuche

9/1 3/3
root
1/1 4/3
4/4

2/2 8/8
8/3
7/7
7/3
5/5
5/3

6/6
6/3

Berechnung der low-Werte:


- Initialisierung mit dfs-Wert
- ggf update, wenn Rückwärtskanten gefunden werden
- ggf update, wenn Algorithmus während des backtracks
zum Knoten zurückkehrt
Tiefensuche
Brücken

dfs / low
9/1 3/1
root
1 4/3

12/10 2/1 8/3


7/3
2/1
5/3
7/3
6/3
10/10

11/10
eine Kante e ={v,w} ist eine Brücke

gdw. e ∈ T (im DFS Baum) und

w ein Kind von v ist mit low[w] > dfs[v]

Artikulationsknoten und Brücken

Satz: Die um die Berechnung von low[] ergänzte


Tiefensuche berechnet in einem
zusammenhängenden Graphen alle
Artikulationsknoten und Brücken
in Zeit O(m).
Blöcke

Sei G = (V, E) ein zusammenhängender Graph.



Eine Block ist eine maximale Menge von Kanten, so dass je zwei dieser Kanten
auf einem gemeinsamen Kreis liegen.
Kapitel 1.3

Kreise
Hamiltonkreise und Eulertouren

• Sei G = (V, E) ein Graph.


• Hamiltonkreis:

• Ein Kreis in G, der jeden Knoten genau einmal enthält.

• Eulertour:

• Ein geschlossener Weg in G, der jede Kante genau einmal enthält.


Königsberger Brückenproblem

Leonard Euler
(1707 - 1783)

Gesucht: Eulertour
Eulertour: Charakterisierung

Satz: Ein zusammenhängender Graph G = (V, E) enthält eine Eulertour

gdw. der Grad jedes Knotens gerade ist.

… und eine solche kann man in O(|E|) Zeit finden

Bem: Sind in einem zusammenhängenden Graphen G = (V, E) alle bis


auf zwei Knotengrade gerade, so enthält der Graph einen Eulerweg

(Ein Eulerweg ist ein Weg, der alle Kanten des Graphen enthält — aber nicht
notwendigerweise im gleichen Knoten startet und endet.)
Idee des Algorithmus
Idee des Algorithmus
Idee des Algorithmus
Idee des Algorithmus
Idee des Algorithmus
Idee des Algorithmus
Eulertour: Charakterisierung

Satz: Ein zusammenhängender Graph G = (V, E) enthält eine Eulertour

gdw. der Grad jedes Knotens gerade ist.

… und eine solche kann man in O(|E|) Zeit finden

Bem: Sind in einem zusammenhängenden Graphen G = (V, E) alle bis


auf zwei Knotengrade gerade, so enthält der Graph einen Eulerweg

(Ein Eulerweg ist ein Weg, der alle Kanten des Graphen enthält — aber nicht
notwendigerweise im gleichen Knoten startet und endet.)
Hamiltonkreise und Eulertouren

• Sei G = (V, E) ein Graph.


• Hamiltonkreis:

• Ein Kreis in G, der jeden Knoten genau einmal enthält.

• Eulertour:

• Ein geschlossener Weg in G, der jede Kante genau einmal enthält.


Hamiltonkreis

Sir William Hamilton


(1805 - 1865)
Ikosaeder Spiel

Gesucht: Hamiltonkreis
Hamiltonkreis - Beispiele

Ikosaeder Petersengraph
Hamiltonkreis - Beispiele

Satz:

Ein n×m Gitter enthält einen Hamiltonkreis gdw n*m gerade ist.

Hamiltonkreis - Beispiele

Satz:

Ein n×m Gitter enthält einen Hamiltonkreis gdw n*m gerade ist.

Beweis:

„⇐“ siehe Skizze: