Zum Zählen vieler Arten von kombinatorischen Objekten, wie in diesem Fall Bäume, gibt es leistungsstarke mathematische Werkzeuge (die symbolische Methode), mit denen Sie solche Zählungen maschinell aus einer Beschreibung ableiten können, wie die kombinatorischen Objekte aufgebaut sind. Dabei werden Funktionen generiert.
Eine ausgezeichnete Referenz ist Analytic Combinatorics von Philipe Flajolet und Robert Sedgewick. Es ist über den obigen Link verfügbar.
Der verstorbene Herbert Wilf Buch generatingfunctionology ist eine andere freie Hand.
Und natürlich ist die Konkrete Mathematik von GKP eine Fundgrube.
Für binäre Bäume gilt: Zuerst müssen Sie den Baum klar definieren.
Ein binärer Baum ist ein verwurzelter Baum, in dem jeder Nicht-Blattknoten genau den Grad 2 hat.
Als nächstes müssen wir uns einigen, was wir die Größe eines Baumes nennen wollen .
Links sind alle Knoten gleich. In der Mitte unterscheiden wir die Blätter und Nichtblätter. Rechts haben wir einen beschnittenen Binärbaum, in dem die Blätter entfernt wurden. Beachten Sie, dass es unäre Zweige von zwei Typen gibt (links und rechts)!
Nun müssen wir eine Beschreibung ableiten, wie diese kombinatorischen Objekte aufgebaut sind. Bei binären Bäumen ist eine rekursive Zerlegung möglich.
Sei die Menge aller binären Bäume des ersten Typs, dann haben wir symbolisch:
A
Es lautet wie folgt: „Ein Objekt der Klasse der Binärbäume ist entweder ein Knoten oder ein Knoten, auf den zwei Binärbäume folgen.“ Dies kann als Mengengleichung geschrieben werden:
A={∙}∪({∙}×A×A)
Durch die Einführung der Erzeugungsfunktion , die diese Klasse von kombinatorischen Objekten auflistet, können wir die Mengengleichung in eine Gleichung mit der Erzeugungsfunktion übersetzen.A(z)
A(z)=z+zA2(z)
Unsere Wahl, alle Knoten gleich zu behandeln und die Anzahl der Knoten im Baum als Begriff ihrer Größe zu nehmen, drückt sich durch "Markieren" der Knoten mit der Variablen .z
Wir können nun die quadratische Gleichung für lösen und erhalten wie üblich zwei Lösungen, die explizit geschlossene Form der Erzeugungsfunktion:zA2(z)−A(z)+z=0A(z)
A(z)=1±1−4z2−−−−−−√2z
Jetzt brauchen wir einfach Newtons (verallgemeinerten) Binomialsatz:
(1+x)a=∑k=0∞(ak)xk
mit und erweitern Sie die geschlossene Form der Erzeugungsfunktion zurück in eine Potenzreihe. Wir tun dies, weil der Koeffizient bei nur die Anzahl der kombinatorischen Objekte der Größe , die typischerweise als . Aber hier zwingt uns unser Begriff der „Größe“ des Baumes, nach dem Koeffizienten bei zu suchen . Nach einigem Jonglieren mit Binomialzahlen und Fakultätszahlen erhalten wir:a=1/2x=−4z2znn[zn]A(z)z2n+1
[z2n+1]A(z)=1n+1(2nn).
Wenn wir mit dem zweiten Begriff der Größe beginnen, ist die rekursive Zerlegung:
Wir erhalten eine andere Klasse von kombinatorischen Objekten . Es lautet: "Ein Objekt der Klasse der Binärbäume ist entweder ein Blatt oder ein Zwischenknoten, gefolgt von zwei Binärbäumen."B
Wir können den gleichen Ansatz anwenden und zu . Nur diesmal markiert die Variable nur die internen Knoten, nicht die Blätter, da hier die Definition „die Größe“ unterschiedlich ist. Wir bekommen auch eine andere Erzeugungsfunktion:B={□}∪({∙}×B×B)B=1+zB2(z)z
B(z)=1−1−4z−−−−−√2z
Das Extrahieren des Koeffizienten ergibt
[zn]B(z)=1n+1(2nn).
Die Klassen und stimmen in der Anzahl überein, da ein Binärbaum mit internen Knoten Blätter hat, also insgesamt Knoten.ABnn+12n+1
Im letzten Fall müssen wir etwas härter arbeiten:
Dies ist eine Beschreibung nicht leerer beschnittener Binärversuche. Wir erweitern dies auf
CD={∙}∪({∙}×C)∪({∙}×C)∪({∙}×C×C)={ϵ}∪({∙}×C×C)
und mit generierenden Funktionen neu schreiben
C(z)D(z)=z+2zC(z)+zC2(z)=1+zC2(z)
Löse die quadratischen Gleichungen
C(z)D(z)=1−2z−1−4z−−−−−√2z=1−1−4z−−−−−√2z
und nochmal holen
[zn]C(z)=1n+1(2nn)n≥1[zn]D(z)=1n+1(2nn)n≥0
Beachten Sie, dass die katalanische Erzeugungsfunktion ist
E(z)=1−1−4z−−−−−√2
es zählt die Klasse der allgemeinen Bäume auf . Das sind die Bäume ohne Einschränkung des Knotengrades.
E={∙}×SEQ(E)
Es lautet wie folgt: "Ein Objekt der Klasse der allgemeinen Bäume ist ein Knoten, dem eine mögliche leere Folge von allgemeinen Bäumen folgt."
E(z)=z1−E(z)
Mit der Lagrange-Bürmann Inversion Formula erhalten wir
[zn]E(z)=1n+1(2nn)
Wir haben also bewiesen, dass es so viele allgemeine Bäume gibt wie es binäre Bäume gibt. Kein Wunder, dass zwischen dem allgemeinen und dem binären Baum ein Unterschied besteht. Die Bijektion ist als Rotationskorrespondenz bekannt (erklärt am Ende des verlinkten Artikels), die es uns ermöglicht, jeden allgemeinen Baum als binären Baum zu speichern.
Beachten Sie, dass wir, wenn wir das linke und das rechte Geschwister in class nicht unterscheiden, eine weitere Klasse von Bäumen :CT
die unären binären Bäume.
Sie haben auch eine Erzeugungsfunktion
jedoch ist ihr Koeffizient unterschiedlich. Sie erhalten die Motzkin-Zahlen
T={∙}×SEQ≤2(T)
T(z)=1−z−1−2z−3z2−−−−−−−−−−√2z
[zn]T(z)=1n∑k(nk)(n−kk−1).
Oh, und wenn Sie keine Funktionen generieren möchten, gibt es auch viele andere Beweise. Sehen Sie hier , es gibt einen Punkt, an dem Sie die Kodierung von Binärbäumen als Dyck-Wörter verwenden und eine Wiederholung aus ihrer rekursiven Definition ableiten können. Wenn Sie dann diese Wiederholung lösen, erhalten Sie auch die Antwort. Die symbolische Methode erspart Ihnen jedoch in erster Linie die Wiederholung, da sie direkt mit den Blaupausen der kombinatorischen Objekte zusammenarbeitet.