Graphen - Professur für Theoretische Informatik

Werbung
Graphen
1 / 65
Graphen
Bei Modellierungsaufgaben geht es oft darum,
Objekte sowie Beziehungen zwischen je zwei Objekten
zu beschreiben: Graphen sind dafür maßgeschneidert.
Ein Graph besteht aus
„Knoten“ (repräsentieren Objekte) und
„Kanten“ (repräsentieren Beziehungen zwischen je zwei Objekten).
Ein erstes Beispiel: Der Netzplan der Frankfurter S- und U-Bahnen zeigt U- und S-Bahn
Stationen (als Knoten) und Direktverbindungen zwischen den Stationen (als Kanten).
2 / 65
-
Gießen
W
Sö öl
de fe
l rsh
ei
m
h
Ro
Ro
sb
dh
rn
pe
Kö
p
r
d
pe
ten
eO
W
es
n
stä
eld
erd
orf
rfe
Nie
dte
en
n
lde
u
na
el
Gro
rdo
de
dV
ilb
Ba
ian
eim
l
be
kö
ch
Bru
er
tz
eu
tpla
m
i
ark
de
M
rg
rle
lbe
ise
us
Ka
üh
M
rm
S
Pla chw
tz eiz
Le
en
ord
uN
a
na
Fu
Mainhausen Zellhausen
ch
era
Aschaffenburg
Babenhausen
Alt
he
im
rge
rsh
au
rg
be
eim
inh
He
se
**
n
Babenhausen Langstadt
feld
rg
t
tad
ms
Ra
Ob
er-
l
lta
üh
M
t
Os
dt
sta
rm
Da
D
TU arm
-Lic sta
htw dt
ies
e
nic
bu
ng
Die
M
hs
es
se
tein
l
Münster
Groß-Umstadt Klein-Umstadt
Le
al
Urb
en
Off
Gö
th
ain
nh
tze
ieic
Dre
Eppertshausen
Re
ng
eld
dli
elf
ren
Rollwald
ain
he
Sp
nh
W
eib
Seligenstadt
Nieder-Roden
RödermarkOber-Roden
Kra
rm
s
No tadt
rd
Da
t
tad
ers
Dudenhofen
Groß-Umstadt
Otz
ran
Pla dttz
-B
W
illy
u
era
W
eit
ß-G
Gro
an Wo
nh rm
ei s/
m
M
in-G
era
u
eim
uh
Na
Kle
Re
gio
na Flug
lba ha
hn fen
ho
f
h
ac
im
he
un
terb
Ra
els
ss
Rü
Ke
ls
im
he
erk
Op
im
rg
he
Bis
ch
ofs
elw
r
ate
bu
vs
sta
rg
he
bu
d
sT
en
Hainburg Hainstadt
Jügesheim
Dietzenbach
Mitte
Dietzenbach
Bahnhof
Offenbach Hbf
Sü
Gu
ff
rt
he
Ha
ha
Hainhausen
kfu
isc
th
sc
an
öm
Os
Be
Ba
rke
dV
ilb
rsh
el
eim
Sü
d
erg
rB
rte
fu
nk
Fra
eg
ilw
Ze
Le
ipz platz
B
ige
W ock
ar en r Str
te he
.
im
er
ch
Ob
alb
Sa
Kir
Kil
A
Hanau
Klein-Auheim
Weiskirchen
Steinberg
Fr
zR
eim
Alt
inh
F
M esth
es all
se e/
Ste
Waldhof
Obertshausen
Heusenstamm
f
ain
n
rau
ho
M
se
de
hn
**
au
n
lba
Darmstadt Hbf
nh
he
ka
Arheilgen
Heidelberg/Mannheim
el
Eic
Lo
Gernsheim
st
of
Änderungen vorbehalten. Gültig ab 15. Juni 2008
© Rhein-Main-Verkehrsverbund GmbH
ld
rgh
Bu
hle
eim
rh
ch
W
eh
urg
/Lo
N
An eusp
ac
h
Us
us
Ha
W
ilh
mü
)
en
(Ts
ing
sd
elm
nd
Hu
en
dt
orf
ch
sta
orn
ba
elb
ies
ss
nw
Ha
ve
Grä
G
ch
t
nh
Worms
** Eröffnung im Laufe des Fahrplanjahres 2008
** bis 13.12.2008: Linie 75 (Wiesbaden - Darmstadt);
Linie 63 (Darmstadt - Aschaffenburg)
ab 14.12.2008: Linie 75 (Wiesbaden - Darmstadt Aschaffenburg); Linie 63 entfällt
dt
Os
ah
n
Wolfskehlen
Louisa
NeuIsenburg
DreieichBuchschlag
LangenFlugsicherung
Langen
Egelsbach
Erzhausen
Wixhausen
erg
Hö
ch
tb
i
Stadion
Zeppelinheim
Walldorf
Mörfelden
Riedstadt-Goddelau
Stockstadt (Rhein)
Biebesheim
sta
im
ba
up
e
Stresemannallee
Niederrad
Groß-GerauDornberg
Dornheim
Schöllkrippen
im
en
Ha
h
Hochheim
Abfahrt von den Fernbahnsteigen
Frankfurt Hbf
Hanau Hbf
rt
R
Mainz Nord
Mainz Hbf
Koblenz/
Saarbrücken
ey
lz
A
ad
lhe
Off
Ostendstraße
Bieber
Griesheim
M a i n
Flörsheim
sb
u
na
Ha est
W
üh
ge
kfu
Eddersheim
Kastel
elm
M
an
Hattersheim
Wiesbaden Ost
ub
en
he
Mainkur
Frankfurt Ost
Dom/Römer
nla
Galluswarte
Sindlingen
Koblenz
tes
Messe
Nied
Fr
Höchst
sa
Farbwerke
Parlamentsplatz
Habsburgerallee
nu
Zeilsheim
Kriftel
Erbenheim
u
Ta
Wiesbaden Hbf
Zoo
ilh
W
Maintal West
Die
Frankfurt
West
Alt
Rödelheim
Hauptwache
Unterliederbach
Hofheim
Konstablerwache
Lorsbach
Igstadt
eim
rg
Sossenheim
dh
bu
AuringenMedenbach
n
m
Industriehof/
Neue Börse
Liederbach Süd
Eppstein
Bornheim
Enkheim
Eckenheimer Landstraße/
Seckbacher
Marbachweg
Hessen-Center
Landstraße
Versorgungsamt
Kruppstraße
Hauptfriedhof
Gwinnerstraße
Bornheim
Deutsche
Riederwald Schäfflestraße
Mitte
Nationalbibliothek
Johanna-TeschHöhenstraße
Glauburgstr.
Platz
Maintal Ost
MusterEissporthalle/
schule
Merianplatz
Festplatz
Dornbusch
Miquel-/
Adickesallee
Holzhausenstr.
Grüneburgweg
Eschenheimer
Tor
Ginnheim
Fischstein
Liederbach
Bremthal
Marbachweg/Sozialzentrum
Lindenbaum
Hügelstraße
Fritz-Tarnow-Str.
Niedernhausen
Niederjosbach
ec
Weißer Stein
eim
ord
Li
Hausener
Weg
sh
hN
Eschersheim
de
h
ac
ac
Stephan-HeiseStraße
Sulzbach
Kelkheim-Münster
Okarben
Groß-Karben
Dortelweil
Bü
*
lzb
alb
Su
hw
ord
Sc
hN
Kelkheim
Preungesheim
Sigmund-Freud-Straße
Ronneburgstraße
Theobald-Ziegler-Straße
Gießener Straße
Heddernheim
Heddernheimer
Landstraße
Nordwestzentrum
Römerstadt
Niddapark
Große
Nelkenstraße
Hausen
Friedhof
Westhausen
Lin
ac
Eschborn
Süd
Gla
Nieder-Eschbach
Bonames Mitte
Kalbach
Riedwiese/
Mertonviertel
Sandelmühle
ind
W
alb
Bad Soden
Kelkheim-Hornau
da
hw
Schneidhain
Assenheim
Nid
Sc
Königstein
Glauburg-Stockheim
Nidda
Nieder-Wöllstadt
Ober-Eschbach
id
Friedberg
Bruchenbrücken
Bad Homburg-Gonzenheim
ke
Oberursel-Hohemark
Friedrichsdorf
Waldlust
Rosengärtchen
Seulberg
Kupferhammer
Glöcknerwiese
Bad Homburg
Lahnstraße
Kronberg
Portstraße
Oberursel Stadtmitte
Kronberg Süd
Oberursel
Bommersheim
Stierstadt
Niederhöchstadt
Weißkirchen Ost
Niederursel
Praunheim
Weißkirchen/
Heerstraße
Wiesenau
Steinbach
Eschborn
N
Brandoberndorf
ac
olz
eim
ha
F
Sü ried
d berg
us
en
Schnellbahnplan
Groß-Umstadt Wiebelsbach
Erbach/
Eberbach
3 / 65
Kaffeekochen
Kaffeepulver in die Maschine einfüllen
@
R
@
Filter einsetzen
Maschine starten Wasser einfüllen
HH
j
Kaffeebohnen mahlen
Durchlauf abwarten
Kaffebohnen in die Mühle einfüllen
Tassen bereitstellen
?
Kaffeemaschine abschalten
?
Filter entsorgen
?
Kaffee einschenken
Kaffee aus der Maschine nehmen
4 / 65
Ungerichtete Graphen
Ungerichtete Graphen
5 / 65
Was ist ein ungerichteter Graph G = (V , E )?
Ein ungerichteter Graph G = (V , E ) besteht aus der Knotenmenge V und der
Kantenmenge E mit
E
⊆
{i, j} : i ∈ V , j ∈ V , i 6= j .
Die Elemente aus V heißen Knoten von G, die Elemente aus E heißen
(ungerichtete) Kanten von G:
Kanten sind also 2-elementige Teilmengen von V .
Es gibt zwischen zwei Knoten i und j aus V
höchstens eine Kante {i, j}, die grafisch dargestellt wird durch
i
j
keine Kante, falls i = j ist. Nicht erlaubt sind somit „Schleifen“.
i
Ungerichtete Graphen
6 / 65
Autobahnverbindungen
WI
F
MZ
DA
WÜ
KL
DA
F
KL
MA
MZ
WI
WÜ
=
b
=
b
=
b
=
b
=
b
=
b
=
b
Darmstadt
Frankfurt
Kaiserslautern
Mannheim
Mainz
Wiesbaden
Würzburg
MA
G = (V , E ) ist ein ungerichteter Graph mit
MZ, WI, MA, DA, KL, F, WÜ und
V :=
E :=
{MZ, WI}, {WI, F}, {F, DA}, {F, WÜ}, {MZ, DA},
{MZ, KL}, {KL, MA}, {DA, MA} .
Ungerichtete Graphen
7 / 65
Ungerichtete Graphen: Wichtige Begriffe
Sei G = (V , E ) ein ungerichteter Graph.
Ein Knoten v ∈ V heißt inzident mit einer Kante e ∈ E , falls v ∈ e.
Die beiden mit einer Kante e ∈ E inzidenten Knoten nennen wir die
Endknoten von e, und sagen, dass e diese beiden Knoten verbindet.
I
I
Zwei Knoten v , v 0 ∈ V heißen benachbart (bzw. adjazent), falls es eine
Kante e ∈ E mit Endknoten v und v 0 gibt (d.h. e = {v , v 0 }).
Falls v und v 0 zwei benachbarte Knoten sind, so sagen wir auch,
dass v 0 ein Nachbar von Knoten v ist.
Der Grad von v in G (kurz: GradG (v )), ist die Anzahl der Kanten, die v als
Endknoten haben, d.h.
GradG (v ) = |{{e ∈ E : v ∈ e}|.
Der Grad von G (kurz: Grad(G)) ist der maximale Grad eines Knotens von G.
Ungerichtete Graphen
8 / 65
Der Knotengrad: Ein Beispiel
Für den Graphen G =
a
b
d
c
gilt:
GradG (a) = 3
GradG (b) = 2
und
GradG (c) = 3
GradG (d) = 2
Ungerichtete Graphen
Grad(G) = 3.
9 / 65
Gerichtete Graphen
Gerichtete Graphen
10 / 65
Was ist ein gerichteter Graph G = (V , E )?
Ein gerichteter Graph G = (V , E ) besteht aus der Knotenmenge V und der
Kantenmenge E mit
E ⊆
(i, j) : i ∈ V , j ∈ V .
Die Elemente aus V heißen Knoten, die Elemente aus E heißen (gerichtete)
Kanten von G.
Kanten sind also geordnete Paare von Knoten, d.h. Elemente von V × V .
In der grafischen Darstellung eines Graphen stellen wir die Kante (i, j)
als Pfeil von Knoten i nach Knoten j dar, also
i
j
Beachte, dass wir „Schleifen“ (i, i) diesmal zulassen.
Gerichtete Graphen
11 / 65
Gerichtete Graphen: ein erstes Beispiel
Der gerichtete Graph G = (V , E ) mit
a
b
c
wird repräsentiert durch
V
E
Gerichtete Graphen
:= {a, b, c} und
(a, b), (b, b), (b, c), (c, a), (a, c) .
:=
12 / 65
Darstellungen von Graphen
Abstrakt, durch Angabe der Knotenmenge V und der Kantenmenge E .
Beispiel: G1 = (V1 , E1 ) mit V1 := {a, b, c, d} und
E1
:= {(a, b), (a, c), (a, d), (b, b), (b, c), (d, b), (d, c)}.
Der obige Graph G1 kann grafisch dargestellt werden durch
a
b
d
c
oder, äquivalent dazu, durch
a
d
b
c
Durch Adjazenzlisten und Adjazenzmatrizen: Siehe die Vorlesung
„Datenstrukturen“ im zweiten Semester.
Gerichtete Graphen
13 / 65
Gerichtete Graphen: Wichtige Begriffe
Sei G = (V , E ) ein gerichteter Graph.
Ist e = (i, j) ∈ E , so ist i der Ausgangsknoten von e und
j der Endknoten von e, und wir sagen, dass i und j benachbart sind.
I
I
i heißt ein direkter Vorgänger von j und
j ein direkter Nachfolger von i.
Eine Kante der Form (i, i) wird Schleife genannt. D.h.: Eine Schleife ist eine
Kante, deren Ausgangs- und Endknoten identisch ist.
Ein Knoten v ∈ V heißt inzident mit einer Kante e ∈ E , falls v der
Ausgangs- oder der Endknoten von e ist.
Der Ausgangsgrad von v in G (kurz: Aus-GradG (v )) ist die Anzahl der
Kanten mit v als Ausgangsknoten. D.h.:
Aus-GradG (v ) = |{e ∈ E : es ex. v 0 ∈ V s.d. e = (v , v 0 )}|.
Der Eingangsgrad von v in G (kurz Ein-GradG (v )) ist die Anzahl der
Kanten mit v als Eingangsknoten. D.h.:
Ein-GradG (v ) = |{e ∈ E : es ex. v 0 ∈ V s.d. e = (v 0 , v )}|.
Gerichtete Graphen
14 / 65
Ein Beispiel
Für den Graphen
G =
a
b
gilt:
Gerichtete Graphen
Ein-GradG (a)
=
0
Ein-GradG (b)
=
2
Aus-GradG (a)
=
1
Aus-GradG (b)
=
1.
15 / 65
Wege in Graphen
Wege in Graphen
16 / 65
Wege
Sei G = (V , E ) ein (gerichteter oder ungerichteter) Graph.
Ein Weg in G der Länge ` ist ein Tupel
(v0 , . . . , v` ) ∈ V `+1 ,
für ein ` ∈ N, so dass für alle i ∈ N mit 0 6 i < ` gilt:
falls G ein gerichteter Graph ist, so ist (vi , vi+1 ) ∈ E ,
falls G ein ungerichteter Graph ist, so ist {vi , vi+1 } ∈ E .
Das Tupel (v0 , . . . , v` ) wird dann ein Weg der Länge ` von v0 nach v` genannt.
Die Länge des Weges gibt nicht an, wie viele Knoten, sondern
wie viele Kanten
auf dem Weg durchlaufen werden.
Wege in Graphen
17 / 65
(Einfache) Wege und Kreise
1
Ein Weg (v0 , . . . , v` ) heißt einfacher Weg, wenn kein Knoten mehr als
einmal in dem Weg vorkommt (d.h. die Knoten v0 , . . . , v` sind paarweise
verschieden, bzw. |{v0 , . . . , v` }| = ` + 1 gilt).
2
Ein Weg (v0 , . . . , v` ) heißt Kreis, wenn ` > 1 und v` = v0 ist.
3
Ein Kreis (v0 , . . . , v` ) heißt einfacher Kreis, wenn (v0 , . . . , v`−1 ) ein
einfacher Weg ist und keine Kante mehrfach durchlaufen wird. D.h.:
I
In einem gerichteten Graphen G sind einfache Kreise genau die Wege der
Form (v0 , . . . , v` ), für die gilt: ` > 1 und v` = v0 und |{v0 , . . . , v`−1 }| = `.
I
In einem ungerichteten Graphen G sind einfache Kreise genau die Wege der
Form (v0 , . . . , v` ), für die gilt: ` > 3 und v` = v0 und |{v0 , . . . , v`−1 }| = `.
Wege in Graphen
18 / 65
Wege und Kreise: Beispiele
(1/2)
Für den Graphen
a
b
d
c
e
gilt:
(e, d, b, c, d) ist ein Weg der Länge 4, aber kein einfacher Weg.
(d, b, c, d) ist ein einfacher Kreis.
(e, d, a, b) ist ein einfacher Weg der Länge 3.
(b, d, a) ist kein Weg.
(a, b, c, d, b, c, d, a) ist ein Kreis, aber kein einfacher Kreis.
Wege in Graphen
19 / 65
Wege und Kreise: Beispiele
Für den Graphen
(2/2)
c
a
d
b
gilt:
(a, b, c, a) ist ein einfacher Kreis.
(c, d, c) ist ein Kreis, aber kein einfacher Kreis.
(a, c, d) ist ein einfacher Weg der Länge 2.
(c, b, a, c, d) ist ein Weg, aber kein einfacher Weg.
Wege in Graphen
20 / 65
Das Königsberger Brückenproblem
(1/2)
In der Stadt Königsberg gab es im 18. Jahrhundert sieben Brücken über den Fluss
Pregel, die die Ufer und zwei Inseln miteinander verbanden.
Gibt es einen Spaziergang, der jede der sieben Brücken genau einmal überquert
und zum Ausgangspunkt zurückkehrt?
Wege in Graphen
21 / 65
Das Königsberger Brückenproblem
(2/2)
Eine Graph-theoretische Modellierung:
Erfinde für jedes Ufer, jede Insel und jede Brücke einen Knoten,
Kanten zeigen direkte Verbindungen an.
Die „Pregel-Skizze“ wird also durch folgenden Graphen repräsentiert:
GKönigsberg :=
Die Frage nach dem “Spaziergang” entspricht dann der Frage:
Gibt es in GKönigsberg einen „Euler-Kreis“,
also einen Kreis der jede Kante genau einmal durchläuft?
Warum ist die Antwort negativ?
Wege in Graphen
22 / 65
Routenplaner: Die Länge „gewichteter“ Wege
Wie gehen Routenplaner vor, um schnellste Verbindungen zwischen einem Start
und einem Ziel zu berechnen?
Die relevanten Informationen werden in einen gerichteten Graphen gepackt.
(a) Der gerichtete Graph:
I
I
Kreuzungen oder Abfahrten sind die Knoten,
Straßenabschnitte, die Knoten direkt miteinander verbinden, sind die
gerichteten Kanten.
(b) Jede Kante wird mit geographischer Information versehen.
I
I
Für die Navigation: In welchem Stadtteil, Stadt, Bundesland oder Staat liegt
der entsprechende Straßenabschnitt, welche Hausnummern kommen vor?
Um schnellste Verbindungen zu berechnen:
Weise jeder Kante eine Dauer zu, wenn der entsprechende Straßenabschnitt in
Regelgeschwindigkeit gemäß den Verkehrsregeln durchfahren wird.
Wie berechnet man den Graphen aus der Karte und wie berechnet man
schnellste Verbindungen?
Wege in Graphen
Routenplaner
23 / 65
Ein Ausschnitt der Strassenkarte mit Einbahnstraßen
Wege in Graphen
Routenplaner
24 / 65
Der gerichtete Graph „auf“ der Karte
Wege in Graphen
Routenplaner
25 / 65
Der gerichtete Graph
Wege in Graphen
Routenplaner
26 / 65
Und wie bestimmt man schnellste Verbindungen?
Was genau ist das zugrunde liegende Problem?
(a) Für den gerichteten Graphen G = (V , E ) weist eine Funktion
länge : E → R>0
jeder Kante eine nicht-negative Länge zu.
(b) Für einen „Start“-Knoten s ∈ V und einen „Ziel“-Knoten t ∈ V bestimme
einen Weg W = s → v1 → · · · → vk → t von s nach t, so dass Länge(W )
kleinstmöglich ist. Es ist
Länge(W ) = länge(s, v1 ) + länge(v1 , v2 ) + · · · + länge(vk , t).
In den Veranstaltungen „Datenstrukturen“ und „Theoretische Informatik 1“
wird eine schnelle Lösung dieses „Kürzesten-Wege-Problems“ mit
dem Algorithmus von Dijkstra
beschrieben. :-)))
Wege in Graphen
Routenplaner
27 / 65
Graphen: Wichtige Anwendungsbeispiele
Wir haben gerade die in einer Straßenkarte relevante Information
durch einen gerichteten Graphen (mit Zusatzinformation) repräsentiert.
In ähnlicher Weise lassen sich
I
I
das Schienennetz der deutschen Bahn oder
städtische S- und U-Bahn Netze veranschaulichen.
In einem Computer-Netzwerk werden Computer durch Knoten und
Netzwerkverbindungen durch ungerichtete Kanten repräsentiert.
Im „Webgraphen“ repräsentieren die Knoten Webseiten und
die gerichteten Kanten Hyperlinks.
Binäre Entscheidungsgraphen (BDD’s) werden in der technischen
Informatik als Datenstruktur für die kompakte Darstellung und effiziente
Handhabung boolescher Funktionen eingesetzt.
(Siehe z.B. die Vorlesung Hardwarearchitekturen und Rechensysteme.)
Wege in Graphen
Routenplaner
28 / 65
Suche in Graphen, bzw.
wie findet man den Ausgang in einem Labyrinth?
Wege in Graphen
Suche in Graphen
29 / 65
Wie findet man Wege aus einem Labyrinth?
Ein Auszug aus Umberto Eco’s „Der Name der Rose“.
William von Baskerville und sein Schüler Adson van Melk sind heimlich in die als
Labyrinth gebaute Bibliothek eines hochmittelalterlichen Klosters irgendwo im
heutigen Norditalien eingedrungen.
Fasziniert von den geistigen Schätzen, die sie beherbergt, haben sie sich nicht die
Mühe gemacht, sich ihren Weg zu merken.
Erst zu spät erkennen sie, dass die Räume unregelmäßig und scheinbar wirr
miteinander verbunden sind.
Man sitzt fest.
Wege in Graphen
Suche in Graphen
30 / 65
William erinnert sich
„Um den Ausgang aus einem Labyrinth zu finden,“, dozierte William, „gibt es
nur ein Mittel. An jedem Kreuzungspunkt wird der Durchgang, durch den man
gekommen ist, mit drei Zeichen markiert. Erkennt man an den bereits vorhandenen
Zeichen auf einem der Durchgänge, dass man an der betreffenden Kreuzung schon
einmal gewesen ist, bringt man an dem Durchgang, durch den man gekommen ist,
nur ein Zeichen an. Sind alle Durchgänge schon mit Zeichen versehen, so muss man
umkehren und zurückgehen. Sind aber einer oder zwei Durchgänge der Kreuzung
noch nicht mit Zeichen versehen, so wählt man einen davon und bringt zwei Zeichen
an. Durchschreitet man einen Durchgang, der nur ein Zeichen trägt, so markiert man
ihn mit zwei weiteren, so dass er nun drei Zeichen trägt. Alle Teile des Labyrinthes
müßten durchlaufen worden sein, wenn man, sobald man an eine Kreuzung gelangt,
niemals den Durchgang mit drei Zeichen nimmt, sofern noch einer der anderen
Durchgänge frei von Zeichen ist.“
„Woher wißt Ihr das? Seid Ihr ein Experte in Labyrinthen?“
„Nein, ich rezitiere nur einen alten Text, den ich einmal gelesen habe.“
„Und nach dieser Regel gelangt man hinaus?“
„Nicht dass ich wüßte. Aber wir probieren es trotzdem.[...]“
Wege in Graphen
Suche in Graphen
31 / 65
„Der Name der Rose“: Das Labyrinth
Kann man vom Treppenaufgang V0 aus alle Räume Vi besuchen?
@ Nordturm
@
A V55@
@
H
H
B
B
V52
V35 A
V17
V32 B
B
H
@ H
H
H @
B
@
@ V51
@
V16 B V1
V
@
@
B
@P 31
PP V @
PP 15 @
P
P
V53
V
A 54
V30
V14
V29
V13
@
@
A V38 @
@
V0
@
H
@
@ H
@
@
@
@
@
@
@
@
V
V18
@
39
@
@
@
@
@
@
@
@
@
V19
H
H
@ V40
V2
V3 A H
H V20 @
@
@
A V4 @
@
V36 Innenhof
@
@
@
A V12
@
H
H V
11
V28
@
@
V50 @
V10
@
@
@ V27 V49
@
V34 @
V26
@
@
V46
@ V48 @
@
V
47
@
@
Westturm
Wege in Graphen
Ostturm
V37
V5
V21
V6
V22
P
P
PP
P
@
@ V7 PP
B
@
@
V23
B V8 V41 @
P
V9 B
PP
@
@
@
P @
BB V24
V
42
B
V
33
V25
B
H
B
H
@ V45 BB
V43
@
A
V44
@
Südturm @
Suche in Graphen
32 / 65
Das Labyrinth als ungerichteter Graph
n
52
@
@
n
53
n
51
n
54
@
@
n
35
55n
n
n 15
31
n 18
n 19
n
32n 17
16n 1n 2n 3n
@
@
n
n 14
30
n
49
@
@
n
50
@
@
n
48
@
@
Wege in Graphen
0n
@
@
4n 20n
n
38
@
@
n
40
n
39
6n 22n
n
n 12
28
n 10
n 9n 8n
@ 11
@
@
n 26
n 25
n 24
n
34n
27
n
47
@
@
5n 21n
n
n 13
29
@
36n
37n
@
@
46n
@
@
7n 23n
45n
@
@
Suche in Graphen
33n
44n
n
41
@
@
n
43
n
42
33 / 65
Der Ariadne-Faden
Geht das denn nicht viel einfacher?
1. Prinzessin Ariadne, Tochter des Königs Minos, hat Theseus den
„Ariadne-Faden“ geschenkt, damit Theseus aus dem Labyrinth herausfindet
nachdem er den Minotauros aufgespürt und getötet hat.
2. Theseus hat den Ariadne-Faden während der Suche im Labyrinth abgerollt.
I
Nachdem der Minotauros getötet war, braucht er nur den Faden
zurückverfolgen, um das Labyrinth wieder verlassen zu können.
Aber wie durchsucht man das Labyrinth systematisch mit Hilfe eines Fadens?
Wege in Graphen
Suche in Graphen
34 / 65
Tiefensuche: Farbeimer + Ariadne-Faden
Der Algorithmus „Tiefensuche“ implementiert und erweitert die Methode des
Ariadne-Fadens.
1. Der ungerichtete Graph G = (V , E ) und ein Startknoten s ∈ V ist gegeben.
2. Ganz zu Anfang sind alle Knoten „unmarkiert“. Wir besuchen und markieren s.
// Wir besuchen stets nur unmarkierte Knoten.
3. Wenn wir den Knoten u besuchen, betrachten wir nacheinander alle Nachbarn
v von u in irgendeiner Reihenfolge.
I
I
Wenn v markiert ist, tun wir nichts.
Wenn v unmarkiert ist, besuchen und markieren wir v . Dann wiederholen wir
unser Vorgehen rekursiv für alle mit v benachbarten Knoten.
Wenn schließlich alle Nachbarn von v markiert sind, dann kehren wir zu u
zurück: Wir benutzen den Ariadne-Faden.
Die Vorlesung Datenstrukturen: Tiefensuche ist schnell und funktioniert, d.h.
Tiefensuche besucht genau die vom Startknoten s aus erreichbaren Knoten.
Wege in Graphen
Suche in Graphen
35 / 65
Zusammenhang
Sei G = (V , E ) ein Graph und v ∈ V ein Knoten.
(a) Wenn G ungerichtet ist, dann besteht die Zusammenhangskomponente
von v aus allen, von v aus durch einen Weg erreichbaren Knoten.
Der Graph G heißt zusammenhängend, wenn die Zusammenhangskomponente irgendeines Knotens aus allen Knoten von G besteht.
(b) Wenn G gerichtet ist, dann besteht die starke Zusammenhangskomponente von v aus allen Knoten w ,
I
I
die sowohl von v aus erreichbar sind,
die aber auch v selbst durch einen in w beginnenden Weg erreichen.
G heißt stark zusammenhängend, wenn die starke Zusammenhangskomponente irgendeines Knotens aus allen Knoten von G besteht.
Wege in Graphen
Suche in Graphen
36 / 65
Zusammenhang: Beispiele
Der Graph
ist zusammenhängend,
ist nicht zusammenhängend und besteht
aus zwei Zusammenhangskomponenten.
Der Graph
ist nicht stark zusammenhängend,
da es z.B. keinen Weg vom Knoten
links oben zum Knoten links unten gibt.
ist stark zusammenhängend.
Wege in Graphen
Suche in Graphen
37 / 65
Zuordnungsprobleme
Zuordnungsprobleme
38 / 65
Wer mag wen?
In einem Tennisverein sollen die Vereinsmitglieder für ein Turnier zu
Doppelpaarungen zusammengestellt werden. Dabei möchte man jeweils nur
befreundete Personen als „Doppel“ zusammen spielen lassen.
Wir modellieren die Aufgabenstellung durch den ungerichteten Graphen
GT := (VT , ET ) mit
VT
:= {x : x ist ein Vereinsmitglied}
ET
:= {{x , y } : x und y sind befreundete Vereinsmitglieder}.
Das Ziel: Finde eine größtmögliche Anzahl von Doppelpaarungen.
D.h., Finde eine möglichst große Menge E 0 ⊆ ET , so dass kein Vereinsmitglied
Endpunkt von mehr als einer Kante aus E 0 ist.
Zuordnungsprobleme
39 / 65
Wer kann was?
Eine Gruppe unterschiedlich ausgebildeter Piloten soll so auf Flugzeuge verteilt
werden, dass jeder das ihm zugeteilte Flugzeug fliegen kann.
Auch hier modellieren wir die Fragestellung durch einen ungerichteten Graphen
GF := (VF , EF ) mit
VF
:= {x : x ist ein Pilot} ∪ {y : y ist ein Flugzeug},
EF
:= {{x , y } : Pilot x kann Flugzeug y fliegen }.
Das Ziel: Stelle einen Flugplan auf, so dass jeder Pilot das ihm zugeteilte
Flugzeug fliegen kann.
D.h.: Finde eine möglichst große Menge E 0 ⊆ EF ,
so dass kein Element aus VF Endpunkt von mehr als einer Kante in E 0 ist.
Zuordnungsprobleme
40 / 65
Das Matching Problem
(1/2)
Sei G = (V , E ) ein ungerichteter Graph.
(a) Wir nennen eine Kantenmenge E 0 ⊆ E ein Matching (bzw. eine Menge
unabhängiger Kanten),
falls kein Knoten aus V Endpunkt von mehr als einer Kante aus E 0 ist.
(b) Ein Matching M heißt genau dann perfekt, wenn jeder Knoten aus V
Endpunkt einer Kante von M ist.
Typischerweise, wie auch in den beiden Beispielen, möchte man ein möglichst
großes Matching bestimmen.
Ein perfektes Matching ist größtmöglich.
Zuordnungsprobleme
41 / 65
Das Matching Problem
(2/2)
Manchmal sind die Kanten auch mit Gewichten markiert, um auszudrücken
wie befreundet zwei Mitglieder sind
oder wie gut sich ein Pilot mit einem Flugzeug auskennt.
In diesem Fall möchte man ein möglichst schweres Matching bestimmen.
In der Wahlpflichtveranstaltung „Approximationsalgorithmen“
(ab dem 4. Semester) wird gezeigt, dass ein schwerstes Matching effizient
bestimmt werden kann. :-)))
Zuordnungsprobleme
42 / 65
Das Matching Problem: Beispiele
In einem Tennisverein mit 10 Mitgliedern und „Freundschaftsgraph“
6
2
7
3
GT
1
=
8
4
5
9
10
sind z.B. die folgenden beiden Kantenmengen Matchings:
2
6
2
7
8
und
1
4
Zuordnungsprobleme
8
4
9
10
7
3
3
1
5
6
5
9
10
43 / 65
Schwierige Probleme: Hamilton-Kreise
Kreise
Hamiltonkreise
44 / 65
Hamilton-Kreise und Hamilton-Wege
Sei G = (V , E ) ein (gerichteter oder ein ungerichteter) Graph.
(a) Ein Weg W = (v0 , . . . , v` ) heißt Hamilton-Weg, wenn jeder Knoten aus V
genau einmal in W vorkommt.
(b) Ein Weg W = (v0 , . . . , v` ) heißt Hamilton-Kreis, wenn ` > 1 und v` = v0
und (v0 , . . . , v`−1 ) ein Hamilton-Weg ist.
Der Graph G
a
d
b
c
e
hat einen Hamilton-Weg, nämlich (e, c, d, a, b), aber keinen Hamilton-Kreis, da
Aus-GradG (b) = 0 ist.
Kreise
Hamiltonkreise
45 / 65
Wo ist der Hamilton-Kreis?
Kreise
Hamiltonkreise
46 / 65
Hamilton-Kreise: Wie schwierig?
Wir erhalten einen gerichteten oder ungerichteten Graphen mit mehreren
Tausenden von Knoten: Wir sollen noch nicht einmal einen Hamilton-Kreis
bestimmen, sondern nur die Frage beantworten, ob es einen Hamilton-Kreis gibt.
Trauen Sie sich zu ein Programm zu schreiben, dass diese Frage zu ihren
Lebzeiten beantwortet?
In der Veranstaltung „Theoretische Informatik 1“ wird gezeigt, dass auch diese
Frage, wie schon das Erfüllbarkeitsproblem KNF-SAT, NP-vollständig ist. :-(((
Euler-Kreise, falls vorhanden, lassen sich hingegen effizient bestimmen. (Ein
Euler-Kreis durchläuft alle Kanten genau einmal.) :-)))
Kreise
Hamiltonkreise
47 / 65
Sitzordnung: Wer neben wem?
(1/2)
Die Gäste einer Familienfeier sollen so an einer hufeisenförmigen Tafel
platziert werden, dass niemand neben jemanden sitzt, den sie/er nicht leiden kann.
1. Stelle den Konfliktgraphen G = (V , E ) auf, wobei
V := {x : Person x soll zur Feier kommen} und
Person x kann Person y nicht leiden oder
E :=
{x , y } :
Person y kann Person x nicht leiden
d.h. Kanten im Konfliktgraphen zeigen auf, wer im Konflikt mit wem steht.
Kreise
Wer neben wem?
48 / 65
Sitzordnung: Wer neben wem?
(2/2)
2. Bilde das Komplement des Konfliktgraphen,
d.h. betrachte den Freundschaftsgraphen G̃ = (Ṽ , Ẽ ) mit
Ṽ := V und
Ẽ := {x , y } : x , y ∈ V , x 6= y , {x , y } ∈
/E .
Kanten in G̃ zeigen an, wer prinzipiell neben wem platziert werden könnte.
3. Suche einen Hamilton-Weg in G̃.
Wenn (v1 , . . . , vn ) (mit n = |Ṽ |) ein Hamilton-Weg in G̃ ist, dann kann man
die Sitzordnung folgendermaßen festlegen:
v4
v5
v3
v6
v7
v2
v1
Kreise
Wer neben wem?
vn
49 / 65
Schwierige Probleme: Das Färbungsproblem
Das Färbungsproblem
50 / 65
Färbung von Knoten
Sei G = (V , E ) ein ungerichteter Graph.
Eine Funktion m : V → N heißt eine (konfliktfreie) Färbung, wenn für jede
Kante {x , y } ∈ E gilt: m(x ) 6= m(y ).
Die Größe von Bild(m) ist die Anzahl der Farben.
Die minimale Farbenzahl, die für eine konfliktfreie Färbung ausreichend ist,
heißt die chromatische Zahl von G (kurz: χ(G)).
Eine Familienfeier mit Gästen A, B, C, D, E, F, G, H, I und dem Konfliktgraphen:
A
B
C
D
E
F
G
H
I
Was ist die chromatische Zahl?
Das Färbungsproblem
51 / 65
Wieviele Farben?
Eine konfliktfreie Färbung mit drei Farben ist möglich:
A
1
B
3
D
C
3
E
F
1
2
1
2
3
2
G
H
I
Drei Farben sind auch notwendig, weil der Konfliktgraph ein Dreieck, z.B.
E
D
H
als Teilgraph enthält.
Das Färbungsproblem
52 / 65
Das 4-Farben Problem
Wie viele Farben sind nötig, um jede Landkarte so einzufärben, dass zwei Staaten
mit gemeinsamer Grenze durch unterschiedliche Farben dargestellt werden?
1976 wurde bewiesen, dass vier Farben ausreichen.
Der Beweis basiert auf einer Fallunterscheidung mit mehr als 1000 Fällen,
die mit Hilfe eines Computerprogramms analysiert wurden.
Wir modellieren eine Landkarte durch einen ungerichteten Graphen,
dessen Knoten die Staaten repräsentieren,
und bei dem zwei Staaten genau dann durch eine Kante miteinander
verbunden sind, wenn sie eine gemeinsame Grenze besitzen.
Finde eine konfliktfreie Färbung mit möglichst wenigen Farben.
Das Färbungsproblem
Das 4-Farben Problem
53 / 65
Färbung von Landkarten
Wir betrachten eine kleine Landkarte
und ihren Konfliktgraphen:
c
b
c
f
b
a
a
f
d
e
e
d
Knoten =
b Staaten
Kanten =
b Staaten mit gemeinsamer Grenze
Jeder der vier Knoten a, b, c, d ist mit jedem anderen benachbart =⇒
Eine konfliktfreie Färbung muss den vier Knoten vier verschiedene Farben
zuordnen. — für a, b, c, d etwa rot, gelb, grün, blau.
Da f außerdem mit b, c, d benachbart ist, muss f dann wieder rot gefärbt sein; e
kann jede Farbe außer blau erhalten.
Das Färbungsproblem
Das 4-Farben Problem
54 / 65
Planare Graphen
Die aus Landkarten entstehenden Konfliktgraphen sind planar.
Ein Graph G heißt planar, wenn er so in die Ebene gezeichnet werden kann,
dass seine Kanten sich nicht kreuzen.
Beispiele für planare Graphen sind:
Der dritte Graph ist planar, da er wie der erste Graph kreuzungsfrei in die Ebene
gezeichnet werden kann.
Beispiele für nicht-planare Graphen sind:
Das Färbungsproblem
Planare Graphen
55 / 65
Anwendungen des Färbungsproblems
Knoten
Staat auf Karte
Gast auf Feier
Vorlesung
Prozess
|
|
|
|
|
|
|
|
|
Kanten
gemeinsame Grenze
können sich nicht leiden
gemeinsame Hörer
benötigen dieselbe Ressource
|
|
|
|
|
|
|
|
|
Farbe/Markierung
Farbe
Tischnummer
Termin
Ausführungstermin
Aber leider ist schon die Frage, ob 3 Farben ausreichen, NP-vollständig. :-(((
Das Färbungsproblem
Anwendungen
56 / 65
Isomorphie von Graphen
Isomorphie
57 / 65
Gleichheit und Isomorphie von Graphen
(1/2)
G = (V , E ) und G 0 = (V 0 , E 0 ) seien zwei (gerichtete oder ungerichtete) Graphen.
(a) G heißen gleich (kurz: G = G 0 ),
falls sie dieselbe Knotenmenge und dieselbe Kantenmenge besitzen. D.h.:
G = G 0 :⇐⇒ V = V 0 und E = E 0 .
(b) G und G 0 heißen isomorph (kurz: G ∼
= G 0 , in Worten: G ist isomorph zu G 0 ),
falls es eine bijektive Abbildung f : V → V 0 gibt, so dass für alle Knoten
i ∈ V und j ∈ V gilt:
I
Falls G und G 0 gerichtet sind:
(i, j) ∈ E ⇐⇒
I
f (i), f (j) ∈ E 0 .
Falls G und G 0 ungerichtet sind:
{i, j} ∈ E ⇐⇒ {f (i), f (j)} ∈ E 0 .
Eine solche Abbildung f wird Isomorphismus von G nach G 0 genannt.
Isomorphie
58 / 65
Gleichheit und Isomorphie von Graphen
(2/2)
Zwei (gerichtete oder ungerichtete) Graphen G1 und G2 sind genau dann
isomorph, wenn G1 und G2 gleich sind,
nachdem die Knoten von G2 umbenannt werden.
Die beiden Graphen
2
b
1
3
4
und
a
d
c
sind nicht gleich, da sie unterschiedliche Knotenmengen besitzen,
wohl aber isomorph.
Isomorphie
59 / 65
Gleichheit und Isomorphie: Weitere Beispiele
G0
G
G 00
2
1
3
4
a
b
c
d
a
b
c
d
Dann gilt:
G∼
= G 0 via f : {1, 2, 3, 4} → {a, b, c, d}
mit f (1) = c, f (2) = d, f (3) = a, f (4) = b (oder f (3) = b, f (4) = a).
G 0 ist nicht isomorph zu G 00 (kurz: G 0 G 00 ),
denn G 00 hat mehr Kanten als G 0 .
Isomorphie
60 / 65
Wichtige Graphklassen
Isomorphie
61 / 65
Vollständige Graphen und der Würfel
(a) Der vollständige Graph Kn = ({1, . . . , n}, En ) mit n Knoten ist ein ungerichteter Graph: Kn besitzt für je zwei verschiedene Knoten eine Kante, es ist
En = { {i, j} : 1 6 i 6= j 6 n }.
Ein Graph G heißt vollständig, wenn es ein n ∈ N gibt mit G ∼
= Kn .
(b) Der d-dimensionale Würfel Wd besitzt die
Knotenmenge Vd = {0, 1}d und die Kantenmenge
Ed = { {u, v } : u, v ∈ {0, 1}d , u, v unterscheiden sich in genau einem Bit }.
110
10
11
010
111
011
100
ε
0
W0
1
W1
00
01
000
W2
101
001
W3
Der Würfel Wd für d ∈ {0, . . . , 3}.
Isomorphie
62 / 65
Planare, bipartite und kreisfreie Graphen
(c) Planare Graphen haben wir schon kennengelernt.
(d) Ein ungerichteter Graph G = (V , E ) heißt bipartit, wenn die Knotenmenge
V = V1 ∪ V2 so in zwei disjunkte Teilmengen V1 , V2 zerlegt werden kann,
dass alle Kanten genau einen Endpunkt in V1 und einen Endpunkt in V2
besitzen.
I
Bipartite Graphen tauchen häufig in Zuordnungsproblemen auf.
(e) Ein gerichteter Graph ohne Kreise heißt azyklisch.
I
Eine Menge V von Aufgaben mit Präzedenzen E ⊆ V × V definiert einen
azyklischen Graph, wenn die Aufgaben ohne Deadlock ausführbar sind.
Und wenn ein ungerichteter Graph keine Kreise besitzt?
Isomorphie
63 / 65
Einfache und schwierige Probleme
Isomorphie
64 / 65
Welche Probleme haben wir im Griff, welche nicht?
+ Die beherrschbaren Probleme,
(a) das systematische Durchsuchen von Graphen (mit Hilfe der Tiefensuche),
(b) die Bestimmung kürzester Wege,
(c) die Berechnung von Euler-Wegen und Euler-Kreisen,
(d) die Berechnung eines größtmöglichen Matchings
(e) oder die Bestimmung minimaler Spannbäume.
- Die schwierigen Probleme (genau so schwierig wir KNF-SAT),
(a) die Bestimmung von Hamilton-Kreisen oder Hamilton-Wegen, bzw.
(b) die Bestimmung einer konfliktfreien Färbung mit möglichst wenigen Farben.
Viel, viel mehr in der „theoretischen Informatik 1“.
Isomorphie
65 / 65
Herunterladen