5. Gerichtete Graphen und Pfade Definition 5.1. Ein gerichteter Graph G ist gegeben durch G = (V, E, Φ) mit einer Knotenmenge V , einer Kantenmenge E und einer Abbildung Φ : E → V × V . Obwohl die Definition eines gerichteten Graphen auch für unendliche Knotenund Kantenmengen Sinn macht, werden wir im folgenden nur endliche gerichtete Graphen betrachten, d.h. gerichtete Graphen mit endlichen Knoten- und Kantenmengen. Für einen gerichteten Graphen G = (V, E, Φ) bezeichnet source : E → V die Komposition von Φ mit der Projektion auf die erste Komponente. Für e ∈ E nennen wir source(e) die Quelle der Kante e. Analog bezeichnet sink : E → V die Komposition von Φ mit der Projektion auf die zweite Komponente. Für e ∈ E nennen wir sink(e) die Senke der Kante e. Für eine Kante e ∈ E mit Φ(e) = (u, v) gilt also source(e) = u und sink(e) = v. Oft sind die Kanten eines Graphen schon durch source und sink festgelegt. Also es gilt: Φ(e) = Φ(e0 ) impliziert schon e = e0 . Dann können wir eine Kante e also mit Φ(e) identifizieren. Für solche Graphen schreiben wir G = (V, E), wobei E dann eine Teilmenge von V × V ist. Definition 5.2. Ein Pfad von v ∈ V nach w ∈ V in einem gerichteten Graphen G = (V, E, Φ) ist eine Folge p = (e1 , e2 , . . . , en ) von Kanten ei ∈ E, 1 ≤ i ≤ n, mit source(e1 ) = v, sink(ei ) = source(ei+1 ) für 1 ≤ i ≤ n − 1 und sink(en ) = w. Wir nennen n die Länge des Pfades p. Definition 5.3. Eine Gewichtung W für einen gerichteten Graphen G = (V, E, Φ) ist eine Abbildung W : E → R von der Kantenmenge in einen Ring R. Für einen Pfad p = (e1 , . . . , en ) bezeichnet W(p) = W(e1 ) · · · W(en ) das Gewicht des Pfades W. Der leere Pfad erhält das Gewicht 1. Im folgenden werden wir vor allem Gewichtungen in den komplexen Zahlen R = C und im nichtkommutativen Polynomring R = ChΣi über einem Alphabet Σ betrachten. Letzteren füren wir im folgenden ein. Definition 5.4. Sei Σ ein Alphabet. Auf der Menge ( ) X aw ∈ C ChΣi := aw w | . aw = 0/; für fast alle w ∈ Σ∗ ∗ w∈Σ definieren wir eine Addition durch: ( X aw w) + ( w∈Σ∗ ( X w∈Σ∗ X bw w) := w∈Σ∗ aw w) · ( X X (aw + bw )w. w∈Σ∗ bw w) := w∈Σ∗ X ( X au bv )w. w∈Σ∗ uv=w Lemma 5.5. Die Menge ChΣi zusammen mit der in Definition 5.4 beschriebenen Addition und Multiplikation bildet einen Ring mit 1. Für #Σ ≥ 2 ist der Ring nicht kommutativ. Beispiel 5.6. Ein endlicher Automat A ist ein Tupel A = (G, W, S, T ). Dabei ist G ein gewichteter gerichteter Graph G = (V, E, Φ) mit einer Gewichtung W : E → ChΣi in den Ring ChΣi, so daß W(e) ∈ Σ. Der Knoten S ∈ V heißt Startknoten und die Teilmenge T ⊆ V heißt Menge der terminalen Knoten oder Endknoten. 1 2 Ein Pfad p von S in einen Endzustand t ∈ T entspricht einem Wort w = W(p). Die Menge aller Worte W(p) für Pfade p von S zu einem Endknoten t ∈ T heißt die von A akzeptierte Sprache und wird mit L(A) bezeichnet. Definition 5.7. Sei G = (V, E, Φ) ein gerichter Graph mit Gewichtung W. Für v, w ∈ V P bezeichnet Pv,w (n) die Menge der Pfade der Länge n von v nach w und avw = e∈E,Φ(e)=(v,w) W(e) die Summe der Gewichte der Kanten von v nach w. Wir nehmen an, daß #V = m und definieren eine m × m Matrix A = (avw )v,w∈V . Die Matrix A heißt die (gewichtete) Adjazens-Matrix von G. Ist G = (V, E, Φ) nicht gewichtet, so definieren wir die Adjazens-Matrix von G analog, indem wir das natürliche Gewicht W : E → C mit W(e) = 1, e ∈ E, betrachten. Satz 5.8. Sei A die Adjazens-Matrix des gewichteten gerichteten Graphen G = (n) (V, E, Φ). Sei avw = W(Pvw (n)). Dann gilt An = (a(n) vw )v,w∈V . Proof. Wir beweisen die Aussage per Induktion nach n. Gilt n = 0, so haben wir Pvw (n) = ∅, falls v 6= w und Pvw (n) = {leerer P f ad}, falls v = w. Damit gilt W(Pvw (n)) = 0, falls v 6= w und W(Pvw (n)) = 1, falls (n) v = w. Somit ist (avw )v,w∈V die (m × m)-Einheitsmatrix und stimmt damit mit n 0 A = A überein (für jede quadratische Matrix ist die 0-te Potenz die entsprechende Einheitsmatrix). Gilt n = 1, folgt die Behauptung aus der Definition der Adjazens-Matrix. Sei nun n ≥ 1 und die Aussage bis n bewiesen. Betrachten wir den Eintrag X a(n+1) = W(p). v,w p∈Pvw (n+1) Es gilt Pvw (n + 1) = [ Pvw0 (n) × Pw0 w (1). w0 ∈V Damit folgt X a(n+1) = vw (n) avw0 a(1) vw , w0 ∈V wobei wir benutzen, daß für einen Pfad p = (e1 , . . . , en+1 ) der Länge n + 1 gilt W(p) = W((e1 , . . . , en ))W(en+1 ). Dies ist aber die Definition des Matrixprodukts: (1) (avw0 (n))v,w0 ∈V · (aw0 w )w0 ,w∈V . Nach Induktionsvoraussetzung gilt nun (1) (avw0 (n))v,w0 ∈V = An , (aw0 w )w0 ,w∈V = A1 . Damit folgt die Behauptung. Definition 5.9. Sei G = (V, E, Φ) ein gerichteter Graph mit Gewichtung W 0 (e) = 1 für alle e ∈ E und Adjazens-Matrix A. Dann setzen wir F (x) := (fvw (x))v,w∈V P (n) (n) mit fvw (x) := n≥0 avw xn , wobei An = (avw )v,w∈V . Beispiel 5.10. Sei A = (G, W, S, T ) ein endlicher Automat. Für t ∈ T sei PS,t (n) die Menge der Pfade der Länge n von S nach t. Dann ist X X W(PS,t (n)) = W(p) t∈T t∈T,/;p∈PS,t (n) 3 die Summe der Wörter der Länge n, die in L(A) liegen, wobei der Koeffizient eines Wortes w die Anzahl der akzeptierenden Pfade zählt. Ist A ein eindeutiger Automat – d.h. zu jedem Wort w ∈ L(A) gibt es genau einen akzeptierenden Pfad – so sind alle Koeffizienten gleich 1. Dann wiederum aber erhält man die Anzahl der Pfade dadurch, daß man die Buchtaben durch 1 substituiert. Dieser Prozess entspricht aber dem Übergang von der Gewichtung W zu der Gewichtung W 0 mit W 0 (e) = 1 für alle e ∈ E. In diesem Fall ist dann für t ∈ T die erzeugende P (n) Funktion fSt (x) = n≥0 aSt xn die erzeugende Funktion der Folge der Anzahlen (n) aSt der Worte der Länge n, die auf einem Pfad von S nach t gelesen werden. Es ergibt sich daher für an = #{w ∈ L(A) | |w| = n}, daß X X fL(Σ) (x) := an xn = fSt (x). n≥0 t∈T Die erzeugende Funktion fL(Σ) (x) heißt auch wortzählende Funktion von L(A). Wir benutzen nun ein Lemma aus der linearen Algebra. Lemma 5.11 (Adjunkte Matrix). Sei B eine invertierbare Matrix. Dann gilt: B −1 = 1/ det(B)((−1)i+j det(B (j,i) ). Wobei B (j,i) die Matrix ist, die aus B durch Streichen der j-ten Zeile und i-ten Spalte entsteht. Definition 5.12. Für eine quadratische Matrix B heißt die Matrix ((−1)i+j det(B (j,i) )) die zu B adjunkte Matrix. Satz 5.13 (Transfer-Matrix-Methode). Sei G = (V, E, Φ) ein gerichteter Graph und W 0 : E → C die Gewichtung. Sei m = #V , Em die m × m Einheitsmatrix. Seien v, w ∈ V , so daß in einer festen linearen Ordnung auf V , v das i-te und w das j-te Element von V ist. fvw (x) = (−1)i+j det((Em − xA)(j,i) )/ det(Em − xA). P P Proof. Es gilt (Em −xA) n≥0 An xn = I. Also n≥0 An tn = (Em −Ax)−1 . Damit folgt die Behauptung aus der Darstellung der Inversen mit Hilfe der adjunkten Matrix. Beispiel 5.14. Sei L die Menge aller Wörter über dem Alphabet Σ = {a, b}, die kein bb enthalten. Der folgende eindeutige endliche Automat mit Startzustand S = q0 und Endzuständen T = {q0 , q1 } erkennt genau diese Sprache: q0 q1 ab Wir gewichten den Graphen nun durch W 0 (e) = 1 – alternativ können wir erst die Gewichtung W(e) ∈ {a, b} betrachten und dann die Buchstaben durch 1 substituieren. Die Matrix des Graphen ist gegeben durch 1 1 A= . 1 0 4 Dabei entsprechen die erste Zeile und Spalte dem Knoten zweite Zeile P Pq0 und die n w∈L x , daß fL (x) = und Spalte dem Knoten q1 . Dann gilt für fL (x) = n≥0 |w|=n fq0 q0 (x) + fq0 q1 (x). Da det(E2 − Ax) = (1 − x) − x2 , ergibt sich also mit der Transfer-Matrix Methode fq0 q0 (x) = (−1)1+1 det((E2 − Ax)(1,1) )/ det(E2 − Ax) = 1/(1 − x − x2 ). fq0 q1 (x) = (−1)1+2 det((E2 − Ax)(2,1) )/ det(E2 − Ax) = (−1) · (−x)/(1 − x − x2 ). Also gilt 1+x . fL (x) = fq0 q0 (x) + fq0 q1 (x) = 1 − x − x2 Korollar 5.15. Sei L eine Sprache, für die es einen eindeutigen endlichen Automaten A gibt mit L(A) = L (d.h. L ist eine reguläre Sprache). Dann ist fL (x) eine rationale Funktion in x. Proof. Der zu einem deterministischen Automaten konstruierte Graph hat für jedes akzeptierte Wort genau einen Pfad vom Startzustand zu einem Endzustand. Gewichten wir also alle Kanten mit 1 und summieren die fSt (x) für den Startzustand S und alle Endzustände t, so erhalten wir die erzeugende Funktion der L = L(A). Da alle fSt (x) nach Satz 5.13 rational sind, ist auch fL (x) rational. Die Umkehrung dieses Korollars ist falsch. Die Sprache L = {an bn | n ≥ 0} hat erzeugende Funktion fL (x) = 1/(1 − x) ist aber nicht regulär – letzteres kann mit dem Punping-Lemma aus der theoretischen Informatik bewiesen werden. Betrachten wir nun eine weitere Beispielanwendung für die Transfer-Matrix-Methode. Beispiel 5.16. Sei Σ = {a1 , . . . , ak } ein Alphabet mit k Buchstaben. Sei Lk = {w = w1 · · · wn ∈ Σ∗ | wi 6= wi+1 , 1 ≤ i ≤ n−1 } und sei bn die Anzahl der Wörter der Länge n in Lk . Dann ist bn = k(k − 1)n−1 . Man sieht dies elementar oder durch die Transfer-Matrix-Methode. Sei V = {S, t1 , . . . , tk } eine Knotenmenge. Es sei S der Startknoten und jeder Knoten in V sei Endknoten, also T = V . Wir habe Kanten von S nach ti mit Gewicht ai , 1 ≤ i ≤ k, und von ti nach tj , 1 ≤ i < j ≤ k, mit Gewicht aj . Es gilt Lk = L(A) für den so definierten endlichen Automaten A. Zudem ist A eindeutig. Substituieren wir alle Gewichte durch 1, so erhalten wir einen gewichteten gerichteten Graphen, so daß wir, wenn wir Zeilen Pk und Spalten mit 1, . . . , k + 1 indizieren, erhalten: fLk (x) = fSS (x) + i=1 fSti (x). Die Adjazens-Matrix ergibt sich also als 0 1 1 1 ··· 1 1 0 · · ··· · · · · · · ··· · · · · · · A= · · · ··· . · · · ··· · · · 0 1 1 ··· 1 0 1 0 1 1 ··· 1 1 0 Man zeigt nun det(Ek+1 − Ax) = (1 − (k − 1)x)(1 + x)k−1 . Daraus folgt sofort det((Ek+1 − Ax)(1,1) ) = (1 − (k − 1)x)(1 + x)k−1 . Für 2 ≤ j ≤ n gilt det((Ek+1 I − Ax)(j,1) ) = 0. Für 2 ≤ i ≤ n zeigt man det((Ek+1 − Ax)(1,i) ) = (−1)i+1 x(x + 1)k−1 . Damit ist fSS (x) = 1 und für i ≥ 1 fSti (x) = (−1)i · (−1)i x(x + 1)k−1 /((1 − (k − 1)x)(1 + x)k−1 = 5 = t/(1 − (k − 1)x) = X (k − 1)n−1 xn . n≥1 Wiederum ergibt sich bn = k(k − 1)n−1 , n ≥ 1 und b0 = 1. Betrachten wir nun die Sprache L0k = {w = w1 · · · wn ∈ Lk | w1 6= wn }. Wir können hier den gleichen Graphen betrachten. Da wir nun aber noch die Einschränkung w1 6= wn haben, sind zu zählende Pfade nur solche, die entweder leer sind oder mit einer Kante (S, ti ) starten und dann in tj für ein j 6= i enden. Sei b0n die Anzahl der Worte der Länge n in L0k . Dann ergibt sich b00 = 1, b01 = k und b0n für n ≥ 2 als Summe der Anzahlen der Pfade der Länge n − 1 von ti nach tj für 1 ≤ i 6= j ≤ k. Wir erhalten also X fL0k (x) = 1 + kx + x fti tj (x). 1≤i6=j≤k Für fti tj (x), 1 ≤ i 6= j ≤ k, erhalten wir x/(1 − (k − 1)x). Also X fL0k (x) = 1 + kx + kx2 /(1 − (k − 1)x) = 1 + kx + k(k − 1)n−2 xn . n≥2 Definition 5.17. Ein Graph G = (V, E, Φ) heißt stark zusammenhängend, falls für alle v, w ∈ V ein Pfad von v nach w existiert. Für V 0 ⊆ V definieren wir den Graph G|V 0 = (V 0 , E 0 , Φ0 ) durch E 0 = {e ∈ E | Φ(e) ∈ V 0 × V 0 } und Φ0 ist die Einschränkung von Φ auf E 0 . Ein Graph G|V 0 = (V 0 , E 0 , Φ0 ) heißt starke Zusammenhangskomponente von G, falls G|V 0 stark zusammenhängend ist und für jedes v ∈ V \ V 0 ein w ∈ V 0 existiert, so daß es entweder keinen Weg von v nach w oder keinen Pfad von w nach v gibt. Satz 5.18. Sei G = (V, E, Φ) ein gerichteter Graph und G|V1 = (V1 , E1 , Φ1 ), . . . , G|Vr = (Vr , Er , Φr ) die starken Zusammenhangskomponenten von G. Dann ist V1 | · · · |Vr eine S Mengenpartition von V , d.h. Vi 6= ∅, 1 ≤ i ≤ r, Vi ∩ Vj = ∅, n 1 ≤ i < j ≤ r und i=1 Vi = V . Proof. Klareweise liegt jeder Knoten in einer starken Zusammenhangskomponente. Daher ist nur Vi ∩ Vj = ∅ für 1 ≤ i < j ≤ r zu zeigen. Nehmen wir an für ein Paar (i, j) mit 1 ≤ i < j ≤ r sei Vi ∩ Vj 6= ∅. Sei v 0 ∈ V1 ∩ Vj ein Knoten. Da Vi 6= Vj gibt es entwerder ein v ∈ Vi \ Vj oder ein v ∈ Vj \ Vi . Wegen der Maximalität von starken Zusammenhangskomponenten gilt Vi 6⊆ Vj und Vj 6⊆ Vi . Ohne Einschränkung sei v ∈ Vi \ Vj . Dann gibt es wegen v 6∈ Vj ein w ∈ Vj , so daß es entweder in G keinen Pfad von w nach v oder von v nach w gibt. Da Vj eine starke Zusammenhangskomponente ist und v 0 , w ∈ Vj gibt es ein P einen Pfad p1 von w nach v 0 und einen Pfad p2 von v 0 nach w. Da v, v 0 ∈ Vi giobt es in G einen Pfad q1 von v 0 nach v und einen Pfad q2 von v nach v 0 . Dann ist aber p1 q1 ein Pfad von w nach v und q2 p2 ein Pfad von v nach w. Dies ist aber ein Widerspruch und daher ist die Annahme falsch. Also folgt Vi ∩ Vj = ∅. Definition 5.19. Sei G = (V, E, Φ) ein gerichteter Graph. Eine Kreis oder Zykel in G ist ein Pfad p = (e1 , . . . , en ) mit source(e1 ) = sink(en ) und source(ei ) 6= source(ej ) für 1 ≤ i < j ≤ n. Definition 5.20. Sei G = (V, E, Φ) ein gerichteter Graph. Dann heißt G ein Baum mit Wurzel v ∈ V , falls es für jedes w ∈ V genau einen Pfad in G von v nach w gibt. 6 Lemma 5.21. Sei G = (V, E, Φ) ein Baum mit Wurzel v. Dann impliziert Φ(e) = Φ(e0 ) schon e = e0 . Proof. Seien e, e0 ∈ E mit Φ(e) = Φ(e0 ) = (u, w). Sei p der eindeutige Pfad von in G von v nach u. Dann sind sowohl pe als auch pe0 Pfade von v nach w. Wegen der Eindeutigkeit des Pfades von v nach w folgt e = e0 . Aufgrund von Lemma 5.21 kann ein Baum G = (V, E, Φ) nach Identifikation von e und Φ(e) auch als G = (V, E) mit E ⊆ V × V geschrieben werden. Wir werden im folgenden diese Konvention auf Bäume anwenden. Lemma 5.22. Sei G = (V, E) ein Baum mit Wurzel v, dann gilt für w ∈ V schon (w, w) 6∈ E. Proof. In G gibt es einen eindeutgen Pfad p von v nach w. Falls e = (w, w) ∈ E, dann ist mit p auch pe ein Pfad von v nach w. Dies wäre eine Widerspruch zur Eindeutigkeit von p. Daher folgt (w, w) 6∈ E. Lemma 5.23. Sei G = (V, E) ein Baum mit Wurzel v. Ist G = (V, E) auch ein Baum mit Wurzel w, so gilt v = w. Proof. Da v und w wurzeln sind gibt es in G einen eindutigen Pfad p von v nach w und einen eindeutigen Pfad q von w nach v. Dann ist aber pqp ebenfalls ein Pfad von v nach w. Also gilt pqp = p. Dies kann aber nur sein, wenn p = q der leere Pfad ist. Dann ist aber w = v. Definition 5.24. Sei G = (V, E, Φ) ein gerichteter Graph. Für einen Knoten v ∈ V definieren wir outdeg(w) = #{e ∈ E | source(e) = v} und indeg(v) = #{e ∈ E | sink(e) = v}. Ist G = (V, E) ein Baum, dann heißt ein Knoten v mit outdeg(v) = 0 ein Blatt von G. Mit deg(v) = indeg(v) + outdeg(v) bezeichnen wir den Grad von v. Lemma 5.25. Sei G = (V, E) ein Baum mit Wurzel v. Dann gilt: (i) indeg(w) ≤ 1 für w ∈ V . (ii) indeg(w) = 0 genau dann wenn w = v die Wurzel von G ist. (iii) Es gibt mindestens ein Blatt in G. (i) Nehmen wir an es gibt einen Knoten w mit indeg(w) ≥ 2. Seinen ale e1 , e2 zwei verschiedenen Kanten mit sink(e1 ) = sink(e2 ) = w. Seien v1 = source(e1 ) und v2 = source(e2 ). Nach Definition gibt es einen eindeutigen Weg p1 von der Wurzel v nach v1 und einen eindeutigen Weg p2 von der Wurzel v nach v2 . Dann sind aber wegen e1 6= e2 die Wege p1 e1 und p2 e2 zwei verschiedene Wege von v nach w. Diese ist ein Widerspruch zur Definition des gerichteten Baums und daher ist die Annahme falsch. Die Behauptung folgt. (ii) Sei w ein Knoten von G mit indeg(w) = 0. Nach Definition gibt es genau einen gerichteten Pfad p von der Wurzel v nach w. Da wegen indeg(w) = 0 keine Kante mit sink(w) existiert muß p der leere Pfad sein. Es folgt dann v = w. Wir müssen jetzt noch zeigen, daß indeg(v) = 0 für die Wurzel v. Annahme es gibt eine Kante e mit sink(e) = v. Sei u = source(e), Nach Definition gibt es einen eindeutigen Pfad p von v nach u. Dann ist aber auch pe ein Pfad von v nach v. Damit sind pe und der leere Pfad, Pfade von Proof. 7 v nach v. Dies ist ein Widerspruch zur Definition des gerichteten Baums. Also ist die Annahme folsh und es folgt indeg(v) = 0. (iii) Sei p = (e1 , . . . , er ) ein Pfad maximale Länge in G und w = sink(er ). Wir zeigen, daß w ein Blatt von G ist. Gilt outdeg(w) ≥ 1, so gibt es eine Kante e mit source(e) = w. Dann ist aber p = (e1 , . . . , er , e) ein Pfad der Länge r + 1 in G. Ein Widerspruch zur Maximalität von p. Damit ist die Annahme falsch und die Behauptung folgt. Lemma 5.26. Sei G = (V, E) ein Baum mit Wurzel v. Dann gilt #E = #V − 1. Proof. Nach Lemma 5.25 (iii) gibt es einen Knoten w mit outdeg(w) = 0. Wegen Lemma 5.25 (i), (ii) folgt dann entweder v = w oder indeg(w) = 1. Ist v = w, so gilt V = {v} und E = ∅ und die Behauptung folgt. Sei nun indeg(w) = 1. Entfernen wir aus G den Knoten w und die einzige Kante mit Senke w, so erhalten wir einen Graphen G0 = (V 0 , E 0 ). Da w ein Blatt von G ist, liegt w nur auf dem Pfad von v nach w. Daher ist G0 wieder ein gerichteter Baum mit Wurzel v. Nach Induktion über #V folgt #E − 1 = #E 0 = #V 0 − 1 = #(V \ {w}) − 1 = #V − 2. . Damit folgt #V − 1 = #E. Lemma 5.27. Sei G = (V, E) ein gerichteter Baum mit Wurzel v. Dann gilt X deg(v) = 2#V − 2. v∈V Proof. Nach Lemma 5.26 gibt es in einem gerichteten Baum #V − 1 Kanten. Jede dieser Kanten e erhöht den Grad von source(e) und sink(e) um jeweils 1. D.h. jede Kante trägt 2 zur Gradsumme bei. Daher gilt alse: X deg(v) = 2#E = 2#V − 2. v∈V Lemma 5.28. Pn Sei n ≥ 2 und V = {v1 , . . . , vn }. Seien di ≥ 1, 1 ≤ i ≤ n, natürliche Zahlen mit i=1 di = 2n − 2. Dann gibt es genau n(n − 2)! (d1 − 1)! · · · (dn − 1)! gerichtete Bäume G = (V, E) mit deg(vi ) = d1 . Proof. Für 1 ≤ j ≤ n sei Tj die Menge der Bäume G = (V, E) mit Wurzel vj und deg(v` ) = d` , 1 ≤ ` ≤ n. Behauptung 1: #T1 = · · · = #Tn . / Wir definieren eine Abbildung φij von Ti nach Tj für 1 ≤ i < j ≤ n. Ist G = (V, E) ∈ Ti dann gibt es in G genau einen Pfad P = (e1 , . . . , er ) von der Wurzel vi nach vj . Für e = (u, v) ∈ V × V setzen wir e = (v, u). Man zeigt nun, daß der Graph G0 = (V ; E 0 ) mit E 0 = E \ {e1 , . . . , er } ∪ {e1 , . . . , er } ein Baum mit Wurzel vj ist. Da in G0 = φij (G) der eindeutige Pfad von vj nach vi der Pfad p = (e1 , . . . , pr ) ist, folgt sofort φji ◦ φij = idVi . Damit ist phiij eine Bijektion und die Behauptung folgt. . Die Aussage des Satzes ist damit bewiesen, wenn wir folgende Behauptung zeigen können: 8 Behauptung 2: #T1 = (n − 2)! (d1 − 1)! · · · (dn − 1)! / Wir beweisen die Aussage per Induktion nach n. Induktionsanfang: Ist n = 2, so ist d1 = d2 = 1 die einzig mögliche Gradfolge und in T1 liegt genau ein Baum. Da 1 = (n − 2)!/((d1 − 1)!(d2 − 1)!) folgt die Behauptung. Induktionsschluß: Sei nun n ≥ 3. Betrachten wir den Knoten vn in einem G ∈ T1 . Da vn nicht die Wurzel ist folgt nach Lemma 5.25 (i) und (ii), daß vn Senke genau einer Kante in G ist. Sei vj die Quelle dieser Kante. Sei T1 (j) die Menge der Bäume in T1 , in denen eine Kante mit Quelle vj und Senke vn existiert. Wir betrachten folgende Operation of T1 (j). Zu einem G ∈ T1 (j) definieren wir ein G00 = (V 00 , E 00 ) folgendermaßen. V 00 = V \ {vn } und E 00 = E \ {e ∈ E | vn ∈ {sink(e), source(e)} ∪ {(vj , v` )|(vn , v` ) ∈ E}. Dann ist G00 ein Baum auf V 0 mit Wurzel v1 und Gradfolge d00i = di falls 1 ≤ i ≤ n−1, i 6= j und d00j = dj +dn −2. D.h. wir erhalten einen gerichteten Baum auf n−1 Knoten mit Wurzel v1 mit dieser Gradfolge. Man kann leicht sehen, daß jeder dieser gerichteten Bäume aus einem G ∈ T1 (j) entsteht. Nach Induktionsvoraussetzung gibt es davon (n − 3)! (d1 − 1)! · · · (dj + dn − 3)! · · · (dn−1 − 1)! viele. Betrachten wir nun zwei Fälle: Fall 1: j = 1. Dann ist vj = v1 die Wurzel von G. Dann haben in G00 alle n −2 d1 + dn − 2 an v1 angrenzende Kanten Quelle v1 . Es gibt dann d1d+d viele n −1 Möglichkeiten aus diesen Kanten dn − 1 Kanten auszuwählen, so daß diese die beim Übergang von G nach G00 aus (dn −1) Kanten mit Quelle vn entstanden sind. Damit folgt nach Induktionsvoraussetzung: #T1 (1) = d1 + dn − 2 (n − 3)! (d1 + dn − 3)!(d2 − 1)! · · · (dn−1 − 1)! dn − 1 n −3 Fall 2: j > 1 und vj is tnicht die Wurzel von G. Dann gibt es djd+d viele n −1 Möglichkeiten wie G00 aus eine G entstanden sein kann. Damit folgt T1 (j) = dj + dn − 3 (n − 3)! (d1 − 1)! · · · (dj + dn − 3)! · · · (dn−1 − 1)! dn − 1 9 Betrachten wir nun die Summe #T1 = #T1 (1) + · · · + #T1 (j), so folgt: d1 + dn − 2 (n − 3)! #T1 = + dn − 1 (d1 − 1)! · · · (dj + dn − 3)! · · · (dn−1 − 1)! n−1 X dj + dn − 3 (n − 3)! (d − 1)! · · · (d + dn − 3)! · · · (dn−1 − 1)! d − 1 1 j n j=2 = n−1 X (n − 2)! ((d1 + dn − 2) + (dj − 1))/(n − 2) (d1 − 1)! · · · (dn − 1)! j=2 = n X (n − 2)! ( dj − 2 − (n − 2))/(n − 2) (d1 − 1)! · · · (dn − 1)! j=1 = = (n − 2)! (2n − 2 − n)/(n − 2) (d1 − 1)! · · · (dn − 1)! (n − 2)(n − 2)! (d1 − 1)! · · · (dn − 1)! Satz 5.29. Sei V eine Menge mit n Elementen. Dann gilt : n o # (G, v) | G = (V, E) ist Baum mit Wurzel v = nn−1 . Proof. Sei V = {v1 , . . . , vn }. Für jede Folge di , 1 ≤ i ≤ n, von Zahlen di ≥ 1 mit Pn i=1 di = 2n − 2 gibt es nach Lemma 5.28 genau: n(n − 2)! (d1 − 1)! · · · (dn − 1)! gerichtete Bäume mit deg(vi ) = di für 1 ≤ i ≤Pn. Setzen wir nun d0i := di − 1 so n erhalten wir eine Folge von Zahlen d0i ≥ 0 mit i=1 d0i = n − 2. D.h. wir erhalten eine schwache Komposition von n − 2 mit n Teilen. Es gilt : n−2 n(n − 2)! =n 0 . (d1 − 1)! · · · (dn − 1)! d1 · · · d0n Der Multinomialkoeffizient d0n−2 zählt nach Kapitel 2 die Anzahl der Wöter 0 1 ···dn der Länge n − 2 über einem Alphabet mit n Buchtaben a1 , . . . , an in denen ai genau d0i mal vorkommt. Summieren wir nun den Multinomialkoeffizienten über alle schwachen Kompositionen von n − 2 auf, so erhalten wir dei Anzahl der Wörter der Länge n über a1 , . . . , an . Das sind aber genau nn−2 . D.h. wenn wir die Anzahl der gerichteten Bäume mit Gradfolge d1 , . . . , dn über alle Gradfolgen aufsummieren erhalten wir nnn−2 = nn−1 .