Burnside引理和polay计数学习笔记

来源:互联网 发布:linux 分辨率 编辑:程序博客网 时间:2024/05/18 02:21

首先提出一个问题,在一个2*2的矩阵里染色,旋转后相同算作一种,问有多少种染色方法。

这里写图片描述

显然穷举有那么多种,然后发现,(3,4,5,6)是同一种,(7,8,9,10)是一种,(11,12)是一种,(13,14,15,16),1是一种,2是一种。

发现,颜色少的时候,格子少的时候还是很容易枚举的,但是当问题规模大的时候,计算起来就会比较麻烦。

所以我们要来介绍一下Burnside定理和polay计数。

首先是Burnside定理,介绍之前,首先介绍几个概念。

一。置换群G,即所有的置换。以上面的为例子,置换一共有4种—旋转0度,旋转90度,旋转180度,旋转270度。所以|G|=4

二。第二个概念,Zk 对于每个元素K,这里的K满足1<=k<=16,G中使得K保持不变的置换全体。

eg.Z1={g1,g2,g3,g4}

Z11={g1,g3}

三。第三个概念,Ek 对于每个元素k,在四种置换下依次得到G下的转换的编号。

eg.E1={1},E2={3,4,5,6}

没一个Ei其实就是一个等价类。

根绝上述定义,很容易得到一个公式:
|Ek||Zk|=|G|

PS:|Ek|是第k个元素,在四种变换下能形成的种数。

|Zk|k在|G|种置换下保持不变的个数。

G表示置换种数

四。接着我们引出第四个概念。D(gi)表示在第i种置换下,没发生变换的元素个数

D(g1)=16,D(g2)=2,D(g3)=4,D(g4)=2

举例说就是在第一种置换下,16个元素都不会发生变化,在第二种置换下,1和2元素不会发生变化。

显然有个公式16j=1|Zj|=4i=1D(gi)

那么我们下面来进行最后的公式推导。

n=Li=1|Ei| ps.L个等价类

nj=1|Zj|=Li=1jE|Zj|=Li=1|Ei||Zi|=L|G|

又因为16j=1|Zj|=4i=1D(gi)

所以推出了我们著名的Burnside定理:

L=1|G|i=1|G|D(gi)

这就是著名的Burnside定理。 第一步求出所有的置换。第二步求出所有置换下,不变元素个数。所最开始的例子。ans=(16+2+4+2)/4=6.但是我们发现这个的第二部比较难求。所以我们接下来介绍polay计数法。

polay定理

首先先介绍一个概念—循环节。

观看下一组置换(1,2,3,4,5)>(3,5,1,4,2)

他的循环节是(13)(25)(4),所以循环节长度是3,两个循环节是不想交的。

记上个问题按逆时针将四个格子放上1,2,3,4。

然后G={g1,g2,g3,g4},|G|=4 ,g_i 的循环节个数记为c,则有下述情况

g1 旋转0度:g1=(1)(2)(3)(4)c(g1)=4

g2 旋转90度:g2=(4321)c(g2)=1

g3 旋转180度:g3=(13)(24)c(g3)=2

g4 旋转270度:g4=(1234)c(g4)=1

我们发现,gi的同一个置换节中的元素用同一种颜色(现在可以用m种颜色,最初的样例是m=2)则染色得到的方案数mc[i] 就是在上面gi 置换下不变的元素个数

2c(g1)=24=16=D(g1)

2c(g2)=21=2=D(g2)

2c(g3)=22=4=D(g3)

2c(g4)=21=2=D(g4)

最后就可以得到著名的polay公式。

L=1|G|1|G|mc(gi)

至于如何使用这个定理,我们只需要找到每个置换的循环节即可。

0 0
原创粉丝点击