Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen...

64
Graphen Graphen Diskrete Modellierung 23. November 2020 1 / 64

Transcript of Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen...

Page 1: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Graphen

Graphen Diskrete Modellierung 23. November 2020 1 / 64

Page 2: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 3: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 4: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 5: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Ungerichtete Graphen

Graphen Diskrete Modellierung 23. November 2020 5 / 64

Page 6: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 7: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Autobahnverbindungen

KL

WI F

MZDA

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

Page 8: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 9: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 10: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 11: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 12: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Gerichtete Graphen

Graphen Diskrete Modellierung 23. November 2020 12 / 64

Page 13: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 14: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 15: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 16: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 17: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 18: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Wege in Graphen

Graphen Diskrete Modellierung 23. November 2020 18 / 64

Page 19: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 20: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

(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

Page 21: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 22: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 23: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Das Königsberger Brückenproblem

Graphen Diskrete Modellierung 23. November 2020 23 / 64

Page 24: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 25: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 26: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Routenplaner

Graphen Diskrete Modellierung 23. November 2020 26 / 64

Page 27: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 28: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Ein Ausschnitt der Strassenkarte mit Einbahnstraßen

Graphen Diskrete Modellierung 23. November 2020 28 / 64

Page 29: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Der gerichtete Graph „auf“ der Karte

Graphen Diskrete Modellierung 23. November 2020 29 / 64

Page 30: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Der gerichtete Graph

Graphen Diskrete Modellierung 23. November 2020 30 / 64

Page 31: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 32: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 33: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Zusammenhang

Graphen Diskrete Modellierung 23. November 2020 33 / 64

Page 34: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 35: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 36: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Zuordnungsprobleme

Graphen Diskrete Modellierung 23. November 2020 36 / 64

Page 37: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 38: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 39: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 40: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 41: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 42: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Schwierige Probleme: Hamilton-Kreise

Graphen Diskrete Modellierung 23. November 2020 42 / 64

Page 43: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 44: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Wo ist der Hamilton-Kreis?

Graphen Diskrete Modellierung 23. November 2020 44 / 64

Page 45: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 46: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 47: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 48: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Schwierige Probleme: Das Färbungsproblem

Graphen Diskrete Modellierung 23. November 2020 48 / 64

Page 49: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 50: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 51: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 52: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 53: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 54: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 55: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 56: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Isomorphie von Graphen

Graphen Diskrete Modellierung 23. November 2020 56 / 64

Page 57: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 58: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 59: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 60: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Wichtige Graphklassen

Graphen Diskrete Modellierung 23. November 2020 60 / 64

Page 61: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 62: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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

Page 63: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

Einfache und schwierige Probleme

Graphen Diskrete Modellierung 23. November 2020 63 / 64

Page 64: Graphenalgo.cs.uni-frankfurt.de/lehre/dismod/winter2021/folien...Graphen BeiModellierungsaufgabengehtesoftdarum, Objekte sowie Beziehungen zwischen je zwei Objekten zu beschreiben:Graphensinddafürmaßgeschneidert.

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