前置知识

  关系、映射等基本的东西就略啦。

  对于集合 \(S\not=\varnothing\) 与作用于 \(S\) 的元素的二元运算 \(\cdot\) 构成的代数结构 \((S,\cdot)\),若满足

  • 封闭性:\(\forall a,b\in S,~a\cdot b\in S\);
  • 结合律:\(\forall a,b,c\in S,~(a\cdot b)\cdot c=a\cdot(b\cdot c)\);
  • 存在单位元:\(\exist e\in S,~\forall a\in S, a\cdot e=e\cdot a=a\);
  • 存在逆元:\(\forall a\in S,~\exist b\in S,~a\cdot b = b\cdot a=e\),此时 \(a,b\) 互为逆元,称 \(b=a^{-1},a=b^{-1}\)。

则 \((S,\cdot)\) 为一个

  此外,若 \(T\subseteq S,T\not=\varnothing\),且 \((T,\cdot)\) 是群,则称 \((T,\cdot)\) 为 \((S,\cdot)\) 的子群

置换

  对于有限集 \(A=\{a_1,a_2,\cdots,a_n\}\),定义双射的函数 \(f:A\rightarrow A\) 是 \(A\) 的置换,一般性地记作

\[f=\begin{pmatrix}
a_1&a_2&\cdots&a_n\\
a_{p_1}&a_{p_2}&\cdots&a_{p_n}
\end{pmatrix},
\]

此时则有 \(f(a_i)=a_{p_i}\)。显然 \(p_{1..n}\) 构成了一个 \(1\sim n\) 的排列。

  定义作用于置换的复合运算 \(\cdot\)(也可以被叫做乘法?),对于置换 \(f=\begin{pmatrix}
a_1&a_2&\cdots&a_n\\
a_{p_1}&a_{p_2}&\cdots&a_{p_n}
\end{pmatrix}\) 与置换 \(g=\begin{pmatrix}
a_{p_1}&a_{p_2}&\cdots&a_{p_n}\\
a_{q_1}&a_{q_2}&\cdots&a_{q_n}
\end{pmatrix}\),有

\[f\cdot g=\begin{pmatrix}
a_1&a_2&\cdots&a_n\\
a_{q_1}&a_{q_2}&\cdots&a_{q_n}
\end{pmatrix}.
\]

\[(f\cdot g)(A)=g[f(A)].
\]

  接下来,为了引入置换群的概念,我们来研究复合运算的单位元、逆元与结合律。

  首先,置换的复合运算具有单位元,即恒等变换 \(\iota\)(iota, /aɪˈəʊtə/),例如 \(A\) 上的恒等变换为

\[\iota=\begin{pmatrix}
a_1&a_2&\cdots&a_n\\
a_1&a_2&\cdots&a_n
\end{pmatrix}.
\]

可见

\[f\cdot \iota=\iota\cdot f=f.
\]

  另一个特殊元自然是逆元。对于置换 \(f=\begin{pmatrix}
a_1&a_2&\cdots&a_n\\
a_{p_1}&a_{p_2}&\cdots&a_{p_n}
\end{pmatrix}\),构造其逆元 \(f^{-1}=\begin{pmatrix}a_{p_1}&a_{p_2}&\cdots&a_{p_n}\\a_1&a_2&\cdots&a_n
\end{pmatrix}\),那么有 \(f\cdot f^{-1}=f^{-1}\cdot f=\iota\)。

  复合运算具有结合律,即

\[(f\cdot g)\cdot h=f\cdot(g\cdot h).
\]

  最后,我们用 Pólya 定理中会涉及的循环置换的概念结束本节。

  循环置换,也即轮换,是一类特殊的置换,形象体现为

\[f=\begin{pmatrix}
a_1&a_2&\cdots&a_{n-1}&a_n\\
a_2&a_3&\cdots&a_n&a_1
\end{pmatrix}
\]

