Institut für Informatik Lehrstuhl für Informatik 15 Computer Graphik & Visualisierung Diskrete Strukturen I Wintersemester 2006/2007 Übungsblatt 9 Seite 1 von 3 Prof. R. Westermann, J. Schneider, J. Georgii, S. Pott TU München, 18.12.2006 Lösungen zu Diskrete Strukturen I (Blatt 9) Aufgabe 38 [7 Punkte] Graphfärbung Wir stellen zunächst fest, dass wir mindestens k Farben für eine Kantenfärbung benötigen, da der Graph k-regulär ist (also jeder Knoten Grad k hat). Das k Farben reichen, ist im Allgemeinen noch nicht klar, wie das Beispiel eines Dreiecks zeigt. Jeder Knoten hat Grad 2, aber man braucht 3 Farben für einen Kantenfärbung. Zusätzlich ist in der Aufgabe gegeben, dass der Graph bipartit ist (V = V1 ⊎ V2 ). Also haben wir k · |V1 | Kanten, die aus der Knotenmenge V1 ausgehen und entsprechend k · |V2 | Kanten, die aus der Knotenmenge V2 ausgehen. Damit muss |V1 | = |V2 | gelten. Wir zeigen nun mit Induktion über k, dass man jeden k-regulären bipartiten Graphen mit k Farben (Kanten-) färben kann. Induktionsanfang: Für k = 1 ist die Behauptung leicht einzusehen, denn jede Kante kann die gleich Farbe bekommen, da keine zwei Kanten denselben Knoten inzident haben können. Induktionsschritt k → k + 1: Wir nehmen an, dass die Behauptung für k gilt (Induktionsannahme). Betrachten wir den (k + 1)regulären bipartiten Graphen. Jede Knotenteilmenge X ⊆ V1 hat (k + 1)|X | ausgehende Kanten. Damit muss die Menge der Nachbarknoten von X, bezeichnet als Γ( X ) mindestens Kardinalität |X | haben (folgt aus der (k + 1)-Regularität: Gäbe es weniger Knoten, dann folgert man mit Schubfachprinzip, dass mind. ein Knoten Grad (k + 2) haben muss!). Damit ist die Bedingung des ”Heiratssatzes” (Satz von Hall) gegeben, und wir wissen, dass der Graph ein perfektes Matching hat. Alle Kanten des Matching können die gleiche Farbe k + 1 erhalten (Definiton eines Matchings). Da |V1 | = |V2 |, überdeckt das Matching außerdem alle Knoten. Entfernen wir daher alle Matchingkanten, reduziert sich der Grad jedes Knotens um 1, und wir erhalten einen k-regulären Graphen, der nach Induktionsannahme k-färbbar ist. Da wir nur eine weitere Farbe zum Färben der Matchingkanten brauchen, ist der k + 1-reguläre Graph also mit k + 1 Farben kantenfärbbar. Seite 2 von 3 Aufgabe 39 [4 Punkte] Prüfercodes Folgende Bäume erhält man zu den gegebenen Prüfercodes durch Anwendung des Algorithmus auf Tutorblatt 8. a) b) Aufgabe 40 [4 Punkte] Stirling Formel =2 2n ·( ne ) 2n z }| { 2n √ 2n 4π n 1 + o(1) 1 + o(1) 2n 1 (2n)! 4n e √ √ · · ∈ = = · √ 2 2 2 n n (n!) (1 + o(1)) π n (1 + o(1))2 2π n ne Jede Funktion f (n) ∈ o(1) geht asymptotisch gegen Null für große n, denn ∀c > 0 ∃k ∀n > k : | f (n)| < c (c kann beliebig klein sein!). Damit gilt also für große n: 4n 2n 1 ≈√ ·√ n π n und damit also Aufgabe 41 [4 Punkte] 2n n ∈Θ 4n √ n Versorgungsproblem Wir stellen fest, dass sich das Problem durch einen bipartiten Graphen beschreiben lässt. Die eine Partition besteht aus den 3 Versorgerknoten, die andere aus allen n Wohnhäusern. Kanten verlaufen nur zwischen den beiden Partition, und zwar insgesamt 3n. Jeder Hausknoten hat Grad 3, jeder Versorgerknoten Grad n. Gefragt ist nun, für welche n dieser Graph planar ist. Für n = 1 und n = 2 lassen sich planare Graphen leicht konstruieren. Für n = 3 ist der Graph der K3,3 , der nicht planar ist (s. Vorlesung). Für alle größeren n enthält der Graph einen K3,3 als Teilgraph, und kann deshalb nicht planar sein (Satz von Kuratowski). Seite 3 von 3 Aufgabe 42 [2+4 Punkte] Bäume Wir wissen, dass der Prüfercode eine Bijektion aller Bäume mit n Knoten auf Zeichenketten der Länge n − 2 ist. Aus dem Konstruktionsalgorithmus auf Tutorblatt 8 wissen wir, dass jeder innere Knoten v deg(v) − 1 mal im Prüfercode vorkommt. a) Wenn der Grad jedes Knoten höchstens 2 sein soll, dann kann also jeder Knoten höchstens einmal im Prüfercode vorkommen, es gibt also nn −2 = n! 2 verschiedene markierte Bäume mit dieser Eigenschaft. b) Wenn der Grad jedes Knoten höchstens 3 sein soll, dann kann jeder Knoten höchstens zweimal im Prüfercode vorkommen. Wir unterscheiden nach der Anzahl i an Knoten, die zweimal vorkommen. Kommt nur ein Knoten doppelt vor, so wählen wir zunächst einen der n Knoten aus, bestimmen dann aus den n − 2 Stellen des Prüfercodes die beiden Plätze und verteilen auf die verbleibenden n − 4 Stellen die verbleibenden n − 1 Knoten (jeder Knoten kommt nur maximal einmal vor), also n−2 n· · (n − 1 )n −4 2 Möglichkeiten. Analog erhalten wir für den Fall, dass 2 Knoten zweimal vorkommen (Wir ziehen diese beiden Knoten ungeordnet) n n−2 n−4 · · (n − 2 )n −6 2 2 2 Allgemein gilt also für i zweifach auftretende Knoten i n n − 2j ·∏ · (n − i )n −2 (i+1 ) i 2 j=1 2 Da die Fälle alle disjunkt sind, können wir einfach summieren (es kann maximal ⌊ n− 2 ⌋ zweifach auftretende Knoten geben. 2 ⌊ n− 2 ⌋ ∑ i=0 n i i ·∏ j=1 n − 2j · (n − i )n −2 (i+1 ) 2