置换群,Polya引理和burnside引理(等价类计数问题)
参考文章:
等价类计数问题
Burnside引理&Pólya定理
Burnside引理与Polya定理
置换群和Burnside引理,Polya定理
概念引入:
离散数学应该学过置换群的相关概念,置换本质就是映射,可以理解成一个正方形绕其中心逆时针旋转90度,就可以看作是正方形四个顶点的置换。
置换会形成一个环。且如果一个状态经过置换后跟原来相同,可以认为该状态为f的不动点。
有些题目中经常出现”本质不同的方案数“,一般是指等价类的数目,题目定义一个等价关系,满足等价关系的元素属于同一等价类。等价关系通常是一个置换集合F,如果一个置换能把其中一个方案映射到另一个方案中,就认为两者是等价的。
题目引入:
问题描述
一个由2*2方格组成的正方形,每个格子上可以涂色或不涂色,问共有多少种本质不同的涂色方案。
(若两种方案可通过旋转互相得到,称作本质相同的方案)
解法:
先看一共有多少方案,不考虑本质不同,一共16种
现在我们开始将本质相同的方案合并归类:
方案1:{1}
方案2:{2}
方案3:{3,4,5,6}
方案4:{7,8,9,10}
方案5:{11,12}
方案6:{13,14,15,16}
一共六种不同的方案
这里结合我们上面说的,旋转可以看作是置换,所有置换组成置换群。
如果x通过置换(旋转)得到y,说明x和y等价。
与x互相等价的一组元素组成一个集合,称为x的等价类。
不动元为旋转一定角度,图形不发生改变
在这个问题中,我们要求的就是有多少个等价类?
我们引入一个引理:burnside引理
burnside引理:
∣X/G∣=∣G∣−1⋅∑g∈G∣xg∣|X/G|=|G|^{−1}⋅∑_{g∈G}|x^g|∣X/G∣=∣G∣−1⋅g∈G∑∣xg∣
等价类的个数 = 每个置换中不动元的个数和 ➗置换群的大小
我们统计不动元的个数
不旋转(逆时针360度):不动元16个
逆时针90度,不动元2个{1,2}
逆时针180度,不动元4个{1,2,11,12}
逆时针270度,不动元2个{1,2}
置换群大小为4
∣X/G∣=16+2+4+24|X/G|=\frac{16+2+4+2}{4}∣X/G∣=416+2+4+2
Burnside’s引理:
∣X/G∣=∣G∣−1⋅∑g∈G∣xg∣|X/G|=|G|^{−1}⋅∑_{g∈G}|x^g|∣X/G∣=∣G∣−1⋅g∈G∑∣xg∣
等价类的个数 = 每个置换中不动元的个数和 ➗置换群的大小
等价类的个数=不动元个数的平均数
Burnside引理是一种计数方法,用来计算含有不等价类的数量
burnside算法的关键是找好“置换群”。
burnside引理首先就要列出所有nmn^mnm种可能的染色方案,然后找出每个置换下保持不变的方案数
如果当m或n很大的时候,这个方法就会非常繁琐,这时候就要用到Polya定理
Pólya引理:
Polya定理是Burnside引理的具体化,提供了计算不动点的具体方法
假设一个置换有k个循环,每个循环对应的所有位置颜色需要一致,而任意两个循环之间选色互不影响。因此,如果有m种可选颜色,则该置换对应的不动点个数为mkm^kmk,用其代替Burnside,就得到等价类数目为:
∣YXG∣=1∣G∣∑g∈G∣Y∣c(g)|\frac{Y^X}{G}|=\frac{1}{|G|}∑_{g∈G}|Y|^{c(g)}∣GYX∣=∣G∣1g∈G∑∣Y∣c(g)
染色方案数(等价类个数)=1珠子数(总置换数)∑对于每种置换颜色数(映射数)循环节数染色方案数(等价类个数)=\frac{1}{珠子数(总置换数)}\sum_{对于每种置换}颜色数(映射数)^{循环节数}染色方案数(等价类个数)=珠子数(总置换数)1对于每种置换∑颜色数(映射数)循环节数
c(g)表示第i个置换包含的循环个数
此时需要考虑的图如下:
颜色情况={不染色,染色}
G={逆时针90度,逆时针180度,逆时针270度,不转}
不转:a1=(1)(2)(3)(4) ,四个循环节
逆时针90度:(1,4,3,2)
逆时针180度:(1,3)(4,2)
逆时针270度:(1,2,3,4)
这个(1,3)就相当于逆时针旋转180,1会到3,3会到1,而与(2,4)互不相关
由Polya定理得:24+21+22+214=6\frac{2^4+2^1+2^2+2^1}{4}=6424+21+22+21=6
为什么Burnside引理种循环节里面是1 ~ 16种,而到Ploya考虑就成1 ~ 4了?
Burnside是对正方形染色后状态的置换(16种状态即16个元素),而Ploya是四个方格的置换(因此是4个元素)。m的k次方的计算方法正来自每个循环内的方格可以遍历m种颜色,而一共有k个循环。如果循环内的方格颜色不同就不是不动点了
例题:
luogu 1446
luogu 4980
UVA11255
UVA10601
置换群,Polya引理和burnside引理(等价类计数问题)相关推荐
- Polya定理,Burnside引理
涉及到组合数学的问题,首先是群的概念: 设G是一个集合,*是G上的二元运算,如果(G,*)满足下面的条件: 封闭性:对于任何a,b∈G,有a*b∈G; 结合律:对任何a,b,c∈G有(a*b)*c=a ...
- Polya定理与Burnside引理及其应用
Polya定理及其应用 群与置换群 轮换 PolyaPolyaPolya定理 BurnsideBurnsideBurnside引理 PolyaPolyaPolya定理的简单应用 PolyaPolyaP ...
- 【算法讲27:Polya定理】BurnSide 引理 Polya定理 | 洛谷 P4980
[算法讲27:Polya定理]洛谷 P4980 前置 引入 前置:BurnSideBurnSideBurnSide 引理 Polya 定理 回到题目 代码 注:下文证明都略,只记录重要的性质结论 前置 ...
- Burnside引理和Polya定理学习笔记
前言 求·······的方案数 循环同构算一种 一脸懵逼 (于是我觉得系统的学一遍Burnside引理和Polya定理) 正文 置换 置换的概念 对于一个排列aia_iai 我们想成iii输进去会出 ...
- 【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)
http://www.lydsy.com/JudgeOnline/problem.php?id=1004 学习了下polya计数和burnside引理,最好的资料就是:<Pólya 计数法的应用 ...
- 解题报告 (五) Burnside引理和Polya定理
Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Bu ...
- [学习笔记] 如果你愿意学那么你是可以看的懂的 —— 群论与 burnside 引理和 polya 定理
群与子群 <G,op><G,op><G,op> 是一个群需要满足以下条件: opopop 是一个满足结合律的二元运算,如 *,+. GGG 是一个集合,存在单位元 ...
- Burnside引理和Polya定理详解(适合零基础)
声明:本知识点为帮助大家更好地理解置换群论这一抽象的内容,一些定义中掺杂了撰写者自身的理解,和严格的数学定义有些出入,基本为数学定义的缩小解释和限制解释. 另外,统一一些符号的使用. 对集合A,|A| ...
- 置换群和Burnside引理,Polya定理
定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
最新文章
- B站收藏6.1w+!这门课拯救你薄弱的计算机基础
- Blog博客系统数据库设计
- FireMonkey 导出目前 Style 另存文件
- php将配置信息写入文件,Php写入配置文件的经典漏洞
- Handlebars partials 隐藏的力量
- 感知器的c++实现_使用FastAI和PyTorch的多层感知器
- 清华出版社送书 50 本,倒计时!
- 在SQL Server2005中使用 .NET程序集
- oracle扩容日志文件,调整Oracle Redo Logfile日志文件的大小
- oracle解析md5,Oracle中的MD5加密详解
- 一个基于 React 开发的PC端音乐App
- java hbase 例子,java操作hbase例子
- comsol matlab script,comsol script
- Centos升级Chrome浏览器
- Python的爬虫程序
- TM1650代码记录(基于51单片机)
- Jupyter-02-numpy:数组的维度
- 使用xInt开源库生成Excel文档xlsx
- 关于“‘c‘ argument has 1 elements, which is not acceptable for use with ‘x‘ with size 300“的解决办法
- 机器学习经典算法总结之线性回归