OI群论入门

· · 个人记录

建议到博客内看,不然可能有LaTeX爆炸问题?

废话

群论好强啊……

但其实并不是个太难理解的东西呢qwq。

为了方便理解,不会有出现大量数学符号堆在一起的地方。

下面进入正题

定义

群其实就是一个集合加上了若干个限制。

一般将群记作 (G,*)G 是一个集合,* 是集合 G 内的二元运算。(* 可以是 +~-~\times~\div 甚至是 \cup~\cap,这取决于集合 G 内的元素是什么,以及你想怎么用这个群)

对于一个群 (G,*),需要满足:

打个比方,(Z,+) 就是一个群,对于任意整数 a,ba+b 也一定是整数,故 a+b 也在 Z 中(封闭性),加法显然满足结合律0 就是单位元,对于任意整数 a,它的逆元就是 -a,也在 Z 中。

相关概念

阶: G 集合的大小称为群 (G,*) 的阶,记为 |G|

有限群&无限群: 如果 |G| 无限大,则称这个群为无限群,否则是有限群。

打个比方,上面的 (Z,+) 这个群就是无限群,有限群的例子下面有。

置换

定义

我们一般描述成这样:

\left( \begin{matrix} 1 & 2 & 3 & ... & n-1 & n\\ a_1 & a_2 & a_3 & ... & a_{n-1} & a_n \end{matrix} \right)

其中 a1 ~ n 的一个排列,这个置换表示将位置 1 上的元素放到位置 a_1,位置 2 上的元素放到 a_2……

由于其中涉及到 n 个元素,所以称其为 n 元置换。

举个例子,假设有一个置换 T

\left( \begin{matrix} 1 & 2 & 3 & 4\\ 4 & 3 & 1 & 2 \end{matrix} \right)

对于序列 A=(4,3,2,1),将 T 作用在 A 上,得到 A'=(2,1,3,4)

可以发现,将列进行调换不影响答案,比如说可以将上面的置换 T 改成:

\left( \begin{matrix} 2 & 4 & 3 & 1\\ 3 & 2 & 1 & 4 \end{matrix} \right)

将这个形式的 T 作用在 A 上依然能得到 A',原因显然。

连接

这是关于置换的运算,对于置换 A,BAB 即表示 AB 的连接运算。

连接运算的规则是这样的:

\left( \begin{matrix} a_1 & a_2 & a_3 & ... & a_n\\ b_1 & b_2 & b_3 & ... & b_n \end{matrix} \right) \left( \begin{matrix} b_1 & b_2 & b_3 & ... & b_n\\ c_1 & c_2 & c_3 & ... & c_n \end{matrix} \right)= \left( \begin{matrix} a_1 & a_2 & a_3 & ... & a_n\\ c_1 & c_2 & c_3 & ... & c_n \end{matrix} \right)

循环

对于一个 n 阶循环 (a_1a_2a_3...a_{n-1}a_n),它表示这样一个置换:

\left( \begin{matrix} a_1 & a_2 & a_3 & ... & a_{n-1} & a_n\\ a_2 & a_3 & a_4 & ... & a_n & a_1\\ \end{matrix} \right)

对于一个置换,我们可以将其表示为若干个不相交循环的乘积(并不是乘法的乘积,感性理解一下就好)。

比如说,对于这个置换:

\left( \begin{matrix} 1 & 2 & 3 & 4\\ 3 & 2 & 1 & 4 \end{matrix} \right)

就可以表示成 (1~3)(2)(4)

