Modellierung Teil III: Graphen Henning Wachsmuth Institut für Informatik, Universität Paderborn https://cs.upb.de/css (auf Basis der Veranstaltungen vergangener Jahre) Modellierung III Graphen © Wachsmuth 2021/22 1 Gliederung I. Einleitung II. Grundlagen formaler Kalküle III. Graphen • • • • Ungerichtete Graphen Gerichtete Graphen Ungerichtete Bäume Gerichtete Bäume IV. Aussagenlogik V. Prädikatenlogik VI. Modellierung von Unsicherheit VII. Reguläre Ausdrücke VIII. Endliche Automaten IX. Grammatiken X. Petri-Netze Modellierung III Graphen © Wachsmuth 2021/22 2 Übersicht Graphen • Graphen beschreiben Objekt-Beziehungen durch Knoten und Kanten. • Knoten. Mengen gleichartiger Objekte • Kanten. Beziehungen zwischen je zwei Objekten • Graphen sind geeignet für die Modellierung verschiedener Aufgaben. • Wir betrachten hier endliche ungerichtete und gerichtete Graphen. Beispiele Bielefeld Kamen Hannover abheben Paderborn au fle Unna Wünnenberg Modellierung III Graphen Ziffer wählen ge Gespräch führen n Kassel © Wachsmuth 2021/22 3 Ungerichtete Graphen Ungerichtete Graphen Definition 3.1 (Ungerichteter Graph) • Ein (ungerichteter) Graph G ist ein Paar (V, E), wobei V eine endliche nicht-leere Menge von Knoten (engl. vertices) ist. Die Menge E ist eine Teilmenge der Menge der zweielementigen Teilmengen von V , also E ✓ {{x, y} : x, y 2 V, x 6= y}. • Die Elemente der Menge E bezeichnet man als Kanten (engl. edges). Darstellungsbeispiele • G = (V, E) a b • V = {a, b, c, d} • E = {{a, b}, {a, c}, {c, d}, {c, b}} Modellierung III Graphen b d c d c a © Wachsmuth 2021/22 5 Ungerichtete Graphen Definition 3.1 (Ungerichteter Graph) • Ein (ungerichteter) Graph G ist ein Paar (V, E), wobei V eine endliche nicht-leere Menge von Knoten (engl. vertices) ist. Die Menge E ist eine Teilmenge der Menge der zweielementigen Teilmengen von V , also E ✓ {{x, y} : x, y 2 V, x 6= y}. • Die Elemente der Menge E bezeichnet man als Kanten (engl. edges). Weitere Graphbeispiele Modellierung III Graphen © Wachsmuth 2021/22 6 Ungerichtete Graphen Einige Graphfamilien Vollständiger Graph • Ein vollständiger Graph Kn auf n Knoten besteht aus n Knoten, die paarweise miteinander durch Kanten verbunden sind. K5 Kreis • Ein (einfacher) Kreis Cn auf n 3 Knoten besteht aus n Knoten, die zyklisch miteinander verbunden sind. C5 Pfad • Ein Pfad Pn besteht aus n + 1 Knoten und n Kanten, die aufeinander folgende Knoten miteinander verbinden. P4 Modellierung III Graphen © Wachsmuth 2021/22 7 Ungerichtete Graphen Weitere Graphfamilien Hyperwürfel • Ein d-dimensionaler Hyperwürfel Qd hat als Knotenmenge {0, 1}d. • Zwei Knoten sind genau dann durch eine Kante verbunden, wenn sich ihre Folgen an genau einer Stelle unterscheiden. Q3 Gittergraph • Ein Gittergraph Gn⇥m besteht aus n · m Knoten, die in einem n ⇥ m Gitter angeordnet sind. • Zwei Knoten sind durch eine Kante verbunden, wenn sie in einer Zeile nebeneinander oder in einer Spalte untereinander stehen. Modellierung III Graphen G4⇥5 © Wachsmuth 2021/22 8 Ungerichtete Graphen Adjazenz und Indizenz Definition 3.2 (Adjazenz, Inzidenz) • Für eine Kante e = {u, v} 2 E heißen u, v Endknoten von e. • Adjazenz. Zwei Knoten u, v 2 V heißen adjazent, wenn sie durch eine Kante verbunden sind, d.h. {u, v} 2 E. • Inzidenz. Ein Knoten v 2 V und eine Kante e 2 E heißen inzident, wenn v einer der Endknoten von e ist. Beispiel a b c d • a und b sind die Endknoten von {a, b}. • a und b sind adjazent. • a ist inzident zu {a, b} und zu {a, c}. • ... Modellierung III Graphen © Wachsmuth 2021/22 9 Ungerichtete Graphen Nachbarschaft und Knotengrad Definition 3.3 (Nachbarschaft, Knotengrad) • Nachbarschaft. Für einen Knoten v eines Graphen G = (V, E) ist die Nachbarschaft (v) von v definiert durch (v) := {u 2 V : {u, v} 2 E}. • Knotengrad. Der Knotengrad (oder auch: Grad) von v bezeichnet die Größe der Nachbarschaft von v: deg(v) := | (v)|. Beispiel • a b c d (a) = {b, c} • deg(a) = 2 • (d) = {c} • deg(d) = 1 Modellierung III Graphen © Wachsmuth 2021/22 10 Knotengrade Satz 3.1 (Knotengrad) • Für jeden Graphen G = (V, E) gilt: Beweis P v2V deg(v) = 2 · |E|. • Sei G = (V, E) ein Graph. Für v 2 V sei E(v) := {e 2 E : v 2 e}. Es gilt: X X X X X deg(v) = | (v)| = |{u 2 V : {u, v} 2 E}| = 1 v2V v2V v2V v2V e2E(v) • Durch Vertauschen der Summationsreihenfolge erhalten wir: X X XX 1 = 1 v2V e2E(v) e2E v2e • Jede Kante enthält zwei Knoten, daher gilt für jede Kante e: X 1=2 v2e Fortsetzung auf nächster Folie. Modellierung III Graphen © Wachsmuth 2021/22 11 Knotengrade Satz 3.1 (Knotengrad) • Für jeden Graphen G = (V, E) gilt: P v2V deg(v) = 2 · |E|. Fortsetzung des Beweises • Jede Kante enthält zwei Knoten, daher gilt für jede Kante e: X 1=2 v2e • Somit gilt: XX e2E v2e • Insgesamt erhalten wir: X v2V Modellierung III Graphen 1 = 2 · |E| deg(v) = 2 · |E| 2 © Wachsmuth 2021/22 12 Knotengrade Knoten mit ungeradem Grad Korollar 3.1 (Knoten mit ungeradem Grad) • Für jeden Graphen G = (V, E) gilt, dass die Anzahl der Knoten mit ungeradem Grad gerade ist. Beweis • Sei Vg := {v 2 V : deg(v) gerade} und Vu := {v 2 V : deg(v) ungerade}. • Sei V = Vg [ Vu. • Es gilt: X v2V • • P P v2V deg(v) = X v2Vg deg(v) + X deg(v) v2Vu deg(v) = 2 · |E| ist gerade (nach Satz 3.1). deg(v) ist gerade, da jeder Summand gerade ist. P • Jeder Summand in v2Vu deg(v) ist ungerade. ) |Vu| ist gerade. v2Vg Modellierung III Graphen © Wachsmuth 2021/22 2 13 Wege Definition 3.4 (Weg, Pfad) • Weg. Ein Weg der Länge l, l 2 N, in einem Graphen G = (V, E) ist eine Folge W = (v0, v1, . . . , vl ) von Knoten aus V , so dass je zwei aufeinander folgende Knoten durch eine Kante miteinander verbunden sind, also {vi, vi+1} 2 E für alle i = 0, . . . , l 1. • v0 wird Anfangsknoten und vl wird Endknoten des Weges W genannt. Alle anderen Knoten werden innere Knoten genannt. • Pfad. Ein Pfad ist ein Weg, in dem alle Knoten verschieden sind. Beispiel • (a, c, d, e, c, b) ist ein Weg, aber kein Pfad in G. • (a, b, c) ist ein Pfad in G. Modellierung III Graphen a d c G b e © Wachsmuth 2021/22 14 Wege Definition 3.4 (Weg, Pfad) • Weg. Ein Weg der Länge l, l 2 N, in einem Graphen G = (V, E) ist eine Folge W = (v0, v1, . . . , vl ) von Knoten aus V , so dass je zwei aufeinander folgende Knoten durch eine Kante miteinander verbunden sind, also {vi, vi+1} 2 E für alle i = 0, . . . , l 1. • v0 wird Anfangsknoten und vl wird Endknoten des Weges W genannt. Alle anderen Knoten werden innere Knoten genannt. • Pfad. Ein Pfad ist ein Weg, in dem alle Knoten verschieden sind. g Weiteres Beispiel • (f, g, f, h) ist ein Weg, aber kein Pfad in G. G i f • (f, g, i) ist ein Pfad in G. h Modellierung III Graphen © Wachsmuth 2021/22 15 Wege Kreise Definition 3.5 (Kreis) • Ein Kreis der Länge l, l 3, in einem Graphen G = (V, E) ist eine Folge C = (v1, . . . , vl ) von l Knoten, so dass {v1, vl } 2 E und {vi, vi+1} 2 E für alle i = 1, . . . , l 1, und diese l Kanten paarweise verschieden sind. Beispiele • (a, c, b) ist ein Kreis in G. • (d, e, c) ist ein Kreis in G. a c G b • (a, b, c, d, e, c) ist ein Kreis in G. • (f, g, i, h) ist ein Kreis in G. d G e g i f • (f, g, h, i) ist kein Kreis in G. h Modellierung III Graphen © Wachsmuth 2021/22 16 Teilgraphen Definition 3.6 (Teilgraphen) • Teilgraph. Ein Graph H = (VH , EH ) heißt (schwacher) Teilgraph eines Graphen G = (VG, EG), falls VH ✓ VG und EH ✓ EG . • Induzierter Teilgraph. Ein Teilgraph H heißt induzierter Teilgraph von G, wenn EH alle Kanten aus EG, deren Endpunkte in VH liegen, enthält: EH = EG \ {{v1, v2} : v1 2 VH , v2 2 VH }}, Beispiel • H ist Teilgraph, aber nicht induzierter Teilgraph von G. a G d a c Modellierung III Graphen d c e b H b e © Wachsmuth 2021/22 17 Teilgraphen Definition 3.6 (Teilgraphen) • Teilgraph. Ein Graph H = (VH , EH ) heißt (schwacher) Teilgraph eines Graphen G = (VG, EG), falls VH ✓ VG und EH ✓ EG . • Induzierter Teilgraph. Ein Teilgraph H heißt induzierter Teilgraph von G, wenn EH alle Kanten aus EG, deren Endpunkte in VH liegen, enthält: EH = EG \ {{v1, v2} : v1 2 VH , v2 2 VH }}, Weiteres Beispiel • H ist induzierter Teilgraph von G. a G d c Modellierung III Graphen a c e b H e © Wachsmuth 2021/22 18 Teilgraphen Zusammenhängende Graphen Definition 3.7 (Zusammenhang) • Ein u-v-Pfad im Graphen G = (V, E) ist ein Pfad in G mit Anfangsknoten u und Endknoten v. • Zusammenhängend. Ein Graph G = (V, E) heißt zusammenhängend, wenn für jedes Paar von Knoten u, v 2 V, u 6= v, ein u-v-Pfad in G existiert. Andernfalls heißt der Graph G unzusammenhängend. Beispiel • G1 ist zusammenhängend, G2 ist nicht zusammenhängend. g G1 i f h Modellierung III Graphen g G2 d f h © Wachsmuth 2021/22 19 Teilgraphen Zusammenhangskomponenten Definition 3.8 (Zusammenhangskomponente) • Ein Zusammenhangskomponente eines Graphen G = (VG, EG) ist ein Teilgraph H = (VH , EH ), für den folgende Bedingungen gelten: 1. H ist zusammenhängend. 2. G besitzt keinen anderen Teilgraphen H 0, der zusammenhängend ist und H als Teilgraphen enthält. Beispiel G a c b Modellierung III Graphen g d i f e k h l © Wachsmuth 2021/22 20 Teilgraphen Anzahl an Zusammenhangskomponenten Satz 3.2 (Zusammenhangskomponenten) • Die Anzahl an Zusammenhangskomponenten in einem Graphen G = (V, E) ist mindestens |V | |E|. Beweis über Induktion nach m = |E| • IA. m = 0: – G besitzt keine Kanten. – Jeder Knoten bildet also eine eigene Zusammenhangskomponente. – Die Anzahl an Zusammenhangskomponenten ist |V | = |V | 0. • IV. Der Satz ist korrekt für einen Graphen G = (V, E) mit m Kanten. Fortsetzung auf nächster Folie. Modellierung III Graphen © Wachsmuth 2021/22 21 Teilgraphen Anzahl an Zusammenhangskomponenten Satz 3.2 (Zusammenhangskomponenten) • Die Anzahl an Zusammenhangskomponenten in einem Graphen G = (V, E) ist mindestens |V | |E|. Fortsetzung des Induktionsbeweises • IV. Der Satz ist korrekt für einen Graphen G = (V, E) mit m Kanten. • IS. m ! m + 1: – G = (V, E) besitze m + 1 Kanten. Sei e 2 E eine beliebige Kante. – Setze E 0 := E\{e} und G0 := (V, E 0). Dann ist |E 0| = m und nach IV enthält G0 mindestens |V | m Zusammenhangskomponenten. – Es gilt, dass das Hinzunehmen einer Kante die Anzahl an Zusammenhangskomponenten höchstens um 1 verringern kann. – Also besitzt G mindestens |V | m Zusammenhangskomponenten. Modellierung III Graphen 1 = |V | (m + 1) = |V | |E| © Wachsmuth 2021/22 2 22 Teilgraphen Anzahl an Kanten in Zusammenhangskomponenten Korollar 3.2 (Kanten in Zusammenhangskomponenten) • Für jeden zusammenhängenden Graphen G = (V, E) gilt: |E| |V | 1. Beweis • Ein zusammenhängender Graph G besteht per Definition aus einer Zusammenhangskomponente. • Nach Satz 3.2 gilt also |V | • Daraus folgt: |E| Modellierung III Graphen |V | |E| 1. 1 2 © Wachsmuth 2021/22 23 Modellierung mit Graphen Leonhard Euler • Schweizer Mathematiker, 1707 – 1783 Eulers Schaffen • Euler ist unter Anderem bekannt für Arbeiten zur Graphentheorie. • Er löste das so genannte Königsberger Brückenproblem. Modellierung III Graphen © Wachsmuth 2021/22 24 Modellierung mit Graphen Wegeprobleme Königsberger Brückenproblem 1. Gibt es einen Weg, der jede der sieben Brücken genau einmal überquert und zum Ausgangspunkt zurückkehrt? 2. Gibt es einen Weg, der jede der Brücken genau einmal überquert? C A D B Modellierung III Graphen © Wachsmuth 2021/22 25 Modellierung mit Graphen Wegeprobleme: Königsberger Brückenproblem Lösungsansätze für Frage 1 (Kreis) 1. Alle Wege aufzählen und prüfen, ob sie die Bedingungen erfüllen. 2. Oder nachdenken: • Rundweg. Jeder Knoten wird genauso oft betreten, wie verlassen. • Keine Brücke doppelt. Jeder Knoten muss geraden Grad haben. ) Lösung. Kein Rundweg in Königsberg möglich (Antwort “nein”). Lösungsansatz für Frage 2 (Weg) • Unterschied zu Frage 1: 1. Ausgangspunkt ist einmal öfter zu verlassen als zu erreichen. 2. Endpunkt ist einmal öfter zu erreichen als zu verlassen. • Also dürften zwei Knoten ungeraden Grad haben (oder keiner). ) Lösung. Kein solcher Weg in Königsberg möglich (Antwort “nein”). Modellierung III Graphen © Wachsmuth 2021/22 26 Wege und Kreise Definition 3.9 (Eulerweg, Eulerkreis) • Sei G = (V, E) ein zusammenhängender Graph. • Eulerweg. Ein Weg W in G heißt Eulerweg, falls er jede Kante des Graphen genau einmal enthält. • Eulerkreis. Ein Kreis C in G heißt Eulerkreis, falls er jede Kante des Graphen genau einmal enthält. Beispiele • G1 hat Eulerwege, z.B. (a, b, d, a, c, d). G2 hat Eulerkreise, z.B. (a, b, d, c). c d c d a b a b G1 Modellierung III Graphen G2 © Wachsmuth 2021/22 27 Wege und Kreise Eigenschaften von Eulerwegen und -kreisen Satz 3.3 (Knotengrad in Eulerkreisen) • Sei der Graph G = (V, E) zusammenhängend. G besitzt einen Eulerkreis genau dann, wenn der Grad aller Knoten gerade ist. Satz 3.4 (Knotengrad in Eulerwegen) • Sei der Graph G = (V, E) zusammenhängend. G besitzt einen Eulerweg genau dann, wenn genau zwei Knoten ungeraden Grad haben oder alle Knoten geraden Grad haben. Beweise ausgelassen. Idee ist Grade zu zählen (“)”) bzw. Kreis/Weg zu konstruieren (“(”). Konsequenz für Königsberger Brückenproblem C • G besitzt keinen Eulerkreis, da G Knoten mit ungeradem Grad hat. • G besitzt keinen Eulerweg, da G vier Knoten mit ungeraden Grad hat. Modellierung III Graphen A D B © Wachsmuth 2021/22 28 Modellierung mit Graphen Verbindungsprobleme: Schiffverbindungen Problem: Schiffverbindungen • Für n 3 Inseln sollen Schiffsverbindungen organisiert werden. • Jede Insel soll mit jeder anderen Insel direkt verbunden sein. • Es steht nur ein Schiff zur Verfügung. • Frage. Gibt es eine Tour, auf der ein Schiff jede Verbindung zwischen zwei Inseln genau einmal abfährt? Modellierung • Zu beantworten ist, ob der vollständige Graph Kn auf n Knoten einen Eulerkreis hat. K5 Lösung • In Kn hat jeder Knoten Grad n 1. • Kn hat einen Eulerkreis genau dann, wenn n ungerade ist. Modellierung III Graphen © Wachsmuth 2021/22 29 Modellierung mit Graphen Verbindungsprobleme: Haus vom Nikolaus Problem: Haus vom Nikolaus • Frage. Kann das „Haus vom Nikolaus” ohne Absetzen gemalt werden? e d c a b Lösung • Genau zwei Knoten haben einen ungeraden Knotengrad. • Also gibt es einen Eulerweg und damit ist die Frage zu bejahen. Modellierung III Graphen © Wachsmuth 2021/22 30 Modellierung mit Graphen Wegeprobleme: Planung eines Gruselkabinetts Problem: Planung eines Gruselkabinetts • Es soll ein Gruselkabinett mit n Räumen, einer Eingangs- und einer Ausgangstür sowie beliebig vielen Innentüren geplant werden. • Jede Tür schließt nach Durchgehen bis zum Verlassen des Kabinetts. • Die Besucher gehen einzeln durch das Kabinett. • Frage. Was ist zu beachten, damit niemand eingesperrt wird? Lösung (am Beispiel) 2 3 E 5 A 1 4 • Der Graph des Kabinetts muss einen Eulerweg von E nach A haben, d.h. E und A müssen als einzige Knoten ungeraden Grad besitzen. Modellierung III Graphen © Wachsmuth 2021/22 31 Wege und Kreise Hamiltonwege und -kreise Definition 3.10 (Hamiltonweg, Hamiltonkreis) • Hamiltonweg. Ein Weg W in einem beliebigen Graphen G = (V, E) heißt Hamiltonweg, falls er jeden Knoten v 2 V genau einmal enthält. • Hamiltonkreis. Ein Kreis C in G = (V, E) heißt Hamiltonkreis, falls er jeden Knoten v 2 V genau einmal enthält. Beispiel • G1 besitzt Hamiltonkreis, G2 lediglich einen Hamiltonweg: (i, h, j, g, f ) g f j G1 i f j i G2 h Modellierung III g Graphen h © Wachsmuth 2021/22 32 Wege und Kreise Markierung von Graphen Definition 3.11 (Markierungen) • Knotenmarkierung. Eine Knotenmarkierung eines Graphen G = (V, E) ist eine Funktion l : V ! W , wobei W eine beliebige Menge ist. • Kantenmarkierung. Eine Kantenmarkierung eines Graphen G = (V, E) ist eine Funktion m : E ! U , wobei U eine beliebige Menge ist. Bielefeld 300 Beispiel • Knotenmarkierungen sind rot. • Kantenmarkierungen sind grün. 9 Unna 67 Modellierung III Graphen 77 Kamen 48 80 126 30 13 Hannover 518 Paderborn 140 163 68 Wünnenberg 12 Kassel 281 © Wachsmuth 2021/22 33 Modellierung mit Graphen Verbindungsprobleme in markierten Graphen Das Problem des Handlungsreisenden • Ein Handelsvertreter möchte auf einer Rundreise n Städte besuchen. • Die Städte sind mit Straßen einer gewissen Länge verbunden. • Manche Städte lassen sich von anderen ggf. nicht direkt erreichen. • Gesucht. Eine Rundtour minimaler Länge, die jede Stadt genau einmal besucht. Modellierung • Sei G = (V, E) ein Graph mit Kantenmarkierung m : E ! N. • V repräsentiert die Städte, E direkte Verbindungen zwischen Städten und m die Längen der direkten Verbindungen. • Gesucht ist ein möglichst kurzer Hamiltonkreis, d.h. die Summe der Markierungen auf den Kanten des Kreises ist minimal. Modellierung III Graphen © Wachsmuth 2021/22 34 Modellierung mit Graphen Komplexität Lösung des Problems des Handlungsreisenden am Beispiel a 30 50 55 d 25 b 52 48 c a 30 50 55 d 25 b 52 48 Kreis der Länge 157 c Beobachtung: Komplexität von Problemen • Manche Probleme lassen sich durch „einfache” Verfahren lösen. • Beispiel. Feststellen, ob ein Graph einen Eulerkreis besitzt. Genauer: Die Probleme liegen in der Komplexitätsklasse P, siehe 3. Semester. • Andere sind “schwer”, dort ist kein allgemeines Verfahren bekannt. • Beispiel. Feststellen, ob ein Graph einen Hamiltonkreis besitzt. Genauer: Sie liegen in der Komplexitätsklasse NP, bzw. sie sind NP-vollständig. Modellierung III Graphen © Wachsmuth 2021/22 35 Modellierung mit Graphen Weitere Verbindungsprobleme Problem: Nachrichten in Parallelrechnern • Ein Parallelrechner mit n2 Prozessoren ist als n ⇥ n Gitter verbunden. • Eine Nachricht soll von einem Prozessor zum nächsten weitergegeben werden, jeden genau 1x erreichen und zum Ursprung zurückkehren. • Frage. Für welche n ist dies möglich? Modellierung • Betrachte Gittergraphen Gn⇥n. G4⇥4 • Existiert in Gn⇥n ein Hamiltonkreis? Lösung • In Gn⇥n existiert ein Hamiltonkreis genau dann, wenn n gerade ist. • Das lässt sich beweisen. Unten wird das nur für eine Richtung skizziert. Modellierung III Graphen © Wachsmuth 2021/22 36 Modellierung mit Graphen Hamiltonkreis im Gittergraphen Satz 3.5 (Hamiltonkreis im Gittergraphen) • Ein Gittergraph Gn⇥n hat einen Hamiltonkreis gdw. n gerade ist. Beweis für „Hamiltonkreis ) n gerade” • Seien die n2 Knoten in Gn⇥n abwechselnd schwarz und weiß gefärbt, so dass miteinander verbundene Knoten unterschiedliche Farben haben. • Auf einem Kreis alternieren die Farben der Knoten des Kreises. • Ein Kreis berührt die gleiche Anzahl schwarzer und weißer Knoten. • Dann muss n2 gerade sein und damit muss auch n gerade sein. 2 Graphische Illustration Modellierung III Graphen © Wachsmuth 2021/22 37 Gerichtete Graphen Übersicht Ungerichtete vs. gerichtete Graphen Bielefeld Hannover Ungerichtete Graphen • Modellierung symmetrischer Beziehungen und Relationen Kamen Paderborn • Beispiele. sind befreundet, sind benachbart, sind verbunden Unna Wünnenberg Kassel Gerichtete Graphen • Modellierung asymmetrischer Beziehungen und Relationen Speziell Abhängigkeiten und Abläufe. • Beispiele. impliziert, ist besser als, muss vorher ausgeführt werden, ist abhängig von Modellierung III Graphen abheben au fle ge n Ziffer wählen Gespräch führen © Wachsmuth 2021/22 39 Gerichtete Graphen Definition 3.12 (Gerichteter Graph) • Ein gerichteter Graph (engl. directed graph) D ist ein Paar (V, A), auch Digraph genannt. • V ist eine endliche nicht-leere Menge von Knoten (engl. vertices). • A ✓ V ⇥ V ist eine Menge von gerichteten Kanten (engl. arcs). Beispiel • D = (V, A) b d a c • V = {a, b, c, d} • A = {(a, a), (a, b), (b, a), (c, a), (b, c), (b, d), (c, d)} Sprechweise • Eine Kante der Form (u, u) wird Schleife genannt. Modellierung III Graphen © Wachsmuth 2021/22 40 Modellierung mit Graphen Aufgabe zu gerichteten Graphen Modellierungsaufgabe • Modellieren Sie folgende Konstellation mit einem gerichteten Graphen: Ein Javaprogramm habe die Klassen Energie, FossileEnergie, RegenerativeEnergie, SolarEnergie und WindEnergie. Die Klassen FossileEnergie und RegenerativeEnergie sind Unterklassen von Energie, und SolarEnergie und WindEnergie sind Unterklassen von RegenerativeEnergie. Modellierung III Graphen © Wachsmuth 2021/22 41 Gerichtete Graphen Eingangs- und Ausgangsgrade Definition 3.13 (Eingangsgrad, Ausgangsgrad) • Eingangsgrad. Der Eingangsgrad eines Knoten v eines gerichteten Graphen D = (V, A) ist definiert als: indeg(v) := |{u 2 V : (u, v) 2 A}| • Ausgangsgrad. Der Ausgangsgrad von v ist definiert als: outdeg(v) := |{u 2 V : (v, u) 2 A}| Beispiel b d • indeg(a) = 3 • outdeg(a) = 2 a Modellierung III Graphen c • indeg(b) = 1 • outdeg(b) = 3 © Wachsmuth 2021/22 42 Gerichtete Graphen Eigenschaften von Graden Satz 3.6 (Verhältnis von Eingangs- und Ausgangsgrad) • Für jeden gerichteten Graphen D = (V, A) gilt: X X indeg(v) = outdeg(v). v2V v2V Beweis • Hier ausgelassen. Der Satz lässt sich über Induktion nach der Anzahl |A| an Kanten in D beweisen. Sprechweise • Für einen Knoten v 2 V wird indeg(v) + outdeg(v) auch der Grad von v genannt. Modellierung III Graphen © Wachsmuth 2021/22 43 Gerichtete Graphen Wege in gerichteten Graphen Definition 3.14 (Weg, Pfad) • Weg. In einem gerichteten Graphen D = (V, A) ist ein Weg der Länge l, l 2 N, eine Folge W = (v0, v1, . . . , vl ) von Knoten aus V , so dass je zwei aufeinander folgende Knoten durch eine Kante verbunden sind, also (vi, vi+1) 2 A für alle i = 0, . . . , l 1. • v0 wird Anfangsknoten und vl wird Endknoten des Weges W genannt. Alle anderen Knoten werden innere Knoten genannt. • Pfad. Ein Pfad ist ein Weg, in dem alle Knoten verschieden sind. Beispiel b d a c • (c, a, b, d) ist ein Pfad im Graphen. • (a, a, b, c, d) ist ein Weg, aber kein Pfad. Modellierung III Graphen © Wachsmuth 2021/22 44 Gerichtete Graphen Kreise in gerichteten Graphen Definition 3.15 (Kreis) • Ein Kreis der Länge l, l 2 N, in einem gerichteten Graphen D = (V, A) ist eine Folge C = (v1, . . . , vl ) von l Knoten, so dass (vl , v1) 2 A und (vi, vi+1) 2 A für alle i = 1, . . . , l 1, und diese l Kanten paarweise verschieden sind. D Beispiel • (b, c, d, f ) ist ein Kreis in D. a • (c, d) ist ein Kreis in D. • (a, e, d, c) ist kein Kreis in D. Modellierung III Graphen e c b g d f © Wachsmuth 2021/22 45 Gerichtete Graphen Kreisfreie Graphen – DAGs Definition 3.16 (DAG) • Ein gerichteter Graph D = (V, A) heißt kreisfrei oder DAG (engl. directed acyclic graph), falls D keine Kreise besitzt. Beispiel • Beide folgende Graphen sind DAGs: Modellierung III Graphen © Wachsmuth 2021/22 46 Modellierung mit Graphen Abhängigkeitsprobleme Problem: Projektorganisation I • Ein großes Projekt wird in fünf Teilprojekte a, b, c, d, e aufgeteilt, um die Bearbeitung zu vereinfachen und zu beschleunigen. • Es existieren folgende Abhängigkeiten zwischen den Teilprojekten: 1. Teilprojekte b und c benötigen die Ergebnisse von Teilprojekt a. 2. c muss abgeschlossen sein, bevor b und e starten können. 3. d kann erst starten, nachdem b und e abgeschlossen sind. • Frage. Kann das Projekt mit der Aufteilung in die Teilprojekte a, . . . , e bearbeitet werden? c e Modellierung • Graphische Darstellung der Abhängigkeiten von Teilprojekten: a d b Modellierung III Graphen © Wachsmuth 2021/22 47 Topologische Sortierung Definition 3.17 (Topologische Sortierung) • Eine topologische Sortierung eines gerichteten Graphen D = (V, A) mit |V | = n ist eine bijektive Funktion s : V ! {1, . . . , n}, so dass s(u) < s(v) für alle Kanten (u, v) 2 A. Beispiel • Gerichteter Graph, rechts mit topologischer Sortierung: 1 c 2 d 7g 1 c i 3 7g i 3 e5 e5 8 f h4 a 9 Modellierung III Graphen 2 d b 6 8 f h4 a 9 b 6 © Wachsmuth 2021/22 48 Topologische Sortierung Beziehung zu Kreisen Satz 3.7 (Topologische Sortierung von DAGs) • Ein gerichteter Graph D = (V, A) besitzt genau dann eine topologische Sortierung, wenn D kreisfrei ist. • Das heißt, DAGs und nur DAGs besitzen eine topologische Sortierung. Beweis für „)” • Sei D = (V, A) ein beliebiger Graph mit topologischen Sortierung s. • Annahme. D hat einen Kreis C = (v1, . . . , vl ), d.h. (vl , v1) 2 A. • Wegen Sortierung gilt s(vi) < s(vi+1) für jedes i 2 {1, . . . , l 1}. • Dann gilt jedoch s(vl ) > s(v1). Das ist ein Widerspruch. • Dann muss die Annahme falsch gewesen sein. 2 Beweis für „(” • Hier ausgelassen. Es lässt sich zeigen, dass s für beliebige D konstruiert werden kann. Modellierung III Graphen © Wachsmuth 2021/22 49 Topologische Sortierung Graphische Darstellung Topologische Sortierung als Numerierung 1 c 2 d 7g i 3 e5 8 f h4 a 9 b 6 Toplogische Sortierung als lineare Anordnung c Modellierung III d Graphen i h e b g f a © Wachsmuth 2021/22 50 Modellierung mit Graphen Abhängigkeitsprobleme: Projektorganisation I Lösung über topologische Sortierung • D ist ein DAG, da D eine topologische Sortierung besitzt: D 2 c 4 e 2 c D 1 a 4 e 1 a d 5 d 5 b 3 b 3 • Mögliche Reihenfolge der Teilprojekte: a Modellierung III Graphen c b e d © Wachsmuth 2021/22 51 Modellierung mit Graphen Abhängigkeitsprobleme mit Kosten Problem: Projektorganisation II • Ein großes Projekt wird in fünf Teilprojekte a, b, c, d, e aufgeteilt, um die Bearbeitung zu vereinfachen und zu beschleunigen. • Dabei existieren folgende Abhängigkeiten zwischen den Teilprojekten: 1. Teilprojekte b und c benötigen die Ergebnisse von Teilprojekt a. 2. c muss abgeschlossen sein, bevor b und e starten können. 3. d kann erst starten, nachdem b und e abgeschlossen sind. • Die Bearbeitung jedes Teilprojekts benötigt zwei Stunden. • Um das Projekt zu beschleunigen, werden mehrere Teams gebildet. Jedes der Teams kann jedes der Teilprojekte bearbeiten. • Fragen. Wie viele Teams sollten gebildet werden? Wie lange dauert die Bearbeitung des gesamten Projekts? Modellierung III Graphen © Wachsmuth 2021/22 52 Gerichtete Graphen Kritische Pfade in gerichteten Graphen Definition 3.18 (Kritischer Pfad) • Sei D = (V, A) ein gerichteter, kreisfreier Graph und sei W = (v0, . . . , vl ) ein Weg in D. • Länge. Die Anzahl an Kanten l eines Wegs W heißt Länge von W . • Kritischer Pfad. Ein Pfad maximaler Länge in D heißt kritischer Pfad. Beispiel • Weg der Länge 3 in D, und ein Pfad in D: c • Pfad der Länge 5 in D, und ein kritischer Pfad von D: c d g e h a Graphen i e D f Modellierung III g i D b d h f a b © Wachsmuth 2021/22 53 Modellierung mit Graphen Abhängigkeitsprobleme mit Kosten: Projektorganisation II Modellierung • Berechne topologische Sortierung des Graphen der Abhängigkeiten. • Bestimme kritischen Pfad. D 2 c 4 e 1 a d 5 b 3 Lösung • Ein kritischer Pfad der Länge 3 existiert. ) Das Projekt benötigt mindestens (3 + 1) · 2 = 8 Stunden. ) Zwei Teams genügen, um das Projekt in 8 Stunden zu beenden. Modellierung III Graphen © Wachsmuth 2021/22 54 Gerichtete und ungerichtete Graphen Definition 3.19 (Zugrunde liegender Graph) • Jedem gerichteten Graphen D = (V, A) kann ein ungerichteter Graph G = (V, E) zugeordnet werden, indem 1. jede gerichtete Kante (u, v), u 6= v, durch die ungerichtete Kante {u, v} ersetzt wird, 2. Schleifen entfernt werden, und danach 3. mehrfach auftretende Kanten durch eine Kante ersetzt werden. • G heißt der D zugrunde liegende ungerichtete Graph. Beispiel: Schritt 1 Schritt 2 hier nicht relevant, Schritt 3 siehe unten D a c f Graphen a g d b Modellierung III e G c b e g d f © Wachsmuth 2021/22 55 Gerichtete und ungerichtete Graphen Definition 3.19 (Zugrunde liegender Graph) • Jedem gerichteten Graphen D = (V, A) kann ein ungerichteter Graph G = (V, E) zugeordnet werden, indem 1. jede gerichtete Kante (u, v), u 6= v, durch die ungerichtete Kante {u, v} ersetzt wird, 2. Schleifen entfernt werden, und danach 3. mehrfach auftretende Kanten durch eine Kante ersetzt werden. • G heißt der D zugrunde liegende ungerichtete Graph. Beispiel: Schritt 3 Schritt 1 siehe oben, Schritt 2 hier nicht relevant. D a c f Graphen a g d b Modellierung III e G c b e g d f © Wachsmuth 2021/22 56 Teilgraphen Zusammenhängende gerichtete Graphen Definition 3.20 (Starker und schwacher Zusammenhang) • Ein Pfad in einem gerichteten Graphen D = (V, A) mit Anfangsknoten u und Endknoten v heißt gerichteter u-v-Pfad in D. • Stark zusammenhängend. D heißt stark zusammenhängend, wenn für jedes Paar an Knoten u, v 2 V, u 6= v, ein gerichteter u-v-Pfad in D existiert. • Schwach zusammenhängend. D heißt schwach zusammenhängend, wenn der zugrunde liegende Graph G = (V, E) zusammenhängend ist. Beispiel • Der linke Graph ist stark zusammenhängend, der rechte schwach: Modellierung III Graphen © Wachsmuth 2021/22 57 Teilgraphen Induzierte Teilgraphen Definition 3.21 (Teilgraphen) • Teilgraph. Ein gerichteter Graph H = (VH , AH ) heißt (schwacher) Teilgraph eines gerichteten Graphen D = (VD , AD ), falls VH ✓ VD und AH ✓ AD . • Induzierter Teilgraph. Ein Teilgraph H heißt induzierter Teilgraph von D, wenn AH alle Kanten aus AD , deren Endpunkte in VH liegen, enthält: AH = AD \ (VH ⇥ VH ) , Beispiel a e c Modellierung III g d b f Graphen e d f Durch d, e, f, g g induzierter Teilgraph © Wachsmuth 2021/22 58 Modellierung mit Graphen Programmablaufgraphen Programmablaufgraph • Modellierung von Abläufen durch ein verzweigtes Programm • Einsatz in Compilern und Analysewerkzeugen der Softwareentwicklung • Knoten. Entsprechen Zuweisungen oder Bedingungen Bedingungen: Sowohl bedingte Anweisungen als auch in Schleifen. • Kanten. Führen zu möglichen Nachfolgern im Programmablauf Anwendungen von Programmablaufgraphen • Testen von Software. Menge von Wegen, die alle Kanten überdecken • Datenflussanalyse. Wege mit bestimmten Eigenschaften Modellierung III Graphen © Wachsmuth 2021/22 59 Modellierung mit Graphen Programmablaufgraphen: Beispiel ug = 0; // A og = obereGrenze; // B while ug <= og do mitte = (ug + og)/2; // C // D A B if a[mitte] == x then return mitte; // E // F C else if a[mitte] < x then ug = mitte + 1; // G // H D else og = mitte // I 1; Exit E end F G end return “nicht gefunden”; Modellierung III J Graphen // J H I © Wachsmuth 2021/22 60 Modellierung mit Graphen Aufrufgraphen Aufrufgraphen • Modellierung der Aufrufbeziehungen von Funktionen eines Programms • Einsatz in Compilern und Analysewerkzeugen der Softwareentwicklung • Knoten. Entsprechen Aufrufen im Programm • Kanten. (a, b) bedeutet, dass Funktion a Funktion b aufrufen könnte Anwendungen von Aufrufgraphen • Analyse. Funktionen, die rekursiv sind • Verifikation. Funktionen, die nicht (mehr) erreichbar sind a Beispiel • Kreise entsprechen Funktionen, die sich wechselweise rekursiv aufrufen. • Fall (c, e). Funktion c ruft Funktion e auf, die wiederum c aufruft. Modellierung III Graphen c b d © Wachsmuth 2021/22 e 61 Ungerichtete Bäume Bäume und Wälder Definition 3.22 (Baum, Wald) • Baum. Ein Baum ist ein zusammenhängender, kreisfreier Graph. • Wald. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. • Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt Blatt. • Andere Knoten heißen innere Knoten. Beispiele für Bäume Baum T1 Baum T2 5 1 3 c 4 6 2 7 Knoten 1, 2, 5, 7 sind die Blätter des Baums T1. Modellierung III Graphen e b a d Knoten a, b, d, e sind die Blätter des Baums T2. © Wachsmuth 2021/22 63 Bäume und Wälder Definition 3.22 (Baum, Wald) • Baum. Ein Baum ist ein zusammenhängender, kreisfreier Graph. • Wald. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. • Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt Blatt. • Andere Knoten heißen innere Knoten. Beispiel für einen Wald c b a d h f e g k l i j Ein Wald mit vier Zusammenhangskomponenten. Welche? Modellierung III Graphen © Wachsmuth 2021/22 64 Bäume und Wälder Eigenschaften: Anzahl von Blättern Lemma 3.1 (Anzahl von Blättern) • Jeder Baum T = (V, E) mit |V | Blätter. 2 Knoten enthält mindestens zwei Beweis über Pfadkonstruktion • Zeige, dass in jedem Baum T ein Pfad existiert, dessen Anfangs- und Endknoten Blätter sind. • Wähle eine beliebige Kante e 2 E, e = {u, v}. • Durchlaufe von u und v unterschiedliche Pfade Pu, Pv in T , bis ein Knoten erreicht wird, an dem der Pfad endet. • Die Endknoten von Pu, Pv müssen unterschiedliche Blätter in T sein. 2 Modellierung III Graphen © Wachsmuth 2021/22 65 Bäume und Wälder Eigenschaften: Anzahl von Blättern Lemma 3.1 (Anzahl von Blättern) • Jeder Baum T = (V, E) mit |V | Blätter. 2 Knoten enthält mindestens zwei Beispiel der Beweiskonstruktion Baum T 5 1 e 3 9 2 4 6 7 8 Modellierung III Graphen © Wachsmuth 2021/22 66 Bäume und Wälder Eigenschaften: Teilgraphen Lemma 3.2 (Teilgraphen von Bäumen) • Ist T = (V, E) ein Baum mit |V | 2 Knoten und u 2 V ein Blatt, so ist der durch V 0 = V \ {u} induzierte Teilgraph T 0 ebenfalls ein Baum. Beweis • Zu zeigen ist, dass T 0 (1) kreisfrei und (2) zusammenhängend ist. Beweis der Kreisfreiheit • Durch Entfernen von Kanten können niemals Kreise entstehen. 2 Beweis des Zusammenhangs • Zeige für beliebige Knoten x, y 2 V \ {u}, dass x, y in T 0 durch einen Pfad verbunden sind. • In T gibt es einen Pfad Px,y der x und y verbindet. • Da die inneren Knoten eines Pfades Grad 2 besitzen, aber deg(u) = 1, ist u nicht in Px,y enthalten. Also ist Px,y ein Pfad in T 0. 2 Modellierung III Graphen © Wachsmuth 2021/22 67 Bäume und Wälder Eigenschaften: Anzahl von Kanten Satz 3.8 (Anzahl von Kanten) • Ist T = (V, E) ein Baum, so gilt |E| = |V | 1. Beweis über Widerspruch • Annahme. Es gibt ein Beispiel, für das |E| = 6 |V | 1 gilt. • Sei T0 = (V0, E0) das kleinste solche Gegenbeispiel. Also: – T0 ist ein Baum mit |E0| = 6 |V0| 1 – Für jeden Baum T = (V, E) mit |V | < |V0| gilt |E| = |V | • Für |V | = 1 gilt der Satz offensichtlich, also gilt: |V0| 1. 2 • Nach Lemma 3.1 enthält T0 mindestens zwei Blätter u, v. • Sei u0 der Knoten, mit dem u in T0 durch eine Kante verbunden ist. • Betrachte T 0 = (V 0, E 0) mit V 0 = V0 \ {u} und E 0 = E0 \ {{u, u0}}. Fortsetzung auf nächster Folie. Modellierung III Graphen © Wachsmuth 2021/22 68 Bäume und Wälder Eigenschaften: Anzahl von Kanten Satz 3.8 (Anzahl von Kanten) • Ist T = (V, E) ein Baum, so gilt |E| = |V | 1. Beweis über Widerspruch (Fortsetzung) • Betrachte T 0 = (V 0, E 0) mit V 0 = V0 \ {u} und E 0 = E0 \ {{u, u0}}. • Nach Konstruktion ist T 0 ein Baum. • Da |V 0| < |V0| und T0 kleinstes Gegenbeispiel war, gilt |E 0| = |V 0| 1. • Es gilt |V0| = |V 0| + 1 und |E0| = |E 0| + 1. • Damit ist |E0| = |V0| Modellierung III Graphen 1, was im Widerspruch zur Annahme steht. © Wachsmuth 2021/22 2 69 Modellierung mit Graphen Modellierungsaufgabe zu ungerichteten Bäumen Problem: Stammbaum • Es sei folgendes Wissen über die Kinder von Zahra gegeben: Zahra hat zwei Kinder, Milad und Maja. Milad hat eine Tochter namens Roxanne; Maja hat zwei Söhne, Max und Timon. • Modellieren Sie diese Konstellation mit einem Baum. Modellierung in Vorlesung. Fragen 1. Wäre ein „vollständiger” Stammbaum mit beiden Elternteilen auch noch ein Baum? 2. Ist ein ungerichteter Graph hier der beste Modellierungsformalismus? Antworten in Vorlesung. Modellierung III Graphen © Wachsmuth 2021/22 70 Spannbäume Definition 3.23 (Spannbaum) • Sei G = (VG, EG) ein zusammenhängender Graph. Ein Teilgraph T = (VT , ET ) heißt Spannbaum von G, falls T ein Baum ist, für den gilt: VT = VG und ET ✓ EG Beispiele für Spannbäume Modellierung III Graphen © Wachsmuth 2021/22 71 Spannbäume Eigenschaften: Existenz von Spannbäumen Satz 3.9 (Existenz von Spannbäumen) • Jeder zusammenhängende Graph G enthält einen Spannbaum. Beweis über Baumkonstruktion (Skizze) • Hier nur die Idee des Beweises graphisch Es werden solange Kanten entfernt, wie noch Kreise vorhanden sind. Modellierung III Graphen © Wachsmuth 2021/22 72 Spannbäume Minimale Spannbäume Definition 3.24 (Gewicht von Teilgraphen) • Sei G = (V, E) ein Graph mit Kantenmarkierung m : E ! N und sei H = (VH , EH ) ein Teilgraph von G. • Dann ist das Gewicht w(H) von H: w(H) := X m(e) e2EH Definition 3.25 (Minimaler Spannbaum) • Sei G = (V, E) zusammenhängend mit Kantenmarkierung m : E ! N. • Ein Spannbaum T = (VT , ET ) heißt minimaler Spannbaum von G, wenn er unter allen Spannbäumen von G minimales Gewicht besitzt, also: w(T ) = Modellierung III Graphen min w(T 0) T Spannbaum von G 0 © Wachsmuth 2021/22 73 Spannbäume Minimale Spannbäume: Beispiel Beispielgraph G 4 d c 2 5 e 1 5 2 3 1 4 a f b 2 Minimaler Spannbaum von G 4 d 2 5 e 2 2 f 1 4 a Graphen 1 5 3 Modellierung III c b © Wachsmuth 2021/22 74 Modellierung mit Graphen Weitere Verbindungsprobleme Problem: Kommunikationsverbindungen • Eine Menge von Stationen soll durch Kommunikationsverbindungen so (direkt) verknüpft werden, dass je zwei Stationen (indirekt über weitere Stationen) miteinander kommunizieren können. • Die Verbindung zweier Stationen ist mit gewissen stationsabhängigen Kosten verbunden. • Manche Stationen können nicht direkt miteinander verbunden werden. • Gesucht. Eine Menge von Verbindungen, die möglichst geringe Kosten verursacht und Kommunikation zwischen allen Stationen ermöglicht. Modellierung als minimales Spannbaumproblem • Graph G = (V, E) mit Kantenmarkierung m : E ! N: • Knoten. Stationen • Kanten. Direkte Kommunikationsverbindungen zwischen Stationen • Kantenmarkierungen. Kosten, welche diese Verbindung verursacht Modellierung III Graphen © Wachsmuth 2021/22 75 Modellierung mit Graphen Problem: Kommunikationsverbindungen Beispielgraph G 16 d 19 21 e 33 a c 6 11 5 14 f 10 b 18 Minimaler Spannbaum von G d 16 e a Modellierung III Graphen 18 c 6 11 5 f b © Wachsmuth 2021/22 76 Modellierung mit Graphen Spannbaumprobleme in der Praxis Spannbaumprobleme • Konstruktion von Autobahnnetzen und Eisenbahnnetzen • Verbindungen auf einem Halbleiter/Chip • Telefonverbindungen • Stromverbindungen zwischen Gebäuden • Wasserrohre, Kanalisationsrohre • Verbindungen für ein LAN (local area network) • ... Zu beachten • In der Praxis wird nicht immer nur ein Spannbaum angestrebt. • Ausfallsicherheit und/oder Effizienz können redundante Verbindungen gewünscht machen. Modellierung III Graphen © Wachsmuth 2021/22 77 Modellierung mit Graphen Zuordnungsprobleme: Seminarthemen I Problem: Seminarthemen I • In einem Seminar bearbeiten Teams zu je 2 Studierenden ein Thema. • Dabei sollen nur befreundete Studierende ein Team bilden. • Frage. Gibt es eine solche Aufteilung? Wenn ja, wie sieht sie aus? Modellierung • Knoten. Repräsentieren Studierende • Kanten. Repräsentieren Freundschaften • Fette Kanten. Mögliche Zuordnung zu Teams von Freunden Beispiel c d e a Modellierung III Graphen e f b c d a f b © Wachsmuth 2021/22 78 Modellierung mit Graphen Zuordnungsprobleme: Seminarthemen II Problem: Seminarthemen II • n Studierende eines Seminar bearbeiten in k Teams jeweils ein Thema. • Studierende, die sich nicht mögen, sollen in verschiedenen Teams sein. • Frage. Gibt es eine solche Aufteilung der n Studierenden in k Teams? Modellierung • Knoten. Repräsentieren Studierende • Kanten. Repräsentieren Abneigungen • Farben. Markieren eine mögliche Zuordnung von Themen Beispiel (sei k = 3) c d e a Modellierung III Graphen e f b c d a f b © Wachsmuth 2021/22 79 Modellierung mit Graphen Zuordnungsprobleme: Zuordnung von Wartungsjobs Problem: Zuordnung von Wartungsjobs • Eine Gruppe unterschiedlich ausgebildeter Informatiker*innen soll zur Wartung von Softwarepaketen eingesetzt werden. • Dabei soll jede*r Informatiker*in nur für ein Softwarepaket eingesetzt werden, für das er*sie auch ausgebildet ist. • Frage. Gibt es eine entsprechende Zuteilung? Falls ja, welche? Modellierung • Knoten. Aufgaben (eckige Knoten) bzw. Informatiker*innen (runde) • Kanten. „kann warten”-Beziehung • Fette Kanten. Mögliche Zuordnung von Informatiker*innen zu Aufgaben Beispiel A1 I1 Modellierung III A2 I2 Graphen A3 I3 A4 I4 A1 I5 I1 A2 I2 A3 I3 A4 I4 I5 © Wachsmuth 2021/22 80 Modellierung mit Graphen Zuordnungsprobleme: Zuteilung von Rechenaufgaben Problem: Zuteilung von Rechenaufgaben • Auf l Spezialrechnern sollen k verschiedene Aufgaben gelöst werden. • Jedoch können nicht alle Aufgaben auf jedem Rechner gelöst werden. • Außerdem soll jeder Rechner höchstens eine Aufgabe lösen müssen. • Frage. Gibt es ein solche Zuordnung der Aufgaben? Falls ja, welche? Modellierung • Knoten. Aufgaben (eckige Knoten) bzw. Rechner (runde) • Kanten. „kann lösen”-Beziehung Beispiel A1 A2 A3 A4 A5 C1 C2 C3 C4 C5 Modellierung III Graphen Korrekte Zuordnung nicht möglich, da die drei Aufgaben A2, A4, A5 jeweils nur auf den Rechnern C2, C5 gelöst werden können. © Wachsmuth 2021/22 81 Matchings Definition 3.26 (Matching, perfektes Matching) • Matching. Eine Kantenmenge M ✓ E heißt Matching in einem Graphen G = (V, E), falls kein Knoten des Graphen zu mehr als einer Kante aus M inzident ist, also falls e \ f = ; für alle e, f 2 M mit e 6= f . • Man sagt, dass ein Knoten v von M überdeckt wird, falls es eine Kante e 2 M gibt, die v enthält. • Perfektes Matching. Ein Matching heißt perfekt, wenn jeder Knoten durch genau eine Kante aus M überdeckt wird, also falls |M | = |V |/2. Beispiele • Drei Matchings, das zweite ist ein perfektes Matching. Modellierung III Graphen © Wachsmuth 2021/22 82 Modellierung mit Graphen Zuordnungsprobleme: Seminarthemen I (Fortsetzung) Problem: Seminarthemen I • In einem Seminar bearbeiten Teams zu je 2 Studierenden ein Thema. • Dabei sollen nur befreundete Studierende ein Team bilden. • Frage. Gibt es eine solche Aufteilung? Wenn ja, wie sieht sie aus? Beispiel c d e a e f b c d a f b Lösung für das Beispiel • Eine Zuordnung ist möglich, da es ein perfektes Matching für den Graphen gibt. Modellierung III Graphen © Wachsmuth 2021/22 83 Bipartite Graphen Definition 3.27 (Bipartiter Graph) • Ein Graph G = (V, E) heißt bipartit, falls die Knotenmenge V die Vereinigung zweier disjunkter Teilmengen A und B ist, und jede Kante e 2 E eine Endknoten in A und einen Endknoten in B besitzt. Beispiele Schreibweisen • A ] B bezeichnet die Vereinigung von disjunkten Mengen A und B. • Für bipartite Graphen G schreiben wir auch G = (A ] B, E). Modellierung III Graphen © Wachsmuth 2021/22 84 Bipartite Graphen Existenz von Matchings Definition 3.28 (Nachbarschaft) • Sei G = (V, E) ein Graph und sei X ✓ V . S • Dann ist (X) := v2X (v) die Nachbarschaft der Knotenmenge X. Satz 3.10 (Satz von Hall, Heiratssatz) • Für einen bipartiten Graph G = (A ] B, E) gibt es genau dann ein Matching M der Größe |M | = |A|, wenn gilt | (X)| |X| für alle X ✓ A. Zweigeteilter Beweis des Satzes 1. Matching der Größe |M | = |A| 2. Matching der Größe |M | = |A| ) ( | (X)| | (X)| |X| für alle X ✓ A |X| für alle X ✓ A Beweis ausgelassen; relativ komplexe Pfadkonstruktion mit geringem Lernertrag. Modellierung III Graphen © Wachsmuth 2021/22 85 Modellierung mit Graphen Zuordnungsprobleme: Zuteilung von Rechenaufgaben Modellierung • Knoten. Aufgaben (eckige Knoten) bzw. Rechner (runde) • Kanten. „kann lösen”-Beziehung A1 A2 A3 A4 A5 C1 C2 C3 C4 C5 Lösung für das Beispiel • Eine korrekte Zuordnung von Aufgaben zu Rechnern ist nach dem Satz von Hall nicht möglich, denn es gilt: | ({A2, A4, A5})| < |{A2, A4, A5}|. Modellierung III Graphen © Wachsmuth 2021/22 86 Färbung von Graphen Definition 3.29 (Knotenfärbung, chromatische Zahl) • Knotenfärbung. Eine Knotenfärbung eines Graphen G = (V, E) mit k Farben ist eine Abbildung c : V ! {1, . . . , k}, so dass gilt: c(u) 6= c(v) für alle Kanten {u, v} 2 E. • Chromatische Zahl. Die chromatische Zahl (G) von G ist die minimale Anzahl an Farben, die für eine Knotenfärbung von G benötigt werden. • Ist (G) k, so heißt G k-färbbar. Beispiele für Färbungen C5 C5 ist 3-färbbar, C5 ist nicht 2-färbbar. Modellierung III Graphen Q3 Q3 ist 2-färbbar. © Wachsmuth 2021/22 87 Modellierung mit Graphen Zuordnungsprobleme: Seminarthemen II Modellierung • Knoten. Repräsentieren Studierende • Kanten. Repräsentieren Abneigungen • Farben. Markieren eine mögliche Zuordnung von Themen Beispiel (sei k = 3) c d e a e f b c d a f b Lösung für das Beispiel • Eine Zuordnung der Themen zu 3 Teams ist möglich, da der Graph 3-färbbar ist. Modellierung III Graphen © Wachsmuth 2021/22 88 Färbung von Graphen Eigenschaften von bipartiten Graphen Satz 3.11 (2-Färbbarkeit) • Ein Graph G = (V, E) ist genau dann bipartit, wenn er 2-färbbar ist. Beweis • Hier ausgelassen. Beide Richtungen über einfache Konstruktionen zeigbar. Satz 3.12 (Kreisfreiheit) • Ein Graph G = (V, E) ist genau dann bipartit, wenn er keinen Kreis ungerader Länge als Teilgraphen enthält. Beweis • Hier ebenfalls ausgelassen. Etwas komplexere Konstruktionen nötig. Modellierung III Graphen © Wachsmuth 2021/22 89 Gerichtete Bäume Wurzelbäume Definition 3.30 (Wurzelbaum) • Ein Wurzelbaum (auch: gerichteter Baum) ist ein gerichteter azyklischer Graph, in dem genau ein Knoten w Eingangsgrad 0 besitzt und alle anderen Knoten Eingangsgrad 1 besitzen. • Der Knoten w heißt die Wurzel des Graphen. • Knoten mit Ausgangsgrad 0 heißen Blätter. Beispiel c b a d e f Wurzelbaum mit Wurzel c Modellierung III Graphen © Wachsmuth 2021/22 91 Wurzelbäume Von ungerichtet zu gerichtet Alternative Definition • Ein Wurzelbaum ist ein Paar (T, w), wobei T = (V, E) ein ungerichteter Baum ist und w 2 V ein Knoten ist. w heißt die Wurzel des Graphen. Von ungerichtet zu gerichtet • In T gibt es für jeden Knoten v 2 V einen eindeutigen Pfad von w zu v. • Durch Orientierung der Kanten von oben nach unten lässt sich für jeden Knoten v 2 V ein gerichteter Pfad von w zu v ableiten. Beispiel (Der eckige Knoten bezeichnet hier die Wurzel.) a c c b d b e a f Modellierung III c Graphen d b e a f d e f © Wachsmuth 2021/22 92 Wurzelbäume Grundlegende Begriffe Definition 3.31 (Vorgänger, Nachfolger) • Sei (T, w) mit T = (V, E), ein Wurzelbaum und v 2 V . • Vorgänger. Jeder Knoten u, u 6= v, auf dem Pfad P von w zu v heißt Vorgänger von v. • Unmittelbarer Vorgänger. Der zu v benachbarte Knoten auf P heißt unmittelbarer Vorgänger (auch: Elternknoten) von v. • Nachfolger. Ein Knoten u, u 6= v, für den v auf dem Pfad von w zu u liegt, heißt Nachfolger von v. • Unmittelbarer Nachfolger. Ein mit v durch eine Kante verbundener Nachfolger heißt unmittelbarer Nachfolger (auch: Kindnoten) von v. Beispiel • v ist Vorgänger von z. • v ist unmittelbarer Vorgänger von y. • u ist Nachfolger der Wurzel. • y ist unmittelbarer Nachfolger von v. Modellierung III Graphen Wurzel u v y z © Wachsmuth 2021/22 93 Wurzelbäume Höhe von Bäumen Definition 3.32 (Höhe) • Sei (T, w) mit T = (V, E), ein Wurzelbaum und v 2 V . • Die Höhe eines beliebigen Knotens v 2 V ist die maximale Länge eines (gerichteten) Pfades in T mit Anfangsknoten v. • Die Höhe von T ist die Höhe der Wurzel von T . Beispiel • v hat Höhe 2. • u hat Höhe 3. v u • Der Baum hat Höhe 4. Modellierung III Graphen © Wachsmuth 2021/22 94 Binärbäume Definition 3.33 (Binärbaum) • Binärbaum. Ein Binärbaum ist ein Wurzelbaum, in dem jeder Knoten höchstens zwei unmittelbare Nachfolger hat. • Vollständiger Binärbaum. Ein Binärbaum ist vollständig, wenn gilt: 1. Jeder Nicht-Blattknoten hat genau zwei unmittelbare Nachfolger. 2. Alle Pfade von der Wurzel zu Blättern haben die gleiche Länge. • Ein Binärbaum heißt unvollständig, wenn er nicht vollständig ist. Beispiele c unvollständiger Binärbaum Modellierung III Graphen vollständiger Binärbaum der Höhe 2 © Wachsmuth 2021/22 95 Binärbäume Höhe von Binärbäumen Satz 3.13 (Höhe eines Binärbaumes) • Jeder vollständige Binärbaum der Höhe h hat exakt 2h Blätter und exakt 2h+1 1 Knoten. Beweis über Induktion nach h • IA. Ein Baum der Höhe 0 besitzt 1 = 21 1 Knoten und 1 = 20 Blätter. • IV. Der Satz ist korrekt für Bäume der Höhe h. • IS. h ! h + 1: Zu zeigen ist, dass ein vollständiger Binärbaum T der Höhe h + 1 exakt 2h+1 Blätter und 2h+2 1 Knoten hat. • Sei w die Wurzel von T seien w1 und w2 die direkten Nachfolger von w. • Für i 2 {1, 2} gilt: wi und seine Nachfolger bilden einen vollständigen Baum Ti der Höhe h. • Nach IV besitzt jedes Ti exakt 2h Blätter und 2h+1 1 Knoten. Fortsetzung auf nächster Folie. Modellierung III Graphen © Wachsmuth 2021/22 96 Binärbäume Höhe von Binärbäumen (Fortsetzung) Satz 3.13 (Höhe eines Binärbaumes) • Jeder vollständige Binärbaum der Höhe h hat exakt 2h Blätter und exakt 2h+1 1 Knoten. Forsetzung des Induktionsbeweises • Nach IV besitzt jedes Ti exakt 2h Blätter und 2h+1 1 Knoten. • T hat die gleichen Blätter wie T1 und T2. • Da die Mengen der Blätter von T1 und T2 disjunkt sind, ist die Anzahl der Blätter von T : 2h + 2h = 2 · 2h = 2h+1 • T hat die gleichen Knoten wie T1 und T2 sowie zusätzlich die Wurzel w. • Da die Mengen der Knoten von T1 und T2 disjunkt sind, ist die Anzahl der Knoten von T : 2h+1 1 + 2h+1 1 + 1 = 2 · 2h+1 1 = 2h+2 1 2 Modellierung III Graphen © Wachsmuth 2021/22 97 Modellierung mit Graphen Beschreibung von Strukturen Dateisysteme / bin home etc usr lib var local Programmkonstrukte WhileStatement Expression Statement Statement Assignment Assignment WhileStatement Expression Statement Assignment Variable Expression Variable Expression Modellierung III Graphen © Wachsmuth 2021/22 98 Modellierung mit Graphen Problem des Handlungsreisenden: Lösung durch Ausprobieren Das Problem des Handlungsreisenden (recap) • Ein Handelsvertreter möchte auf einer Rundreise n Städte besuchen. • Die Städte sind mit Straßen einer gewissen Länge verbunden. • Gesucht. Eine Tour minimaler Länge, die jede Stadt genau 1x besucht. Modellierung und Lösung durch Ausprobieren • Knoten. Städte • Kanten. Direkte Verbindungen zwischen Städten mit definierter Länge • Gesucht. Möglichst kurzer Hamiltonkreis. a 30 50 55 d Modellierung III 25 Graphen b 52 48 c a 30 50 55 d 25 b 52 48 Kreis der Länge 157 c © Wachsmuth 2021/22 99 Entscheidungsbäume Entscheidungsbaum • Ein Entscheidungsbaum ist ein Wurzelbaum, der alle potentielle Lösungen einer Aufgabe aufspannt. • Die Lösungen werden durch die Blätter charakterisiert. • Der Pfad zu einem Blatt beschreibt die Entscheidungen, die zu der entsprechenden Lösung führen. Modellierung und systematische Lösung a a 30 50 55 b b 52 c d b 48 d d Modellierung III 25 Graphen c c c d c d b d b c b a a a a a a 158 157 205 157 205 158 © Wachsmuth 2021/22 100 Modellierung mit Graphen Modellierungsaufgabe zu Entscheidungsbäumen Problem: Rentenbezug • Ein Datensatz enthalte für eine Reihe von Personen jeweils das Alter, das Geschlecht und ob die Person bereits in Rente ist. • Ein maschinelles Lernverfahren leitet daraus die folgenden Regeln ab: – Jede Person über 65 ist in Rente. – Jede Person unter 60 ist nicht in Rente. – Männer über 60 sind in Rente. – Frauen zwischen 60 und 65 sind nicht in Rente. • Beschreiben Sie diese Regeln durch einen Entscheidungsbaum. Modellierung in Vorlesung. Frage • Sehen Sie eine Gefahr beim praktischen Einsatz solcher Verfahren? Modellierung III Graphen © Wachsmuth 2021/22 101 Termbäume (bzw. Kantorowitsch-Bäume) Termbaum • Ein Wurzelbaum zur Beschreibung der Struktur von arithmetischen Termen und Ausdrücken • Knoten. Repräsentieren Variablen, Konstanten und Operatoren • Kanten. Verbinden diese mit ihren Operanden Beispiele ⇤ a ⇤ c + b c Modellierung III Graphen a + a (a + b) ⇤ c + b b c ⇤ (a + b) (a + b) © Wachsmuth 2021/22 102 Termbäume (bzw. Kantorowitsch-Bäume) Termnotation Termnotation • Die Anwendung eines (n-stelligen) Operators f auf Terme t1, . . . , tn als Operanden kann unterschiedlich notiert werden: • Funktionsform. f (t1, . . . , tn), wobei jedes ti auch in Funktionsform ist. • Präfixform. (f t1 · · · tn), wobei jedes ti auch in Präfixform ist. • Infixform. (t1 f t2) bzw. (f t1), wobei die ti auch in Infixform sind. Die Infixform ist nur für maximal zweistellige Operatoren anwendbar. • Postfixform. (t1 · · · tn f ), wobei jedes ti auch in Postfixform ist. Beispiele • Funktionsform. + (⇤ (x, 3), • Präfixform. ( + ( ⇤ x 3) ( • Infixform. ( ( x ⇤ 3) + ( 2 • Postfixform. ( ( x 3 ⇤) ( 2 3 Modellierung III Graphen (2, 3)) 2 3)) 3)) ) +) © Wachsmuth 2021/22 103 Termbäume (bzw. Kantorowitsch-Bäume) Bestimmung der Termformen Von Termbaum zu Termform • Frage. Wie lassen sich die möglichen Termformen am Baum ablesen? • Antwort. Führe einen Tiefensuche-Durchlauf durch den Baum durch und gebe zu definierten Zeitpunkten die Knotensymbole aus. + * 3 a - a 7 Modellierung III Graphen © Wachsmuth 2021/22 104 Termbäume (bzw. Kantorowitsch-Bäume) Tiefensuche-Durchlauf Tiefensuche-Durchlauf • Der Baum wird gemäß dem Prinzip einer Tiefensuche traversiert. • An den farbigen Punkten lassen sich die Knotensymbole ausgeben. Verfahren für die verschiedenen Termformen auf den nächsten Folien. - Zu beachten + * 3 a 7 Modellierung III • Innere Knoten. Vor dem ersten und nach dem letzten Besuch Ausgabe der Klammern Graphen a • Knoten mit einem Nachfolger. Besuch 1+2 fallen zusammen • Blätter. Alle drei Besuche fallen zusammen © Wachsmuth 2021/22 105 Termbäume (bzw. Kantorowitsch-Bäume) Bestimmung der Präfixform Ausgabe in Präfixform • Symbol beim ersten Besuch eines Knotens ausgeben • Aufruf erfolgt mit Termausgabe(w), wobei w die Wurzel ist Verfahren 3.1 (Präfixform) Termausgabe(Knoten N ) 1. L linker Nachfolger von N 2. R rechter Nachfolger von N 3. Falls L oder R vorhanden: Gebe linke Klammer aus 4. Gebe Symbol von N aus 5. Falls L vorhanden: Termausgabe(Knoten L) 6. Falls R vorhanden: Termausgabe(Knoten R) 7. Falls L oder R vorhanden: Gebe rechte Klammer aus Modellierung III Graphen © Wachsmuth 2021/22 106 Termbäume (bzw. Kantorowitsch-Bäume) Bestimmung der Infixform Ausgabe in Infixform • Symbol beim zweiten Besuch eines Knotens ausgeben • Aufruf erfolgt mit Termausgabe(w), wobei w die Wurzel ist Verfahren 3.2 (Infixform) Termausgabe(Knoten N ) 1. L linker Nachfolger von N 2. R rechter Nachfolger von N 3. Falls L oder R vorhanden: Gebe linke Klammer aus 4. Falls L vorhanden: Termausgabe(Knoten L) 5. Gebe Symbol von N aus 6. Falls R vorhanden: Termausgabe(Knoten R) 7. Falls L oder R vorhanden: Gebe rechte Klammer aus Modellierung III Graphen © Wachsmuth 2021/22 107 Termbäume (bzw. Kantorowitsch-Bäume) Bestimmung der Postfixform Ausgabe in Postfixform • Symbol beim letzten Besuch eines Knotens ausgeben • Aufruf erfolgt mit Termausgabe(w), wobei w die Wurzel ist Verfahren 3.3 (Postfixform) Termausgabe(Knoten N ) 1. L linker Nachfolger von N 2. R rechter Nachfolger von N 3. Falls L oder R vorhanden: Gebe linke Klammer aus 4. Falls L vorhanden: Termausgabe(Knoten L) 5. Falls R vorhanden: Termausgabe(Knoten R) 6. Gebe Symbol von N aus 7. Falls L oder R vorhanden: Gebe rechte Klammer aus Modellierung III Graphen © Wachsmuth 2021/22 108 Suchbäume Suchbaum • Ein Suchbaum ist ein binärer Baum T = (V, E) mit V ⇢ N. • Für alle Knoten v gilt: 1. Alle rechten Nachfolger von v sind größer als v. 2. Alle linken Nachfolger von v sind kleiner als v. Beispiele 5 11 5 3 1 14 8 12 20 11 3 8 12 14 1 Einsatz von Suchbäumen 20 • Suchbäume eignen sich gut, um die Anfrage „x 2 V ?“ zu beantworten. • Dafür sollten sie möglichst balanciert sein. Modellierung III Graphen © Wachsmuth 2021/22 109 Zusammenfassung Graphen in der Modellierung Problemklassen • Wegeprobleme und Verbindungsprobleme • Zuordnungsprobleme und Abhängigkeitsprobleme • Hierarchische Strukturen, verzweigte Abläufe und Anordnung in Folgen Repräsentation durch Knoten und Kanten • verbunden, benachbart, in Relation zu, (Un-)Verträglichkeit, ... • Entscheidung, Alternative, Verzweigung • Vorbedingung, Abhängigkeit, verzweigte Abläufe • besteht aus, enthält, ist-ein Repräsentation durch Markierungen • Symbole einer Sprache • Färbung für disjunkte Knotenmengen • Entfernung, Kosten, Gewinn Modellierung III Graphen © Wachsmuth 2021/22 111 Zusammenfassung Ungerichteter Graph a • Tupel aus Knoten und Kanten, ggf. mit Markierungen • Modelliert symmetrische Beziehungen von Konzepten 30 50 52 48 55 • Geeignet etwa für Wege- und Verbindungsprobleme b d c 25 Gerichteter Graph e • Graph mit gerichteten Kanten g d • Modelliert asymmetrische Beziehungen • Geeignet etwa für Abhängigkeitsprobleme und Abläufe f Baum • Zusammenhängender, kreisfreier Graph • Ungerichtet geeignet etwa für Zuordnungsprobleme • Gerichtet etwa für Strukturen und Abläufe Modellierung III Graphen c ⇤ a + a + b b © Wachsmuth 2021/22 112