若两个轮换 \(f_1:A_1\rightarrow A_1\) 和 \(f_2:A_2\rightarrow A_2\) 满足 \(A_1\cap A_2=\varnothing\),则 \(f_1,f_2\) 不相交,考虑一个“乘积”运算,作用于 \(f_1\) 和 \(f_2\),得到 \(f_1\circ f_2:(A_1\cup A_2)\rightarrow(A_1\cup A_2)\) 是一个置换。若把 \(f_1,f_2\) 理解为关系集,亦能简洁地写作:

\[f_1\circ f_2=f_1\cup f_2
\]

  (注:这里将置换、函数、映射、关系集等概念视为一体,或有失严谨性,但的确有助于从本质上理解乘法操作。)

  显然,任何一个置换都可以唯一分解为若干轮换的乘积。对于置换 \(f\),我们定义其拆分得到的轮换数量为 \(c(f)\)。

Burnside 引理与 Pólya 定理

概念引入

  为让定理本身显得简洁明了,我们预先做一些陈述。

  对于有限集 \(A,B\) 和作用于 \(A\) 的所有置换构成的群(即置换群)\(G\),设所有 \(f:A\rightarrow B\) 构成映射集合 \(X\),即 \(X=B^A\)。基于 \(g\in G\) 对 \(A\) 的作用,我们定义 \(g\) 对一个映射 \(f:A\rightarrow B\) 的作用。设 \(f=\{\lang a,b\rang\mid a\in A,b\in B\}\),那么

\[g(f)=\{\lang g(a),b\rang\mid a\in A,b\in B\}.
\]

在此基础上,定义等价类:若 \(f_1,f_2\in X\),则 \(f_1,f_2\) 属于同一等价类,当且仅当 \(\exist g\in G,~f_1=g(f_2)\)。同时,令 \(G\) 作用在 \(X\) 上产生的等价类集合为 \(G/X\)。

引例

稍作停顿,形象理解这些概念是重要而关键的一步。考虑对 \(2\times 2\) 的方格染色,每个格子可以染蓝色或白色,如在下图中:

一起把上面的对象一一具体化:

  • \(A\),一个 \(2\times 2\) 方格中的四个格子,它们是四个独立的元素。不妨从上到下,从左到右记作 \(a_1,a_2,a_3,a_4\),则 \(A=\{a_1,a_2,a_3,a_4\}\);
  • \(B\),颜色集合 \(\{\text{W(white)},\text{B(blue)}\}\);
  • \(f:A\rightarrow B\),一种染色方案,例如 \(f=\{\lang a_1,\text W\rang,\lang a_2,\text B\rang,\lang a_3,\text W\rang,\lang a_4,\text B\rang\}\) 就描述了 \(13\) 号图的染色方案;
  • \(X\),所有染色构成的集合;
  • \(g(f)\),将已染好色的四个格子换换位置,得到的新的染色方案。例如 \(g=\begin{pmatrix}a_1&a_2&a_3&a_4\\a_2&a_4&a_1&a_3\end{pmatrix}\)(即顺时针旋转 \(90^\circ\))作用在 \(13\) 号图的染色方案上,得到 \(g(f)=\{\lang a_2,\text W\rang,\lang a_4,\text B\rang,\lang a_1,\text W\rang,\lang a_3,\text B\rang\}\),对应到图上,\(16\) 号!正是 \(13\) 号图顺时针旋转 \(90^\circ\) 的结果。
  • 等价类,例如当 \(G\) 仅包括“保持不变”和“左右对称”两种置换,则等价类有 \(\{1\},\{2\},\{3,4\},\{5,6\},\{7,8\},\{9,10\},\{11,12\},\{13,15\},\{14\},\{16\}\)(数字为图的编号)。

轨道-稳定子(Orbit-Stabilizer)定理

  为透彻地理解、证明并推广后续引理和定理,我们需要引入轨道稳定子的概念,并证明轨道-稳定子定理

  \(G\) 和 \(X\) 的定义同上,并定义

  • \(\forall x\in X\),\(x\) 的稳定子

    \[G^x=\{g\in G\mid g(x)=x\}.
    \]
  • \(\forall x\in X\),\(x\) 的轨道

    \[G(x)=\{g(x)\mid g\in G\}.
    \]

  轨道-稳定子定理

\[|G|=|G^x||G(x)|.
\]

