Pólya 定理

这是唯一一个一节课听得半懂的知识点。

这个定理主要处理一些 本质不同 的问题。

我们通过一个例子来从头到尾的讲这个定理。

现有一 n 个顶点的正多边形,对每个顶点选择 k 种颜色之一染色,如果两种方案可以通过刚体变换使之对应点完全重合,那么认为这两种方案是本质相同的.
求本质不同的染色方案数.

我们先来认识置换

一些定义

对于后文,你可能会看到两种 C,我们定义花体 C 表示所有状态,而原体的就表示其中一个等价类。

置换

一种变换,你可以认为是一种状态到另一种状态的映射。

但是一个置换是两个状态的表示,一个起始状态一个终点状态表示这次置换从什么状态变成了什么状态。而起始状态一般我们手写定义为十分简单的状态。

好,对于上面一个问题,我们有若干刚体置换。

置换的乘法

置换之间是有乘法运算的,这定义为置换通过置换变成一个新的置换,就是经过两次置换的结果。

G 是一个集合。而 是这个集合上的一个计算。若 G 上有封闭性、结合律、单位元存在性、逆元存在性,则称 (G,) 构成一个群。

封闭性

G 中元素经过 运算得到的结果还是 G 中元素。

结合律

A,B,CG

ABC=A(BC)

单位元存在性

εG,AG,εA=A

逆元存在性

AG,A1G,AA1=ε

置换群

现在有 n 阶置换构成的一个集合 G,若其满足如下性质:

  1. G 中任意两个置换的复合也是 G 中的置换。
  2. G 中包含恒等置换。恒等置换就是指我这个状态经过这个变换之后变换到了自己。
  3. G 中的任何元素均有逆置换。

我们给出如下定义:

像上面的例子一样,正 n 边形的所有 n 种旋转与 n 种翻转构成一个置换群,这种置换群称为 n 阶正二面体群。如果只考虑旋转,那么也可以构成一个群,称为 n 阶循环群。考虑 n 阶所有置换构成的集合(有 n! 个),也可以构成一个群,称为 n 阶对称群。

等价类

c1,c2C 是两种着色方案,如果存在 fG 使得 c1G=c2 那么我们认为 c1,c2 是本质相同的,这一点是十分显然的。

我们来证明一下,本质相同是等价关系。

等价关系的定义是一个性质满足自反性,传递性,对称性。

而这个东西很显然就不证了吧。

定义推到这里,我们成功的把问题转化为了等价类的数目。

一些研究

考虑一个等价类 C 中的一个元素 c,设在置换群 G 中存在 N(c) 个不同的元素 f,使得 fc=c,那么我们证明,|C||N(c)|=|G|

我们首先证明 N(c) 是一个子群。

由于这些性质都很显然,我们就证一个逆元存在性把。

因为 fc=c 那么一定有 f1c=c 好像还是非常显然的。

我们定义 N(c,c) 表示在 fG,满足 fc=cf 构成的集合, 那么显然有 |G|=cC|N(c,c)|,那么我们就是要证明 |N(c,c)|=|N(c)| 力。

我们建立 N(c,c)N(c) 之间的双射,这就能说明 |N(c,c)|=|N(c)|,为此,任取 f 满足 c=fc。这一双射将 fN(c) 映到 ffN(c,c)

一方面,设 fN(c) 于是 (ff)c=f(fc)=fc=c,从而 ffN(c,c),类似也有 fN(c,c)f1fN(c)

另一方面,对 fN(c)f1(ff)=f,对 fN(c,c)f(f1f)=f,从而其确为双射。

Burnside 引理

Burnside 引理就与我们上面证明的柿子很有关系。

我们证明了 |G|=cC|N(c)|=|C||N(c)| 特别的, \(N(c)=\frac{|G|}{|\mathcal{C|}\) 与我当前的 c 是什么没有关系,

所以, |G|=cC|N(c)|=cC|N(c)| 两边对所有等价类求和。

就是 Burnside 引理了。

不等价着色数等于群中各元素在群作用下不动点的平均数。

形式化的说,对于每个群中的元素 g,设 N(g) 表示满足 gc=ccC 的数量,那么答案为 1|G|gG|N(g)|

置换的分解 & Polya 定理

我们现在仍遇到一个严重的问题,就是计算 |N(g)|。我们假设 G 是置换群。

我们总是可以把一个置换分解成若干个互不相交的循环的积,在这里,一个循环是一个数列, a1,a2,...,ak,使得 g(ai)=ai+1形象的说,可以想象一个有向图,其中第 i 个点有一条指向 i+1 的有向边。那么,置换的分解相当于将这个图分解成若干连通分支,而每个连通分支都是一圈,即循环。

那么 Polya 定理表明,一个合法的染色方案在 N(g) 中,当且仅当每一个循环上的所有点都染成了同一种颜色。

posted @   Mercury_City  阅读(148)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示