Graphen
1 / 62
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-BahnStationen (als Knoten) und Direktverbindungen zwischen den Stationen (als Kanten).
2 / 62
Änderungen vorbehalten. Gültig ab 15. Juni 2008© Rhein-Main-Verkehrsverbund GmbH
**
**
** 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
Gernsheim
Biebesheim
Stockstadt (Rhein)
Stadion
Riedwiese/Mertonviertel
HanauKlein-Auheim
Hainburg Hainstadt
Mainhausen Zellhausen
Darmsta
dt Ost
Mühlta
l
Babenhausen Langstadt
Groß-Umstadt Klein-Umstadt
Groß-Umstadt
Groß-Umstadt WiebelsbachOber
-Ram
stadt
Reinheim
Otzber
g Lengfe
ld
Main
z Röm
isches
Thea
ter
Groß-Gerau-Dornberg
Darmsta
dt
TU-Li
chtw
iese
Schwalbach Nord*
DeutscheNationalbibliothek
Glauburg-Stockheim
H e i d e l b e r g / M a n n h e i m
E r b a c h /E b e r b a c h
Riedstadt-Goddelau
Wolfskehlen
Dornheim
Mörfelden
Walldorf
Zeppelinheim
Klein-G
erau
Weit
ersta
dt
Wo r m
s /
Ma n n h e i m
Opelwer
k
Groß-G
erau
Nauheim
Raunheim
Rüssels
heim
Kelste
rbac
h
Flugh
afen
Region
albah
nhof
Niederrad
Darmstadt Hbf
Bischof
sheim
Gustavs
burg
Mainz Hbf
Mainz Nord
K o b l e n z /
S a a r b r ü c k e n
Al z
e y
Wo
rm
s
Rh
ei
n
M a i n
Stresemannallee
Frankfurt Süd Offenbach HbfLouisa
Egelsbach
Erzhausen
Wixhausen
Arheilgen
Langen
Dreieich-Buchschlag
Neu-Isenburg
Langen-Flugsicherung
Darmsta
dt
Nord
Kranich
stein
Mes
sel
Dreiei
chen
hainW
eibelf
eld
Sprendlin
gen
Willy
-Bra
ndt-
Platz
Schweiz
er
Platz Lokalbahnhof
Götze
nhain
Offenth
al
Urber
ach
Rödermark-Ober-Roden
Eppertshausen
Münster
DietzenbachBahnhof
DietzenbachMitte
Steinberg
Heusen-stammM
ühlberg
Kaiser
lei
Leder
museum
Mar
ktplat
z
Dieburg
Altheim
Herger
shau
sen
BabenhausenA s c h a f f e n b u r g
Seligenstadt
Rollwald
Nieder-Roden
Dudenhofen
Jügesheim
Hainhausen
Weiskirchen
Obertshausen
Waldhof
As c h a f f e n b u r g
Steinheim
Dietesheim
Mühlheim
Offenbach Ost
S c h ö l l k r i p p e n
Hanau Hbf
F u l daHan
au N
ord
Frankfurt Hauptbahnhof
Taunusanlage
Hauptw
ache
Konstablerwache
Ostendstraße
Griesheim
NiedHöchstFarbwerke
Sindlingen
Hattersheim
Eddersheim
Flörsheim
Hochheim
Galluswarte
Messe
WestFrankfurt
Rödelheim
Erbenheim
Igstadt
Unterliederbach
Liederbach Süd
Liederbach
Sossenheim
Festh
alle/
Mes
se
Wes
tend
Alte O
per
Kirchplat
z
Leipzig
er Str.
Bocke
nheimer
War
te
Industriehof/Neue Börse
Sulzbach
Kelkheim-Münster
FischsteinGinnheim
HausenerWeg
Stephan-Heise-Straße
FriedhofWesthausen
Hausen
PraunheimHeerstraße
GroßeNelkenstraße
HeddernheimerLandstraße
Nordwest-zentrum
Römerstadt
Niddapark
Heddern-heim
EschenheimerTor
Grüneburgweg
Holzhausenstr.
Miquel-/Adickesallee
Dornbusch
Fritz-Tarnow-Str.
Hügelstraße
Lindenbaum
Weißer Stein
Eschersheim
Preungesheim
Ronneburgstraße
Sigmund-Freud-Straße
Theobald-Ziegler-Straße
Gießener Straße
Marbachweg/Sozialzentrum
Versorgungsamt
Eckenheimer Landstraße/Marbachweg
Hauptfriedhof
Muster-schule
Glauburgstr.
Zoo Habsburgerallee
BornheimSeckbacherLandstraße
Bad V
ilbel
BornheimMitte
Höhenstraße
Merianplatz
Parlamentsplatz
Eissporthalle/Festplatz
Riederwald Schäfflestraße
Gwinnerstraße
Kruppstraße
Hessen-Center
Enkheim
Johanna-Tesch-Platz
Frankfurt Ost Mainkur
Maintal West
Maintal Ost Wilh
elmsb
ad
Bruch
köbel
Hanau
Wes
t
Zeilsheim
Hofheim
Lorsbach
Eppstein
Bremthal
Niederjosbach
Kriftel
Niedernhausen
Kastel
Wiesbaden Ost
K o b l e n z
L i mb u r g
Wiesbaden Hbf
Auringen-Medenbach
Dom/Römer
Bieber
Kelkheim
Kelkheim-Hornau
Schneidhain
Bad Soden
KönigsteinSchwalbach
Sulzbach Nord
Kronberg
Kronberg Süd
Niederhöchstadt
Eschborn
EschbornSüd
Brandoberndorf
Weißkirchen/Steinbach
Stierstadt
Hasse
lborn
Gräven
wiesbac
h
Hundstadt
Wilh
elmsd
orf
Usingen
Hause
n (Ts)
Neu-
Anspac
h
Weh
rheim
Saalburg
/Loc
hmühle
Köpper
n
Friedrichsdorf
Bad Homburg
Seulberg
Oberursel-Hohemark
OberurselOberursel Stadtmitte
PortstraßeLahnstraße
GlöcknerwieseKupferhammer
Rosengärtchen
Waldlust
Bommersheim
Weißkirchen Ost
Niederursel
WiesenauZe
ilweg
Sandelmühle
Kalbach
Bonames Mitte
Bad Homburg-Gonzenheim
Nieder-Eschbach
Burgholz
hause
n
Rodheim
Rosbac
hFri
edber
g
Süd
Ober-Eschbach
Frankfu
rter B
erg
Berke
rsheim
Bad Vilb
el Süd
Nieder-Wöllstadt
Bruchenbrücken
Friedberg
Ostheim
Ge l n h a u s e n
Ni d d a
Gie
ße
n
Wö l f
e r s h e i m-
S ö d e l
N i d d a
Gronau
Nieder
dorfel
den
Oberdor
felden
Kilianstä
dten
Dortelweil
Groß-Karben
Okarben
BüdesheimW
indeckenNidderau
EichenHöchst
AltenstadtLindheim
Glauberg
Assenheim
Schnellbahnplan
Abfahrt von den FernbahnsteigenFrankfurt Hbf
3 / 62
Der Ablauf eines Telefongesprächs
Hörer abheben
Ziffer wählen
Gespräch führenauflegen
4 / 62
Kaffeekochen
Filter entsorgen
Kaffee einschenkenKaffeemaschine abschalten
Kaffee aus der Maschine nehmen
Tassen bereitstellen
Durchlauf abwarten
Maschine startenKaffeebohnen mahlen
Kaffebohnen in die Mühle einfüllen
Kaffeepulver in die Maschine einfüllen Filter einsetzen
Wasser einfüllen
���
�����
��
���
@@R
HHj
?
������
? ���
?
5 / 62
Ungerichtete Graphen
Ungerichtete Graphen 6 / 62
Was ist ein ungerichteter Graph G = (V , E )?
Ein ungerichteter Graph G = (V ,E ) besteht aus der Knotenmenge V und derKantenmenge 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 Vhö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 7 / 62
Autobahnverbindungen
WI F
MZDA
WÜ
MAKL
DA = DarmstadtF = FrankfurtKL = KaiserslauternMA = MannheimMZ = MainzWI = WiesbadenWÜ = Würzburg
G = (V ,E ) ist ein ungerichteter Graph mit
V :={MZ,WI,MA,DA,KL,F,WÜ
}und
E :={{MZ,WI}, {WI,F}, {F,DA}, {F,WÜ}, {MZ,DA},{MZ,KL}, {KL,MA}, {DA,MA}
}.
Ungerichtete Graphen 8 / 62
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 dieEndknoten von e, und sagen, dass e diese beiden Knoten verbindet.
I Zwei Knoten v , v ′ ∈ V heißen benachbart (bzw. adjazent), falls es eineKante e ∈ E mit Endknoten v und v ′ gibt (d.h. e = {v , v ′}).
I Falls v und v ′ zwei benachbarte Knoten sind, so sagen wir auch,dass v ′ ein Nachbar von Knoten v ist.
Der Grad von v in G (kurz: GradG(v)), ist die Anzahl der Kanten, die v alsEndknoten 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 9 / 62
Der Knotengrad: Ein Beispiel
Für den Graphen G =
a b
d c
gilt:
GradG(a) = 3GradG(b) = 2GradG(c) = 3GradG(d) = 2
und Grad(G) = 3.
Ungerichtete Graphen 10 / 62
Gerichtete Graphen
Gerichtete Graphen 11 / 62
Was ist ein gerichteter Graph G = (V , E )?
Ein gerichteter Graph G = (V ,E ) besteht aus der Knotenmenge V und derKantenmenge 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 12 / 62
Gerichtete Graphen: ein erstes Beispiel
Der gerichtete Graph G = (V ,E ) mit
ba
c
wird repräsentiert durch
V := {a, b, c} undE :=
{(a, b), (b, b), (b, c), (c, a), (a, c)
}.
Gerichtete Graphen 13 / 62
Darstellungen von GraphenAbstrakt, 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
cd
oder, äquivalent dazu, durch
a d cb
Durch Adjazenzlisten und Adjazenzmatrizen: Siehe die Vorlesung„Datenstrukturen“ im zweiten Semester.
Gerichtete Graphen 14 / 62
Gerichtete Graphen: Wichtige Begriffe
Sei G = (V ,E ) ein gerichteter Graph.
Ist e = (i , j) ∈ E , so ist i der Ausgangsknoten von e undj der Endknoten von e, und wir sagen, dass i und j benachbart sind.
I i heißt ein direkter Vorgänger von j undI j ein direkter Nachfolger von i .
Eine Kante der Form (i , i) wird Schleife genannt. D.h.: Eine Schleife ist eineKante, deren Ausgangs- und Endknoten identisch ist.Ein Knoten v ∈ V heißt inzident mit einer Kante e ∈ E , falls v derAusgangs- oder der Endknoten von e ist.Der Ausgangsgrad von v in G (kurz: Aus-GradG(v)) ist die Anzahl derKanten mit v als Ausgangsknoten. D.h.:
Aus-GradG(v) = |{e ∈ E : es ex. v ′ ∈ V s.d. e = (v , v ′)}|.
Der Eingangsgrad von v in G (kurz Ein-GradG(v)) ist die Anzahl derKanten mit v als Eingangsknoten. D.h.:
Ein-GradG(v) = |{e ∈ E : es ex. v ′ ∈ V s.d. e = (v ′, v)}|.
Gerichtete Graphen 15 / 62
Ein Beispiel
Für den Graphen G =
a
b
gilt:
Ein-GradG(a) = 0Ein-GradG(b) = 2Aus-GradG(a) = 1Aus-GradG(b) = 1.
Gerichtete Graphen 16 / 62
Wege in Graphen
Wege in Graphen 17 / 62
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 18 / 62
Kreise
1 Ein Weg (v0, . . . , v`) heißt einfacher Weg, wenn kein Knoten mehr alseinmal in dem Weg vorkommt (d.h. die Knoten v0, . . . , v` sind paarweiseverschieden, 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 19 / 62
Wege und Kreise: Beispiele (1/2)
Für den Graphena b
cd
egilt:
(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 20 / 62
Wege und Kreise: Beispiele (2/2)
Für den Graphena
b
cd
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 21 / 62
Das Königsberger Brückenproblem (1/2)
In der Stadt Königsberg gab es im 18. Jahrhundert sieben Brücken über den FlussPregel, die die Ufer und zwei Inseln miteinander verbanden.
Gibt es einen Spaziergang, der jede der sieben Brücken genau einmal überquertund zum Ausgangspunkt zurückkehrt?
Wege in Graphen 22 / 62
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 23 / 62
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 Kreuzungen oder Abfahrten sind die Knoten,I Straßenabschnitte, die Knoten direkt miteinander verbinden, sind die
gerichteten Kanten.(b) Wir versehen jede Kante mit geographischer Information.
I Für die Navigation: In welchem Stadtteil, Stadt, Bundesland oder Staat liegtder entsprechende Straßenabschnitt, welche Hausnummern kommen vor?
I Um schnellste Verbindungen zu berechnen:Weise jeder Kante eine Dauer zu, wenn der entsprechende Straßenabschnitt inRegelgeschwindigkeit gemäß den Verkehrsregeln durchfahren wird.
Wie berechnet man den Graphen aus der Karte und wie berechnet manschnellste Verbindungen?
Wege in Graphen Routenplaner 24 / 62
Ein Ausschnitt der Strassenkarte mit Einbahnstraßen
Wege in Graphen Routenplaner 25 / 62
Der gerichtete Graph „auf“ der Karte
Wege in Graphen Routenplaner 26 / 62
Der gerichtete Graph
Wege in Graphen Routenplaner 27 / 62
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 kürzester Länge,wobei
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 28 / 62
Graphen: Wichtige Anwendungsbeispiele
Wir haben gerade die in einer Straßenkarte relevante Informationdurch einen gerichteten Graphen (mit Zusatzinformation) repräsentiert.In ähnlicher Weise lassen sich
I das Schienennetz der deutschen Bahn oderI städtische S- und U-Bahn Netze veranschaulichen.
In einem Computer-Netzwerk werden Computer durch Knoten undNetzwerkverbindungen durch ungerichtete Kanten repräsentiert.
Im „Webgraphen“ repräsentieren die Knoten Webseiten unddie gerichteten Kanten Hyperlinks.Binäre Entscheidungsgraphen (BDD’s) werden in der technischenInformatik als Datenstruktur für die kompakte Darstellung und effizienteHandhabung boolescher Funktionen eingesetzt.(Siehe z.B. die Vorlesung Hardwarearchitekturen und Rechensysteme.)
Wege in Graphen Routenplaner 29 / 62
Suche in Graphen, bzw.wie findet man den Ausgang in einem Labyrinth?
Wege in Graphen Suche in Graphen 30 / 62
Wie findet man Wege aus einem Labyrinth?
Ein Auszug aus Umbert Eco’s „Der Name der Rose“.
William von Baskerville und sein Schüler Adson van Melk sind heimlich in die alsLabyrinth gebaute Bibliothek eines hochmittelalterlichen Klosters irgendwo imheutigen Norditalien eingedrungen.
Fasziniert von den geistigen Schätzen, die sie beherbergt, haben sie sich nicht dieMühe gemacht, sich ihren Weg zu merken.
Erst zu spät erkennen sie, dass die Räume unregelmäßig und scheinbar wirrmiteinander verbunden sind.
Man sitzt fest.
Wege in Graphen Suche in Graphen 31 / 62
William erinnert sich
„Um den Ausgang aus einem Labyrinth zu finden,“, dozierte William, „gibt esnur ein Mittel. An jedem Kreuzungspunkt wird der Durchgang, durch den mangekommen ist, mit drei Zeichen markiert. Erkennt man an den bereits vorhandenenZeichen auf einem der Durchgänge, dass man an der betreffenden Kreuzung schoneinmal 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 manumkehren und zurückgehen. Sind aber einer oder zwei Durchgänge der Kreuzungnoch nicht mit Zeichen versehen, so wählt man einen davon und bringt zwei Zeichenan. Durchschreitet man einen Durchgang, der nur ein Zeichen trägt, so markiert manihn mit zwei weiteren, so dass er nun drei Zeichen trägt. Alle Teile des Labyrinthesmüßten durchlaufen worden sein, wenn man, sobald man an eine Kreuzung gelangt,niemals den Durchgang mit drei Zeichen nimmt, sofern noch einer der anderenDurchgä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 32 / 62
„Der Name der Rose“: Das Labyrinth
Kann man vom Treppenaufgang V0 aus alle Räume Vi besuchen?
Eco.pdf Eco.pdf
@@@@
@@@@�
���
����
@@@@
@@@@�
���
����
����
����@
@@@
@@@@
���
���@
@@
@@@
Innenhof
BBBBBBB ��
����
��
V1 V2
V17 V18
��
�����AA
AAHH
HH
��
���
@@@
@@@
���� AA
HH
��
��
�� ��
V3
V4
V19
V20
V0
@@@@@@@@@@@@@@@@@@��
��
V36
V37
V38
V39
V40
Ostturm
PP
PPPPP
V5
V6
V21
V22
��
��
��
BBBBB
BB
��
����
��@
@@
@@
BBBB �
��
PPPP
AA
HH
V7
V8 V23
V24V33
V45
V44
V43
V42
V41
Südturm
��
����
��
V10 V9
V26 V25
�����
��
AAHH���@@@
����@
@@
�� ��
��
��
@@@
@@@
V12V11V28
V27V34
V46
V47
V48
V49
V50
Westturm
PPPPPPP
V14
V13
V30
V29
���
���
@@@@@@��
����
��
���
HH HH
AA
AA
HH
AA
V16
V15
V32
V31
V35
V55
V54
V53
V52
V51
Nordturm
Wege in Graphen Suche in Graphen 33 / 62
Das Labyrinth als ungerichteter Graph
Eco2.pdf Eco2.pdf
nn
n
nn
n
nnnn
nnnn
n n n nn n n n
nn
nn
nn
n n n nn n n n
nn
n
nn
nnnnn
nnnn
nn
nn
nn
1 2 3
4
5
6
7
891011
12
13
14
15
16
17 18 19
20
21
22
23
24252627
28
29
30
31
32 0
3334
35
36
37
38
39
40
41
42
43
44
4546
47
48
49
50
51
52
53
54
55
@@
@@
@@@@ �
���
@@
@@
��
��
�� @@
@@
@@
��
��
��
��
��
��
��
@@
@@
@@
@@
@@
@@
��
��
Wege in Graphen Suche in Graphen 34 / 62
Der Ariadne-Faden
Geht das denn nicht viel einfacher?
1. Prinzessin Ariadne, Tochter des Königs Minos, hat Theseus den„Ariadne-Faden“ geschenkt, um den Minotauros in einem Labyrinthaufzuspüren und danach wieder aus dem Labyrinth herauszufinden.
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 35 / 62
Suche in Graphen: TiefensucheDer Algorithmus „Tiefensuche“ implementiert und erweitert die Methode desAriadne-Fadens.
1. Ganz zu Anfang fasse alle Knoten als „unmarkiert“ auf.// Wir besuchen stets nur unmarkierte Knoten.
2. Sobald wir einen unmarkierten Knoten v von einem Knoten u aus besuchen(sprich: Zimmer v betreten),
I markieren wir v als besucht und wiederholen unser Vorgehenrekursiv für alle mit v benachbarten Knoten (sprich: Zimmer).
I Wenn schließlich alle Nachbarn von v markiert sind, dannkehren wir zu u zurück: Wir benutzen den Ariadne-Faden.
In der Vorlesung „Datenstrukturen“: Tiefensuche funktioniert und istschnell.Labyrinth-Probleme
„gibt es einen Weg vom Knoten u zu einem Ausgang v?“lassen sich effizient lösen :-))).
Wege in Graphen Suche in Graphen 36 / 62
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 Wege erreichbaren Knoten.
Der Graph G heißt zusammenhängend, wenn die Zusammenhangs-komponente irgendeines Knotens aus allen Knoten von G besteht.
(b) Wenn G gerichtet ist, dann besteht die starke Zusammenhangs-komponente von v aus allen Knoten w ,
I die sowohl von v aus erreichbar sind,I die aber auch v selbst durch einen in w beginnenden Weg erreichen.
G heißt stark zusammenhängend, wenn die starke Zusammenhangs-komponente irgendeines Knotens aus allen Knoten von G besteht.
Wege in Graphen Suche in Graphen 37 / 62
Zusammenhang: Beispiele
Der Graph ist zusammenhängend,
ist nicht zusammenhängend und bestehtaus zwei Zusammenhangskomponenten.
Der Graphist nicht stark zusammenhängend,da es z.B. keinen Weg vom Knotenlinks oben zum Knoten links unten gibt.
ist stark zusammenhängend.
Wege in Graphen Suche in Graphen 38 / 62
Hamilton-Kreise
Kreise Hamiltonkreise 39 / 62
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 Vgenau einmal in W vorkommt.
(b) Ein Weg W = (v0, . . . , v`) heißt Hamilton-Kreis, wenn ` > 1 und v` = v0und (v0, . . . , v`−1) ein Hamilton-Weg ist.
Der Graph Gb
c ed
a
hat einen Hamilton-Weg, nämlich (e, c, d, a, b), aber keinen Hamilton-Kreis, daAus-GradG(b) = 0 ist.
Kreise Hamiltonkreise 40 / 62
Wo ist der Hamilton-Kreis?
Kreise Hamiltonkreise 41 / 62
Hamilton-Kreise: Wie schwierig?
Wir erhalten einen gerichteten oder ungerichteten Graphen mit mehrerenTausenden von Knoten: Wir sollen noch nicht einmal einen Hamilton-Kreisbestimmen, sondern nur die Frage beantworten, ob es einen Hamilton-Kreis gibt.
Trauen Sie sich zu ein Programm zu schreiben, dass diese Frage zu ihrenLebzeiten beantwortet?
In der Veranstaltung „Theoretische Informatik 1“ wird gezeigt, dass auch dieseFrage, wie schon das Erfüllbarkeitsproblem KNF-SAT, NP-vollständig ist. :-(((
Euler-Kreise, falls vorhanden, lassen sich hingegen effizient bestimmen. (EinEuler-Kreis durchläuft alle Kanten genau einmal.) :-)))
Kreise Hamiltonkreise 42 / 62
Zuordnungsprobleme
Zuordnungsprobleme 43 / 62
Wer mag wen?
In einem Tennisverein sollen die Vereinsmitglieder für ein Turnier zuDoppelpaarungen zusammengestellt werden. Dabei möchte man jeweils nurbefreundete Personen als „Doppel“ zusammen spielen lassen.
Wir modellieren die Aufgabenstellung durch den ungerichteten GraphenGT := (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 ′ ⊆ ET , so dass kein VereinsmitgliedEndpunkt von mehr als einer Kante aus E ′ ist.
Zuordnungsprobleme 44 / 62
Wer kann was?
Eine Gruppe unterschiedlich ausgebildeter Piloten soll so auf Flugzeuge verteiltwerden, dass jeder das ihm zugeteilte Flugzeug fliegen kann.
Auch hier modellieren wir die Fragestellung durch einen ungerichteten GraphenGF := (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 zugeteilteFlugzeug fliegen kann.
D.h.: Finde eine möglichst große Menge E ′ ⊆ EF ,so dass kein Element aus VF Endpunkt von mehr als einer Kante in E ′ ist.
Zuordnungsprobleme 45 / 62
Zuordungsprobleme
Sei G = (V ,E ) ein ungerichteter Graph. Wir nennen eine Kantenmenge E ′ ⊆ Eein Matching (bzw. eine Menge unabhängiger Kanten),
falls kein Knoten aus V Endpunkt von mehr als einer Kante aus E ′ ist.
Typischerweise, wie auch in den beiden Beispielen, möchte man einmöglichst großes Matching bestimmen.
Manchmal sind die Kanten auch mit Gewichten markiert, um auszudrückenwie befreundet zwei Mitglieder sindoder 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 effizientbestimmt werden kann. :-)))
Zuordnungsprobleme Matching 46 / 62
MatchingsIn einem Tennisverein mit 10 Mitgliedern und „Freundschaftsgraph“
GT =
2
5
1
3
4
10
7
8
9
6
sind z.B. die folgenden beiden Kantenmengen Matchings:
2
5
1
3
4
10
7
8
9
6
und
2
5
1
3
4
10
9
7
8
6
Zuordnungsprobleme Matching 47 / 62
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 er nicht leiden kann.
1. Stelle den Konfliktgraphen G = (V ,E ) auf, wobei
V := {x : Person x soll zur Feier kommen} und
E :=
{{x , y} :
Person x kann Person y nicht leiden oderPerson y kann Person x nicht leiden
}d.h. Kanten im Konfliktgraphen zeigen auf, wer im Konflikt mit wem steht.
Zuordnungsprobleme Wer neben wem? 48 / 62
Sitzordnung: Wer neben wem? (2/2)
2. Bilde das Komplement des Konfliktgraphen,d.h. betrachte den Graphen G = (V , E ) mit
V := V undE :=
{{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 = |V |) ein Hamilton-Weg in G ist, dann kann mandie Sitzordnung folgendermaßen festlegen:
v7
v1
v4
vn
v6v5
v3
v2
Zuordnungsprobleme Wer neben wem? 49 / 62
Das Färbungsproblem
Das Färbungsproblem 50 / 62
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 jedeKante {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 / 62
Wieviele Farben?Eine konfliktfreie Färbung mit drei Farben ist möglich:
1A
3B
3C
1D
2E
1F
2G
3H
2I
Drei Farben sind auch notwendig, weil der Konfliktgraph ein Dreieck, z.B.
D
H
E
als Teilgraph enthält.Das Färbungsproblem 52 / 62
Das 4-Farben Problem
Wie viele Farben sind nötig, um jede Landkarte so einzufärben, dass zwei Staatenmit 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 miteinanderverbunden 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 / 62
Färbung von Landkarten
Wir betrachten eine kleine Landkarte
ab
f
c
e
d
und ihren Konfliktgraphen:
fb a
c
d e
Knoten = StaatenKanten = 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 Farbenzuordnen. — 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; ekann jede Farbe außer blau erhalten.
Das Färbungsproblem Das 4-Farben Problem 54 / 62
Planare GraphenDie 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 Ebenegezeichnet werden kann.
Beispiele für nicht-planare Graphen sind:
Das Färbungsproblem Planare Graphen 55 / 62
Anwendungen des Färbungsproblems
Knoten | Kanten | Farbe/Markierung| |
Staat auf Karte | gemeinsame Grenze | Farbe| |
Gast auf Feier | können sich nicht leiden | Tischnummer| |
Vorlesung | gemeinsame Hörer | Termin| |
Prozess | benötigen dieselbe Ressource | Ausführungstermin
Aber leider ist schon die Frage, ob 3 Farben ausreichen, NP-vollständig. :-(((
Das Färbungsproblem Anwendungen 56 / 62
Isomorphie von Graphen
Isomorphie 57 / 62
Gleichheit und Isomorphie von Graphen (1/2)
G = (V ,E ) und G ′ = (V ′,E ′) seien zwei (gerichtete oder ungerichtete) Graphen.(a) G heißen gleich (kurz: G = G ′),
falls sie dieselbe Knotenmenge und dieselbe Kantenmenge besitzen. D.h.:
G = G ′ :⇐⇒ V = V ′ und E = E ′.
(b) G und G ′ heißen isomorph (kurz: G ∼= G ′, in Worten: G ist isomorph zu G ′),falls es eine bijektive Abbildung f : V → V ′ gibt, so dass für alle Knoteni ∈ V und j ∈ V gilt:
I Falls G und G ′ gerichtet sind:
(i , j) ∈ E ⇐⇒(f (i), f (j)
)∈ E ′.
I Falls G und G ′ ungerichtet sind:
{i , j} ∈ E ⇐⇒ {f (i), f (j)} ∈ E ′.
Eine solche Abbildung f wird Isomorphismus von G nach G ′ genannt.
Isomorphie 58 / 62
Gleichheit und Isomorphie von Graphen (2/2)
Zwei (gerichtete oder ungerichtete) Graphen G1 und G2 sind genau dannisomorph, wenn G1 und G2 gleich sind,
nachdem die Knoten von G2 umbenannt werden.
Die beiden Graphen
1
2
4
3und
a
c
d
b
sind nicht gleich, da sie unterschiedliche Knotenmengen besitzen,wohl aber isomorph.
Isomorphie 59 / 62
Gleichheit und Isomorphie: Weitere Beispiele
G G ′ G ′′
1
2
4
3
ba c d ba c d
Dann gilt:G ∼= G ′ via f : {1, 2, 3, 4} → {a, b, c, d}mit f (1) = c, f (2) = d , f (3) = a, f (4) = b.G ′ ist nicht isomorph zu G ′′ (kurz: G ′ � G ′′),denn G ′′ hat mehr Kanten als G ′.
Isomorphie 60 / 62
Wichtige Graphklassen
Isomorphie 61 / 62
Planare, vollständige, bipartite und kreisfreie Graphen
(a) Planare Graphen haben wir schon in der Diskussion des Färbungsproblemskennengelernt.
(b) Der vollständige Graph Kn = ({1, . . . , n},En) mit n Knoten ist ein unge-richteter Graph: Kn besitzt für je zwei verschiedene Knoten eine Kante, es ist
En = { {i , j} : 1 6 i 6= j 6 n }.
(c) Ein ungerichteter Graph G = (V ,E ) heißt bipartit, wenn die KnotenmengeV = V1 ∪V2 so in zwei disjunkte Teilmengen V1,V2 zerlegt werden kann, dassalle Kanten genau einen Endpunkt in V1 und einen Endpunkt in V2 besitzen.
I Bipartite Graphen tauchen häufig in Zuordnungsproblemen auf.(d) Ein gerichteter Graph ohne Kreise heißt azyklisch.
I Eine Menge V von Aufgaben mit Präzedenzen E ⊆ V × V definiert einenazyklischen Graph, wenn die Aufgaben ohne Deadlock ausführbar sind.
Und wenn ein ungerichteter Graph keine Kreise besitzt?
Isomorphie 62 / 62