Do zliczania wielu rodzajów obiektów kombinatorycznych, takich jak drzewa w tym przypadku, istnieją potężne narzędzia matematyczne (metoda symboliczna), które pozwalają mechanicznie wyprowadzać takie liczby z opisu budowy obiektów kombinatorycznych. Obejmuje to generowanie funkcji.
Doskonałym odniesieniem jest Analytic Combinatorics autorstwa zmarłego Philipe Flajoleta i Roberta Sedgewicka. Jest dostępny z linku powyżej.
Funkcjonalność generowania książek zmarłego Herberta Wilfa jest kolejnym darmowym źródłem.
I oczywiście Matematyka konkretna GKP jest skarbnicą.
W przypadku drzew binarnych wygląda to tak: Najpierw potrzebujesz jasnej definicji drzewa.
Drzewo binarne jest drzewem zrootowanym, w którym każdy węzeł inny niż liść ma dokładnie stopień 2.
Następnie musimy uzgodnić, co chcemy nazwać rozmiarem drzewa.
Po lewej wszystkie węzły są równe. W środku rozróżniamy liście i liście niebędące liśćmi. Po prawej stronie mamy przycięte drzewo binarne, z którego usunięto liście. Zauważ, że ma jednoargumentowe gałęzie dwóch typów (lewy i prawy)!
Teraz musimy uzyskać opis budowy tych obiektów kombinatorycznych. W przypadku drzew binarnych możliwy jest rekurencyjny rozkład .
Niech będzie zbiorem wszystkich drzew binarnych pierwszego typu, a następnie symbolicznie mamy:
A
Brzmi on następująco: „Obiektem klasy drzew binarnych jest albo węzeł, albo węzeł, po którym następują dwa drzewa binarne.” Można to zapisać jako równanie zbiorów:
A={∙}∪({∙}×A×A)
Wprowadzając funkcję generującą która wylicza tę klasę obiektów kombinatorycznych, możemy przełożyć zestaw równań na równanie obejmujące funkcję generującą.A(z)
A(z)=z+zA2(z)
Nasz wybór równego traktowania wszystkich węzłów i przyjmowania liczby węzłów drzewa jako pojęcia jego wielkości wyraża się przez „oznaczenie” węzłów zmienną .z
Możemy teraz rozwiązać równanie kwadratowe dla i otrzymać, jak zwykle, dwa rozwiązania, jawnie zamkniętą postać funkcji generującej:zA2(z)−A(z)+z=0A(z)
A(z)=1±1−4z2−−−−−−√2z
Teraz potrzebujemy po prostu (uogólnionego) twierdzenia dwumianowego Newtona:
(1+x)a=∑k=0∞(ak)xk
przy i aby rozwinąć zamkniętą postać funkcji generującej z powrotem do szeregu mocy. Robimy to, ponieważ współczynnik przy jest tylko liczbą obiektów kombinatorycznych o rozmiarze , zwykle zapisywanych jako . Ale tutaj nasze pojęcie „wielkości” drzewa zmusza nas do szukania współczynnika z . Po odrobinie żonglowania dwumianami i silniami otrzymujemy:a=1/2x=−4z2znn[zn]A(z)z2n+1
[z2n+1]A(z)=1n+1(2nn).
Jeśli zaczniemy od drugiego pojęcia wielkości, rekurencyjny rozkład jest następujący:
Otrzymujemy inną klasę obiektów kombinatorycznych . Brzmi on następująco: „Obiektem klasy drzew binarnych jest liść lub węzeł interal, po którym następują dwa drzewa binarne.”B
Możemy zastosować to samo podejście i zmienić w . Tylko tym razem zmienna oznacza tylko wewnętrzne węzły, a nie liście, ponieważ tutaj definicja „rozmiar” jest inna. Otrzymujemy również inną funkcję generowania:B={□}∪({∙}×B×B)B=1+zB2(z)z
B(z)=1−1−4z−−−−−√2z
Wyodrębnienie współczynników daje
[zn]B(z)=1n+1(2nn).
Klasy i zgadzają się co do liczby, ponieważ drzewo binarne z węzłami wewnętrznymi ma liści, a więc łącznie węzłów.ABnn+12n+1
W ostatnim przypadku musimy trochę ciężej pracować:
który jest opisem niepustych przycinanych prób binarnych. Rozszerzamy to do
CD={∙}∪({∙}×C)∪({∙}×C)∪({∙}×C×C)={ϵ}∪({∙}×C×C)
i przepisz go za pomocą funkcji generujących
C(z)D(z)=z+2zC(z)+zC2(z)=1+zC2(z)
rozwiązać równania kwadratowe
C(z)D(z)=1−2z−1−4z−−−−−√2z=1−1−4z−−−−−√2z
i jeszcze raz
[zn]C(z)=1n+1(2nn)n≥1[zn]D(z)=1n+1(2nn)n≥0
Zauważ, że funkcja generowania katalońskiego to
E(z)=1−1−4z−−−−−√2
wylicza klasę drzew ogólnych . To są drzewa bez ograniczeń stopnia węzła.
E={∙}×SEQ(E)
Brzmi on następująco: „Obiektem klasy ogólnych drzew jest węzeł, po którym następuje możliwa pusta sekwencja ogólnych drzew”.
E(z)=z1−E(z)
Dzięki formule inwersyjnej Lagrange-Bürmann otrzymujemy
[zn]E(z)=1n+1(2nn)
Udowodniliśmy więc, że jest tyle drzew ogólnych, ile drzew podwójnych. Nic dziwnego, że istnieje drzewo biologiczne między drzewami ogólnymi i binarnymi. Bijection jest znany jako korespondencja rotacyjna (wyjaśniona na końcu połączonego artykułu), która pozwala nam przechowywać dwa ogólne drzewa jako drzewa binarnego.
Zauważ, że jeśli nie rozróżnimy lewego i prawego rodzeństwa w klasie , otrzymamy kolejną klasę drzew :CT
jednorzędowe drzewa binarne.
Mają też funkcję generującą
jednak ich współczynnik jest inny. Otrzymasz liczby Motzkina
T={∙}×SEQ≤2(T)
T(z)=1−z−1−2z−3z2−−−−−−−−−−√2z
[zn]T(z)=1n∑k(nk)(n−kk−1).
Aha, a jeśli nie lubisz generować funkcji, jest też wiele innych dowodów. Zobacz tutaj , jest taki, w którym można użyć kodowania drzew binarnych jako słów Dyck i uzyskać wznowienie z ich rekurencyjnej definicji. Następnie rozwiązanie tego problemu daje odpowiedź. Jednak metoda symboliczna ratuje Cię przed wymyśleniem nawrotu, ponieważ działa ona bezpośrednio z planami obiektów kombinatorycznych.