组合结构

组合结构

组合结构是组合对象符号化的基本,掌握组合符号化可以更规范的解决许多困难的计数问题

(无标号)经典的组合构造

Sequence构造

对于组合类A,生成一个不定长的序列构造为

\[1 + A + A^2+...+A^k = \frac{1}{1 - A} \]

又记作\(SEQ(A) = \{(a_1...a_m) : m >= 0 , a \in A\}\)

即在A里面选取m个元素


\(Amplification_k\)构造

即k-膨胀构造,定义如下

\[AMP_k(A) = \{ (a....a) .st\ |size| = k : a \in A \} \]

即要选,一次必须选择k个,复读k次

\(A(z^k)\)


置换群下的等价类

对于一个组合类A,其元素为对组合类B元素的若干组合

\[a\in A .st\ a = (b_1,...,b_m) \]

即组合类的容\(cap_B(a) = m\),即\(a所含选取的组合个数\)

\(G = {G_0,G_1...}\)为若干置换操作

若两元素\(a_i,a_j\)在置换操作\(G_i\)相同

应当满足\(|a_i| = |a_j| , a_i = G_i^p(a_j)\)

\(A/G_B\)为A中的元素在\(G_B操作下等价的组合类集合\)

\(a\in A/G_B , a\in A\)且a中的元素在置换\(G_B\)意义下本质相同


Cycle构造

定义如下:

\[CYC(A) = (SEQ(A) - \{空\})/G_A \]

其中\(G_A\)是位移置换

一般的有:

\[CYC_k(A) = (A^k)/G_A \]

考虑枚举\(G_A\)中的旋转步数\(i\)

会产生\((k,i)个等价类 , 大小均为\frac{k}{(k,i)}\)

则有\(AMP_{\frac{k}{(k,i)}}(C)^{(k,i)}\)

\(A(z^\frac{k}{(k,i)})^{(k,i)}\)

根据burnside,置换下等价类数=置换下不动点的平均数

\[C_k(z) = \frac{1}{k}\sum_{i = 0}^{k - 1}A(z^\frac{k}{(k,i)})^{(k,i)} \]

根据简单的式子推导有:

\[C(z) = \sum_{d=1}\frac{\phi(d)}{d}ln(\frac{1}{1 - A(z^d)}) \]


Multiset构造

定义如下:

\[MSET(A) = SEQ(A)/G_A \]

\[在置换G下(b_1,b_2,b_3)...(b_3,b_1,b_2)将被看为同一个组合\\ \]

考虑如何得到\(MSET(A)\)

可以枚举A中的所有对象并且确定加入多少个

即:

\[MSET(A) = \prod_{a\in A}\sum_{k = 0}\{a\}^k\\ = \prod_{a\in A}\sum_{k=0}z^{|a|k} = \prod_{a\in A}(\frac{1}{1 - z^{|a|}}) = \prod_{i = 1}(\frac{1}{1-z^i})^{A[i]}\\ =exp(\sum_{i = 1}A[i] * ln(\frac{1}{1-z^i})) = exp \sum_{i = 1}A[i]\sum_{i | j}\frac{x^{ji}}{j}\\ =exp\sum_{j = 1}\frac{1}{j}\sum_{i = 0}F[i]x^{ij} = exp\sum_{i = 1}\frac{F(x^i)}{i} \]

又称Polya指数


Power Set构造

\[PEST(A) = \prod_{a\in A} (\{空\} + \{a\})\\ \prod(1 + z^{|a|}) = \prod_{i = 0}(1 + z^i)^{A[i]} \\ = exp\sum_{i = 0}A[i]ln(1 + z^i) \\ = exp\sum_{i = 0}A[i]\sum_{k = 1}\frac{(-1)^{k - 1}z^{ik}}{k}\\ exp\sum_{k = 1}\frac{(-1)^{k - 1}}{k}\sum_{i = 0}z^{ik}A[i]\\ =exp\sum_{k = 1}\frac{(-1)^{k - 1}}{k}F(z^k) \]

类似于0/1背包,每个集合选与不选

\[B\in PEST(A) , B\in A \]

即另一定义下的Polya指数


