Klasa kombinatoryczna

Klasą kombinatoryczną nazywamy parę A = (A,|.|) taką, że A jest zbiorem niepustym zaś | | : A N {\displaystyle |\cdot |:A\rightarrow \mathbf {N} } jest funkcją ze zbioru A w zbiór liczb naturalnych taka, że dla każdej liczby naturalnej n zbiór {a ∈ A: |a| = n} jest skończony.

Liczbę |a| interpretujemy jako wagę lub rozmiar elementu a. Zbiór A nazywamy uniwersum klasy A. Klasy kombinatoryczne są podstawowymi obiektami Kombinatoryki Analitycznej.

Dwie klasy (A,|.|) i (B,[.]) są izomorficzne, jeśli istnieje bijekcja f:A → B taka, że dla każdego a ∈ A mamy |a| = [f(a)].

Podstawowe definicje

Niech A = (A,| . |) będzie klasą kombinatoryczną. Wprowadzamy oznaczenia:

  1. An = {a ∈ A:|a|=n}
  2. an = |An|
  3. A(z) = k = 0 a k z k {\displaystyle \sum _{k=0}^{\infty }a_{k}z^{k}}
  4. [zn]A(z) = an

Szereg potęgowy A(z) nazywamy funkcją tworzącą klasy kombinatorycznej A.

Jeśli klasy A i B są izomorficzne, to A(z) = B(z).

Podstawowe przykłady

1. Niech E = ({e},|.|), gdzie |e| = 0. Wtedy E(z) = 1.
2. Niech Z = ({a},|.|), gdzie |a| = 1. Wtedy Z(z) = z.
3. Niech N oznacza zbiór liczb naturalnych oraz niech N = (N,id), gdzie id oznacza identyczność na zbiorze liczb naturalnych. Wtedy

N ( z ) = k = 0 z k = 1 1 z . {\displaystyle N(z)=\sum _{k=0}^{\infty }z^{k}={\frac {1}{1-z}}.}

4. Niech X będzie zbiorem mocy n oraz niech P(X) będzie zbiorem potęgowym zbioru X. Rozważamy klasę P = (P(X),|.|), gdzie |A| oznacza moc zbioru A. Wtedy

P ( z ) = k = 0 n ( n k ) z k = ( 1 + z ) n . {\displaystyle P(z)=\sum _{k=0}^{n}{\binom {n}{k}}z^{k}=(1+z)^{n}.}

Podstawowe konstrukcje

Niech A = ( A , | | A ) , {\displaystyle {\mathcal {A}}=(A,|\cdot |_{A}),} B = ( B , | | B ) {\displaystyle {\mathcal {B}}=(B,|\cdot |_{B})} będą klasami kombinatorycznymi.

Suma klas

Jeśli A B = {\displaystyle A\cap B=\emptyset } to ich sumę definiujemy jako klasę A + B = ( A B , | | A | | B ) . {\displaystyle {\mathcal {A}}+{\mathcal {B}}=(A\cup B,|\cdot |_{A}\cup |\cdot |_{B}).}

Twierdzenie: ( A + B ) ( z ) = A ( z ) + B ( z ) {\displaystyle ({\mathcal {A}}+{\mathcal {B}})(z)={\mathcal {A}}(z)+{\mathcal {B}}(z)}

Przykład: Rozważamy klasę A z uniwersum A = {ε, •, ♦, ♣, ♥} taką, że |ε| = 0, |•| = |♦|=1 i |♣| = |♥|=2.

Wtedy A(z) = {ε}(z) + {•}(z) + {♦}(z) + {♣}(z) + {♥}(z) = 1 + 2z + 2z².

Produkt klas

Produktem klas A {\displaystyle {\mathcal {A}}} i B {\displaystyle {\mathcal {B}}} nazywamy klasę A × B = ( A × B , | | ) , {\displaystyle {\mathcal {A}}\times {\mathcal {B}}=(A\times B,|\cdot |),} gdzie |(a,b)| = |a|A+|b|B.

Twierdzenie: ( A × B ) ( z ) = A ( z ) B ( z ) {\displaystyle ({\mathcal {A}}\times {\mathcal {B}})(z)={\mathcal {A}}(z)\cdot {\mathcal {B}}(z)}

gdzie A ( z ) B ( z ) {\displaystyle A(z)\cdot B(z)} oznacza iloczyn Cauchy’ego szeregów.

Operacja ciągów klas

Załóżmy, że a0 = 0. Klasą ciągów skończonych elementów klasy A nazywamy klasę

S E Q ( A ) = E A ( A × A ) ( A × A × A ) {\displaystyle \mathrm {SEQ} ({\mathcal {A}})=E\cup A\cup (A\times A)\cup (A\times A\times A)\cup \ldots }