证明很显然,这里不赘述了。(不懂的话可以去做这题 找不到其他有这题的网站了……

置换群

置换群就是由置换组成的群,运算就是连接。

举个例子,假设有一个正方形,四个顶点染了色,可以旋转或翻折。那么置换就有 8 种:

  1. 不动,顺时针转 90\degree,180\degree,270\degree4
  2. 以两条对边的中点为轴翻转 180\degree,有 2 组对边
  3. 以两个对点为轴翻转 180\degree,有 2 组对点

显然,这 8 个置换可以组成一个置换群,由于这些置换包含了所有的置换方式,所以肯定满足封闭性,连接运算显然满足结合律单位元就是不动逆元就是反着操作。

以及,这是一个有限群。

陪集

HG 的一个子群(也需要满足上面 4 点限制),a\in G,那么 aH 称为 H 的左陪集,Ha 称为 H 的右陪集。(注意,陪集不是群,不需要满足 4 点限制)

其中,aH=\{ax|x\in H\},Ha=\{xa|x\in H\}

下面性质的证明都只考虑左陪集,因为右陪集的证明是基本一样的。

性质1

如果 a\in H,那么 aH=H

证明很显然,因为 H 内已经有 a 了,根据封闭性,对于任意 b\in H 都存在 (a*b)\in H,所以 aH 不会比 H 多出任何元素。

性质2

H 的所有陪集的大小都等于 |H|

对于一个陪集 aH,假如 a\in H,那么根据性质 1,可以得到 |aH|=|H|

假如 a\not\in H,那么 aH \cap H=\empty,且 aH 内没有相同的元素,根据陪集的定义,显然有 |aH|=|H|

性质3

如果 b\in aH,那么有 bH=aH

因为 b\in aH,所以 b 可以表示为 a*x,所以 bH=a*xH=aH

性质4

根据性质 3,可以得到这样的推论:如果 aH\cap bH\ne \empty,那么 aH=bH

证明很显然,设 c\in (aH\cap bH),那么就有 bH=cH=aH

拉格朗日定理

对于有限群 G 的任意子群 H,都有 |H|||G|

人话翻译:G 的阶是 H 的阶的倍数。

不要被拉格朗日吓到了,证明不难。

首先有一个结论:H 的所有陪集的并集等于 G。证明很显然。

又因为,H 的陪集 aH 要么满足 H=aH,要么满足 H\cap aH=\empty,所以可以将 G 划分为若干块,每一块是 H 的一个陪集,根据性质2,每一块的大小都是 |H|,所以 |H|||G|,以及 \frac {|G|} {|H|} 就等于块数。

以及,下面都只考虑有限群。

轨道-稳定集定理

这个定理主要用来辅助证明burnside定理。

首先给两个定义:

  1. 对于一个状态 k,将置换群 G 作用在 k 上,所有能够转移到的状态记录在集合 E_k 中,我们称 E 为等价类,E_kk 所在的等价类
  2. 对于一个状态 k,假如一个置换 T 作用在 k 上依然得到 k,那么将 T 记录在 Z_k 中,Z_k 表示作用在 k 上依然得到 k 的置换的集合。

轨道-稳定集定理:

对于任意状态 k,都有 |E_k|\times |Z_k|=|G|

先给个例子理解一下,就用百度百科上的正方形顶点二着色问题:

一共有 4 种置换:不动,旋转 90\degree,180\degree,270\degree,显然他们可以组成一个置换群 (G,连接)

这里没有像上面一样考虑翻折操作,因为这里只需要这四种置换就能组成置换群,换言之,在这题中任意翻折操作等价于某个旋转操作。(你可以试试看,对于任意状态 a,假如翻折能得到状态 b,那么 a 通过旋转也一定能得到状态 b

考虑状态 2,在 G 的作用下能得到的状态有 E_2=\{2,3,4,5\},作用在状态 2 上依然得到状态 2 的置换只有不动,即 |Z_2|=1,又因为 |G|=4,所以有 |E_2|\times |Z_2|=|G|

再看状态 1,在 G 的作用下能得到的状态有 E_1=\{1\},作用在状态 1 上依然能得到状态 1 的置换有 4 种(显然状态 1 怎么转都不变),即 |Z_1|=4,也满足 |E_1|\times |Z_1|=|G|

虽然可能是多嘴但还是说多一句:对于任意 l\in E_k,都有 E_l=E_k 以及 Z_l=Z_k,原因挺显然的,不明白的可以结合下面的证明来理解。

轨道-稳定集定理 证明:

首先,Z_k 其实是 G 的一个子群,因为它包含了所有作用在 k 上不变的置换,所以满足封闭性,连接运算满足结合律逆元就是反着操作,由于顺着操作不会变,所以反着操作也不会变,所以反着操作这个置换也一定在 Z_k 中,单位元就是不动,很显然不动这个置换一定在所有 Z 里面。

再看 E_k 中的状态,对于一个状态 p(p\ne k),从 k 转移到 p 一定要用到一个 Z_k 以外的置换 a,那么就存在一个 Z_k 的陪集 aZ_k,且 Z_k\cap aZ_k=\empty

结合性质 3 以及在拉格朗日定理中提到的将 G 进行分块,我们知道,对于任意 b\in aH,都有 bH=aH,也就是说,在 G 中有 |H| 个置换可以将 H 变成陪集 aH,且 aH=H,不妨称这些置换为本质相同的置换,显然的,有 \frac {|G|} {|H|} 个本质不同的置换。

可以发现一个性质 P:对于状态 k,一类本质相同的置换 b\in aZ_k 作用在 k 上时,得到的新状态 K 都是相同的。证明很显然,所有本质相同的 b 都可以表示为 a*x* 是连接运算),所以 b 作用在 k 上 等价于 先让 x 作用在 k 上,再让 a 作用在 k 上,由于 x\in Z_k,所以 xk 上作用完后依然得到 k,所以所有 b\in aHk 上作用都等价于 ak 上作用。

此时,k 一共可以置换到 |E_k| 种状态,根据性质 P,我们可以知道,这说明在所有置换中,有 |E_k| 种本质不同的置换,于是得到 |E_k|=\frac {|G|} {|H|},移项即得到 |E_k|\times |H|=|G|,而在这里,H 就是 Z_k,于是得证

burnside定理

这才是 OI 中群论的重头戏,基本上题目都是用到这个定理来解决。(顺便提一句,P\acute olya 定理的本质就是burnside定理)

还是要先说一个定义:在上面我们知道,对于一个状态 k,存在一些置换 Z_k,满足 Z_k 中的置换作用在 k 上时依然得到 k,设 T\in Z_k,那么我们称 kT 的不动点。显然,一个置换可以有多个不动点,设 c(f_i) 表示置换 f_i 的不动点数。

为了方便,设群 (G,*) 作用在状态 [1,n] 上,满足 G=\{f_i|i\in[1,n]\},其中 f_i 是一个置换,以及设 S 表示所有状态形成的等价类数量。

burnside定理:

S=\frac 1 {|G|}\sum_{i=1}^{|G|} c(f_i)

有了轨道-稳定集定理,这个东西证明起来真的太容易了。

先看后面的 \sum_{i=1}^{|G|} c(f_i),即所有置换的不动点数量之和,换一个角度来求这个东西,它等于 所有等价类的 |E|\times |Z| 之和,因为 E 中所有状态都是 Z 中任意置换的不动点。而每个等价类的 |E|\times |Z| 都等于 |G|。所以所有等价类的 |E|\times |Z| 之和就等于 S\times |G|

带入到上面的柿子,很显然等式成立了。

这个东西要应用到题目里的话,一般题目会要求出本质不同的方案数,而本质相同的方案之间一般可以通过旋转或翻折等方式得到,我们将这些操作作为置换,构成置换群,将其作用在所有方案上,可以得到若干个等价类,一个等价类里的方案都是可以通过置换相互得到的,这表明他们都是本质相同的方案,所以本质不同的方案数就是等价类数,用burnside定理求出来即可。

P\acute olya 定理

再次声明,这只是burnside定理的一个具体使用方式,要做更广泛的题还是要用burnside定理。

以及,回顾一个有点久远的知识点:每个置换可以表示成若干个循环的乘积。

P\acute olya 定理:

G=\{f_1,f_2,...,f_{|G|}\} 是作用在 [1,n] 上的置换群,给 [1,n] 进行染色,有 col 种颜色,则总方案数为 col^n,对于置换 f_i,设 m(f_i) 表示置换 f_i 可以拆成多少个循环的乘积,那么在 G 的作用下,[1,n] 的等价类数量为

\frac 1 {|G|}\sum_{i=1}^{|G|} col^{m(f_i)}

其实,里面的 col^{m(f_i)} 就等价于burnside定理中的 c(f_i),即不动点数量,因为 f_i 可以拆成 m(f_i) 个循环,而每个循环内要保持不动的话必须要求每个状态的颜色都相同,一共有 m 中颜色可以选择,而两两循环间的颜色互不相关,所以总不动点数就是 col^{m(f_i)}

例题

更多练习题的话,给大家安利这份题表。