ACM_置换群 burnside引理 Polya定理

置换群也是群论当中一个比较重要的内容,可是在离散课上老师直接跳过了这章内容我也是……(日了dog了),自己看了半天资料总算是有点眉目了。

1.置换群:

首先我们来介绍一下置换,设S为一个n个元素的集合,置换就是S->S的一个双射函数。写出来看起来就像是给这n个元素换位置一样

我们一般的写法为:

有时候我们会看到一些置换的写法是这样的(……)(……)……,一开始小编看着也是一脸懵逼,不知道是什么意思,后来才知道一个括号里面的就是一个循环节。

举个例子,给出一排排列数,6,3,4,2,1,5,最终要把它变成1,2,3,4,5,6,我们在变换的时候可以发现其实是有一些循环节的,比如,我们移动6,就可以得到6->5->1->6,这就是一个循环节,当然3->4->2->3也是一个循环节,我们就可以把这个置换写为(6,5,1)(3,4,2)这种乘积的形式。


我们把S上的所有的置换组成的集合,关于置换乘积(就是双射函数的复合运算)所构成的群称之为n元对称群,而n元对称群的任何子群称之为n元置换群,这就是关于我们置换群的概念问题了。

2.burnside引理:

接下来小编讲一下burnside引理,首先还是从概念上讲起。在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积。 设C1(ak)是在置换ak的作用下不动点的个数,也就是长度为1的循环的个数。通过上述置换的变换操作后可以相等的元素属于同一个等价类

那么等价类的个数就等于:


关于这个引理的证明,比较复杂,大家有兴趣的可以在百度百科上看(好吧,小编承认自己解释不清楚),

举一个burnside引理解决问题的一个例子:一正方形分成4格,2着色,有多少种方案?其中,经过转动相同的图象算同一方案。

显然,从填色的角度讲,一共有2^4=16种填色情况:

ACM_置换群 burnside引理 Polya定理_第1张图片

关于转动,一共有四种置换方法,我们分别列出来

不动(360度):a1=(1)(2)…(16)
逆时针转90度 :a2=(1)(2)(3 4 5 6)(7 8 9 10) (11 12)(13 14 15 16)
顺时针转90度 :a3=(1)(2)(6 5 4 3)(10 9 8 7)(11 12)(16 15 14 13)
转180度:a4=(1)(2)(3 5)(4 6)(7 9)(8 10)(11)(12) (13 15)(14 16)
由Burnside引理,共有(16+2+2+4)/4=6(种方案)


不知道大家看懂了没有,Burnside引理可以针对图像集的转动群来求解,但是当多种颜色着色的时候,理论上还是可以用到Burnside引理(这句话摘的别人的,但是小编其实并不知道怎么搞),一般还是用到Pólya定里来求解。

3.Pólya定理:

在一个置换群G={a1,a2,a3……ak}中,设C(ak)是在置换ak的循环节个数,那么用m种颜色染图这n个对象,则不同的染色方案数为:


证明小编依然还是不做过多说明,简单的解释一下这个C(ak),在前面小编也介绍了循环节的概念,那么C(ak)就是我们的循环节数,也就是能构成的括号的个数,Pólya定理在计算多种颜色着色的问题的时候也是用到了很多。

你可能感兴趣的:(ACM_算法_模板)