(有标号)经典的组合构造

就像男人和女人,有标号和无标号完全是两个世界——(我自己说的)

\(ind(a)表示a的标号集合,如何a的标号集合恰好为|a|的全排列,则称为强标号,反之是弱标号\)

两个对象的组合积的定义如下

\[a \times b = {(a' , b') : (a',b')是强标号,a',b'离散化后与a,b分别相同} \]

\[两个集合的笛卡尔积为\\ A \times B = ⋃_{a\in A , b\in B}a \times b \]

然后根据其组合意义,有\(|a \times b| = (\frac{|a| + |b|}{|a| ,|b|})\)

发现这个玩意跟EGF的卷积乘法的性质有点像,于是可以用EGF来刻画一个有标号

\[A(z) = \sum_{i = 0}\frac{A[i]z^i}{i!} \]


Sequence构造

对于组合类A,生成一个不定长的序列构造为

\[1 + A + A^2+...+A^k = \frac{1}{1 - A} \]

又记作\(SEQ(A) = \{(a_1\times... a_m) : m >= 0 , a \in A\}\)

即在A里面选取m个元素且有标号

\(b = (a_1...a_m) , 若a_1...a_m离散化后都属于A,则b应当为SEQ(A)的元素\)


Pointing构造

定义如下:

\[PET(A) = \sum_{k = 0}B_k \times \{a_1,a_2,..,a_k\} \]

组合意义是在图a中选一个节点作为特殊节点(根)


Set构造

定义如下:

\[SET(A) = SEQ(A)/G_A \]

考虑一个大小为k的集合,即:

\[SET_k(A) = A_k/G_A\\ A_k为选k个元素的不可重集合\\ A_k = \frac{A^k(z)}{k!} , 可以发现A^k(z)得出来的东西是强标号,故要除全排列\\ 有SET(A) = \sum_{k = 0}\frac{A(z)^k}{k!} = exp(A(z)) \]


Cycle构造

\[CYC(A) = SEQ(A)/G_A\\ CYC_k(A) = A^k/G_A\\ A_k(z) = \frac{A^k(z)}{k}\\ 在其组合意义下不难得证\\ 于是\\ CYC(A) = \sum_{k = 1}\frac{A^k(z)}{k} = ln(\frac{1}{1-A(z)}) \]

如果置换包含翻转,则式子如下:

\[CYC_{filp}(A) = A(z) + \sum_{k = 2}\frac{A^k(z)}{2k} = \frac{1}{2}(ln(\frac{1}{1-A(z)}) + A(z)) \]


有标号Subsitution构造

子结构构造如下

\[B∘C = \sum_{k = 0}B_k⊠SET_k(C)\\ A ⊠ B = \{ (a,b) : a\in A , b\in B \} , |(a,b)| = |b| \]

组合意义为 将B的每一个节点都换成C的一个对象

Sequence构造

\[S(z) = \sum_{k = 0}\frac{k!x^k}{k!} = \frac{1}{1-x}\\ 令x = A(z) 则有SEQ(A(z)) = x ∘ A(z)= \frac{1}{1 - A(z)} \]

Cycle构造

先得出环的生成函数:\(C(z) = \sum_{k = 1}\frac{(k - 1)!z^k}{k!} = ln(\frac{1}{1 - x})\)

则有 \(CYC(A) = x∘A(z) = ln(\frac{1}{1 - A(z)})\)

Set构造

选出k个数,且无标号

\[S(z) = \sum_{k = 0}\frac{z^k}{k!} = exp(z)\\ SET(A) = x∘A(z) = exp(A(z)) \]


Boxed构造

\[DEL(A) = \{ b : |b| = |a| - 1 , a\in A \}\\ ADD(A) = \{ b : |b| = |a| + 1 , a\in A \}\\ \]

\[ADD(DEL(A)) = A\\ \]

\[有个例子\\ C = ADD(DEL(A)^k \times B)^{k}相当于是A把a_1...a_k都藏起来了 \]

在生成函数意义下就是求导和积分


posted @ 2022-02-27 20:57  After_rain  阅读(404)  评论(0)    收藏  举报