Bäume und Wälder Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann Ida Feldmann 2-Fach Bachelor Mathematik und Biologie 6. Fachsemester Inhaltsverzeichnis Einleitung 1 1. Bäume und Wälder 2 2. Ausspannende Bäume von Graphen 6 3. Satz von Cayley 9 Literatur 12 Einleitung In dieser Ausarbeitung zum Seminarvortrag im Seminar “Graphentheorie“ geht es um Bäume und Wälder. Dabei beziehe ich mich auf Graph theory von Béla Bollobás, Combinatorics and graph theory von John M. Harris, Jeffry L. Hirst, Michael J. Mossinghoff und Proofs from The Book von Martin Aigner and Günter M. Ziegler. 1. Bäume und Wälder Im ersten Teil geht es um die Definition und elementare Eigenschaften eines Baumes und eines Waldes. 1.1 Definition: Ein Wald ist ein Graph ohne Kreise. Abbildung 1: Ein Beispiel für einen Wald. 1.2. Definition: Ein Baum ist ein zusammenhängender Graph ohne Kreise. Abbildung 2: Ein Beispiel für einen Baum. 1.3. Definition: Ein Blatt ist ein Knoten mit Grad 1. Ein Wald ist also eine disjunkte Vereinigung von Bäumen. Wir können auch sagen, dass ein Wald aus einem oder mehreren Bäumen besteht. Einen Baum können wir auch als zusammenhängenden Wald bezeichnen. In vielen Anwendungsbereichen gibt es Beispiele für Modellierungen durch Bäume. Hier folgen drei kurze Beispiele. 1. Bäume und Wälder 3 1.4. Anwendungen: • Bäume sind nützlich, um die möglichen Ergebnisse eines Experiments zu modellieren. Das Experiment, bei dem zuerst eine Münze geworfen und dann ein 6-seitiger Würfel gewürfelt wird, kann durch den folgenden Baum dargestellt werden. Abbildung 3: Ergebnisse eines Münz/Würfel Experiments. • Programmierer können Bäume benutzen, um die Logik von Algorithmen zu modellieren. Zum Beispiel kann die Logik eines Programmes, welches die größte von vier Zahlen (w, x, y, z) bestimmt, durch den folgenden Baum dargestellt werden. Abbildung 4: Logik eines Programms. • Im Bereich der Chemie beschreiben Bäume die Struktur der gesättigten Kohlenwasserstoffe. Dabei entsprechen die Knoten den Atomen und die Kanten den Bindungen. Abbildung 5: Einige gesättigte Kohlenwasserstoffe. 1. Bäume und Wälder 4 1.5. Satz: Ein Graph G = (V, E) ist ein Baum, wenn er zu jedem Paar verschiedener Knoten x, y ∈ V genau einen einfachen Weg von x nach y enthält. Beweis: Sei G ein Baum. Da G zusammenhängend ist, gibt es einen einfachen Weg von x nach y. Gibt es mindestens zwei Wege von x nach y, enthält G einen Kreis. Dies ist ein Widerspruch zur Annahme, dass G ein Baum ist. 1.6. Satz: Die folgenden Aussagen sind äquivalent für einen Graphen G: 1. G ist ein Baum. 2. G ist ein minimal zusammenhängender Graph. 3. G ist ein maximal kreisfreier Graph. Beweis: 1. ⇒2. Angenommen, G ist ein Baum. Sei {x, y} ∈ E(G). Der Graph G − {x, y} kann keinen einfachen Weg x, z1 , ..., zk , y enthalten, da G sonst den Kreis x, z1 , ..., zk , y, x enthält. Daher ist G − {x, y} unzusammenhängend und so ist G ein minimal zusammenhängender Graph. 1. ⇒3. Wenn x und y nicht adjazente Knoten von einem Baum G sind, enthält G den einfachen Weg x, z1 , ..., zk , y und G + {x, y} enthält den Kreis x, z1 , ..., zk , y, x. Also enthält G + {x, y} einen Kreis und deshalb ist G ein maximal kreisfreier Graph. 2. ⇒1. Angenommen, G ist ein minimal zusammenhängender Graph. Wenn G einen Kreis x, z1 , ..., zk , y, x enthält, dann ist G − {x, y} immer noch zusammenhängend. Da dies der Annahme, dass G minimal zusammenhängend sein soll, widerspricht, folgern wir, dass G kreisfrei ist. Also ist G ein Baum. 3. ⇒1. Angenommen, G ist ein maximal kreisfreier Graph. Wäre G nicht zusammenhängend, würden mindestens zwei Komponenten existieren. Würden x und y zu zwei verschiedenen Komponenten gehören, würde das Hinzufügen von {x, y} zu G keinen Kreis x, z1 , ..., zk , y, x in G ergeben, da sonst der einfache Weg x, z1 , ..., zk , y in G wäre. Also ist G zusammenhängend und auch ein Kreis. 1.7. Satz: Ein Baum T mit n Knoten hat n − 1 Kanten. Beweis: Wir beweisen den Satz mittels Induktion über die Anzahl der Knoten von T . Für n = 1 besteht der Baum aus nur einem Knoten und hat daher 0 Kanten. Angenommen, der Satz ist wahr für alle Bäume mit weniger als k Knoten. Sei T ein Baum mit k Knoten. Wir wählen eine Kante von T und nennen sie e. Da T ein Baum ist, das heißt ein minimal zusammenhängender Graph, ist T − e unzusammenhängend und besteht aus zwei Bäumen, T1 und T2 . Die Bäume T1 und T2 haben jweils k1 und k2 Knoten. Es gilt k1 + k2 = k und da k1 < k, gilt die Induktionsvoraussetzung für T1 . Deshalb hat T1 k1 − 1 Kanten. Ebenso hat T2 k2 −1 Kanten. Da die Kanten von T aus der disjunkten 1. Bäume und Wälder Vereinigung der Kanten von T1 , T2 und der Kante e bestehen, gilt: |E(T )| = |E(T1 )| + |E(T2 )| + |{e}| = (k1 − 1) + (k2 − 1) + 1 = k1 + k2 − 1 = k − 1 Dies vollendet die Induktion. 1.8. Satz: Ein Baum mit mindestens zwei Knoten enthält mindestens zwei Blätter. Beweis: Der Beweis erfolgt mittels Induktion über die Anzahl der Knoten. Die Aussage ist wahr, falls n = 2, da in einem Baum, der aus zwei Knoten besteht, beide Knoten auch Blätter sind. Angenommen, der Satz gilt für alle Bäume mit 2 bis n − 1 Knoten. Sei T ein Baum mit n ≥ 3 Knoten. Aus Satz 1.7. wissen wir, dass T n − 1 Kanten hat, und da wir n ≥ 3 annehmen, hat T mindestens zwei Kanten. Wenn jede Kante von T mit einem Blatt verbunden ist, hat T mindestens zwei Blätter und der Beweis ist vollständig. Sonst gibt es eine Kante e = {u, v} von T , die nicht mit einem Blatt verbunden ist. Der Graph T −e enthält die beiden Bäume T1 und T2 mit jeweils n1 und n2 Knoten. Es sei ohne Beschränkung der Allgemeinheit u ∈ V (T1 ) und v ∈ V (T2 ). Da e nicht mit Blättern von T verbunden ist, ist n1 ≥ 2 und n2 ≥ 2. Deshalb ist die Induktionsvoraussetzung anwendbar auf T1 und T2 . Somit haben T1 und T2 je zwei Blätter. Das heißt, dass T1 und T2 jeweils mindestens ein Blatt haben, das nicht mit der Kante e verbunden ist. Deshalb hat der Graph (T − e) + e = T mindestens zwei Blätter. 5 2. Ausspannende Bäume von Graphen In dem zweiten Teil geht es um besondere Untergraphen, um aufspannende Bäume von Graphen. 2.1 Definition: Ein Untergraph T ist ein aufspannender Baum von einem Graphen G, wenn T ein Baum ist, der jeden Knoten von G enthält. Abbildung 6: Ein aufspannender Baum (markiert) von einem Graphen. 2.2 Satz: Jeder zusammenhängende Graph enthält einen aufspannenden Baum. Beweis: Sei G ein Graph mit n Knoten. Wir wählen x ∈ V (G). Sei T1 der Untergraph von G, der nur aus x besteht. Dann ist T1 ein Baum. Wir konstruieren die Bäume T1 ⊂ T2 ⊂ ... ⊂ Tk ⊂ G, wobei Ti i Knoten hat. Wenn k < n, dann gibt es einen Knoten y ∈ V (G) − V (Tk ), der in G adjazent ist zu einem Knoten z ∈ Tk . Sei Tk+1 der Baum, der aus Tk durch Hinzufügen des Knotens y und der Kante {y, z} entsteht. Dann ist Tk+1 zusammenhängend und, da {y, z} nicht die Kante eines Kreises in Tk+1 sein kann, auch kreisfrei. Daher ist Tk+1 auch ein Baum und die Folge T0 ⊂ T1 ⊂ ... kann bis Tn vollendet werden. Der Baum Tn enthält dann alle Knoten von G und ist ein aufspannender Baum von G. 2.3 Anwendung: Minimierung von Verbindungskosten Eine verbreitete Anwendung eines aufspannenden Baums von einem Graphen ist die Minimierung von Verbindungskosten. In dem folgenden Beispiel soll zwischen verschiedenen Städten in einem Gebiet ein Zugschienennetz verlegt werden. Einige dieser Städte sind bereits durch Straßen verbunden und die Schienen sollen neben den Straßen verlaufen. Da das Gebiet gebirgig ist, sind manche Straßen steil und kurvenreich, dort wäre das Verlegen der Schienen schwierig und teuer. Die Straßen werden bewertet entsprechend ihrer Länge, Steigung und Kurvigkeit. Dabei entspricht ein hoher Wert hohen Kosten. Ein Beispiel für einen solchen Graphen ist in der Abbildung 8 zu sehen. 2. Ausspannende Bäume von Graphen 7 Abbildung 7: Beispiel für einen Städte-Graphen. Das Ziel ist, dass jede Stadt von jeder anderen Stadt aus mit dem Zug erreichbar ist (aber nicht umbedingt direkt erreichbar). Da die Kosten minimiert werden sollen, wird die beste Lösung keinen Kreis von Schienen enthalten, da in einem Kreis mindestens entlang einer Strecke unnötigerweise Schienen verlegt werden. Um dieses Problem auf ein Problem der Graphentheorie zurückzuführen, sollen bei einem Graphen die Knoten den Städten entsprechen und die Kanten den Straßen dazwischen. Die Bewertung der Straßen kann durch eine Gewichtungsfunktion, die jeder Kante eine positive reelle Zahl zuordnet, umgesetzt werden. Dies motiviert die folgenden Definitionen. 2.4 Definition: Ein gewichteter Graph G = (V, E, w) wird durch einen Graphen (V, E) und eine Gewichtungsfunktion w : E → R+ gegeben. 2.5 Definition: Ein aufspannender Baum T = (V, E 0 ) von einem Graphen G = (V, E, w) heißt minimal, wenn w(T ) = X w({x, y}) {x,y}∈E 0 minimal ist. Das heißt, w(T ) ≤ w(T 0 ) für jeden aufspannenden Baum T 0 von G. Es gibt verschiedene Möglichkeiten, einen solchen minimal aufspannenden Baum zu finden. Eine Methode heißt Kruskals Algorithmus. 2.6 Kruskals Algorithmus: Gegeben ist ein zusammenhängender, gewichteter Graph G. 1. Finde eine Kante mit minimalem Gewicht und markiere sie. 2. Wähle aus den unmarkierten Kanten, die keinen Kreis mit einer der markierten Kanten bilden, eine Kante mit minimalem Gewicht und markiere diese. 3. Wenn die Menge der markierten Kanten einen aufspannenden Baum von G bildet, dann stoppe. Wenn nicht, dann wiederhole Schritt 2. 2. Ausspannende Bäume von Graphen 8 Wenn wir Kruskals Algorithmus auf den Graphen in Abbildung 7 anwenden, erhalten wir beispielsweise den folgenden minimal aufspannenden Baum, der in der Abbildung 8 markiert ist. Abbildung 8: Kruskals Algorithmus angewendet auf den Städte-Graphen aus Abbildung 7. 2.7 Satz: Kruskals Algorithmus produziert einen minimalen aufspannenden Baum von einem zusammenhängenden, gewichteten Graphen G. Beweis: Sei G ein zusammenhängender, gewichteter Graph mit n Knoten und sei T ein aufspannender Baum, der durch die Anwendung von Kruskals Algorithmus entstanden ist. Kruskals Algorithmus bildet einen aufspannenden Baum, indem nacheinander immer eine Kante hinzugefügt wird. Angenommen die Kanten, die T (in der folgenden Reihenfolge) hinzugefügt wurden, heißen e1 , e2 , ..., en−1 . Dann angenommen, dass T kein minimal aufspannender Baum von G ist. Unter allen minimal aufspannenden Bäumen wählen wir T 0 , welcher am längsten (das heißt für die meisten Anfangsschritte des Algorithmus) mit T übereinstimmt. Das bedeutet, dass ein k existiert, so dass T 0 e1 , ..., ek enthält und kein minimal aufspannender Baum alle e1 , ..., ek , ek+1 enthält. (Da T laut der Annahme nicht minimal ist, ist k < n − 1.) Da T 0 ein aufspannender Baum ist, muss T 0 + ek+1 einen Kreis K enthalten. Da T keine Kreise enthält, muss K eine Kante e0 enthalten, die nicht in T ist. Durch Entfernen der Kante e0 von T 0 + ek+1 wird der Kreis K unterbrochen und es bleibt ein aufspannender Baum von G. Deshalb ist T 0 + ek+1 − e0 ein aufspannender Baum von G und enthält die Kanten e1 , ..., ek , ek+1 . Da die Kante e0 verfügbar gewesen sein muss, als ek+1 vom Algorithmus ausgewählt wurde, muss w(ek+1 ) ≤ w(e0 ) gelten. Das heißt, dass T 0 + ek+1 − e0 ein aufspannender Baum ist, dessen Gewicht nicht mehr ist als das von T 0 , welcher die Kanten e1 , ..., ek+1 enthält, was der Annahme widerspricht. 3. Satz von Cayley In diesem Teil geht es um den Satz von Cayley. Dieser betrifft die Anzahl bezeichneter Bäume. Dafür betrachten wir die feste Knotenmenge {1, 2, ..., n}. Dann steht Tn für die Anzahl der bezeichneten Bäume auf dieser Menge. Für T1 , T2 , T3 , und T4 ergeben sich die folgenden Bäume. Abbildung 9: Bezeichnete Bäume auf 1, 2, 3 und 4 Knoten. Bei vier Knoten existieren vier nicht isomorphe Baumtypen, mit jeweils vier Möglichkeiten, die Knoten anzuordnen, also ist T4 = 16. Allgemein gilt der folgende Satz. 3.1 Satz von Cayley: Es gibt nn−2 bezeichnete Bäume auf n Ecken. Beweis: Der Satz wurde auf verschiedene Weisen bewiesen. In dem folgenden Beweis wird für die Lösung des Problems eine Rekursion gefunden und aus dieser dann die explizite Formel durch Induktion abgeleitet. Um die richtige Rekursion zu finden, betrachten wir ein etwas allgemeineres Problem. Sei A eine beliebige k-elementige Knotenmenge. Tn,k steht für die Anzahl der bezeichneten Wälder auf der Knotenmenge {1, ..., n}, die in A verwurzelt sind. Das heißt, die Wälder bestehen aus k Bäumen und jeder Baum muss genau einen Knoten aus A enthalten. Dabei ist die Menge A für die die Anzahl Tn,k nicht wichtig, sondern nur ihre Größe k. Als Beispiel betrachten wir T4,2 = 8 für A = {1, 2}. Abbildung 10: Beispiel: T4 , 2 = 8 für A = {1, 2} 3. Satz von Cayley 10 Sei also ein Wald F gegeben, der in A = {1, ..., k} verwurzelt ist. Dann gibt es Tn,k solche Bäume. Angenommen, der Knoten 1 hat genau i Nachbarn. Abbildung 11: Angedeutet: Wald F , der in {1, .., k} verwurzelt ist. Durch das Entfernen des Knotens 1 entsteht F 0 auf {2, ..., n}, der in {2, ..., n} ∪{die Nachbarn von 1} verwurzelt ist. Denn durch das Entfernen von Knoten 1 werden die i Nachbarn der Menge A hinzugefügt und damit ändert sich die Größe der Menge A von k zu k − 1 + i. Es gibt Tn−1,k−1+i solche Wälder. Umgekehrt können wir den Wald F konstruieren, indem wir erst i festlegen (0 ≤ i ≤ n − k) Dann wählen wir die i Nachbarn von Knoten 1 in {k + 1, ..., n} aus. Dafür gibt es n−k Möglichkeiten. Dann wird der Wald F 0 bestimmt. i Damit wurde gezeigt, dass für 1 ≤ k ≤ n die Rekursion Tn,k = n−k X i=0 ! n−k Tn−1,k−1+i i (1) erfüllt ist, wenn T0,0 := 1 und Tn,0 := 0 für n > 0 gesetzt werden, um Tn,n = 1 sicherzustellen. Proposition: Es gilt Tn,k = knn−k−1 , (2) und insbesondere Tn,1 = Tn = nn−2 . Beweis: Wir beweisen die Proposition mittels Induktion, unter Verwendung von (1) und des Binomischen Lehrsatzes. Induktionsanfang: n = 1: T1,0 = 0 T1,1 = 1 = 1 ∗ 1−1 Induktionsvoraussetzung: (2) gilt für n − 1. 3. Satz von Cayley 11 Induktionsschritt: Tn,k = = = n−k X i=0 n−k X i=0 0 X i=n−k = = n−k X i=0 n−k X i=0 ! n−k Tn−1,k−1+i i ! n−k (k − 1 + i)(n − 1)n−1−k−i i ! n−k (n − 1 − i)(n − 1)i−1 |i → n − k − i n−k−i n−k X n−k n−k (n − 1)i − i(n − 1)i−1 i i i=0 ! ! n−k X n−k (n − k)! (n − 1)1n−k−1 − i(n − 1)i−1 i i!(n − k − i)! i=1 ! = (n − 1 + 1)n−k − (n − k) n−k X i=1 =n n−k =n n−k =n n−k − (n − k) − (n − k) n−k X ! n−k−1 (n − 1)i−1 i−1 i=1 n−k−1 X i=0 (n − k − 1)! (n − 1)i−1 (i − 1)!(n − k − i)! ! n−k−1 (n − 1)i 1n−k−1−i |i → i + 1 i − (n − k)(n − 1 + 1)n−k−1 = knn−k−1 Literatur [1] Martin Aigner and Günter M. Ziegler. Proofs from The Book. Springer-Verlag, Berlin, fourth edition, 2010. [2] Béla Bollobás. Graph theory, volume 63 of Graduate Texts in Mathematics. Springer-Verlag, New York, 1979. An introductory course. [3] John M. Harris, Jeffry L. Hirst, and Michael J. Mossinghoff. Combinatorics and graph theory. Undergraduate Texts in Mathematics. Springer, New York, second edition, 2008.