证明

  如果你对本节并不感兴趣,可跳过本节。搞 OI 的证结论干吗。

  因为实在懒得写了,你得知道(至少说了解):

  • 群论中的 Lagrange 定理,推荐学习地址 link
  • 陪集的定义,度娘 link

  尝试向 Lagrange 定理靠拢。因为对于 \(G\) 的子群 \(H\),会有

\[|G|=|H|[G:H],
\]

其中 \([G:H]\) 为 \(H\) 在 \(G\) 中的不同左陪集数量,即

\[[G:H]=|\{gH\mid g\in G\}|.
\]

所以我们先证明 \(G^x\) 是 \(G\) 的子群。依次核对群的性质:

  • 封闭性:\(\forall f,g\in G^x,x\in X,~(f\cdot g)(x)=f(g(x))=f(x)=x\),故 \((f\cdot g)\in G^x\);
  • 结合律:置换的复合自然有结合律咯;
  • 单位元:\(\iota(x)=x\),自然有 \(\iota\in G^x\);
  • 逆元:\(\forall g\in G^x,~g^{-1}(x)=g^{-1}(g(x))=(g^{-1}\cdot g)(x)=\iota(x)=x\),故 \(g^{-1}\in G^x\)。

走到此,已有

\[|G|=|G^x|[G:G^x],
\]

现只需证 \(|G(x)|=[G:G^x]\)。

  尝试构造出一个 \(G(x)\) 与 \((G:G^x)\) 之间的双射 \(\varphi\)。这里直接给出答案,令关系 \(\varphi\) 满足

\[\varphi=\{\lang g(x),gG^x\rang\mid g(x)\in G(x)\},
\]

下证 \(\varphi\) 的确是一个双射:

  • 取 \(f(x)=g(x)\in G^x\),左右 \(\cdot f^{-1}\),得到 \(\iota(x)=x=(f^{-1}\cdot g)(x)\),随之则是 \((f^{-1}\cdot g)G^x=G^x\),左右 \(\cdot f\),得 \(gG^x=fG^x\);
  • 取 \(fG^x=gG^x\in(G:G^x)\),同理可得 \(g(x)=f(x)\)。
  • “既单又满”已体现,故 \(\varphi\) 是双射,\(|G(x)|=[G:G^x]\)。

综上,轨道-稳定子定理成立。\(\square\)

Burnside 引理

  Burnside 引理:在上述定义中,有

\[|X/G|=\frac{1}{|G|}\sum_{g\in G}|X^g|,
\]

其中

\[X^g=\{x\in X\mid g(x)=x\},
\]

为 \(X\) 中的映射在 \(g\) 的作用下不改变的集合,称为 \(g\) 关于 \(X\) 的不动点集合。Burnside 引理则可用自然语言描述为:\(G\) 作用与 \(X\) 的等价类数量 等于 \(G\) 中的置换关于 \(X\) 的不动点集合大小的平均值

证明

  我们方才只证了引理的引理 qwq。现在回到 Burnside 引理的证明。

\[\begin{aligned}
\sum_{g\in G}|X^g|&=|\{(g\in G,x\in X)\mid g(x)=x\}|\\
&=\sum_{x\in X}|G^x|\\
&=\sum_{x\in X}\frac{|G|}{|G(x)|}~~~~\text{(Orbit-Stabilizer)}\\
&=|G|\sum_{Y\in X/G}\sum_{x\in Y}|G^x|^{-1}\\
&=|G|\sum_{Y\in X/G}\sum_{x\in Y}|Y|^{-1}\\
&=|G||X/G|
\end{aligned}
\]

移项即证。\(\square\)

Pólya 定理

  Pólya 定理:记号意义同 Burnside 引理部分,有

\[|X/G|=\frac{1}{|G|}\sum_{g\in G}|B|^{c(g)},
\]

其中 \(c(g)\) 表示 \(g\) 拆分为不交的循环置换所得到的转置的数量。

证明

  本节证明并不依赖于上一节证明,且你完全可以驾驭本节。不然讲 Burnside 引理就没用了。

  对于 Burnside 引理,我们只需说明 \(|B|^{c(g)}=|X^g|\)。不妨记 \(g=g_1\circ g_2\circ\cdots\circ g_k\),其中 \(g_i~(i=1,2,\dots ,k)\) 为不交的循环转置。进一步,我们需要证明

