最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题:

对颜色限制的染色

例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着色?

其中置换的方法有旋转 \(0^{\circ}, 72^{\circ}, 144^{\circ}, 216^{\circ}, 288^{\circ}\), 穿过一个点做对称轴进行翻转。

Burnside引理的证明

那么,在解决这个问题之间,我们首先要定义和证明一些东西:

在集合\(X\)的置换群的作用下,设\(G\)是\(X\)的置换群,\(C\)是\(X\)的着色集,且\(G\)作用在\(C\)下。

定义\(c\)(小写)保持不变的\(G\)中所有的置换的集合:
\[
G(c) = \{f: f\in G, f*c=c\}
\]
上面的公式含义就是:对于每一个确认的着色方案,我们都能确定一个置换的集合,使得集合内任意元素和\(c\)运算后的结果保持不变(感觉可以看成一个等价类)。

使着色\(c\)保持不变的所有的置换群的集合\(G(c)\)称为\(c\)的稳定核。

在\(f\)的作用下使着色\(c\)保持不变的\(C\)中的所有的着色集,(确定一个\(f\),就能得到一个\(c\)的集合)

\[
C(f) = \{c: c\in C, f*c=c\}
\]
这个就是后面的求解过程中,对于每一种置换,统计不动点的方式。

推论1:设\(c\)为\(C\)中的一种着色,那么与\(c\)等价的着色数

\[
\left | \{ f*c:f \in G\}\right |
\]
等于\(G\)中的置换数除以\(c\)的稳定核中的置换数的个数:

\[
\frac{|G|}{|G(c)|}
\]
证明:

对于每一个置换\(f\),恰好存在\(|G(c)|\)个置换,这些置换作用在\(c\)上与\(f\)有相同的效果。因为总共有\(|G|\)个置换,所以与\(c\)等价的着色数为

\[
\frac{|G|}{|G(c)|}
\]
是不是感觉一头雾水。。。没关系,我们通过一个典型的例子来进一步的解读:

例:对正方形的4个小格用两种颜色着色,可得多少种不同的图像?置换的方式有旋转0°,90°,180°,270°。

先画出所有的涂色方案:

假设我们选择涂色方案\(f_1\),在16中涂色的方案中,有多少的涂色方案预期等价呢?

\[
G(f_1) = \{旋转0°, 旋转90°,旋转180°,旋转270°\}\\
|G(f_1)| = 4 \\
\therefore 16中涂色方案中,有\frac{|G|}{|G(f_1)|} = 1种方案与其等价\\
同理:G(f_3) = {旋转0°}\\
|G(f_3)| = 1\\
\therefore 16中涂色方案中,有\frac{|G|}{|G(f_3)|} = 4种方案与其等价, 它们分别是f_3, f_4, f_5, f_6\\
\]
下面就是关键了!!

Burnside定理:设\(G\)是\(X\)的置换群,而\(C\)是\(X\)中一个满足下面条件的着色集合:对于\(G\)中所有的\(f\)和\(C\)中的所有的\(c\)都有\(f*c\)仍在C中,则\(C\)中非等价的着色数\(N(G, C)\):

\[
N(G, C) = \frac{1}{|G|}\sum_{f\in G}|C(f)|
\]

证明:

采用两种不同的计数的方法,然后使计数相等,最后化简求解。

一种方式是考察\(G\)中的每一个\(f\),并计算\(f\)保持着色不变的着色数然后求和。

\[
\sum_{f \in G}|C(f)|
\]
另外一种方式就是考察\(C\)中的每一个\(c\),对保持不变的着色方案数求和:

\[
\sum_{c \in C}|G(c)|
\]
两种计数方式的总和相等:

\[
\sum_{f \in G}|C(f)| = \sum_{c \in C}|G(c)|
\]
由推论1:

\[
|G(c)| = \frac{|G|}{与c等价的着色数}
\]
因此:

\[
\sum_{c \in C}|G(c)| = |G|\sum_{c \in C}\frac{1}{与c等价的着色数}
\]
又在一个等价类里面,每一个元素的贡献都是:

\[
\frac{1}{与c等价的着色数}
\]
一个等价类的和就是1。

所以:
\[
\sum_{c \in C}|G(c)| = |G|*N(G,C)\\
\therefore \sum_{f \in G}|C(f)| = |G|*N(G,C)\\
\therefore N(G,C) = \frac{\sum_{f \in G}|C(f)|}{|G|}
\]

