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