\[\forall f\in X,~g(f)=f\Leftrightarrow (\forall i\in[1,k],~\forall u,v\in g_i,~f(u)=f(v)).
\]

说人话:\(f\) 是 \(g\) 的不动点 等价于 对于 \(g\) 所拆分为的每个循环置换,其中的元素由 \(f\) 映射为同一值

  那么正确性显而易见了:一个环,顺序转一格和原来一样,当且仅当环上每个元素都一样。\(\square\)

应用例

  稍作休整,我们上一道经典的手玩题。

对于 \(2\times2\) 的方格图,用两种颜色为每个格子染色,求旋转同构意义下本质不同的方案数。还是上文的图:

  \(G\) 的元素,即“旋转”,那么有四种:

  • 恒等变换(不旋转);
  • 顺时针旋转 \(90^\circ\);
  • 顺时针旋转 \(180^\circ\);
  • 顺时针旋转 \(270^\circ\)。

逻辑上需要小心,我们必须穷举所有的置换,而不能有“转 \(90^\circ\) 再转 \(180^\circ\) 就是转 \(270^\circ\) 之类的想法”。之后套用 Pólya 定理:

  • 恒等变换:有 \(4\) 个循环;
  • 顺时针旋转:有 \(1\) 个循环;
  • 顺时针旋转:有 \(2\) 个循环;
  • 顺时针旋转:有 \(1\) 个循环。

方案数:\(\frac{2^4+2^1+2^2+2^1}{4}=6\),好耶!

完整的 Pólya 定理及扩展

概念引入

  有时,我们想求的并非“所有染色方案”,而是“某种颜色染多少个时的方案”。在计数过程中将状态分类,这是 GF,即生成函数擅长的操作。在理解简单的 Pólya 定理后,我们向其中引入生成函数来将其扩展。

  这里,我们先来定义循环指标。对于 \(n\) 元置换 \(g\) 的轮换分解,若有 \(b_i\) 个大小为 \(i\) 的轮换,则 \(g\) 的循环指标为

\[Z_g(x_1,x_2,\cdots,x_n)=\prod_{i=1}^nx_i^{b_i},
\]

是一个 \(n\) 元生成函数。紧接着,定义置换群 \(G\) 的循环指标为

\[Z_G=\frac{1}{|G|}\sum_{g\in G}Z_g,
\]

即它所包含的所有置换的循环指标的平均值。

Pólya × GF——完整的 Pólya 定理

  在染色方案集 \(X=B^A\) 的基础上,我们为每个颜色 \(b\in B\) 规定一个权值 \(\omega(b)\in [0,+\infty)\cap\mathbb N\),并把权值均为 \(k\) 的颜色归为 \(k\) 类颜色。令 \(f(x)\) 是关于颜色类型,以类型数量为系数的生成函数,即

\[f(x)=\sum_{i\ge 0}f_ix^i,
\]

其中 \(f_k\) 即权值为 \(k\) 的颜色数量。

  Pólya 定理:设 \(F(x)\) 表示所有染色方案,关于颜色权和,以对应方案数为系数的生成函数,那么

\[F(x)=Z_G(f(x),f(x^2),\cdots,f(x^n)).
\]

可以发现,令 \(f(x)=|B|\),即所有颜色的全为 \(0\),我们就得到了上文中简单形式的 Pólya 定理。自然,由简单的 Pólya 定理到这里生成函数形式的 Pólya 定理的推导过程也是平凡的,形象地考虑每个轮换的贡献即可,这里略过。

  Emmm...先到这里叭,以后再更(咕)。

