Burnside引理与polay定理
#Burnside引理与polay定理
引入概念
1.置换
简单来说就是最元素进行重排列
是所有元素的异议映射,即\([1,n]\)映射到\([1,n]\)
\[ \begin{pmatrix} 1&2&i \ldots n \\ a_{1} & a_{2}&a_{i} \ldots a_{n} \end{pmatrix}\]
比如,把正方体绕中心旋转90度,可以看做四个顶点的一个置换
(1)置换可以构成换:对于元素连一条有向边,连到置换中映射的元素,会构成n个环,(循环)
(2)如果一个状态\(S\)经过置换后与原来相同,即\[S[1]=S[a_1],S[2]=S[a_2] \ldots S[n]=S[a_n]\]
那么称这个状态\(S\)为不动点
(3)本质不同的方案数一般指方案类的种数,等价关系通常是一个置换集合,如果一个置换能把其中一个方案映射到另一个方案那么他么是等价的。置换构成的置换群就是交换排列顺序而已。
(4)多个置换构成置换群
2Brunside
对于一个置换群\(G\),\(G\)是目标集[1,n]上的置换群,若一个染色方案\(S\)经过置换后不变,称\(S\)为G的不动点。将不动点的数目记为\(C(G)\)则等价类\(l\)的数目为\(C(G)\)的平均值
\[l=\dfrac {1}{\left| G\right| }[c_1(a_1)+c1(a_2)+ \ldots +c_1(a_g)]\]
证明
明的话,泥萌还是去看抽象数学吧QAQ
百度百科给了证明
证明1:\(g\in G\),记\(X_g(x)=1\)表示\(g(x)=x\)否则\(X_g(x)=0\)。考虑以下和式:

对于上式最右边我们有:

所以:

例子
一个正方形分成4格,着上两种颜色,有多少种方案?其中经过转动相同图像的算一种方案

根据计数原理,每个格子都有两种颜色可选
所以,一共有16种图像
对于图中图像的置换可分为以下四种
不动:
\[a_1=(1)(2)\ldots (16)\]
逆时针旋转90度
\[a_2=(1)(2)(3\ 4\ 5 6)(7\ 8\ 9\ 10) (11\ 12)(13\ 14\ 15\ 16)\]
顺时针旋转90度
\[a_3=(1)(2)(6\ 5\ 4\ 3)(10\ 9\ 8\ 7)(11\ 12)(16\ 15\ 14\ 13)\]
旋转180度
\[a_4=(1)(2)(3\ 5)(4\ 6)(7\ 9)(8\ 10)(11)(12) (13\ 15)(14\ 16)\]
那么有Burnside引理可知
第一种情况不动点种类为16(全)种
第二种情况不动点种类为$(1) (2)\(2种 第三种情况与第二种情况相同 第四种情况为\)(1) (2) (11) (12)$4种
那么有Burnside引理可知
等价类的种类为(16+2+2+4)/4=6种
例题:
POJ 2154
3Polya定理
利用Burnside引理要首先列出所有\(n^m\)种可能的染色方案
然后找出在每个置换下保持不变的方案数,显然当m或n很大的时候,复杂度会炸,这时就需要用到polya定理。
Polya定理实际上是Burnside引理的具体化,提供了计算不动点的具体方法。
假设一个置换有\(\sigma_k\)个循环,就是轮换
易知每个循环对应的所有位置颜色需一致,而任意两个循环之间选什么颜色互不影响。因此,如果有m种可选颜色,则该置换对应的不动点个数为\(m^{\sigma_k}\)。
用其替换Burnside引理中的\(C(G)\),即\(C(G)=m^k\)。得到等价类数目为:
\[M=\dfrac {1}{\left| G\right| }\sum ^{|G|}_{k=1}m^{\sigma _{k}}\]
\(|G|\)表示置换的数目\(\sigma _k\)表示第k个置换包含的循环数目
例子

