【Burnside定理】&【Pólya定理】
Burnside & Pólya
(详细内容请参阅《组合数学》或2008年cyx的论文,这里只写一些我学习的时候理解困难的几个点,觉得我SB的请轻鄙视……如果有觉得不科学的地方欢迎留言)
Burnside:
我们要证明的是:$$N(G,C)=\frac{1}{|G|} \sum_{f \in G}|C(f)|$$
难点一:非等价着色数=等价类数目($N(G,C)$),这其实是从等价类的定义来的。。。因为一个等价类表示着一种与众不同的染色方案,当然有多少个等价类就有多少种非等价染色方案啦……(我是SB没想到QAQ)
证明主要是这样一个过程:(UOJ群神犇_数学迷:算两次,即同一个量以两种方法计算得到一个式子的方法)
难点二:我们的式子是:$$\sum_{f \in G} |C(f)| = \sum_{c \in C} |G(c)| $$
(我以二分图的模型来解释或许好理解一些?)
我们现在有 n 种染色方式(其中有一些是等价的),m 种置换。对于某种染色$c$和置换$f$,如果我们有 $f*c=c$,我们就连一条边 $c->f$
所以左边的点的度数和=右边的点的度数和=总边数
接下来,因为有(这个大概也算个难点吧……)$$ (与c等价的着色数)=\frac{|G|}{|G(c)|} $$
所以:$$ |G(c)|=\frac{|G|}{(与c等价的着色数)} $$
因此我们可以对刚刚的右边的式子变形,得到:$$ \sum_{c \in C} |G(c)|=|G| \sum_{c \in C} \frac{1}{(与c等价的着色数)}$$
难点三:这里我们发现:每一种着色方式我们都加了$\frac{1}{(与c等价的着色数)}$,我们可以按等价类分开,等价类中的每一种着色方式都加了$$\frac{1}{这个等价类的大小}$$所以每个等价类的贡献就是1,所以刚刚的右边的式子等于$$|G|*N(G,C)$$
得证。
Pólya:
了解了Burnside定理以后,我们对于等价类计数就有了这样一个方法:枚举染色方式(枚举每一格的染色方式)和置换方式,找到每个置换方式的不动点数目……然而这个复杂度比较高,所以我们可以拿Pólya来优化一下~
Pólya的做法是:只考虑染色的种类以及置换的方式,然后直接用【循环分解】的方式计算出每个置换的不动点数目,这样就少枚举了一维,降低了复杂度。(枚举每个置换,循环分解是O(p)的,p是格子数)
(然而刚刚的bb其实是不完整的,不过先这样理解好了。。。复杂一点的我也不会TAT)
刚刚说到直接用循环分解的方式计算出每个置换的不动点数目,这是怎么回事呢?我们发现,在这个置换下不动的染色方案,每一个循环一定是染了相同的颜色,所以这个置换方式下不动点数目就是 $(颜色数)^{(循环数)}$
不过我刚刚说的只是限于一种简单的情况……更多更完整的问题……还是看书吧T_T我这么弱……是吧……
【Burnside定理】&【Pólya定理】的更多相关文章
- 置换群 Burnside引理 Pólya定理(Polya)
置换群 设\(N\)表示组合方案集合.如用两种颜色染四个格子,则\(N=\{\{0,0,0,0\},\{0,0,0,1\},\{0,0,1,0\},...,\{1,1,1,1\}\}\),\(|N|= ...
- Burnside引理&Pólya定理
Burnside's lemma 引例 题目描述 一个由2*2方格组成的正方形,每个格子上可以涂色或不涂色, 问共有多少种本质不同的涂色方案. (若两种方案可通过旋转互相得到,称作本质相同的方案) 解 ...
- 数学:Burnside引理与Pólya定理
这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动 ...
- @总结 - 12@ burnside引理与pólya定理
目录 @0 - 参考资料@ @1 - 问题引入@ @2 - burnside引理@ @3 - pólya定理@ @4 - pólya定理的生成函数形式@ @0 - 参考资料@ 博客1 @1 - 问题引 ...
- Burnside 引理与 Pólya 定理
群 群的定义 在数学中,群是由一种集合以及一个二元运算所组成的,符合"群公理"的代数结构. 一个群是一个集合 \(G\) 加上对 \(G\) 的二元运算.二元运算用 \(\cdot ...
- 置换及Pólya定理
听大佬们说了这么久Pólya定理,终于有时间把这个定理学习一下了. 置换(permutation)简单来说就是一个(全)排列,比如 \(1,2,3,4\) 的一个置换为 \(3,1,2,4\).一般地 ...
- Pólya 定理学习笔记
在介绍\(Polya\) 定理前,先来介绍一下群论(大概了解一下就好): 群是满足下列要求的集合: 封闭性:即有一个操作使对于这个集合中每个元素操作完都使这个集合中的元素 结合律:即对于上面那个操作有 ...
- 【BZOJ1478】Sgu282 Isomorphism Pólya定理神题
[BZOJ1478]Sgu282 Isomorphism 题意:用$m$种颜色去染一张$n$个点的完全图,如果一个图可以通过节点重新标号变成另外一个图,则称这两个图是相同的.问不同的染色方案数.答案对 ...
- 【POJ2154】Color Pólya定理+欧拉函数
[POJ2154]Color 题意:求用$n$种颜色染$n$个珠子的项链的方案数.在旋转后相同的方案算作一种.答案对$P$取模. 询问次数$\le 3500$,$n\le 10^9,P\le 3000 ...
- 【POJ2409】Let it Bead Pólya定理
[POJ2409]Let it Bead 题意:用$m$种颜色去染$n$个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $n,m$很小就是了. 题解:在旋转$i ...
随机推荐
- Loadrunner11之禁用/启用Action
Loadrunner11之禁用/启用Action 大家在用Loadrunner11录制脚本的时候,会产生多个action,比如login, search, logout.在调试脚本的时候,我不想从 ...
- Django实战(8):对比RoR与Django的输入校验机制
rails有一个”简洁.完美的验证机制,无比强大的表达式和验证框架“.在<Agile Web Development with Rails 4th>一书的7.1节向我们展示了如何验证Pro ...
- CentOS 配置自启动Redis
第一步: 在/etc/init.d/目录下建立一个名字为 redis 的启动脚本 cd /etc/init.d touch redis 然后在这个脚本中添加如下脚本 <注意修改自己的PIDFI ...
- python脚本获取本机公网ip
1.获取公网IP地址方式,访问:http://txt.go.sohu.com/ip/soip 2.python脚本实现: #!/usr/bin/python # -*- coding:utf8 -*- ...
- 使用 Python 可以做什么?
翻译自 <Python学习手册(第5版)> Systems Programming Python 对操作系统服务的内置接口使其非常适合编写可移植.可维护的系统管理工具和实用程序 utili ...
- Top 5 SSH Clients for Windows (Alternatives of PuTTY)
这篇博文列举了可以替代putty的5个工具,有些实现了putty没有实现的一些功能.如下: PuTTy is the most popular SSH clients for Windows-base ...
- 常用的Jquery工具方法
一.根据后端动态字段,如何把驻点输出在页面上?1.可以提前写好css,设置li的宽度,在页面中通过模板引擎语法动态加载不同的className.2.可以根据驻点个数和位置,用jquery去动态计算赋值 ...
- .NET Core改造工程直播
[背景] 新项目需要跨平台,原来积累的.NET类库需要改造为.NET Core. [直播] 新增加的项目不支持排除文件 不支持定义条件编译常量,虽然在项目中能使用#if语法,但无地方定义DefineC ...
- [ 转载 ] Mysql 远程连接+开放80和3306端口 常用配置
直接上方法: 首先配置CentOS下防火墙iptables规则: # vim /etc/sysconfig/iptables 向其中加入下列规则: -A INPUT -m state –state N ...
- C++反汇编-结构体和类
学无止尽,积土成山,积水成渊-<C++反汇编与逆向分析技术揭秘> 读书笔记 对象的内存布局 一般计算公式: 对象内存大小 = sizeof(数据成员1)+ sizeof(数据成员2) +. ...