Graphentheoretische Zählungen

 Zur Illustration der Mächtigkeitsberechnung betrachten wir zwei exemplarische Fragen der Graphentheorie.

1. Zählen von Kantenzügen

Wir fragen:

Wie viele Kantenzüge der Länge m gibt es zwischen zwei Ecken eines Graphen?

Diese auf den ersten Blick schwierige Frage lässt sich überraschend einfach beantworten. Wir betrachten hierzu einen Graphen G = (E, K) mit E = { 1, …, n }. Für alle m ≥ 0 definieren wir eine (n × n)-Matrix Cm durch

Cm(i, j)  =  |{ Z | Z ist ein Kantenzug der Länge m von i nach j in G }|.

Es gilt

C0  =  En  mit der Einheitsmatrix En,

C1  =  A   mit der Adjazenz-Matrix A von G.

Sei nun m ≥ 1, und seien i, j  ∈  E. Zur Berechnung von Cm + 1(i, j) zerlegen wir die Menge aller Kantenzüge von i nach j der Länge m + 1 in disjunkte Mengen gemäß der vorletzten besuchten Ecke. Es gilt:

(a)

Jeder Kantenzug von i nach j der Länge m + 1 hat eine vorletzte besuchte Ecke k.

(b)

Jeder Kantenzug der Länge m von i nach k kann genau dann zu einem Kantenzug von i nach j der Länge m + 1 fortgesetzt werden, wenn kj eine Kante des Graphen ist, d. h. wenn A(k, j) = 1.

Damit erhalten wir die rekursive Beziehung

Cm + 1(i, j)  =  Cm(i, 1) A(1, j)  +  …  +  Cm(i, n) A(n, j)  für alle i, j und alle m ≥ 0.

Nach der Definition „Zeile mal Spalte“ der Matrizen-Multiplikation gilt also

Cm + 1  =  Cm A,

woraus sich induktiv ergibt, dass Cm = Am für alle m ≥ 0. Die Potenzen der Adjazenz-Matrix zählen also Kantenzüge. Genauer zeigen unsere Überlegungen:

Satz (Zahl der Kantenzüge, Abstandsberechnung)

Sei G = (E, K) ein Graph mit der Eckenmenge E = { 1, …, n }, und sei A die Adjazenz-Matrix von G. Weiter seien i, j  ∈  E und m ≥ 0. Dann ist Am(i, j) die Anzahl der Kantenzüge in G von i nach j der Länge m. Speziell ist j erreichbar von i in G, wenn Am(i, j) ≠ 0 für ein m. In diesem Fall ist

d(i, j)  =  „das kleinste m mit Am(i, j) ≠ 0“.

2. Zählen von Bäumen

Wir fragen:

Wie viele graphentheoretische Bäume mit n Ecken gibt es?

Für n ≥ 1 sei Tn die Menge der Bäume mit der Eckenmenge { 1, …, n }. Zunächst hat T1 genau ein Element. Eine konkrete Aufzählung aller Bäume ergibt

|T2|  =  1  =  20,  |T3|  =  3  =  31,  |T4|  =  16  =  42.

ema22-AbbID4-1-3

Die 16 Bäume mit den Ecken 1, 2, 3, 4

Wir vermuten:

(+)  |Tn|  =  nn − 2  für alle n ≥ 2.

Gefunden und bewiesen wurde die Formel (+) zuerst von Arthur Cayley (1854). Ein induktiver Beweis ist möglich, aber nicht trivial. Eine bestechende Alternative ist ein auf Heinz Prüfer (1918) zurückgehender Beweis, der für alle n ≥ 2 eine konkrete Bijektion Pr zwischen Tn und der Menge

Cn  =  { 1, …, n }n − 2

aller Tupel in { 1, …, n } der Länge n − 2 konstruiert. Wir können das einem Baum G zugeordnete Tupel Pr(G) = (a1, …, an − 2)  ∈  Cn als Kode des Baumes ansehen, aus dem sich der Baum rekonstruieren lässt. Diese Kodes sind als Prüfer-Kodes bekannt.

Erstellung des Prüfer-Kodes eines Baumes

Sei n ≥ 2, und sei G  ∈  Tn. Wir definieren rekursiv Teilbäume G1, …, Gn − 2 von G (durch schrittweises Entfernen von Ecken) und den Prüfer-Kode Pr(G) = (a1, …, an − 2) von G wie folgt.

Zunächst sei G1 = G.

Ist Gi konstruiert, so sei a die kleinste Ecke von Gi mit Grad 1, d. h. a ist das erste Blatt von Gi. Weiter sei b der eindeutige Nachbar von a in Gi. Dann setzen wir

ai  =  b,  Gi + 1  =  Gi − { a }  (Streichen der Ecke a).

Rekonstruktion des Baumes aus seinem Prüfer-Kode

Sei Pr(G) = (a1, …, an − 2) der Prüfer-Kode des Baumes G = (E, K). Wir definieren eine Folge (b1, …, bn − 2) rekursiv wie folgt:

bi  =  „das kleinste i  ∈  { 1, …, n } mit i ≠ b1, …, bi − 1, ai, … an“.

Das Ergebnis der Berechnung ist die Kantenmenge

{ ai bi | 1 ≤ i ≤ n − 2 }  ∪  { i*j* },

wobei i*, j* die beiden in b fehlenden Ecken von G sind.

Beispiel

Wir betrachten den folgenden Baum G = (E, K) mit den Ecken { 1, …, 8 }:

ema22-AbbID4-1-4

Das 6 mal wiederholte Streichen der kleinsten Blätter ergibt die Blattfolge (2, 3, 4, 7, 1, 6) und den Prüfer-Kode

Pr(G)  =  (1, 1, 5, 1, 6, 5).

Die Rekonstruktion (für die nur Pr(G) verwendet wird) ergibt die b-Folge

(2, 3, 4, 7, 1, 6)

und reproduziert damit die Blattfolge. Es ergeben sich die Kanten

{ ai bi | i = 1, …, 6 }  ∪  { i*j* }  =  { 12, 13, 54, 17, 61, 56 } ∪ { 58 }  =  K.

 Insgesamt ergibt sich (Übung):

Satz (Satz von Cayley-Prüfer)

Sei n ≥ 2. Dann ist |Tn| = nn − 2. Genauer ist die Abbildung Pr : Tn  Cn, die jedem Baum G  ∈  Tn seinen Prüfer-Kode Pr(G) zuordnet, bijektiv. Ist G  ∈  Tn, so ist die Rekonstruktionsfolge (b1, …, bn − 2) die Folge der Blätter, die bei der rekursiven Erstellung des Kodes Pr(G) gestrichen wurden.