仍然是一个正方形分成4格,着上两种颜色
那么对于一种定点而言
当
不动:\(a_1=(1)(2)(3)(4)\) //单个
旋转90度 :\(a_2=(1\ 2\ 3\ 4)\) //全涂
旋转180度 :\(a_3=(1\ 3)(2\ 4)\) //单排
旋转270度:\(a_4=(1\ 4\ 3\ 2)\) //对角线
那么\(M=\dfrac {1}{4} * (2^4+2^1+2^2+2^1)=6\)
例题
POJ1286
完
Burnside引理与polay定理的更多相关文章
- 置换群和Burnside引理,Polya定理
定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
- @总结 - 12@ burnside引理与pólya定理
目录 @0 - 参考资料@ @1 - 问题引入@ @2 - burnside引理@ @3 - pólya定理@ @4 - pólya定理的生成函数形式@ @0 - 参考资料@ 博客1 @1 - 问题引 ...
- Burnside引理与Polya定理
感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运 ...
- Burnside引理与Polya定理 学习笔记
原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...
- 数学:Burnside引理与Pólya定理
这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动 ...
- Burnside 引理与 Pólya 定理
群 群的定义 在数学中,群是由一种集合以及一个二元运算所组成的,符合"群公理"的代数结构. 一个群是一个集合 \(G\) 加上对 \(G\) 的二元运算.二元运算用 \(\cdot ...
- 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)
题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...
- Burnside引理和Polya定理之间的联系
最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着 ...
- 【POJ2888】Magic Bracelet Burnside引理+欧拉函数+矩阵乘法
[POJ2888]Magic Bracelet 题意:一个长度为n的项链,有m种颜色的珠子,有k个限制(a,b)表示颜色为a的珠子和颜色为b的珠子不能相邻,求用m种珠子能串成的项链有多少种.如果一个项 ...
随机推荐
- SecureCRT自动登录跳板机/堡垒机并连接目标机器
公司登录目标服务器,需要先登录跳板机(堡垒机),然后再登录目标机器,一共需要4.5步. MAC或LINUX机器可以写.SH脚本,那WINDOWS有没有一键登陆的方法呢? 常用的SecureCRT工具就 ...
- selenium fluentwait java实例
本文转自:http://www.programcreek.com/java-api-examples/index.php?api=org.openqa.selenium.support.ui.Flue ...
- KindleEditor insertfile初始化多个
KindEditor.ready(function (K) { var editor = K.editor({ allowFileManager: true }); K('#insertfile'). ...
- 第十章 用户数据报协议和IP分片
用户数据报协议和IP分片 UDP是一种保留消息边界的简单的面向数据报的传输层协议.它仅提供差错检测.只是检测,而不是纠正,它只是把应用程序传给IP层的数据发送出去,但是并不会保证数据能够完好无损的到达 ...
- 爬虫python
最近看到电影,也看了很多的评论,想了解下大多人对相关电影的评论,正好也在学习Python,就利用其爬虫的强大能力,这里利用Python3.6.1 下面是相关代码: #coding:utf-8 __au ...
- 01、JAVA开发准备
一.首先要认识几个名词: 1. JRE(Java Runtime Environment ,JAVA运行环境):它包含Java虚拟机(JVM,Java Virtual Machine)和Java程序所 ...
- (总结)Nginx 502 Bad Gateway错误触发条件与解决方法
一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现.以下是从Google搜集整理的一些Nginx 502错误的排查方法,供参考: Nginx 502 ...
- min_free_kbytes是内存最安全值的阈值,然后这个值是怎么影响到系统内存回收的呢?
min_free_kbytes 内存域水印值:min_free_kbytes 当不设置的时候:sqrt(16M)=4k 4k*4 = 16k 设置内存水印值的函数是: 6792 /* 6793 * I ...
- DateBase -- Rising Temperature
Question: Given a Weather table, write a SQL query to find all dates' Ids with higher temperature co ...
- Java -- Matrix的一点认识
例如在如下一段代码中: Matrix m = new Matrix(2,3); for(int i=0; i<m.getRowDimension(); i++) { for(int j=0; j ...