Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen...
Transcript of Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen...
Graphen
Graphen Diskrete Modellierung 23. November 2020 1 / 64
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).
Graphen Diskrete Modellierung 23. November 2020 2 / 64
MainMain
MainMain
Rhein
Rhein
Bad Homburg-Gonzenheim
Oberursel-Hohemark
Riedberg
Heddernheim
Ginnheim
Bocke
nheim
er
Wart
e
BornheimSeckbacher Landstraße
Frank
furt O
st
Uni Campus Riedberg
WaldlustRosengärtchen
KupferhammerGlöcknerwiese
LahnstraßeOberursel AltstadtOberursel Stadtmitte
BommersheimWeißkirchen Ost
Friedhof Westhausen
Stephan-Heise-Straße
Hausener Weg
Fischstein
HeddernheimerLandstraße
Festhalle/Messe
NordwestzentrumRömerstadt
Niddapark
Nieder-EschbachOber-Eschbach
Bonames MitteKalbach
Niederu
rsel
Wiesen
auRiedwiese/Mertonviertel
Sandelmühle
F-EschersheimWeißer Stein
LindenbaumHügelstraße
Fritz-Tarnow-StraßeDornbusch
Kirchp
latz
Leipz
iger S
traße
Westen
d
Alte O
per
Grüneburgweg
Hauptwache
Willy-Brandt-Platz
Dom/Römer
Zoo
Musterschule
Glauburgstraße
Deutsche Nationalbibliothek
Hauptfriedhof
Gießener Straße
Theobald-Ziegler-Straße
Sigmund-Freud-StraßeHessen-Center
Kruppstraße
Gwinnerstraße
Schäfflestraße
Johanna-Tesch-Platz
Eissporthalle/Festplatz
Parlamentsplatz
Habsburgerallee
PreungesheimEnkheim
Ronneburgstraße
BornheimMitte
Höhenstraße
Merianplatz
Marbachweg/Sozialzentrum
Miquel-/Adickesallee
Holzhausen-straße
Eschenheimer Tor
Zeilweg
x
x
x
xx
x
xx
x
Große Nelkenstr.
Hausen
Industriehof
PraunheimHeerstraße
x
Schweizer Platz
U1
U2
U3
U7
U6
U8
U9
U9
U5
U7U4
U6
U5
U4
U2 U3 U8U1
U1
U8
U2
U3
U6 U7
U4
U7
U5
U4
RB58 RE59
RE20RB22
RE54RE55
RB58RE59
RB40/41RE98/99
ICERB16 RB47
RB47
RB48
RB49RE30
RB48 RB49
RB34
RB46
RB46
RB34
RB21
RB11
RB21
RE20RB22
RB75
RB12
RB15RB15
RB16
RB15
RB16
RE50
RB51
RB56
RB75
RE80 RB81
RB61
RB82
RE85RB86
RB66
RE70
RB81RE80
RE60
RB58
RB67/68
ICE IC
RE2RE3
RE4
ICE IC
ICE
ICE IC
ICE
RB10
RB11
RB34
RB49
RB49
RE50
RE85
RB86
RE55RB51 RE85
RB61
RE55 RE85
RE50 RB51
RB75
RE60
RB67
/68
RB82
RE70
RB15
RB15
RB75
RB21
RB10
RB75
RB11
RB75
RE70
RB40/41
RE98/9
9
RB34
RB48
RE2 RE3 RE70
RB58RE59
RE2 RE3
RE4 RE9 RB10 RE14
RE4 RE14
RE4 RE9 RB10 RE14 RE20 RB22
RE4 RE9 RB10 RB12 RE14 RB15 RE20 RB22
RB12 RE30
RE13
RB31
RE14
RB49 RB86
RE54 RB58 RE59
RB61
RB61
RE59
RB58 ICE IC
S3
S4
S6
S7
S5
S2
S8 S9S1
S4
S5
S6
S8 S9
S1
S2
S3
S3 S4
S1
S1
S1
S2
S2
S2
S8S9
S8S9S
7
S7
S2
S9 S8
S1
S3
S4
S3
S4
S5
S5
S6
S9 S8
RB21
Maintal
Wes
t
Bad Homburgx
x
Oberurselx
Stierstadtx
Weißkirchen/ Steinbach
x
Brando
bernd
orfx
Hasse
lborn
Hunds
tadt
Hause
n
Wilhelm
sdorf
Gräven
wiesba
ch
Usinge
n
Fried
richs
dorfxx
xx x
Neu-A
nspa
chx
Wehrhe
imx
Köppe
rn
Burgho
lzhau
sen
Rodhe
im
Rosba
ch
Bad Vilb
el-Gron
au
Niederd
orfeld
en
Schön
eck-
Obe
rdorfe
lden
Schön
eck-
Kilia
nstäd
ten
Schön
eck-
Büd
eshe
im
Niddera
u-
Wind
ecke
n
x
Saalbu
rg/
Lo
chmüh
le
Fried
berg
Süd W
ö l f er s
h e im-
Söd e l N i dd a
Gie
ßen
G e l n h a u s e n
G i e ß e n
Friedberg
Glauburg-Stockheim
Glauburg-GlaubergAssenheim
x
x
Altenstadt-LindheimxBruchenbrückenx
x
Nieder-WöllstadtxOkarben
Dortelweil
x
Bad Vilbel SüdF-Berkersheim
F-Frankfurter Berg
x
Groß-Karben
Bad Vilbel
xx
x
x
xAltenstadt-Höchst x
Nidderau-EichenNidderau
Ostheim
Bruchköbel
Hanau Nord
Offenbach Hbf
x
x
x
Of-Bieber x
Of-Waldhof x
R-Hainhausen
Rodgau-Weiskirchen
x
x
R-Jügesheim x
R-Dudenhofen x
R-Nieder-Roden x
R-Rollwald x
Zeppelinheim
x
Walldorf x
Mörfelden x
Obertshausen x
AltheimMessel
Sprendlingen
Weibelfeld UrberachGötzenhain
Dreieichenhain Offenthal
Darmstadt Nord
Groß-GerauNauheim
Darmstadt-Kranichstein
Hergers-hausen
x
HeusenstammxF-Louisa
F-Niederrad
F-Griesheim
Taunusanlage
F-NiedF-FarbwerkeF-Sindlingen
F-Stadion x
Neu-Isenburgx
EgelsbachKlein-Gerau
Weiterstadt
xGroß-Gerau-Dornberg
Dornheim
Wolfskehlen
Stockstadt
Biebesheim
Gernsheim
x
x x
x
Erzhausenx
xx
x
Langenx
Riedstadt-Goddelau
xx
x
Bischofs-heim
Flörsh
eim
Edde
rsheim
Hatters
heim
x
Mainz Nord
Gustavs-burg
Mainz Römisches Theater
x
x
LangenFlugsicherung
Darmstadt-Wixhausen
x Darmstadt-Arheilgen
Dreieich-Buchschlag
Frankfurt- Höchst
FrankfurtSüd
Frankfurt Hbf
ICE IC
Steinbergx
Dietzenbach Mittex
Eppertshausenxx
xx
Münsterx
Dieburg
Rödermark-Ober-Roden
x
Darmstadt Hbfx
Dietzenbach Bfx
xxx
Hainburg-Hainstadt
Mainhausen-Zellhausen
Babenhausen-Langstadt
Groß-Umstadt-Klein-Umstadt
Hanau- Klein-Auheim
x
Seligenstadt x
Babenhausen
Groß-Umstadt Mitte
x
x
Altenstadtx
x
x
xSeulberg
Ostendstraße
Konstablerwache
LokalbahnhofStresemann-allee
As c h a f f e n b u r g
S c h ö l l k r i p p e n
A s c h a f f e n b u r g
E r b a c h / E b e r b a c h
Man
nh
eim
/H
eid
elb
erg
P f un g s t a
d t
Mannh e im
Hanau Hbf
Groß-UmstadtWiebelsbach
F-Main
kur
Of-Kais
erlei
Of-Led
ermus
eum
Of-Mark
tplatz
Mühlhe
im
Dietes
heim
Hanau
-
Stei
nheim
Offenb
ach O
st
F-Müh
lberg
Maintal
Ost
Hanau
-
Wilh
elmsb
ad
Hanau
West
Frank
furt O
st
x
x
x
x
A l ze y
S a a r b r ü c k e nK o b l e n z
K o b l e n z
Mainz Hbf
Wiesbaden Hbf
Wiesbaden Ost
Wiesbaden-Erbenheim
Wiesbaden-Igstadt
Wi-Auringen-Medenbach
Kastel x
xx
x
NiedernhausenBad Sodenx
KronbergKönigstein
KönigsteinSchneidhain
x
Kronberg Süd x
Niederhöchstadt x
Niederjosbach x
Sulzbach
F-Sossenheim
x
x
x
Eppst.-Bremthal x
Eppstein x
x
Frankfurt West
F-Rödelheim
Eschborn Süd
Eschborn
x Schwalbachx
xSulzbach Nord
Schwalbach Nord
Messe
Galluswarte
F-Unter- liederbach
Liederbach Süd
Kelkheim- Münster
Kelkheim- Hornau
Liederbach
Kelkheim
x
xLorsbach x
Hofheim x
Kriftel x
F-ZeilsheimHoc
hheim
L imbu r g
RE9E l t v i l l e
Wo
rms
x
Wäch t e
r sb a c h / F
u l da
RE80 RB81 RB82
DarmstadtOst
DarmstadtTU-Lichtwiese
Otzberg Lengfeld
Ober-RamstadtMühltal Reinheim
xx x
Frankfurt Flughafen Fernbahnhof F-Gateway
Gardens
Frankfurt FlughafenRegionalbahnhof
KelsterbachRüsselsheim
RaunheimRüsselsheimOpelwerk
s
ICE ICICE IC
RE2 RE3 RE4 RE9 RB10RE14
RB12
RE99RE98
S7
Abfahrt von den FernbahnsteigenFrankfurt Hbf
U-Bahn
S-Bahn
Regionalzüge
Stationen
Fernverkehrsanschluss
RB RE
C
B
RB61RE60 RB67 RB68 RE70 RB82 RE85RB48RB41 RE50 RB51 RE54 RE55 RB58
RE20RB15 RB22 RE30 RB34 RB40
Änderungen vorbehalten. Gültig ab 15. Dezember 2019©Rhein-Main-Verkehrsverbund
Schnellbahnplan
rmv.de
RMV-Servicetelefon069/24 24 80 24
Graphen Diskrete Modellierung 23. November 2020 3 / 64
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
?
������
? ���
?
Graphen Diskrete Modellierung 23. November 2020 4 / 64
Ungerichtete Graphen
Graphen Diskrete Modellierung 23. November 2020 5 / 64
Was ist ein ungerichteter Graph G = (V , E )?
DEFINITIONEin 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“.
iGraphen Diskrete Modellierung 23. November 2020 6 / 64
Autobahnverbindungen
KL
WI F
MZDA
WÜ
MA
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}
}.
(Eine Kante {u, v} gehört zu E , wenn die u, v entsprechenden Städte direkt verbunden sind.)Graphen Diskrete Modellierung 23. November 2020 7 / 64
Ungerichtete Graphen: Wichtige Begriffe
DEFINITIONSei 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 in G .
Graphen Diskrete Modellierung 23. November 2020 8 / 64
Der Knotengrad: Ein Beispiel
Für den Graphen G =
c
a b
d
gilt:
GradG(a) = 3GradG(b) = 2GradG(c) = 3GradG(d) = 2
und Grad(G) = 3.
Graphen Diskrete Modellierung 23. November 2020 9 / 64
Python: Eine Klasse „Graph“ (1/2)
Repräsentiere G = (V ,E ) durch ein
Dictionary „Graph“,
das für jeden Knoten v ∈ V eine Liste Graph[v ] der Nachbarn von v besitzt.
Für den Graphen aus der letzten Folie ist
Graph = { “a“ : [“d“, “b“, “c“],“b“ : [“a“, “c“],“c“ : [“d“, “a“, “b“],“d“ : [“c“, “a“]
}
Graphen Diskrete Modellierung 23. November 2020 10 / 64
Python: Eine Klasse „Graph“ (2/2)
Mögliche Operationen der Klasse:
1. Initialisiere den Graphen.2. Füge Knoten (Kanten) hinzu, bzw. entferne Knoten (Kanten).3. Bestimme alle von einem Knoten v ∈ V aus erreichbaren Knoten bzw.
bestimme kürzeste Wege von v zu allen erreichbaren Knoten.4. Bestimme die Zusammenhangskomponenten des Graphen.5. Wenn Kanten (unterschiedlich) „teuer“ sind:
Bestimme eine billigste „aufspannende“ Teilmenge F ⊆ E von Kanten, sodass alle auf E erreichbaren Knotenpaare auch auf F erreichbar bleiben.
6. ...?!
Erreichbarkeit, kürzeste Wege, Zusammenhangskomponenten: Was ist das?
Graphen Diskrete Modellierung 23. November 2020 11 / 64
Gerichtete Graphen
Graphen Diskrete Modellierung 23. November 2020 12 / 64
Was ist ein gerichteter Graph G = (V , E )?
DEFINITIONEin 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.
Graphen Diskrete Modellierung 23. November 2020 13 / 64
Gerichtete Graphen: ein erstes Beispiel
Der gerichtete Graph G = (V ,E ) mit
c
a b
wird repräsentiert durch
V := {a, b, c} undE :=
{(a, b), (b, b), (b, c), (c, a), (a, c)
}.
Graphen Diskrete Modellierung 23. November 2020 14 / 64
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
d
a b
c
oder, äquivalent dazu, durch
ba d c
Durch Adjazenzlisten und Adjazenzmatrizen: Siehe die Vorlesung„Algorithmen und Datenstrukturen 1“ im zweiten Semester.
Graphen Diskrete Modellierung 23. November 2020 15 / 64
Gerichtete Graphen: Wichtige Begriffe
DEFINITIONSei 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 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- oderder Endknoten von e ist.Der Ausgangsgrad von v in G (kurz: Aus-GradG(v)) ist die Anzahl der Kanten mitv 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 der Kanten mit vals Eingangsknoten. D.h.:
Ein-GradG(v) = |{e ∈ E : es ex. v ′ ∈ V s.d. e = (v ′, v)}|.
Graphen Diskrete Modellierung 23. November 2020 16 / 64
Ein Beispiel
Für den Graphen G =
a
b
gilt:
Ein-GradG(a) = 0Ein-GradG(b) = 2Aus-GradG(a) = 1Aus-GradG(b) = 1.
Graphen Diskrete Modellierung 23. November 2020 17 / 64
Wege in Graphen
Graphen Diskrete Modellierung 23. November 2020 18 / 64
Wege
DEFINITIONSei 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.Graphen Diskrete Modellierung 23. November 2020 19 / 64
(Einfache) Wege und Kreise
DEFINITIONEin 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).
Ein Weg (v0, . . . , v`) heißt Kreis, wenn ` > 1 und v` = v0 ist.
Ein Kreis (v0, . . . , v`) heißt einfacher Kreis, wenn (v0, . . . , v`−1) eineinfacher Weg ist und keine Kante mehrfach durchlaufen wird.
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}| = `.In einem ungerichteten Graphen G sind einfache Kreise genau die Wege derForm (v0, . . . , v`), für die gilt: ` > 3 und v` = v0 und |{v0, . . . , v`−1}| = `.
Graphen Diskrete Modellierung 23. November 2020 20 / 64
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.
Graphen Diskrete Modellierung 23. November 2020 21 / 64
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.
Graphen Diskrete Modellierung 23. November 2020 22 / 64
Das Königsberger Brückenproblem
Graphen Diskrete Modellierung 23. November 2020 23 / 64
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 beiden Ufer und die zwei Inseln miteinander verbanden.
Gibt es einen Spaziergang, der jede der sieben Brücken genau einmal überquertund zum Ausgangspunkt zurückkehrt?
Graphen Diskrete Modellierung 23. November 2020 24 / 64
Das Königsberger Brückenproblem (2/2)
Eine Graph-theoretische Modellierung: Jedes Ufer und jede Insel wird durch einenKnoten repräsentiert. Kanten entsprechen Brücken.
Die „Pregel-Skizze“ wird also durch den Graphen GKönigsberg repräsentiert:(„Mehrfachkanten“ sind ausnahmsweise erlaubt.)
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?
Graphen Diskrete Modellierung 23. November 2020 25 / 64
Routenplaner
Graphen Diskrete Modellierung 23. November 2020 26 / 64
Routenplaner: Die Länge „gewichteter“ Wege
Wie gehen Routenplaner vor, um schnellste Verbindungen zwischen einem Startund einem Ziel zu berechnen?
Die relevanten Informationen werden durch einen gerichteten Graphenrepräsentiert.(a) Der gerichtete Graph:
I Kreuzungen oder Abfahrten sind die Knoten,I Straßenabschnitte, die Knoten direkt miteinander verbinden, sind die
gerichteten Kanten.(b) Jede Kante wird mit geographischer Information versehen.
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?
Graphen Diskrete Modellierung 23. November 2020 27 / 64
Ein Ausschnitt der Strassenkarte mit Einbahnstraßen
Graphen Diskrete Modellierung 23. November 2020 28 / 64
Der gerichtete Graph „auf“ der Karte
Graphen Diskrete Modellierung 23. November 2020 29 / 64
Der gerichtete Graph
Graphen Diskrete Modellierung 23. November 2020 30 / 64
Und wie bestimmt man schnellste Verbindungen?Was genau ist das zugrunde liegende Problem?
DEFINITION(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 „Algorithmen und Datenstrukturen 1,2“ wird eineschnelle Lösung dieses „Kürzesten-Wege-Problems“ mit
dem Algorithmus von Dijkstrabeschrieben. :-)))
Graphen Diskrete Modellierung 23. November 2020 31 / 64
Graphen: Wichtige AnwendungsbeispieleWir 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.
Um soziale Netzwerke zu modellieren, werden Knoten für die Akteure undKanten für paarweise Beziehungen zwischen den Akteuren eingesetzt.
I Bestimme Cluster von Akteuren oderI die wichtigen Akteure oder . . .
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 VorlesungRechnertechnologie und kombinatorische Schaltungen.)
Graphen Diskrete Modellierung 23. November 2020 32 / 64
Zusammenhang
Graphen Diskrete Modellierung 23. November 2020 33 / 64
Zusammenhang
DEFINITIONSei 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 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.
Graphen Diskrete Modellierung 23. November 2020 34 / 64
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.
Graphen Diskrete Modellierung 23. November 2020 35 / 64
Zuordnungsprobleme
Graphen Diskrete Modellierung 23. November 2020 36 / 64
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.
Graphen Diskrete Modellierung 23. November 2020 37 / 64
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.
Graphen Diskrete Modellierung 23. November 2020 38 / 64
Das Matching Problem (1/2)
DEFINITIONSei G = (V ,E ) ein ungerichteter Graph.(a) Wir nennen eine Kantenmenge E ′ ⊆ E ein Matching (bzw. eine Menge
unabhängiger Kanten),falls kein Knoten aus V Endpunkt von mehr als einer Kante aus E ′ ist.
(b) Ein Matching M heißt genau dann perfekt, wenn jeder Knoten aus VEndpunkt einer Kante von M ist.
Typischerweise, wie auch in den beiden Beispielen, möchte man ein möglichstgroßes Matching bestimmen.
Ein perfektes Matching ist größtmöglich.
Graphen Diskrete Modellierung 23. November 2020 39 / 64
Das Matching Problem (2/2)
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. :-)))
Graphen Diskrete Modellierung 23. November 2020 40 / 64
Das Matching Problem: BeispieleIn einem Tennisverein mit 10 Mitgliedern und dem „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
62
5
1
3
4
10
9
7
8
Graphen Diskrete Modellierung 23. November 2020 41 / 64
Schwierige Probleme: Hamilton-Kreise
Graphen Diskrete Modellierung 23. November 2020 42 / 64
Hamilton-Kreise und Hamilton-Wege
DEFINITIONSei 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 (v0, . . . , v`−1) ein
Hamilton-Weg ist und v` = v0 gilt.
Der Graph G
a b
c ed
hat einen Hamilton-Weg, nämlich (e, c, d, a, b), aber keinen Hamilton-Kreis, daAus-GradG(b) = 0 ist.
Graphen Diskrete Modellierung 23. November 2020 43 / 64
Wo ist der Hamilton-Kreis?
Graphen Diskrete Modellierung 23. November 2020 44 / 64
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 „Algorithmen und Datenstrukturen 2“ wird gezeigt, dassauch diese Frage, wie schon das Erfüllbarkeitsproblem KNF-SAT, NP-vollständigist. :-(((
Euler-Kreise, falls vorhanden, lassen sich hingegen effizient bestimmen. (EinEuler-Kreis durchläuft alle Kanten genau einmal.) :-)))
Graphen Diskrete Modellierung 23. November 2020 45 / 64
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
E :={{x , y} : Person x kann Person y nicht leiden oder
Person y kann Person x nicht leiden
}d.h. Kanten im Konfliktgraphen zeigen auf, wer im Konflikt mit wem steht.
Graphen Diskrete Modellierung 23. November 2020 46 / 64
Sitzordnung: Wer neben wem? (2/2)
2. Bilde das Komplement des Konfliktgraphen,d.h. betrachte den Freundschaftsgraphen 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:
v2v7
v1
v4
vn
v6v5v3
Graphen Diskrete Modellierung 23. November 2020 47 / 64
Schwierige Probleme: Das Färbungsproblem
Graphen Diskrete Modellierung 23. November 2020 48 / 64
Färbung von Knoten
DEFINITIONSei G = (V ,E ) ein ungerichteter Graph und F eine Menge.
Eine Funktion m : V → F heißt eine Färbung von G , wenn für jede Kante{x , y} ∈ E gilt: m(x) 6= m(y).Eine Färbung m von G heißt eine k-Färbung von G , wenn F genau kElemente besitzt.G heißt k-färbbar, wenn G eine k-Färbung besitzt. Ist G k-färbbar, abernicht (k − 1)-färbbar, dann heißt χ(G) := k die chromatische Zahl von G .
Graphen Diskrete Modellierung 23. November 2020 49 / 64
Wieviele Farben? (1/2)
Eine Familienfeier mit Gästen A, B, C, D, E, F, G, H, I und dem Konfliktgraphen:
I
A B C
D E F
G H
Bestimme die chromatische Zahl!
Graphen Diskrete Modellierung 23. November 2020 50 / 64
Wieviele Farben? (2/2)Eine 3-Färbung ist möglich:
1A
3B
3C
1D
2E
1F
2G
3H
2I
Drei Farben sind auch notwendig, weil der Konfliktgraph ein Dreieck, z.B.E
D
H
als Teilgraph enthält.Graphen Diskrete Modellierung 23. November 2020 51 / 64
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 Färbung mit möglichst wenigen Farben.
Graphen Diskrete Modellierung 23. November 2020 52 / 64
Färbung von Landkarten und planare Graphen (1/2)
Wir betrachten eine kleine Landkarte
d
ab
f
c
e
und ihren Konfliktgraphen:
e
fb a
c
d
Knoten = StaatenKanten = Staaten mit gemeinsamer Grenze
Jeder der vier Knoten a, b, c, d ist mit jedem anderen benachbart =⇒
Eine Färbung muss den vier Knoten vier verschiedene Farben zuordnen. — füra, b, c, d etwa rot, gelb, grün, blau.
Da f außerdem mit b, c, d benachbart ist, muss f die Farbe rot erhalten; e kannjede Farbe außer blau erhalten.
Graphen Diskrete Modellierung 23. November 2020 53 / 64
Färbung von Landkarten und planare Graphen (2/2)Die aus Landkarten entstehenden Konfliktgraphen sind planar.
DEFINITIONEin 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:
Graphen Diskrete Modellierung 23. November 2020 54 / 64
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. :-(((
Graphen Diskrete Modellierung 23. November 2020 55 / 64
Isomorphie von Graphen
Graphen Diskrete Modellierung 23. November 2020 56 / 64
Gleichheit und Isomorphie von Graphen (1/2)
DEFINITIONG = (V , E) und G ′ = (V ′, E ′) seien zwei (gerichtete oder ungerichtete) Graphen.(a) G und G ′ heißen gleich (kurz: G = G ′), falls
V = V ′ und E = E ′.
(b) G und G ′ heißen isomorph (kurz: G ∼= G ′, in Worten: G ist isomorph zu G ′), fallses eine bijektive Abbildung f : V → V ′ gibt, so dass f. a. Knoten i ∈ V und j ∈ Vgilt:
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.
Graphen Diskrete Modellierung 23. November 2020 57 / 64
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
31
2
4
und
b
a
c
d
sind nicht gleich, da sie unterschiedliche Knotenmengen besitzen,wohl aber isomorph.
Graphen Diskrete Modellierung 23. November 2020 58 / 64
Gleichheit und Isomorphie: Weitere Beispiele
G G ′ G ′′
31
2
4 dba c dba c
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 (oder f (3) = b, f (4) = a).G ′ ist nicht isomorph zu G ′′ (kurz: G ′ � G ′′),denn G ′′ hat mehr Kanten als G ′.
Graphen Diskrete Modellierung 23. November 2020 59 / 64
Wichtige Graphklassen
Graphen Diskrete Modellierung 23. November 2020 60 / 64
Vollständige Graphen und der Würfel(a) 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 }.
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 }.
ε
W0
0 1
W1
00
10
01
11
W2
000
100
010
110
001
101
011
111
W3
Der Würfel Wd für d ∈ {0, . . . , 3}.Graphen Diskrete Modellierung 23. November 2020 61 / 64
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 V2besitzen.
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 einenazyklischen Graph, wenn die Aufgaben ohne Deadlock ausführbar sind.
Und wenn ein ungerichteter Graph keine Kreise besitzt?
Graphen Diskrete Modellierung 23. November 2020 62 / 64
Einfache und schwierige Probleme
Graphen Diskrete Modellierung 23. November 2020 63 / 64
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 Färbung mit möglichst wenigen Farben.
Viel, viel mehr in den „Algorithmen und Datenstrukturen 2“.
Graphen Diskrete Modellierung 23. November 2020 64 / 64