组合结构
组合结构是组合对象符号化的基本,掌握组合符号化可以更规范的解决许多困难的计数问题
(无标号)经典的组合构造
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都藏起来了
\]
在生成函数意义下就是求导和积分