Twierdzenie: S E Q ( A ) ( z ) = 1 1 A ( z ) {\displaystyle \mathrm {SEQ} ({\mathcal {A}})(z)={\frac {1}{1-{\mathcal {A}}(z)}}}

Operacja podzbiorów skończonych klasy

Załóżmy, że a0 = 0. Klasą podzbiorów skończonych elementów klasy A nazywamy klasę S E T ( A ) = ( P f i n ( A ) , | | ) , {\displaystyle \mathrm {SET} ({\mathcal {A}})=(P_{fin}(A),|\cdot |),} gdzie P f i n ( A ) {\displaystyle P_{fin}(A)} oznacza zbiór wszystkich skończonych podzbiorów zbioru A oraz | { a 1 , , a n } | = | a 1 | A + + | a n | A . {\displaystyle |\{a_{1},\dots ,a_{n}\}|=|a_{1}|_{A}+\ldots +|a_{n}|_{A}.}

Twierdzenie: S E T ( A ) ( z ) = n = 1 ( 1 + z n ) a n {\displaystyle \mathrm {SET} ({\mathcal {A}})(z)=\prod _{n=1}^{\infty }(1+z^{n})^{a_{n}}}

Operacja multizbiorów

Załóżmy, że a0 = 0. Klasą podzbiorów skończonych elementów klasy A nazywamy klasę M U L T ( A ) = ( M u l t ( A ) , | | ) , {\displaystyle \mathrm {MULT} ({\mathcal {A}})=(\mathrm {Mult} (A),|\cdot |),} gdzie M u l t ( A ) {\displaystyle \mathrm {Mult} (A)} oznacza zbiór wszystkich multizbiorów elementów zbioru A oraz | m | = a A m ( a ) | a | A . {\displaystyle |m|=\sum _{a\in A}m(a)|a|_{A}.}

Twierdzenie: M U L T ( A ) ( z ) = n = 1 1 ( 1 z n ) a n {\displaystyle \mathrm {MULT} ({\mathcal {A}})(z)=\prod _{n=1}^{\infty }{\frac {1}{(1-z^{n})^{a_{n}}}}}

Typowe zastosowanie

Przykład 1. Niech A = ( { 1 , , k } , | | ) {\displaystyle {\mathcal {A}}=(\{\bullet _{1},\dots ,\bullet _{k}\},|\cdot |)} gdzie | 1 | = = | k | = 1. {\displaystyle |\bullet _{1}|=\ldots =|\bullet _{k}|=1.} Niech B = M U L T ( A ) . {\displaystyle {\mathcal {B}}=\mathrm {MULT} ({\mathcal {A}}).} Wtedy B ( z ) = 1 ( 1 z ) k , {\displaystyle {\mathcal {B}}(z)={\frac {1}{(1-z)^{k}}},} więc

B ( z ) = ( 1 z ) k = n 0 ( k n ) ( 1 ) n z n = n 0 ( n + k 1 n ) z n = n 0 ( n + k 1 k 1 ) z n {\displaystyle {\begin{aligned}{\mathcal {B}}(z)&=(1-z)^{-k}\\&=\sum _{n\geq 0}{\binom {-k}{n}}(-1)^{n}z^{n}\\&=\sum _{n\geq 0}{\binom {n+k-1}{n}}z^{n}\\&=\sum _{n\geq 0}{\binom {n+k-1}{k-1}}z^{n}\end{aligned}}}

zatem [ z n ] B ( z ) = ( n + k 1 k 1 ) . {\displaystyle [z^{n}]{\mathcal {B}}(z)={\binom {n+k-1}{k-1}}.} Otrzymaliśmy wzór na liczbę multizbiorów rozmiaru n podzbioru k-elementowego.

Przykład 2. Niech T oznacza klasę drzew planarnych. Niech • oznacza wierzchołek drzewa. Wtedy T ≈ {•} × SEQ(T), więc T(z) = z/(1-T(z)), z czego wnioskujemy, że

T ( z ) = 1 2 ( 1 1 4 z ) . {\displaystyle T(z)={\frac {1}{2}}\left(1-{\sqrt {1-4z}}\right).}

Po kilkunastu algebraicznych przekształceniach otrzymujemy [ z n ] T ( z ) = 1 n ( 2 ( n 1 ) n 1 ) , {\displaystyle [z^{n}]T(z)={\frac {1}{n}}{\binom {2(n-1)}{n-1}},} więc [zn]T(z) = Cn-1, gdzie Cn oznacza n-tą liczbę Catalana.

Bibliografia

  • Philippe Flajolet, Robert Sedgewick: Analytic Combinatorics. Cambridge University Press, 2009.

Linki zewnętrzne

  • Analytic Combinatorics (online)