[置换群&Polya计数]【学习笔记】
昨天看了一下午《组合数学》最后一章然后晚上去看别人的blog发现怎么都不一样,我一定是学了假的polya
其实是一样的,只不过《组合数学》没有太多的牵扯群论。于是又从群论角度学了一遍。
现在来总结,我主要从书上的角度来,群论的知识见$TA$爷的总结
置换
设$X$为有限集${1,2,...,n}$,$X$的置换$i_1,i_2,...,i_n$是函数:
$f:X \rightarrow X$
$f$是满射的
$X$所有置换的集合$S_n$
函数的$compositon$运算:
$(g \cdot f)(k)=g(f(k))=j_{i_k}$
满足结合律,通常不满足交换律
$(f \cdot g)\cdot h\ =\ f \cdot (g \cdot h)$
恒等置换$\iota(k)=k$
逆元$f^{-1}$
交换置换$f$的上下两行,再把上一行排序
$f(s)=k,\ f^{-1}(k)=s$
$f \cdot f^{-1}=\iota$
置换群
$S_n$的非空子集$G$满足:
$1.\ $合成运算的封闭性 $\forall f,g \in G,\ f \cdot g \in G$
$2.\ $单位元 $\iota \in G$
$3.\ $逆元的封闭性 $\forall f \in G,\ f^{-1} \in G$
阶:置换群中元素个数
置换群满足消去律:$f \cdot g=f \cdot h \rightarrow g=h$
证明:逆元和结合律
着色
就是给$X$中的每一个元素分配一个颜色
设$c$是$X$的一种着色,$i$的颜色为$c(i)$
$*$运算:
置换对着色的作用
$f$将$k$变为$f(k)$,所以$f*c$将$k$的颜色变到$f(k)$
$(f*c)(i_k)=c(k)\ k=1,2,..,n$
$(f*c)(l)=c(f^{-1}(l))\ l=1,2,...,n$
着色集
$C$满足:
$\forall f \in G,c \in C,\ f*c \in C$
两种运算的关系:$(g \cdot f)*c\ =\ g*(f*c)$
根据$compositon$的定义显然成立
等价关系:
类似偏序关系具有自反性和传递性,不同在于具有对称性
着色等价:
$\exists f \in G,\ f*c_1=c_2\ $则$c_1 ~ c_2$
证明:
$1.\ $自反性:$G$中单位元存在
$2.\ $对称性:$G$中逆元存在
$3.\ $传递性:$G$中合成运算具有封闭性
不同的等价类将$C$划分成若干部分
$Burnside$定理
$G(c)={f:\ f \in G,\ f*c=c}$
使着色$c$不变的置换集合,$c$的稳定核
$C(f)={c:\ c \in C,\ f*c=c}$
置换$f$作用下不变的着色集合,$f$的不动点
$G(c)$形成一个置换群(是$G$的子群)
且$\forall f,g \in G,\ g*c=f*c$当且仅当$f^{-1} \cdot g \in G(c)$
证明:置换群的定义;乘逆元。
轨道-稳定核定理
与$c$等价的着色数
$orbit(c)=|{f*c:\ f \in G}|=\frac{|G|}{|G(c)|}$
等于$G$中置换个数除以$c$的稳定核中置换的个数
证明:
满足$g*c=f*c$的$g$的集合为${f \cdot h:\ h \in G(c)}$
由消去律可知集合大小为$|G(c)|$,$G(c)$中包括$\iota$所以这个集合包括$f$自身
也就是说对于每个$f$有$|G(c)|$个置换与他的效果相同
那么与$c$等价的着色数就是$\frac{|G|}{|G(c)|}$啦
还可以从陪集的角度:
$g$的集合是子群$G(c)$关于$f \in G$的一个陪集,大小为$|G(c)|$
一个陪集中对$c$的作用效果显然相同,每个陪集要么相等要么不相交,那么$c$能变成的着色就是不相等的陪集的个数。因为所有陪集的并集为$G$,所以不相等的陪集的个数就是$\frac{|G|}{|G(c)|}$
上面一句是我口胡的,正确与否概不负责,不详细写了。
$Burnside$定理
着色集$C$中非等价着色数
$N(G,C)=\frac{1}{|G|}\sum\limits_{f \in G}|C(f)|$
等于所有|C(f)|的平均值
证明:
我们用两种方法计数$f*c=c$的$(f,c)$的个数
$\sum\limits_{f \in G}|C(f)|\ =\ \sum\limits_{c \in C}|G(c)|$
$=|G|\sum\limits_{c \in C}{\frac{1}{orbit(c)}}$
式子中每个等价类的贡献为$1$,所以
$=|G| \times N(G,C)$
得证
$Polya$定理
将置换看成有向图
$D_f=(X,E_f),\ E_f={(i,f(i)):\ i \in X}$
$n$个点$n$个弧
可以划分成若干个有向环,每个有向环是一个循环置换
阶为$1$的循环就是恒等置换
$f$可以被分解成循环的$composition$的形式,不相交的循环满足分配律
设循环的个数$\#(f)$,用$k$种颜色着色,
那么$|C(f)|=k^{\#(f)}$
证明:显然$f$作用下不变的着色每一个循环中着色必须相同。
$N(G,C)=\frac{1}{|G|}\sum\limits_{f \in G}k^{\#(f)}$
然后《组合数学》上又推了生成函数
$f$的$i$阶循环的个数为$e_i$
$e_1+e_2+...+e_n=\#(f)$
$f$的类型$type(f)=(e_1,e_2,..,e_n)$
$f$的单项式$mon(f)=z_1^{e_1}...z_n^{e_n}$,其实就是都取$k$时就是$k^{\#(f)}$
对这个单项式求和就得到了$G$按类型的生成函数,系数为每个类型的个数
然后定义$G$的循环指数
$P_G(z_1,z_2,..,z_n)=\frac{1}{|G|}\sum\limits_{f \in G}z_1^{e_1}...z_n^{e_n}$
都带入$k$就是上面的非等价着色数的
然后还推广到给定每种颜色的个数,并不觉得在$OI$中有什么用...
[16:25:34]好吧我错了还是有用的,说一下吧
设$k$种颜色集合${u_1,u_2,...,u_k}$,每种颜色要求次数$p_i$
本来我们在循环指数中代入$k$,现在我们在$z_i$代入$u_1^i+u_2^i+...+u_k^i$
然后$u_1^{p_1} u_2^{p_2} ... u_n^{p_n}$的系数就是指定颜色的方案数了
然后有什么意义呢?
做背包
指数就是体积,系数就是方案数
就是把循环分给颜色
[置换群&Polya计数]【学习笔记】的更多相关文章
- Polya 定理 学习笔记
群 群的定义 我们定义,对于一个集合 \(G\) 以及二元运算 \(\times\),如果满足以下四种性质,那我们就称 \((G,\times)\) 为一个群. 1. 封闭性 对于 \(a\in G, ...
- Burnside引理与Polya定理 学习笔记
原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...
- 【学习笔记】Polya定理
笔者经多番周折终于看懂了\(\text{Burnside}\)定理和\(\text{Polya}\)定理,特来写一篇学习笔记来记录一下. 群定义 定义:群\((G,·)\)是一个集合与一个运算·所定义 ...
- swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- IP地址和子网划分学习笔记之《预备知识:进制计数》
一.序:IP地址和子网划分学习笔记开篇 只要记住你的名字,不管你在世界的哪个地方,我一定会去见你.——新海诚 电影<你的名字> 在我们的日常生活中,每个人的名字对应一个唯一的身(敏)份(感 ...
- stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)
STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启 ...
- 2019国家集训队论文《整点计数》命题报告 学习笔记/Min25
\(2019\)国家集训队论文<整点计数>命题报告 学习笔记/\(Min25\) 补了个大坑 看了看提交记录,发现\(hz\)的\(xdm\)早过了... 前置知识,\(HAOI\)< ...
- 【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)
http://www.lydsy.com/JudgeOnline/problem.php?id=1004 学习了下polya计数和burnside引理,最好的资料就是:<Pólya 计数法的应用 ...
- ucos实时操作系统学习笔记——操作系统在STM32的移植
使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...
随机推荐
- mysql 恢复数据
前提:保存了需要恢复数据库的文件 .frm 和 .ibd 文件 条件:InnoDB 类型的 恢复表结构1.新建一个数据库--新建一个表,表名和列数和需要恢复数据库相同2.停止mysql服务器 serv ...
- cesium编程入门(二)环境搭建
环境搭建 环境搭建 编译 node 安装 Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 安装完成后,打开命令行,输入:node -v,如果结果 ...
- Android初学:Gradle 'HelloWorld' project refresh failed
Gradle 'HelloWorld' project refresh failed Error:Failed to open zip file.Gradle's dependency cache m ...
- web框架前言与学生数据库系统(附1.0源码)
对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. import socket def f1(request): ""&quo ...
- 如何在外部终止一个pengding的promise对象
今天在整理前段时间做过的项目,发现之前在集成web环信的时候遇到过一个奇怪的需求:需要终止一个正在进行等待返回的promise,或者阻止其调用resolve和reject.(具体为何会有这种需求我也不 ...
- 急!!ftp登录错误,提示 530 not logged in,连接失败 ,,是怎么回事啊
愤怒地青鸟 | 浏览 68533 次 发布于2017-04-11 00:44 最佳答案 核心提示:Ftp登陆不了是很经常碰到的事,很多人常常是不加分析就发贴询问.老实说,这样既浪费自己时间,又浪费别人 ...
- JavaScript实现Tab栏切换
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 京东网页上,可以看到下面这种tab栏的切换: 我们把模型抽象出来,实现一 ...
- hasResultError
hasResultError 的作用是 让返回的对象可以报错误信息.
- 使用git bash提交代码到github托管
1.首先登录到https://github.com注册Github帐号,并且创建一个repository. 或者登录到 https://git.oschina.net/注册账号,并且创建一个rep ...
- Nodejs+Grunt配置SASS项目自动编译
Nodejs+Grunt配置SASS项目自动编译 早前听说Nodejs和Grunt很强大,特别是用来构建自动化的前端开发,更是强大无比.但一直碍于自己掌握的技术有限,不敢深入,也未曾深入下去.最近在开 ...