Burnside 引理与 Polya 定理
【Burnside 引理】
问题引入
涂色 \(2\times 2\) 的方格。旋转相同算一种。有多少种本质不同染色方案?

可以数出有 \(6\) 种。
以此为例介绍 Burnside 引理。
设一种染色方案为 \(x\),\(g_{a}\) 为一种变换,表示将某种染色方案顺时针旋转 \(a\) 度,则 "旋转相同" 就是 \(x^{(g_0,g_{90},g_{180},g_{270})}\) 算同一种。
考虑:
-
\(x^{g_0}=x\) 的有几种?有 \(16\) 种。
-
\(x^{g_{90}}=x\) 的有几种?有 \(2\) 种。
-
\(x^{g_{180}}=x\) 的有几种?有 \(4\) 种。
-
\(x^{g_{270}}=x\) 的有几种?有 \(2\) 种。
Burnside 引理告诉我们,本质不同的方案数即这四种情况的平均数,\(\dfrac{16+2+4+2}{4}=6\)。
数学定义
令 \(X\) 为着色方案的集合,\(G\) 为一个作用在 \(X\) 上的变换群。
定义 \(X^{(g)}=\{x|x\cdot g=x,x\in X\}\)。即对于 \(g\),找所有被 \(g\) 作用后不变的 \(x\)。
Burnside 引理结论:\(|X/G|=\dfrac{1}{|G|}\sum_{g\in G}|X^{(g)}|\)。
(\(X/G\) 表示 \(G\) 作用在 \(X\) 上后的等价类个数,在群论中 "等价类" 也称作 "轨道 (orbit)")
证明
需要一些前置定理。
Lagrange 定理
设 \(H\) 是 \(G\) 的子群。\(\{aH|a\in G\}\) 会成为 \(G\) 的划分。
(\(\{aH|a\in G\}\) 是 "陪集",\(a\) 这个元素对 \(H\) 里每个元素运算得到的集合)
Lagrange 定理:\([G:H]=|G|/|H|\)。(\([G:H]\) 表示 \(\{aH|a\in G\}\),即陪集的集合)
即 \(|G|=[G:H]\cdot |H|\)。
Burnside 证明
定义 \(O_x=\{x'|\exists g\in G,g\cdot x=x',x'\in X\}=\{gx|g\in G\}\)。理解 \(x\) 为一种着色方案,\(O_x\) 即 \(x\) 所在的轨道。
定义 \(G_x=\{g|g\in G,g\cdot x=x\}\)。即 \(x\) 的稳定化子,就是作用到 \(x\) 后不变。注意分辨 \(X^{(g)}\) 与 \(G_x\)。
观察 1:\(G_x\) 是 \(G\) 的子群。
证明 \(H\) 是 \(G\) 子群的思路:① 证明 \(a,b\in H\Rightarrow ab\in H\)。 ② \(a\in H\Rightarrow a^{-1}\in H\)。
证明 1:
-
\(a,b\in G_x\)。由定义,\(a\cdot x=x,b\cdot x=x\),而 \((ab)x=a(bx)=ax=x\)。所以 \(ab\in G_x\)。利用了群的结合律。
-
\(a\in G_x,ab=e\)(\(e\) 为单位元),即 \(b=a^{-1}\)。由定义 \(ax=x\),则 \(b(ax)=bx,b(ax)=(ba)x=ex=x\),所以 \(bx=x\),所以 \(b\in G_x\)。
证毕。
观察 2:\(O_x\) 与 \(G_x\) 的所有陪集形成一一映射。
(轨道元素个数与稳定化子陪集构成一一映射)
证明 2:
理清定义。(下面变换作用在状态上用 \(\cdot\),变换复合用 \(*\))
\(O_x\) 是 \(x\) 通过 \(G\) 能到达的所有状态。\(G_x=\{f|f\cdot x=x\}\)。\(G_x\) 的某个陪集 \(aG_x=\{a*b|b\in G_x\}\)。
\(S=G_x\) 所有陪集 \(=\{aG_x|a\in G\}\)。
然后开始证明。来一个引理:
引理:任取一个 \(f\) 使得 \(f\cdot x=x_i\),有 \(fG_x=G_i=\{g|g\in G,g(x)=x_i\}\)。
引理证明:
反证法。假设 \(fG_x\neq G_i\)。因为 \(f\cdot x=x_i\),而 \(\forall f'\in G_x\),都有 \(f'\cdot x=x\),所以 \((f\cdot f')\cdot x=f\cdot (f'\cdot x)=f\cdot x=x_i\)。所以 \(fG_x\subseteq G_i\)。
又因为 \(fG_x\neq G_i\),所以一定有 \(|fG_x|<|G_i|\)。根据子群与陪集的性质,\(|fG_x|=|G_x|\),所以 \(|G_x|<|G_i|\)。
但是考虑逆变换 \(f_*\) 使得 \(f_*\cdot x_i=x\),陪集 \(f_*G_i\) 其实就是 \(G_x\)(变换一次又逆变换回去了)。所以 \(|f_*G_i|=|G_x|\)。根据子群与陪集的性质,\(|G_i|=|f_*G_i|\)。
于是有 \(|G_i|>|G_x|=|f_*G_i|=|G_i|\),矛盾,反设不成立。引理得证。
下面开始正式证明。
对于每个 \(x_i\in O_x\),根据 \(O_x\) 的定义,存在某个 \(f_i\in G\) 使 \(f_i\cdot x=x_i\)。
我们任取某个 \(f_i\),并记 \(f_i\) 与 \(G_x\) 构成的陪集为 \(P_i=\{f_i\cdot f|f\in G_x\}\)。
于是我们把 \(O_x\) 映射到 \(|O_x|\) 个陪集 \(P_i\)。我们会说明这些 \(P_i\) 构成的集合等于 \(S\)。
反设有 \(f_*\in G\),使得 \(f_*G_x\) 不等于任何一个 \(P_i\)。
设 \(f_*(x)=x_p\)。根据引理,\(P_p\) 包含了所有 \(f(x)=x_p\) 的 \(f\),矛盾。所以 \(\{P_i\}=S\),得证。
推论:
根据拉格朗日定理有 \(|G|=|O_x|\cdot |G_x|\)。
正式证明:
而 \(\sum_{x\in X}\dfrac{1}{|O_x|}\) 其实就是 \(X/G\) 的轨道数。因为一个轨道里每一个数贡献轨道大小的倒数,所以一个轨道贡献 \(1\)。
【Polya 定理】
考虑 \(|X^{(g)}|\) 有没有其他的计算方式。
考虑 \(g180\) 对 \(2\times 2\) 的作用:
我们发现,这可以视作两个轮换:\((a,d),(b,c)\)。所以问题转化为:给 \(a,b,c,d\) 着色,同一轮换里同色的方案数。
记 \(k\) 为颜色数,\(A\) 为所有格子的集合。记 \(C_A(g)\) 为把 \(g\) 看作置换,\(A\) 会形成的轮换数。
有:\(|X^{(g)}|=k^{C_A(g)}\)。
Polya 定理
\(|X/G|=\dfrac{1}{|G|}\sum_{g\in G}k^{C_A(g)}\)。
根据 Burnside 引理,\(|X/G|=\dfrac{1}{|G|}\sum_{g\in G}|X^{(g)}|\),而 \(|X^{(g)}|=k^{C_A(g)}\),所以 Polya 定理成立。
区分
Burnside 引理是 \(g\) 作用在 \(X\) 上(着色方案),Polya 定理是 \(g\) 作用在 \(A\) 上(格子)。
【题目】
【P4980:项链计数】
\(n\) 个珠子一串,\(k\) 种颜色。旋转相同。求本质不同的着色方案数 \(T_{n,k}\)。
这个问题有很多拓展,例如每种颜色只能用一次、禁止循环节等。
结论:\(T_{n,k}=\dfrac{1}{n}\sum_{d|n}\varphi(d)k^{n/d}\)。
考虑 Polya 定理。
\(A=\{1,2,\dots,n\}\),\(G=\{g_1,\dots,g_n\}\)。
根据 Polya 定理,答案为:
考虑 \(C_A(g_i)\) 是多少。记 \(p=gcd(i,n)\),则 \(i\bmod p\) 相等的在同一个轮换里,所以 \(C_A(g_i)=p\)。
【P4916:魔力环】
\(n\) 个珠子一串,黑白染色。要求恰好 \(m\) 个黑色,且最长黑色段长度 \(\le k\)。旋转相同,求本质不同方案数。\(n,m,k\le 10^5\)。
这题有对染色方案的限制,不能用 Polya 定理,只能用 Burnside 引理。因为 Burnside 就是根据染色方案的。
首先,还是有 \(G=\{g_1\sim g_n\}\)。关键问题在于怎么求 \(|X^{(g_i)}|\)。
令 \((x_1\sim x_n)\) 表示一种着色方案。需要计数:\(x\) 满足题目的要求且 \(x\) 在 \(g_i\) 下保持不变。
考虑 \(x\) 在 \(g_i\) 下保持不变是什么意思。令 \(d=gcd(g_i,n)\),这个条件等价于 \(x\) 以 \(d\) 为周期。
于是只需要考虑 \(x_1\sim x_d\) 的选法个数,使得里面有 \(\dfrac{m}{d}\) 个 \(1\),且展开后连续 \(1\) 个数 \(\le k\)。
这个怎么做?这是一个组合计数问题。
首先理一下问题:求长度为 \(n\) 的 \(01\) 序列,\(1\) 有 \(a\) 个,\(1\) 段长度 \(\le k\),认为首尾相连。
先把 \(0\) 排成一排,让 \(1\) 插入空隙之中。环做不了,必须断环为链,枚举首尾的空隙一共有多少个 \(1\)。所以方案数可以写作 \(\sum_{i=0}^{k}(i+1)Put(a-i,(n-a)-1,k)\)。其中 \(Put(a,b,k)\) 表示把 \(a\) 个球放入 \(b\) 个盒子,每个盒子个数 \(\le k\) 的方案数。
有容量的放球问题本来只能指数做。但是这里因为每个盒子的上限都一样,所以容斥时对于 \(|S|\) 相同的情况可以一起计数。
\(Put(a,b,k)=\sum_{i=1}^{\min(a/k,b)}(-1)^i\binom{b}{i}\binom{a-ik+b-1}{b-1}\).
【图的同构计数(无标号图计数)】
求 \(n\) 个点的无向简单图个数。如果能通过将点的编号做置换变成相同的,认为是相同的图。
先用数学语言描述一下变化。若存在置换 \(P=(p_1,\dots,p_n)\) 使得 \((i,j)\in G\iff (p_i,p_j)\in G'\),则 \(G\) 和 \(G'\) 是同构的。
因为没有对置换的特殊限制,考虑 Polya 定理。
把一个图认为是完全图里的边黑白染色得到(黑表示选,白表示不选)。问题转化为一个边的黑白染色计数问题。
考虑如何描述 \(A,G\)。\(A\) 是 \(\binom{n}{2}\) 条边的集合,\(G\) 是 \(n!\) 个点的置换的集合。即 \(A=\{e_{i,j}|i<j\}\),\(G=\{\text{1 到 n 的所有排列}\}\)。
(\(g\) 作用到点上之后,\(A\) 里的边的编号也要跟着变)
换句话说,\(G\) 是 \(\dfrac{n(n-1)}{2}\) 条边的对称群的 \(n!\) 阶置换群。
问题在于如何求 \(C_A(g)\)。(注意 \(A\) 是边的集合,所以轮换也是边的轮换)
因为 \(g\) 是一个置换,相对复杂,先考虑对于 \(g\) 的一个轮换内部的边会形成多少个轮换。
手玩一下,观察发现一个大小为 \(t\) 的轮换内部的边会形成 \([\dfrac{t}{2}]\) 个轮换。

这是为什么呢?记两个点 \(a,b\) 在轮换中的距离 \(dis(a,b)\) 为轮换几次之后 \(a\) 变成 \(b\)。记 \(a+d\) 为 \(a\) 在轮换上往后走 \(d\) 步到的点
我们发现,对于一个固定的 \(d\),所有两端距离为 \(d\) 的边会形成一个轮换。也就是 \((a,a+d),(a+1,a+d+1),\dots,(a-1,a+d-1)\) 会形成轮换。这是比较显然的。
而 \(d\) 有多少种取值?注意不是 \(t\) 种! 因为 \(d=x\) 和 \(d=t-x\) 是相同的。所以 \(d\) 有 \([\dfrac{t}{2}]\) 个取值,每个取值有一个轮换,所以一共有 \([\dfrac{t}{2}]\) 个。
再考虑轮换之间的边。设两个轮换为 \(a_1\sim a_j,b_1\sim b_k\)。
手玩一下,观察发现对于两个长度 \(j,k\) 的轮换,它们之间会形成 \(gcd(j,k)\) 个轮换。
具体证明:假设某条边 \((a_x,b_y)\) 在 \(t\) 次之后回到本身,那么 \(t\bmod j=0,t\bmod k=0\),最小的 \(t\) 即是该轮换的长度,显然 \(t=\mathrm{lcm}(j,k)\)。这个长度和 \(x,y\) 无关!而两轮换一共连了 \(jk\) 条边,所以一共有 \(jk/\mathrm{lcm}(j,k)=gcd(j,k)\) 个轮换。
那么:若 \(g\) 作用在 \(V\) 上的轮换长度分别为 \(l_1,l_2,\dots,l_s\),那么 \(C_A(g)=\sum_{i}[\dfrac{l_i}{2}]+\sum_{i<j}gcd(l_i,l_j)\)。
如果暴力枚举 \(g\),这复杂度就 \(O(n!)\) 了;但是我们发现 \(l_1\sim l_s\) 其实是 \(n\) 的一个拆分,而 \(\{l\}\) 相同的 \(g\) 结果相同,所以只需要枚举 \(n\) 的拆分,然后计算有多少个 \(g\) 能对应到这个拆分即可。
那对于一个拆分,怎么计算有多少个置换,其轮换长度刚好是这个拆分?
\(1\sim n\) 随便放有 \(n!\) 种方案,长度为 \(len\) 的轮换会贡献 \(len!\) 次重复,所以分配每个元素进轮换里有 \(\dfrac{n!}{\prod len!}\)。
同时对于相同长度的轮换,它们的元素可以整体交换。设 \(c_i\) 为 \(i\) 长度的轮换个数,于是又有 \(c_i!\) 次重复,再除以 \(\prod c_i!\)。
然后对于一个轮换内部,就是一个圆排列。
整理一下,对于一个拆分 \((l_1,l_2,\dots,l_k)\),其方案数为 \(\dfrac{n!}{\prod l_i\prod c_i!}\)。
【带权 Burnside 引理】
如果着色方案 \(X\) 有权值呢?(权值符合同轨道内权值相等的性质)
带权 Burnside 引理:\(ans=\dfrac{1}{|G|}\sum_{g\in G}w(X^{(g)})\),其中 \(w(X^{(g)})\) 表示 \(\sum_{x\in X^{(g)}} w(x)\)。
证明:
\(\sum_{g\in G}w(X^{(g)})=\sum_{g\in G}\sum_{x\in X^{(g)}}w(x)=\sum_{x}\sum_{g\in G_x}w(x)=\sum_{x}w(x)\cdot |G_x|\)。
由拉格朗日定理,\(|G_x|\cdot |O_x|=|G|\),所以 \(\sum_{x}w(x)\cdot |G_x|=\sum_{x}w(x)\cdot \dfrac{|G|}{|O_x|}\)。
所以 \(\dfrac{1}{|G|}\sum_{g\in G}w(X^{(g)})=\dfrac{1}{|G|}\sum_{x}w(x)\cdot\dfrac{|G|}{|O_x|}=\sum_xw(x)\cdot \dfrac{1}{|O_x|}=\sum_x w(x)=ans\)。
【带权 Polya 定理(两种形式)】
形式 1
形式 1(积):假设颜色 \(c=1\sim k\) 有权重 \(w_c\),着色方案 \(x\) 的权重 \(w(x)\) 为每个格子颜色权重的积。
带权 Polya 定理 1:所有本质不同方案的权重总和 \(=\dfrac{1}{|G|}\sum_{g\in G}S_1^{l_1(g)}\cdots S_n^{l_n(g)}\)。
这里 \(S_j=\sum_{c}w(c)^{j}\),\(l_j(g)\) 表示 \(g\) 的轮换分解中,长度为 \(j\) 的轮换个数。
证明:
可以先考虑当所有颜色权重 \(=1\) 的时候。此时 \(S_j=\sum_{c}1^j=k\),所以 \(\sum_{g\in G}S_1^{l_1(g)}\cdots S_n^{l_n(g)}=\sum_{g\in G}k^{l_1(g)+l_2(g)+\cdots+l_n(g)}=\sum_{g\in G}k^{C_A(g)}\)。发现这是退化到了无权 Polya 定理的版本。
然后是有权版本。考虑 \(g\in G\),设有 \(r\) 个轮换,记作 \(A_1\sim A_r\)。若 \(A_1\sim A_r\) 分别着色为 \(c_1\sim c_r\) 时,我们产生了一个着色方案 \(x\),其权重 \(w(x)=w(c_1)^{|A_1|}\cdots w(c_r)^{|A_r|}\)。所以
形式 2
形式 2(和):假设颜色 \(c=1\sim k\) 有价值 \(v_c\),着色方案 \(x\) 的价值 \(v(x)\) 为每个格子颜色价值的和。
求价值为 \(m\) 的轨道个数 \(T_m\)。(这个比总价值更强,如果求了这个,总价值就是 \(\sum m\cdot T_m\))
定义 \(w(x)=t^{v(x)}\)。这里 \(t\) 是一个自由变量/参数,我们使用关于 \(t\) 的多项式来求解。
(为什么要这样做呢?因为 \(v(x)\) 是求和的形式,而转化成 \(t^{v(x)}\) 后求和就变成乘积了,可以套用形式一的做法)
目标:\([t^m]\sum_{x\in X}\dfrac{t^{v(x)}}{|O_x|}\)。
回顾一下,\(S_j=\sum_{c}w(c)^j=\sum_{c}t^{v(c)\cdot j}\)。
再引入 \(f(t)=\sum_{i=0}^{+\infty}f_i\cdot t^i\),其中 \(f_i\) 表示价值为 \(i\) 的颜色个数。
那么 \(S_j=\sum_{c}t^{v(c)\cdot j}=\sum_{i}f_i\cdot t^{i\cdot j}=\sum_{i}f_i(t^j)^i=f(t^j)\)。
再把 \(S_j\) 代回原式,则 \(T_m=[t^m]\dfrac{1}{|G|}\sum_{g}\prod_{i=1}^{n}f(t^i)^{l_i(g)}\)。
形式 2 Ex
当每种颜色的价值不再是一个数,而是一个 \(d\) 维向量 \(\vec{v(x)}\),也能使用 Polya 定理。
定义 \(\displaystyle f(t_1,t_2,\dots,t_d)=\sum_{i_1,\cdots,i_d}(\prod_{j=1}^{d}t_j^{i_j})\cdot f_{(i_1,i_2,\dots,i_d)}\)。这里 \(f_{(i_1,i_2,\dots,i_d)}\) 表示价值为 \((i_1,i_2,\dots,i_d)\) 的颜色个数。
有:\(T_{(i_1,i_2,\dots,i_d)}=[t_1^{i_1}\cdots t_d^{i_d}]\dfrac{1}{|G|}\sum_{g\in G}\prod_{i=1}^{n} f(t_1^i,t_2^i,\dots,t_d^i)^{l_i(g)}\)。
【题目】
【强制颜色个数的项链计数】
有 \(k\) 种颜色,求长为 \(n\) 的项链个数,使得颜色 \(i\) 恰好用 \(n_i\) 次。
结论:\(\displaystyle ans=\dfrac{1}{n}\sum_{d|gcd(n_1,\dots,n_k)}\varphi(d)\cdot\binom{\frac{n}{d}}{\prod_{i=1}^{k}\frac{n_i}{d}}\)。

浙公网安备 33010602011771号