Grundlagen der Mathematik für Informatiker 5 Graphen 5.1 Gerichtete Graphen Definition 5.1 (V, E) heißt gerichteter Graph (Digraph), wenn • V Menge von Knoten (auch Ecken genannt, vertex) • E ⊆ V 2 Menge von Kanten (edge). Endpunkte von (a, b) ∈ E sind a, b ∈ V Schlinge: Kante (a, a) ∈ E mit a ∈ V Beispiel: (V, E) mit V = {0, 1, . . . , 4} E = {(i, j) | j = i + 1 oder j = i + 3} gerichteter Graph: relationale Struktur mit einer zweistelligen Relation 1 Grundlagen der Mathematik für Informatiker Repräsentationen endlicher Graphen Relation G = (V, E) durch (explizite oder implizite) Angabe aller Elemente von V und E Diagramm des Graphen Adjazenzmatrix |V | × |V |-Matrix A = (ai j ) mit 1, ai j = 0, wenn (vi , v j ) ∈ E sonst Adjazenzliste LG : V →2V mit u ∈ LG (v) genau dann, wenn (u, v) ∈ E 2 Grundlagen der Mathematik für Informatiker 5.2 Ungerichtete Graphen Definition 5.2 (V, E) heißt ungerichteter (schlingenfreier ) Graph, wenn • V Menge von Knoten V • E ⊆ 2 Menge von Kanten Notation: ab statt {a, b} mit V = {M ⊆ V | M enthält genau 2 Elemente } 2 Graph (ohne Zusatz) bedeutet im folgenden, falls nicht anders vereinbart: endlich, ungerichtet und schlingenfrei. ungerichteter Graph ohne Schlingen: relationale Struktur mit zweistelliger symmetrischer irreflexiver Relation 3 Grundlagen der Mathematik für Informatiker 4 Ordnung von Graphen Für jede endliche Menge A bezeichnet |A| die Anzahl der Elemente in A. Ordnung des Graphen (V, E): Anzahl |V | der Knoten Der Graph (V, E) heißt leer genau dann, wenn V = 0/ und E = 0/ , isoliert genau dann, wenn E = 0/ , vollständig genau dann, wenn V ′} = {v, v 2 v, v′ ∧ v 6= v′ | ∈V . E= Kn – vollständiger Graph mit n Knoten Grundlagen der Mathematik für Informatiker Nachbarschaft Knoten u, v ∈ V heißen im Graphen (V, E) benachbart (adjazent) genau dann, wenn uv ∈ E , unabhängig genau dann, wenn uv 6∈ E . Nachbarschaft (Menge aller Nachbarn) eines Knotens v in G: NG (v) = {u ∈ V | uv ∈ E} (für gerichtete Graphen: NG (v) = {u ∈ V | uv ∈ E ∪ E −1 } Knoten v ∈ V mit NG (v) = 0/ heißt isoliert. 5 Grundlagen der Mathematik für Informatiker 6 Knotengrad Graph (V, E) G = (V, E) definiert Funktion gradG : V →N, wobei für alle a ∈ V gilt: gradG (a) = |NG (a)| gradG (a) heißt Grad des Knotens a. (V, E) heißt n-regulär (regulär), falls für alle a ∈ V gilt gradG (a) = n. Satz 5.1 Für jeden Graphen (V, E) gilt ∑a∈V gradG (a) = 2|E|. Folgerung 5.2 In jedem endlichen Graphen ist die Anzahl der Knoten von ungeradem Grad gerade. Grundlagen der Mathematik für Informatiker Graph-Isomorphie (siehe Definition der Isomorphie relationaler Strukturen) Definition 5.3 Zwei Graphen G = (VG , EG ) und H = (VH , EH ) heißen isomorph (G ≃ H ), falls eine Bijektion f : VG →VH existiert, sodass für alle a, b ∈ VG gilt: { f (a), f (b)} ∈ EH genau dann, wenn {a, b} ∈ EG . Die Isomorphie ≃ ist eine Äquivalenzrelation auf der Menge aller Graphen. Äquivalenzklassen [G]≃ heißen Isomorphieklassen. / ≃ In := [({1, · · · , n}, 0)] {1,···,n} Kn := [({1, · · · , n}, )]≃ 2 Pn := [({1, · · · , n}, {{i, i + 1}|i ∈ {1, · · · , n − 1}})]≃ Cn := [({1, · · · , n}, {{i, i + 1}|i ∈ {1, · · · , n − 1}} ∪ {{n, 1}})]≃ 7 Grundlagen der Mathematik für Informatiker Graphinvarianten Funktion f von Graphen in eine Menge heißt Graphinvariante genau dann, wenn für isomorphe Graphen G, H gilt f (G) = f (H). Beispiele: • Anzahl der Knoten • Anzahl der Kanten • Menge der Knotengrade Graphinvarianten helfen beim Isomorphietest. 8 Grundlagen der Mathematik für Informatiker Graph-Relationen Für Graphen G = (VG , EG ) und H = (VH , EH ) heißt H Teilgraph von G genau dann, wenn VH ⊆ VG und EH ⊆ EG gilt, echter Teilgraph von G genau dann, wenn H Teilgraph von G ist und H 6= G, induzierter Teilgraph von G genau dann, wenn VH ⊆ VG und EH = {{a, b} ∈ EG | {a, b} ⊆ VH } (Bezeichnung im Autotool: Beschränkung von G auf VH ) aufspannender Teilgraph von G genau dann, wenn H Teilgraph von G ist und VH = VG 9 Grundlagen der Mathematik für Informatiker 10 Operationen auf Graphen Für zwei Graphen G = (VG , EG ) und H = (VH , EH ) wird definiert: G ∪ H = (VG ∪VH , EG ∪ EH ) G ∩ H = (VG ∩VH , EG ∩ EH ) G H = (VG ×VH , E) mit E = ((a, b), (c, d)) ∨ (a = c ∧ (b, d) ∈ EH ) ((a, c) ∈ EG ∧ b = d) G ∗ H = (VG ∪VH , EG ∪ EH ∪ (VG ×VH )) für VG und VH disjunkt Graphenklassen: Km,n = Im ∗ In , Sterne K1,n allgemein Kn1 ,...,nm = In1 ∗ · · · ∗ Inm für m > 1 Grundlagen der Mathematik für Informatiker 11 Bipartite Graphen Definition 5.4 Ein Graph G = (V, E) heißt genau dann bipartit (oder paar), wenn eine Zerlegung {V0 ,V1 } von V (d.h. V0 ∩V1 = 0/ und V1 V0 V0 ∪V1 = V ) mit ( 2 ∪ 2 ) ∩ E = 0/ existiert. Beispiele: 1. Pn für alle n 2. Km,n für alle m, n ∈ N \ {0} 3. kein Kn für n > 2 4. Cn für alle n ≥ 1 mit n ≡ 0 (mod 2) Bemerkung: Ein Graph G = (V, E) ist genau dann bipartit, wenn ein Km,n = (V, E ′ ) existiert, sodass E ⊆ E ′ ist. Grundlagen der Mathematik für Informatiker Komplementärgraph Definition 5.5 Das Komplement eines Graphen G = (V, E) ist der Graph G = (V, E) mit uv ∈ E genau dann, wenn uv 6∈ E gilt. G heißt selbstkomplementär genau dann, wenn G ≃ G Beispiele: Pfad P4 , Kreis C5 12 Grundlagen der Mathematik für Informatiker Pfade in Graphen Pfad im Graphen G = (V, E): Teilgraph P von G, der für ein n ∈ N isomorph zu Pn ist. Pfad P = (V ′ , E ′ ) in G = (V, E) ist eindeutig bestimmt durch 1. Menge E ′ ⊆ E der Kanten oder 2. Folge (v1 , · · · , vn ) der Knoten in V ′ ⊆ V . Länge des Pfades = Anzahl der Kanten (z.B. im Pn also n − 1) Pfad im Graphen von a nach b im Graphen G: P = (v1 , · · · , vn ) in G mit v1 = a und vn = b Maximaler Pfad in G (bzgl. Teilgraph-Relation): P = (V ′ , E ′ ) ist genau dann maximaler Pfad in G = (V, E), wenn P = (V ′ , E ′ ) ein Pfad in G ist und für alle Kanten ab ∈ E \ E ′ gilt ′ ′ V ∪ {a, b}, E ∪ {ab} ist kein Pfad in G. 13 Grundlagen der Mathematik für Informatiker Kreise in Graphen Kreis im Graphen G = (V, E): Teilgraph C von G, der für ein n ∈ N isomorph zu Cn ist. (echte Kreise: isomorph zu Cn mit n ≥ 3) Kreis C = (V ′ , E ′ ) in G = (V, E) ist eindeutig bestimmt durch 1. Menge E ′ der Kanten oder 2. Folge (v1 , · · · , vn , v1 ) der Knoten in V ′ ⊆ V . Länge des Kreises = Anzahl der Kanten (z.B. im Cn also n) Satz 5.3 1. Jeder Graph (V, E) enthält einen Pfad mit min{gradG (a) | a ∈ V } + 1 Knoten. 2. Jeder Graph (V, E) enthält einen Kreis mit mindestens min{gradG (a) | a ∈ V } + 1 Knoten. 14 Grundlagen der Mathematik für Informatiker Wege in Graphen Weg w im Graphen G = (V, E): Folge von Kanten w = (v1 v2 , v2 v3 , . . . , vn vn+1 ) ∈ E ∗ (Kanten können mehrfach vorkommen) Länge des Weges w: Anzahl der Kanten in w (hier n) durch Folge der Knoten (v1 , . . . , vn+1 ) eindeutig bestimmt Weg von a nach b in G: Weg (v1 , . . . , vn ) in G mit v1 = a und vn = b Für jeden Knoten v ∈ V ist (v) ein leerer Weg von v nach v. 15 Grundlagen der Mathematik für Informatiker Pfade und Kreise in Wegen Jeder Weg w = (v1 v2 , . . . , vn−1 vn ) im Graphen G definiert einen Teilgraphen Hw = ({v1 , . . . , vn }, {v1 v2 , . . . , vn−1 vn }) in G. Satz 5.4 Jeder Weg von a nach b in G enthält einen Pfad von a nach b in G als Teilfolge. Satz 5.5 Existieren in einem Graphen G = (V, E) zwei verschiedene (nicht überall gleiche) Pfade zwischen a ∈ V und b ∈ V , dann enthält G einen Kreis. 16 Grundlagen der Mathematik für Informatiker Zusammenhangsrelation Relation RG auf V 2 im Graphen G = (V, E) (u, v) ∈ RG (u und v sind zusammenhängend) genau dann, wenn es einen Weg von u nach v in G gibt. Bemerkung: Für jeden Graphen G = (V, E) ist RG eine Äquivalenzrelation auf V . Äquivalenzklassen [u]RG sind Knotenmengen induzierter Teilgraphen von G und heißen Zusammenhangskomponenten von G. 17 Grundlagen der Mathematik für Informatiker Bäume Definition 5.6 G = (V, E) heißt Baum, wenn • G zusammenhängend ist und • kein Teilgraph von G ein echter Kreis ist. G = (V, E) heißt Wald, wenn kein Teilgraph von G ein echter Kreis ist. v ∈ V mit grad(v) ≤ 1 heißt Blatt Lemma 5.6 Jeder Baum mit mindestens 2 Knoten hat mindestens 2 Blätter. 18 Grundlagen der Mathematik für Informatiker 19 Charakterisierung der Bäume Satz 5.7 Für jeden Graphen G = (V, E) sind folgenden Aussagen äquivalent: 1. G ist ein Baum. 2. Zwischen je zwei Knoten u, v ∈ V existiert genau ein Pfad in G. 3. G ist minimal zusammenhängend. (G ist zusammenhängend und für jede Kante uv ∈ E ist (V, E \ {uv}) nicht zusammenhängend) 4. G ist maximal kreisfrei. (G enthält keinen echten Kreis, aber für jede Kante uv ∈ enthält (V, E ∪ {uv}) einen echten Kreis) V 2 \E Grundlagen der Mathematik für Informatiker Gerüste Teilgraph H von G heißt Gerüst von G, falls • H ein Baum und • H ein aufspannender Teilgraph von G ist. Beispiele: • P5 in K5 • K1,4 in K5 • G für jeden Baum G • I3 hat kein Gerüst • P2 ∪ K4 hat kein Gerüst Satz 5.8 G ist genau dann zusammenhängend, wenn G ein Gerüst besitzt. 20 Grundlagen der Mathematik für Informatiker EULERsche Wege und Das Königsberger Brückenproblem Definition 5.7 Es sei G = (V, E) ein Graph. Ein Weg (e1 , ..., en ) ∈ E ∗ heißt EULERscher Weg, falls E = {e1 , ..., en } und ei 6= e j für i 6= j, d.h. der Weg (e1 , ..., en ) ∈ E ∗ enthält jede Kante aus E genau einmal. Ist der Anfangsknoten v1 , (e1 = {v1 , v2 }) gleich dem Endknoten vn+1 , (en = {vn , vn+1 }), so spricht man von einem EULERschen Kreis. Satz 5.9 (Euler) Ein zusammenhängender Graph G = (V, E) ohne Schlingen hat genau dann einen E ULERschen Kreis, wenn der Grad aller Knoten gerade ist. Königsberger Brückenprblem Kann man einen Spaziergang durch Königsberg machen und dabei jede der 7 Brücken über den Fluß Pregel genau einmal passieren? 21 Grundlagen der Mathematik für Informatiker HAMILTONsche Wege (dual zu EULERschen Wegen) Definition 5.8 Es sei G = (V, E) ein Graph. Ein Weg (v1 , ..., vn ) ∈ V ∗ heißt HAMILTONscher Weg, falls V = {v1 , ..., vn } und vi 6= v j für i 6= j, d.h. der Weg (v1 , ..., vn ) ∈ V ∗ enthält jeden Knoten aus V genau einmal. Ist außerdem {vn , v1 } ∈ E , so spricht man von einem HAMILTONschen Kreis. Bemerkung: Es ist schwierig – genauer gesagt NP-schwierig – herauszufinden, ob ein Graph einen H AMILTONschen Weg hat. Lemma 5.10 (Dirac) Hat ein Graph G = (V, E) einen minimalen Knotengrad von ≥ |V |/2, so hat G einen Hamiltonschen Kreis. 22 Grundlagen der Mathematik für Informatiker 23 Planare Graphen Definition 5.9 Ein Graph G = (V, E) heißt planar, wenn er sich ohne Überkreuzung von Linien in der Ebene zeichnen lässt. Die Zeichnung des planaren Graphen in der Ebene zerlegt die Ebene in eine endliche Anzahl von zusammenhängenden Gebieten (auch Flächen genannt), wobei wir das äußere (unbeschränkte) Gebiet mitzählen. Satz 5.11 (E ULERsche Polyederformel) Ist G = (V, E) mit V 6= 0/ ein zusammenhängender planarer Graph ohne Schlingen mit f Flächen, so gilt |V | + f = |E| + 2 . Grundlagen der Mathematik für Informatiker 24 Folgerung 5.12 Es sei G = (V, E) ein planarer Graph mit |V | ≥ 3. Dann gilt |E| ≤ 3 · |V | − 6 . Ist G außerdem bipartit, so gilt |E| ≤ 2 · |V | − 4 . Bemerkung: Es gibt genau fünf regelmäßige Polyeder: das Tetraeder (den Vierflächner), das Hexaeder (den Sechsflächner oder Würfel), das Oktaeder (den Achtflächner), das Dodekaeder (den Zwölfflächner) und das Ikosaeder (den Zwanzigflächner). Grundlagen der Mathematik für Informatiker Zum Beweis von Folgerung 5.12 Wir betrachten die Menge B = = {(F, e) : F ist Fläche und e ∈ E ist zu F benachbart} [ {(F, e0 ) : e0 ist zu F benachbart}, und e0 ∈E = [ {(F0 , e) : e ∈ E ist zu F0 benachbart} . F0 ist Fläche Es gelten die folgenden Beschränkungen: 1. Jede Kante e0 ∈ E ist zu höchstens 2 Flächen benachbart, d.h. |{(F, e0 ) : e0 ist zu F benachbart}| ≤ 2, und 2. Jede Fläche F0 ist zu mindestens 3 Kanten benachbart, d.h. |{(F0 , e) : e ∈ E ist zu F0 benachbart}| ≥ 3 (≥ 4 , falls G paarer Graph). → Das ergibt 2 · |E| ≥ |B| ≥ 3 · f . 25