Note -「群论」学习笔记的更多相关文章

  1. Note -「线性规划」学习笔记

    \(\mathcal{Definition}\)   线性规划(Linear Programming, LP)形式上是对如下问题的描述: \[\operatorname{maximize}~~~~z= ...

  2. 「ExLucas」学习笔记

    「ExLucas」学习笔记 前置芝士 中国剩余定理 \(CRT\) \(Lucas\) 定理 \(ExGCD\) 亿点点数学知识 给龙蝶打波广告 Lucas 定理 \(C^m_n = C^{m\% m ...

  3. 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势

    0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有 ...

  4. Note -「Lagrange 插值」学习笔记

    目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...

  5. Note -「动态 DP」学习笔记

    目录 「CF 750E」New Year and Old Subsequence 「洛谷 P4719」「模板」"动态 DP" & 动态树分治 「洛谷 P6021」洪水 「S ...

  6. Note -「圆方树」学习笔记

    目录 圆方树的定义 圆方树的构造 实现 细节 圆方树的运用 「BZOJ 3331」压力 「洛谷 P4320」道路相遇 「APIO 2018」「洛谷 P4630」铁人两项 「CF 487E」Touris ...

  7. Note -「Dsu On Tree」学习笔记

    前置芝士 树连剖分及其思想,以及优化时间复杂度的原理. 讲个笑话这个东西其实和 Dsu(并查集)没什么关系. 算法本身 Dsu On Tree,一下简称 DOT,常用于解决子树间的信息合并问题. 其实 ...

  8. Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门

      进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...

  9. Note -「单位根反演」学习笔记

    \(\mathcal{Preface}\)   单位根反演,顾名思义就是用单位根变换一类式子的形式.有关单位根的基本概念可见我的这篇博客. \(\mathcal{Formula}\)   单位根反演的 ...

随机推荐

  1. mongodb基础整理篇————常规操作[二]

    前言 简单整理一下常规操作. 正文 虽然一般说写代码看的是思想,但是呢,如果不知道mongodb 有哪些常用的操作,那么你怎么能知道mongodb是否符合你的需求,比如说如果聚合功能都没有,你得自己写 ...

  2. SYCOJ1717负二进制

    题目-负二进制 (shiyancang.cn) 进制的实质在于对于进制数的选择,选择不满足的填入当前的位置,然后除掉,继续开始选择.但是对于本题,是负数,但是进制上的数字为正数,所以就要调整,借位,因 ...

  3. CSS命名规范整理

    基于网易NEC修改后,整理的命名规范 单行写完一个选择器定义 便于选择器的寻找和阅读,也便于插入新选择器和编辑,便于模块等的识别.去除多余空格,使代码紧凑减少换行. 如果有嵌套定义,可以采取内部单行的 ...

  4. python极简教程04:进程和线程

    测试奇谭,BUG不见. 大家好,我是谭叔. 这一场,主讲python的进程和线程. 目的:掌握初学必须的进程和线程知识. 进程和线程的区别和联系 终于开始加深难度,来到进程和线程的知识点~ 单就这两个 ...

  5. 龙芯 3A4000 安装 Debian stable

    2022-01-17 版权声明:原创文章,未经博主允许不得转载 3A5000 开始,龙芯转向 loongarch ,新的架构虽然甩掉了历史包袱,但也需要一段时间来积累生态.在这半年多的时间里, loo ...

  6. 使用Cesium的地下渲染技术可视化瑞士的地质资源

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Camptocamp为瑞士拓扑的孪生数字增加了地下可视化功能. ...

  7. 初识WorldWind——WorldWind编译生成,解决乱码等问题

    本文中World Wind的GitHub源码下载地址:https://github.com/hujiulin/WorldWind 美国国家航空航天局(National Aeronautics and ...

  8. tarjan全家桶

    tarjan 全家桶 关于tarjan 它太强了 CCCOrz dfs树&low dfs树:在图上做不重复经过同一点的dfs,经过的边与点形成一棵树.于是图上所有点都被这棵树包含,一部分边被包 ...

  9. java继承基础内容

    1 /* 2 * 继承的好处: 3 * 1,提高了代码的复用性. 4 * 2,让类与类之间产生了关系,给第三个特征多态提供了前提. 5 * 6 * 7 * java中支持单继承.不直接支持多继承,但对 ...

  10. ant -design vue a-tree 树形控件

    话不多说,先上代码. <a-tree v-if="this.treeData && this.treeData.length > 0" ref=&quo ...