是不是感觉一脸懵逼,没关系,我们继续用上面的例子来说明:

\[
两种等价的计数方式为:\\
(16+4+2+2) = (4+4+1+1+1+1+1+1+1+1+2+2+1+1+1+1)\\
24 = (4*2+1*4+1*4+2*2+1*4),右边的为(权重*个数),个数和为16\\
24 = 24\\
以上我们解释了两种计数方案的相等性。\\
\\
\\
\\
继续:\\
24 = 4*(\frac{1}{1}+\frac{1}{1}+\frac{1}{4}*4+\frac{1}{4}*4+\frac{1}{2}*2+\frac{1}{4}*4)\\
发现右边的每一个等价类的权重和都为1
\]
好了,我们这样就证明好了Burnside引理。

Polya定理

实际上,Polya定理仅仅是改变了Burnside引理右边的计数的方法,这使得计数变得更加的简单。

我们知道,在使用Burnside引理的时候我们首先要枚举出来所有的染色方案数,然后在每种置换的情况下,统计所有的染色方案不变的情况。这样的时间复杂度为置换数染色方案数\(O(置换数*染色方案数)\),进一步可知,我们的染色的方案数的时间空间复杂度是幂次级别的。

以例1为例,我们仅考虑每一个格点,不考虑位置,我们进行下面的计算:

\[
Q:\left\{\begin{matrix}
q_1 = (1)\quad(2)\quad(3)\quad(4), & 旋转0°\\
q_2 = (1\quad 2\quad 3\quad 4) &, 逆时针旋转90°\\
q_3 = (1\quad 3)\quad(2\quad 4), & 逆时针旋转180°\\
q_4 = (4\quad 3\quad 2\quad 1)& 逆时针旋转270°
\end{matrix}\right.
\]
注意\(q_2, q_4\)是两种不同的方案,他们是这样产生的:

\[
q_2 = \begin{pmatrix}
1 & 2 & 3 & 4\\
2 & 3 & 4 & 1
\end{pmatrix} = (2\quad 3\quad 4\quad 1) = (1\quad 2\quad 3\quad 4), 可以进行轮换换序\\
q_4 = \begin{pmatrix}
1 & 2 & 3 & 4\\
4 & 1 & 2 & 3
\end{pmatrix} = (4\quad 3\quad 2\quad 1)
\]
置换\(f\)的循环分解中的循环个数记为

\[
\#(f)
\]

定理2:

设\(f\)是集合\(X\)的置换。如果我们用\(k\)种颜色对\(X\)的元素进行着色。设\(C\)是\(X\)所有的着色的集合。则\(f\)中保持着色不变的着色数为:

\[
|C(f)| = k^{\#(f)}
\]
这个式子并没有证明,意思就是每一个循环节看成一个等价类,这个等价类里面的元素的颜色全都相同。

然后我们就可以愉快的给出Polya的表示的形式了:

Polya定理

设\(Q\)(为了区分\(G\),实际上它们两的数量是相等的)是n个对象的一个置换群,用m种颜色涂染这n个对象,一个对象涂任意一种颜色,则在\(Q\)作用下不等价的方案数为:

\[
L = \frac{1}{|G|}\sum_{f \in G}m^{\#(f)}
\]
有了上面的这些定理之后呢,我们还是不能证明我们最初的问题,还需要一个工具:母函数!!!

母函数求解本质不同的染色问题

例2:用4种颜色涂3个编号分别为1,2,3的求,设颜色为b(蓝),g(绿),r(红),y(黄)。

解:

\[
P(b_1, b_2, b_3, g_1, g_2, g_3, r_1, r_2, r_3, y_1, y_2, y_3)\\
=(b_1+g_1+r_1+y_1)(b_2+g_2+r_2+y_2)(b_3+g_3+r_3+y_3)
\]
展开后就能得到所有的64种方案了。

那么我们仅仅关系用了哪些颜色,而不关心在哪些球上染色呢?

我们可以有:

\[
P(b, g, r, y) = (b+g+r+y)^3 \\
=(b^3+g^3+r^3+y^3)+[(3b^2g+3b^2r+3b^2y)+(3g^2b+3g^2r+3g^2y)+(3r^2b+3r^2g+3r^3y)+\\
(3y^2b+3y^2g+3y^2r)+(6bgr+6bgy+6bry+6gry)]
\]

它们的系数和是64,将使用颜色相同的视为同一种方案的话,本质不同的染色方案数为20,因为有20个项。

例3:用3种颜色b(蓝),r(红色),y(黄色)染4个不同的球, 将4个球分为2组,每组2个,要求同组的球色相同。

\[
P(b_1, b_2, r_1, r_2, y_1, y_2)\\
=(b_1^2+r_1^2+y_1^2)(b_2^2+r_2^2+y_2^2)
\]
展开后可以得到所有的方案。

我们改变Polya的表示方式,使之便于代入母函数。

Polya定理的母函数表示

我们将一个置换分解成若干的循环节之后。假设f的循环因子分解有\(e_1\)个1循环,\(e_2\)个2循环,\(\dots, e_n\)个n循环。

\[
1*e_1+2*e_2+\dots+i*e_i+\dots+n*e_n=n
\]
那么循环数\(\#(f)\)为

\[
\#(f) = e_1+e_2+\dots+e_n
\]
因为循环的类型仅取决于循环因子分解中的循环的阶数,与元素在哪一个循环中无关。所以,不同的置换可以有相同的类型,我们试图定义不同的类型来群分置换,所以引进n个未定的变元:

\[
z_1, z_2,\dots,z_n
\]
定义f的多项式为:

注释:它的定义是为了后面运用母函数的方便。
\[
mon(f) = z_1^{e_1}*z_2^{e_2}\dots z_n^{e_n}
\]
于是, 对于\(G\)中的每一个置换\(f\)的单项式进行求和,我们得到关于\(G\)中的置换按照类型的生成函数

\[
\sum_{f \in G}mon(f) = \sum_{f \in G}z_1^{e_1}z_2^{e_2}\dots z_n^{e_n}
\]
合并同类项,\(z_1^{e_1}z_2^{e_2}\dots z_n^{e_n}\)的系数等于同种置换类型的个数。

于是\(G\)的循环指数定义为该生成函数除以\(G\)中的置换的个数\(|G|\),

\[
P_G(z_1, z_2, \dots, z_n) = \frac{1}{|G|}\sum_{f \in G}z_1^{e_1}z_2^{e_2}\dots z_n^{e_n}
\]
我们以例1进行相应的说明:

变换的类型 置换拆分 置换的类型 单项式
旋转0° (1) (2) (3) (4) (4, 0, 0, 0) \(z_1^4\)
旋转90° (1 2 3 4) (0, 0, 0, 1) \(z_4\)
旋转180° (1 3) (2 4) (0, 2, 0, 0) \(z_2^2\)
旋转270° (4 3 2 1) (0, 0, 0, 1) \(z_4\)

定理3:

设\(X\)是元素集合,\(G\)是\(X\)的置换群,\(\{u_1, u_2, \dots, u_k\}\)是k种颜色的集合,C是X的任意着色集。这时,针对各颜色的数目C的非等价着色数的生成函数是

\[
P_G(z_1=u_1+u_2+\dots+u_k, z_2=u_1^2+u_2^2+\dots u_k^2, \dots, z_n = u_1^n+u_2^n+\dots+u_k^n)
\]
这里其实就是将\((z_1, z_2, \dots, z_n)\)替换成多项式,至于为什么可以这样替换,可以体会一下前面举的一些关于生成函数统计不同的方案数的例子。

我们还是用例1来体会:

设颜色为w(白色),b(黑色)
\[
P_G(z_1 = w+b, z_2=w^2+b^2, z_3 = w^3+b^3, z_4=w^4+b^4) \\
=\frac{1}{4}(z_1^4+z_2^2+2z_4) = w^4+w^3b+2w^2b^2+wb^3+b^4
\]
我们将它的系数相加,得到答案为6,与Burnside引理和前面的一般的Polya公式的计算结果一致!

实际上,我们为什么可以用\(m^{\#(f)}\)代入一开始的Polya公式呢?实际上生成函数也可以解释,生成函数的系数和必然为\(m^{\#(f)}\)

哈哈,终于把所有的知识和需要用的定理铺盖完毕!

下面,我们来解决我们最初的问题:

例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着色?

其中置换的方法有旋转 \(0^{\circ}, 72^{\circ}, 144^{\circ}, 216^{\circ}, 288^{\circ}\), 穿过一个点做对称轴进行翻转。

Burnside引理的解法

置换方式P 循环因子分解(Polya定理使用) 不变的着色数
旋转\(0^{\circ}\)
旋转\(72^{\circ}\)
旋转\(144^{\circ}\)
旋转\(216^{\circ}\)
旋转\(288^{\circ}\)
过1号点翻转
过2号点翻转
过3号点翻转
过4号点翻转
过5号点翻转

首先表示出所有的情况:

我们按照Burnside的定义,填写第三列的值:

旋转\(0^{\circ}\):
\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10
\end{pmatrix}
= (f_1)(f_2)(f_3)(f_4)(f_5)(f_6)(f_7)(f_8)(f_9)(f_{10})
\]
发现有16个不动点。

顺时针旋转\(72^{\circ}\) :
\[
p_2 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
5& 6 & 7 & 1 & 8 & 9 & 2 & 10 & 3 & 4
\end{pmatrix}
= (f_5 f_8 f_{10} f_4 f_1)(f_6 f_9 f_3 f_7 f_2)
\]
发现有0个不动点。

顺时针旋转\(144^{\circ}\):
\[
p_3 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
8& 9 & 2 & 5 & 10 & 3 & 6 & 4 & 7 & 1
\end{pmatrix}
= (f_8 f_4 f_{5} f_{10} f_1)(f_9 f_7 f_6 f_3 f_2)
\]
发现有0个不动点。

同理我们算出旋转\(216^{\circ}, 288^{\circ}\) 的不动点的个数都是0。

穿过1号点(最上面的点,顺时针依次标号为1, 2, 3, 4, 5)的对称轴:
\[
p_6 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
5& 2 & 9 & 8 & 1 & 7 & 6 & 4 & 3 & 10
\end{pmatrix}
= (f_5 f_1)(f_2)(f_3 f_9)(f_8 f_4)(f_7 f_6)(f_{10})
\]
有两个不动点。

同理,依次通过2, 3, 4, 5号点的对称轴,进行翻转的不动点都为2个。

于是我们可以填写下面的表:

置换方式 循环因子分解(Polya定理使用) 不变的着色数
旋转\(0^{\circ}\) 10
旋转\(72^{\circ}\) 0
旋转\(144^{\circ}\) 0
旋转\(216^{\circ}\) 0
旋转\(288^{\circ}\) 0
过1号点翻转 2
过2号点翻转 2
过3号点翻转 2
过4号点翻转 2
过5号点翻转 2

由Burnside引理,我们可以计算出不同等价类的染色数目为:

\[
L = \frac{10+0*4+2*5}{10} = 2
\]
实际上,我们有一个很直观的理解:

两个蓝色要么连在一起,要么两个蓝色中间间隔一个红色,总共有两种本质不同染色方案数。

Polya定理解法

Polya定理的基本形式:用m种颜色\(C ={c_1, c_2, \dots, c_m} 涂染个对象涂染n个对象S = {1, 2, \dots, n}\), 在S的置换群Q作用下, 不等价的方案数为:

\[
L = \frac{1}{\left | Q \right |}\sum_{q\in Q} m^{\lambda(q)}
\]
我们先填写第二列的表:

仅仅对节点进行变换,不考虑颜色。

旋转\(0^{\circ}\):

\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
1& 2 & 3 & 4 & 5
\end{pmatrix}
= (1)(2)(3)(4)(5)
\]
旋转\(72^{\circ}\):
\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
2& 3 & 4 & 5 & 1
\end{pmatrix}
= (2\quad 3 \quad4\quad 5\quad 1) = (1\quad 2 \quad3\quad 4\quad 5)
\]
旋转\(144^{\circ}\):
\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
3& 4 & 5 & 1 & 2
\end{pmatrix}
= (3\quad 5 \quad2\quad 4\quad 1) = (1\quad 3 \quad5\quad 2\quad 4)
\]
同理我们可以算出旋转\(216^{\circ}, 288^{\circ}\)的循环节。

经过1号节点的对称轴:

\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
1& 5 & 4 & 3 & 2
\end{pmatrix}
= (1)(2\quad 5)(3\quad 4)
\]
同理可以计算经过其他的节点进行翻转的循环节。

然后我们就可以填写下面的表了:

置换方式P 循环因子分解(Polya定理使用) 循环节的类型\((z_1, z_2, z_3, z_4, z_5)\)
旋转\(0^{\circ}\) (1) (2) (3) (4) (5) (5, 0, 0, 0, 0)
旋转\(72^{\circ}\) (1 2 3 4 5) (0, 0, 0, 0, 1)
旋转\(144^{\circ}\) (1 3 5 2 4) (0, 0, 0, 0, 1)
旋转\(216^{\circ}\) (1 4 2 5 3) (0, 0, 0, 0, 1)
旋转\(288^{\circ}\) (1 5 4 3 2) (0, 0, 0, 0, 1)
过1号点翻转 (1) (2 5) (3 4) (1, 2, 0, 0, 0)
过2号点翻转 (1 3) (2) (4 5) (1, 2, 0, 0, 0)
过3号点翻转 (1 5) (3) (2 4) (1, 2, 0, 0, 0)
过4号点翻转 (1 2) (3 5) (4) (1, 2, 0, 0, 0)
过5号点翻转 (1 4) (2 3) (5) (1, 2, 0, 0, 0)

1个(5, 0, 0, 0, 0), 4个(0, 0, 0, 0, 1), 5个(1, 2, 0, 0, 0)类型的

然后我们代入母函数:

\[
P_Q (Z_1, Z_2, Z_3, Z_4, Z_5) = \frac{1}{\left |Q \right |}*(Z_1^5+4*Z_5+5*Z_1Z_2^2) \\
P_Q (r+b, r^2+b^2, r^3+b^3, r^4+b^4, r^5+g^5) = \frac{1}{10}((r+b)^5+4(r^5+b^5)+5(r+b)(r^2+b^2)^2) \\
=\frac{1}{10}(10r^5+10r^4b+20r^3b^2+20r^2b^3+10rb^4+10b^5)
\]
我们单独观察\(r^3b^2\)的系数,发现是\(\frac{20}{10} = 2\),与我们的Burnside引理的计算结果一致!!

Burnside引理和Polya定理之间的联系的更多相关文章

  1. Burnside引理和Polya定理

    转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...

  2. Burnside引理和polay计数学习小记

    在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...

  3. 置换群和Burnside引理,Polya定理

    定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...

  4. Burnside引理与Polya定理

    感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运 ...

  5. Burnside引理与Polya定理 学习笔记

    原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...

  6. Burnside引理和polay计数 poj2409 Let it Bead

    题目描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ...

  7. 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)

    题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...

  8. 等价类计数(Polya定理/Burnside引理)学习笔记

    参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交 ...

  9. 等价类计数:Burnside引理 & Polya定理

    提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ ...

