Burnside引理和Polya定理

首先谈一下我对置换群的理解(PS:写给没学过抽象代数的我们……):置换群就是一些置换的集合,例如

(12233144)

是一个置换,但不是一个置换群,置换只与每列的相对字符有关,与列顺序天关,比如
(12233144)=(23123144)

(3241)
在经过
(12233144)
置换之后就成了
(4321)

群还要求一些奇特的性质,比如
1f,gG,fg=h,hG;2f,g,hGfghf(gh);3eG,fG,feeff;4fGf1G,使ff1=f1f=e;

置换群就是一个将置换作为元素的群。

好,我们进入正题Burnside引理
定义:设G={a1,a2,…ag}是目标集[1,n]上的置换群。每个置换都写成不相交循环的乘积。 c1(ak) 是在置换 ak 的作用下不动点的个数,也就是长度为1的循环的个数(其实就是被置换 ak 置换过后位置不变的元素个数)。通过上述置换的变换操作后可以相等的元素属于同一个等价类。若G将[1,n]划分成L个等价类,则:
L=1|G|i=1gc1(ai)

证明:
Zk使k
EiiG
易得
k=1n|Zk|=i=1gc1(ai)

就是每个数的置换集合的大小之和等于每个置换后不变元素的个数的和
k=1n|Zk|=i=1LkEi|Zk|=i=1L|Ei||Zi|=L|G|L=1|G|i=1gc1(ai)

下面讲一下我的理解:
同一个等价类的元素,Zi肯定是相同的,所以
kEi|Zk|=|Ei||Zi|

VFK告诉我“轨道大小 * 稳定化子数 = 变换个数”这句话就是指
|Ei||Zi|=|G|

i的等价类的个数*令i不变化的置换的个数 = 置换的总个数
所以有 L|G|=gi=1c1(ai)
移项后便得到了
L=1|G|i=1gc1(ai)

以上便是 Burnside 引理
如果想要得到 c1(a) 的值,似乎自己想不到什么比较好的方法,那就搜索吧!
给个例题吧,n个空格,每个空格可以选择染成黑色,可以不染,那么有几种可能?如果这n个空格围成了一个圈,那么又有几种可能?
在这里(如果我没想错的话)G={转0个,转1个, 转2个……,转n-1个}(顺时针) |G|=n
c1(0)=nc1(1)=c1(n1)= 具体的好像就要搜索了。时间复杂度为 O(nsp) 。(n表示元素个数,s表示置换个数,p表示格子数,这里n的规模是很大的,所以Burnside引理这届应用在OI的机会很少)
所以接下来就是用Pólya定理的时候了,目的就是在短时间求得 c1(a)
我们记一个循环 (a1a2an1an) 表示 (a1a2a2an1an1anana1) ,每个置换可以被唯一分解为互不相交的循环的积。
例如: (1325314452) = (13)(25)(4)

这里先给出Pólya定理的公式:
λ(ai) 为置换ai的循环数量

L=1|G|aiGmλ(ai)

有一个变形:记 λL(ai) 是置换ai中长度为L的循环的数量。
那么
L=1|G|aiGmλ1(ai)+λ2(ai)++λn(ai)

我们可以很直观的理解一下,比如一个长度为n的排列,有一种置换,循环节数为n(就是没有变……),那么所有染色方案都是互不重复的,所以有m^{n}种情况。

你可能感兴趣的:(心得体会)