组合结构——精选推荐
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组合结构组合结构
组合结构是组合对象符号化的基本,掌握组合符号化可以更规范的解决许多困难的计数问题
(⽆标号)经典的组合构造
Sequence构造
对于组合类A,⽣成⼀个不定长的序列构造为
1+A+A2+...+A k=
1 1−A
⼜记作SEQ(A)={(a1...a m):m>=0,a∈A}
即在A⾥⾯选取m个元素
Amplification k构造
即k-膨胀构造,定义如下
AMP k(A)={(a....a).st |size|=k:a∈A}即要选,⼀次必须选择k个,复读k次
即A(z k)
置换群下的等价类
对于⼀个组合类A,其元素为对组合类B元素的若⼲组合
a∈A.st a=(b1,...,b m)
即组合类的容cap B(a)=m,即a所含选取的组合个数
设G=G0,G1...为若⼲置换操作
若两元素a i,a j在置换操作G i相同
应当满⾜|a i|=|a j|,a i=G p i(a j)
记A/G B为A中的元素在G B操作下等价的组合类集合
即a∈A/G B,a∈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)个等价类,⼤⼩均为
k (k,i)
则有AMP
k
(k,i)
(C)(k,i)
即A(z
k (k,i))(k,i)
根据burnside,置换下等价类数=置换下不动点的平均数
C k(z)=1
k
k−1
∑
i=0A(z
k
(k,i))(k,i)
根据简单的式⼦推导有:
C(z)=∑
d=1
ϕ(d)
d ln(
1
1−A(z d))
Multiset构造
定义如下:
MSET(A)=SEQ(A)/G A
在置换G下(b1,b2,b3)...(b3,b1,b2)将被看为同⼀个组合考虑如何得到MSET(A)
可以枚举A中的所有对象并且确定加⼊多少个
即:
MSET(A)=∏
a∈A
∑
k=0{a}k=
∏
a∈A
∑
k=0z|a|k=
∏
a∈A(
1
1−z|a|)=
∏
i=1(
1
1−z i)A[i]=exp(
∑
i=1A[i]∗ln(
1
1−z i))=exp
∑
i=1A[i]
∑
i|j
x ji
j=exp
∑
j=1
1
j
∑
i=0F[i]x ij=exp
∑
i=1
F(x i)
i
⼜称Polya指数Power Set构造
PEST(A)=∏
a∈A({空}+{a})∏(1+z|a|)=
∏
i=0(1+z i)A[i]=exp
∑
i=0A[i]ln(1+z i)=exp
∑
i=0A[i]
∑
k=1
(−1)k−1z ik
k exp
∑
k=1
(−1)k−1
k
∑
i=0z ik A[i]=exp
∑
k=1
(−1)k−1
k F(z k)
类似于0/1背包,每个集合选与不选
B∈PEST(A),B∈A
即另⼀定义下的Polya指数
(有标号)经典的组合构造
就像男⼈和⼥⼈,有标号和⽆标号完全是两个世界——(我⾃⼰说的)
记ind(a)表⽰a的标号集合,如何a的标号集合恰好为|a|的全排列,则称为强标号,反之是弱标号两个对象的组合积的定义如下
a×b=(a′,b′):(a′,b′)是强标号,a′,b′离散化后与a,b分别相同
两个集合的笛卡尔积为A×B=⋃a∈A,b∈B a×b
然后根据其组合意义,有|a×b|=(|a|+|b| |a|,|b|)
发现这个玩意跟EGF的卷积乘法的性质有点像,于是可以⽤EGF来刻画⼀个有标号即
A(z)=∑
i=0
A[i]z i
i!
Sequence构造
对于组合类A,⽣成⼀个不定长的序列构造为
1+A+A2+...+A k=
1 1−A
⼜记作SEQ(A)={(a1×...a m):m>=0,a∈A}
即在A⾥⾯选取m个元素且有标号
b=(a1...a m),若a1...a m离散化后都属于A,则b应当为SEQ(A)的元素Pointing构造
定义如下:
PET(A)=∑
k=0B k×{a1,a2,..,a k}
组合意义是在图a中选⼀个节点作为特殊节点(根)
Set构造
定义如下:
SET(A)=SEQ(A)/G A 考虑⼀个⼤⼩为k的集合,即:
SET k(A)=A k/G A A k为选k个元素的不可重集合A k=A k(z)
k!,可以发现A k(z)得出来的东西是强标号,故要除全排列有SET(A)=
∑
k=0
A(z)k
k!=exp(A(
Cycle构造
CYC(A)=SEQ(A)/G A CYC k(A)=A k/G A A k(z)=A k(z)
k在其组合意义下不难得证于是CYC(A)=
∑
k=1
A k(z)
k=ln(
1
1−A(z))
如果置换包含翻转,则式⼦如下:
CYC filp(A)=A(z)+∑
k=2
A k(z)
2k=
1
2(ln(
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都藏起来了
在⽣成函数意义下就是求导和积分
Loading [MathJax]/jax/element/mml/optable/MathOperators.js。