Mathematische Grundlagen. Graphen und Operationen auf Graphen

Werbung
Mathematische Grundlagen
Graphen und Operationen auf Graphen
Karin Haenelt
1
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Graphen
• Definitionen
• Operationen auf Graphen
• Graph-Repräsentationen
2
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Vorbemerkung
• „Wenn hier von Knoten und Kanten gesprochen wird,
so ist dies nur eine Veranschaulichung, die sich an
einen gezeichneten Graphen anlehnt.
Die Definitionen sind davon unabhängig.“
(Kunze, 2001, 32)
• Graphen sind Mengen, in denen die Elemente in
bestimmten Beziehungen zueinander stehen
3
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Definition: Graph
• Ein Graph G = (V,E) besteht aus
– einer Menge V von Knoten (vertices)
– einer Menge E von Kanten (edges)
• wobei die Kanten
– zwei Knoten miteinander verbinden
• ungerichteter Graph
– jede Kante e = {v1,v2} ist ein ungeordnetes Paar
• gerichteter Graph (directed graph)
– jede Kante e = (v1,v2) ist ein geordnetes Paar, d.h.
– jede Kante hat eine Orientierung, einen Anfangspunkt und
einen Endpunkt
4
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Definitionen:
benachbart, indiziert, Grad
benachbart (bnb) zwei Knoten, die durch eine Kante
(adjacent)
verbunden sind
indiziert
(labeled)
die Kanten werden voneinander
durch Namen unterscheiden
Grad (degree)
eines Knotens - d(V): Anzahl der
Kanten, die von einem Knoten
ausgehen
5
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Definitionen:
Schlinge, Mehrfachkante
Schlinge (loop)
Mehrfachkante
(multiple lines)
Kante, die einen Knoten mit sich
selbst verbindet
Mehrere Kanten zwischen zwei
Knoten
6
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Definitionen:
Weg, Zyklus, Masche
Weg
(path)
eine Folge von Kanten e1, e2, ... , en in einem
gerichteten Graphen, wobei n > 1 ist, so dass
• Endpunkt von e1 = Anfangspunkt e2,
• Endpunkt von e2 = Anfangspunkt von e3, ... und
• Endpunkt von en-1 = Anfangspunkt von en.
n ist die Länge des Weges.
Zyklus
(cycle)
ein Weg, für den gilt:
Endpunkt von en = Anfangspunkt von e1
(bei n =1: Schlinge)
Masche
Zwei verschiedene Wege e1, ... , en und
f1, ... , fm, bei denen der Anfangspunkt von
e1 und f1 sowie der Endpunkt von en und fm
übereinstimmen, bilden eine Masche.
(bei n = m = 1: Mehrfachkante)
Kunze, 2001
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
7
Definitionen:
Wurzel, terminaler Knoten
Wurzel (root)
Knoten in einem gerichteten Graphen, von
dem aus man jeden anderen Knoten auf
einem passenden Weg erreichen kann
terminaler
Knoten
(terminal node)
Knoten, von dem keine Kante ausgeht
Kunze, 2001
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
8
Operationen auf Graphen
• Grundoperationen: Einfügen, Löschen
• Traversion von Graphen
– Relation „benachbart“
– Traversionsmethoden
• Mengenoperationen
–
–
–
–
–
–
–
Komplement (complement)
Vereinigung (union)
Durchschnitt (intersection)
Verbindung (join)
Kartesisches Produkt (Cartesian product)
Komposition (composition)
Differenz (difference)
9
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Operationen: Komplement
Definition1
Erläuterung2
Das Komplement G eines Graphen G
Komplement G von G:
• hat V(G) als Kantenmenge
V( G ) = V (G )
E (G ) = {uv | u ≠ v und uv ∉ E (G )} • zwei Kanten sind in G
dann und nur dann benachbart,
wenn sie in G nicht benachbart sind
G
G
1
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
White, 1984, 9
2+Beispiel
Harary, 1974, 25 10
Operationen: Vereinigung
von zwei disjunkten oder nicht disjunkten Graphen,
Annahmen:
V(G1) ∩ V(G2) = ∅
bzw. V(G1) ∩ V(G2) ≠ ∅
Definition1
G1
Vereinigung G = G1 ∪ G 2 hat:
V(G) = V (G1) ∪ V (G 2)
E (G ) = E (G1) ∪ E (G 2)
G = G1 ∪ G 2
G2
1
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
White, 1984, 9
Beispiel
Harary, 1974, 25
11
Operationen: Vereinigung
Beispiel: nicht-disjunkte, gerichtete und etikettierte Graphen
G = G1 ∪ G 2 :
V(G) = V (G1) ∪ V (G 2)
E (G ) = E (G1) ∪ E (G 2)
G1
G = G1 ∪ G 2
G2
a:1
d:4
b:2
a:1
b:2
c:3
h:8
i:9
e:5
a:1
b:2
c:3
d:4
h:8
e:5
i:9
12
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Operationen: Durchschnitt
von zwei disjunkten oder nicht disjunkten Graphen,
Annahmen:
V(G1) ∩ V(G2) = ∅
bzw. V(G1) ∩ V(G2) ≠ ∅
Durchschnitt G = G1 ∩ G 2 hat:
V(G) = V (G1) ∩ V (G 2)
E (G ) = E (G1) ∩ E (G 2)
Definition
G = G1 ∩ G 2 = ∅
G1
G2
Die Graphen Gi (i ∈ I ) heißen disjunkt,
wenn der Durchschnitt von je zwei
Graphen Gi, Gj (i ≠ j ) leer ist.
Sie heißen kantendisjunkt,
wenn der Durchschnitt von je zwei
Kantenmengen Ki , Kj (i ≠ j ) leer ist.1
1 Wagner,
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
1970, 23
13
Operationen: Durchschnitt
Beispiel: nicht-disjunkte, gerichtete und etikettierte Graphen
G = G1 ∩ G 2 :
V(G) = V (G1) ∩ V (G 2)
E (G ) = E (G1) ∩ E (G 2)
G1
G = G1 ∩ G 2
G2
a:1
d:4
b:2
a:1
b:2
c:3
h:8
i:9
a:1
b:2
e:5
14
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Operationen: Verbindung
von zwei disjunkten Graphen,
Annahme:
V(G1) ∩ V(G2) = ∅
Definition1 Verbindung ( join) G = G1 + G 2 hat:
V(G) = V (G1) ∪ V (G 2)
E (G ) = E (G1) ∪ E (G 2) ∪ {v1v 2 | vi ∈ V (Gi ), i = 1,2}
G1
G = G1 ∪ G 2
G2
1
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
White, 1984, 10
Beispiel
Harary, 1974, 31 15
Operationen:
Kartesisches Produkt
von zwei disjunkten Graphen,
Annahme:
V(G1) ∩ V(G2) = ∅
Kartesisches Produkt G = G1 × G 2 hat:
V(G) = V (G1) × V (G 2)
E (G ) = {[(u1, u 2), (v1, v 2)] | u1 = v1 und u 2v 2 ∈ E (G 2)
oder u 2 = v 2 und u1v1 ∈ E(G1 )}
Definition1
G1
G = G1 × G 2
G2
u1
u2
v2
u1 u2
u1v2
u1 w 2
v1u2
v1v2
v1w2
w2
v1
1
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
White, 1984, 10
Beispiel
Harary, 1974, 32 16
Operationen:
Kartesisches Produkt: Beispiel
G
K = G×H
H
g0
h0
h1
g0 h0
g0 h1
g0 h2
g1 h0
g1 h1
g1 h2
h2
g1
g0h0 g0h1 g0h2 g1h0 g1h1 g1h2 gyhy
g0h0
g0h1
g0h2
g1h0
g1h1
g1h2
gxhx
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
E(K ) =
{[( gx, hx ), ( gy, hy )] |
gx = gy und hxhy ∈ E ( H )
oder hx = hy und gxgy ∈ E(G) }
17
Operationen: Komposition
von zwei disjunkten Graphen,
Annahme:
V(G1) ∩ V(G2) = ∅
Definition1
G1
u1
v1
G2
u2
Komposition G = G1[G 2] hat:
V(G) = V (G1) × V (G 2)
E (G ) = {[(u1, u 2), (v1, v 2)] | u1v1 ∈ E (G1)
oder (u1 = v1 und u 2v 2 ∈ E(G 2 ))}
G = G 2[G1]
G = G1[G 2]
u1 u1
u2v1
v2
u1v2 u1w2
w2
u1 u2
v1v2
v1u2
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
1
v2u1
v2v1
w 2 u1
w2v1 18
v1w2
White, 1984, 10
Beispiel
Harary, 1974, 32
Operationen:
Komposition: Beispiel
G
K = G[H ]
H
g0
h0
h1
g0 h0
g0 h1
g0 h2
g1 h0
g1 h1
g1 h2
h2
g1
g0h0 g0h1 g0h2 g1h0 g1h1 g1h2 gyhy
g0h0
g0h1
g0h2
g1h0
g1h1
g1h2
gxhx
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
E(K ) =
{[( gx, hx), ( gy, hy )] |
gxgy ∈ G
oder ( gx = gy und
hxhy ∈ E ( H ))}
19
Graph-Repräsentationen I:
Adjazenz-Matrix
1
3
2
4
1
2
3
4
1
0
0
1
1
2
1
0
0
0
3
0
1
0
0
4
0
1
1
0
Standish, 1997, 306
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
20
Graph-Repräsentationen II:
Adjazenz-Liste
2
1
3
5
Graph G
4
Knoten
V
1
2
3
4
5
Grad NachbarListe
2
23
3
345
1
4
0
1
1
Sequentielle
Adjazenzliste für G
V Link V Link V Link V Link
1
2
3
4
5
2
3
4
3
4
1
Verkettete
Adjazenzliste für G
Standish, 1997, 308
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
5
21
Literatur
• Harary, Frank (1969). Graph Theory. Reading, Mass.: AddisonWesley Publishing Company.
(deutsche Übersetzung: Graphentheorie. München: Oldenbourg
Verlag, 1974)
• Kunze, Jürgen (2001). Computerlinguistik. Voraussetzungen,
Grundlagen, Werkzeuge. Vorlesungsskript. Humboldt
Universität zu Berlin. http://www2.rz.huberlin.de/compling/Lehrstuhl/Skripte/Computerlinguistik_1/index.
html
• Standish, Thomas A. (1997). Data Structures in Java. Reading,
Mass.: Addison-Wesley Longman Inc.
• Wagner, Klaus (1970). Graphentheorie. Mannheim:
Bibliographisches Institut A.G.
• White, Arthur T. (1984). Graphs, Groups and Surfaces.
Amsterdam: Elsevier Science Publishers B.V.
22
© Karin Haenelt 2004, Math.Grundlagen: Graphen, 20.03.2004
Herunterladen