随机推荐

  1. [面试] Java GC (未整理完)

    Java GC简介 什么是 GC ? Java程序不用像C++程序在程序中自行处理内存的回收释放.这是因为Java在JVM虚拟机上增加了垃圾回收(GC)机制,用以在合适的时间触发垃圾回收. 你都了解哪 ...

  2. 享元模式-Flyweight(Java实现)

    享元模式-Flyweight 享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用. 本文中的例子如下: 使用享元模式: 小明想看编程技术的书, ...

  3. CSS定位 深入理解定位(position)的偏移

    前言 CSS有三种基本的布局机制:普通流.浮动和绝对定位.利用定位,可以准确地定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置.但元素究竟如何定位,定位到 ...

  4. JSP和后台交互时的乱码问题

    在Servlet或者是拦截器里面添加下面的语句: request.setCharacterEncoding("utf-8"); response.setCharacterEncod ...

  5. 将JSON转换成MAP的工具类

    package com.xxxx.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.Inp ...

  6. 管理外部表(External Tables)

    Oracle数据库允许对外部表中的数据进行只读访问.外部表定义为不驻留在数据库中的表,并且可以是为其提供访问驱动程序的任何格式.通过为数据库提供描述外部表的元数据,数据库能够公开外部表中的数据,就好像 ...

  7. nginx允许IP访问不生效问题【原创】

    使用nginx的nginx_upstream_check模块来检测后端服务器的转态时,设置只允许某段IP访问,发现不生效,不在此网段的IP也可以访问. 原因为在允许IP访问最后一定要加deny all ...

  8. 【easy】268. Missing Number

    Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...

  9. Lua模式匹配

    Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配.主要的原因出于程序大小方面的考虑:实现一个典型的符合POSIX标准的regexp大概需要4000行代码,这比整个Lu ...

  10. form 组件

    https://www.cnblogs.com/wupeiqi/articles/6144178.html class F2Form(forms.Form): title1=fields.CharFi ...