参考文章:
等价类计数问题
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∣1​g∈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引理(等价类计数问题)相关推荐

  1. Polya定理,Burnside引理

    涉及到组合数学的问题,首先是群的概念: 设G是一个集合,*是G上的二元运算,如果(G,*)满足下面的条件: 封闭性:对于任何a,b∈G,有a*b∈G; 结合律:对任何a,b,c∈G有(a*b)*c=a ...

  2. Polya定理与Burnside引理及其应用

    Polya定理及其应用 群与置换群 轮换 PolyaPolyaPolya定理 BurnsideBurnsideBurnside引理 PolyaPolyaPolya定理的简单应用 PolyaPolyaP ...

  3. 【算法讲27:Polya定理】BurnSide 引理 Polya定理 | 洛谷 P4980

    [算法讲27:Polya定理]洛谷 P4980 前置 引入 前置:BurnSideBurnSideBurnSide 引理 Polya 定理 回到题目 代码 注:下文证明都略,只记录重要的性质结论 前置 ...

  4. Burnside引理和Polya定理学习笔记

    前言 求·······的方案数 循环同构算一种 一脸懵逼 (于是我觉得系统的学一遍Burnside引理和Polya定理) 正文 置换 置换的概念 对于一个排列aia_iai​ 我们想成iii输进去会出 ...

  5. 【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1004 学习了下polya计数和burnside引理,最好的资料就是:<Pólya 计数法的应用 ...

  6. 解题报告 (五) Burnside引理和Polya定理

    Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Bu ...

  7. [学习笔记] 如果你愿意学那么你是可以看的懂的 —— 群论与 burnside 引理和 polya 定理

    群与子群 <G,op><G,op><G,op> 是一个群需要满足以下条件: opopop 是一个满足结合律的二元运算,如 *,+. GGG 是一个集合,存在单位元 ...

  8. Burnside引理和Polya定理详解(适合零基础)

    声明:本知识点为帮助大家更好地理解置换群论这一抽象的内容,一些定义中掺杂了撰写者自身的理解,和严格的数学定义有些出入,基本为数学定义的缩小解释和限制解释. 另外,统一一些符号的使用. 对集合A,|A| ...

  9. 置换群和Burnside引理,Polya定理

    定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...

最新文章

  1. B站收藏6.1w+!这门课拯救你薄弱的计算机基础
  2. Blog博客系统数据库设计
  3. FireMonkey 导出目前 Style 另存文件
  4. php将配置信息写入文件,Php写入配置文件的经典漏洞
  5. Handlebars partials 隐藏的力量
  6. 感知器的c++实现_使用FastAI和PyTorch的多层感知器
  7. 清华出版社送书 50 本,倒计时!
  8. 在SQL Server2005中使用 .NET程序集
  9. oracle扩容日志文件,调整Oracle Redo Logfile日志文件的大小
  10. oracle解析md5,Oracle中的MD5加密详解
  11. 一个基于 React 开发的PC端音乐App
  12. java hbase 例子,java操作hbase例子
  13. comsol matlab script,comsol script
  14. Centos升级Chrome浏览器
  15. Python的爬虫程序
  16. TM1650代码记录(基于51单片机)
  17. Jupyter-02-numpy:数组的维度
  18. 使用xInt开源库生成Excel文档xlsx
  19. 关于“‘c‘ argument has 1 elements, which is not acceptable for use with ‘x‘ with size 300“的解决办法
  20. 机器学习经典算法总结之线性回归

热门文章

  1. 单周加班-周数2021
  2. 小事记-- Pr 打开显示“不支持的视频驱动程序”
  3. easyar 识别成功后,怎么回调java层代码
  4. 将项目部署到nginx服务器上
  5. 什么是对抗网络,对抗网络能干什么,对抗网络简述。
  6. 防火墙、网关、路由器
  7. 入行AI,你需要一本Python机器学习入门 1
  8. 思科宣布推出面向中小企业的统一通信平台和全新销售效率计划
  9. 《数据库》第1章 数据库系统概论
  10. 将小写金额转换为大写金额