收藏 分享(赏)

算法合集之《pálya计数法的应用》.ppt

上传人:j35w19 文档编号:7019795 上传时间:2019-05-01 格式:PPT 页数:40 大小:254.50KB
下载 相关 举报
算法合集之《pálya计数法的应用》.ppt_第1页
第1页 / 共40页
算法合集之《pálya计数法的应用》.ppt_第2页
第2页 / 共40页
算法合集之《pálya计数法的应用》.ppt_第3页
第3页 / 共40页
算法合集之《pálya计数法的应用》.ppt_第4页
第4页 / 共40页
算法合集之《pálya计数法的应用》.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、Plya计数法的应用,南京外国语学校 陈瑜希,问题描述,06年江苏上海选拔赛 染色图是无向完全图,且每条边可被染成k种颜色中的一种。 两个染色图是同构的,当且仅当可以改变一个图的顶点的编号,使得两个染色图完全相同。 问N个顶点,k种颜色,本质不同的染色图个数(模质数NP109)。 N53,1,2,3,1,2,3,问题描述,3,1,2,1,3,2,问题描述,问题描述,N=3 K=2,简单分析,枚举会超时普通的乘法原理无法求解,Burnside引理,设G是置换群,C是G的着色集合。 C中的不等价着色数为:使着色通过G中的置换保持不变的着色的平均数。,Plya定理,假设有k种不同的颜色,某个置换的循

2、环数为c,则对于这个置换,通过它保持不变的着色数为,k的c次方。,例题分析,放在这个问题中,置换群中的对象就是所有的边,染成k种颜色,G就是由点的置换引起的边的置换的群。,分析,例如N=3时一共有3条边。 点的不同排列有3!=6种。 由点的置换而引起的对应的边的置换如下:,1,2,3,3,1,2,分析,先求出每个置换的循环数c 根据Plya定理,可求出本质不同的方案数:,分析,这个算法十分直观,直接套用了Plya定理,但需要枚举每个对于点的置换,并求循环数。时间复杂度为 O(N!N2)。 对于本题N53的数据范围,这个算法会超时。,分析,再进一步分析问题,会发现,其实这N!个置换中,有许多是类

3、似的,比如:,分析,观察这些对于点的置换,发现它们都是由一个长度为1和一个长度为2的循环组成。 显然它们对应的边的置换,也是类似的。如果把每个置换都处理一遍,是很浪费的。 这3个,只要处理一个即可。,分析,枚举出所有本质不同的对于点的置换,并对每种置换求下面2个值 1、该种置换的对应边的置换的循环节数 2、与该种置换类似的置换总数,分析,要保证枚举出来的对于点的置换各不相同,只需枚举它的所有循环节长度,设为Li,并保证 0L1L2Lm L1+L2+Lm=N N=53时,一共要需要枚举329921种不同情况。,分析,然后需要把对应点的循环信息转化成对应边的置换的循环节数,分析,假设点i与点j同属

4、于一个长度为L的循环中, 则 (i,j)组成的置换中循环节个数为 有一个长度为5的循环(1,2,3,4,5) (1,2),(2,3),(3,4),(4,5),(5,1) (1,3),(2,4),(3,5),(4,1),(5,2),分析,假设点i与点j各属于长L1和L2的两个不同循环中,则这样的边(i,j)组成的置换中循环节个数为(L1,L2)。 (1,2) (3,4,5,6) (1,3),(2,4),(1,5),(2,6) (1,4),(2,5),(1,6),(2,3),分析,还需要求出与其类似的置换数 假设已确定了0L1L2Lm ,接下来就是将1N这N个点分别放入这m个循环节中,满足第i个循

5、环中恰含有Li个点,这相当于m个圆排列问题,可知一共有,种不同方式。,分析,如果有Li=Li+1=Lj,那么每(j-i+1)!种方案又是重复的,所以还要除以(j-i+1)!,分析,所以总的置换个数就是每个循环的长度为L 每组Li=Li+1=Lj s为j-i+1,分析,需要计算很多T2-1,其中T2很大,而且是-1次的,难道要分解质因数了吗? P是质数,且满足NP。 所以T2也与P互质 由数论知识可知: T2p-11 (mod p) T2-1 T2p-1T2-1=T2p-2 (mod p) 所以可以把T2-1转化为求T2p-2,可用倍增的方法在O(Logp) 的时间内求解。,本题总结,这个问题遇

6、到了这样的困难: 置换的个数偏多而导致不能对每个置换都算其循环数 解决的方法,就是找出置换群中相似的置换,而不重复计算 这个去除冗余运算的方法在Plya计数问题中经常用到 对于每类相似置换个数的计算,也需要扎实的数学功底。,全文总结,信息学竞赛中经常出现这类问题。比如 Transportation is fun (spoj 419) Hes Circles (sgu 294) Cubes (uva 10601) 它们在直接使用公式时往往会遇到一些困难。这些困难虽然不同,但也有一些相似之处。,全文总结,Plya计数法不仅仅能解决许多计数问题,它的证明过程也是相当有意思的。 灵活使用Plya计数法

7、,不仅仅需要熟练掌握此类问题的性质,还要有扎实的数学功底和分析问题能力。 数学方法是解决问题的工具,而分析问题能力是算法的源泉。,谢谢大家!,分析,下面讨论一下如何计算: 一部分是MT1,其中T1并不大,MT1 mod P可以用倍增的思想在log(T1)时间内计算。,证明,设c为 中的一种着色,那么与 c 等价的着色数等于G中的置换个数除以 c 的稳定核中的置换个数。,证明,定理1:对于每一种着色c,c的稳定核G(c)是一个置换群,而且对 G 中任意置换f与 g,g*c=f*c 当且仅当 f-1 g 属于 G(c)。,证明,假设f*c=g*c 则所以 f-1 g使c不变,因此,f-1 g 属于

8、G(c)。 反之,假设f-1 g属于G(c) ,通过类似的计算可证得f*c=g*c,证明,推论:设c为 中的一种着色,那么与 c 等价的着色数等于G中的置换个数除以 c 的稳定核中的置换个数。,证明,设 f 是 G 中的一个置换,根据定理1,满足g*c=f*c的置换 g 实际上就是 中的那些置换。 由消去律,则从f h=f h得到h=h。 集合中 的置换个数等于G(c)中置换的个数。 因为总共有|G|个置换,所以,与c等价的着色数等于,证明,我们要数使f保持c不变即f*cc的对偶(f,c)的个数。,证明,一种计数的方式是考察G中的每个f ,并计算f保持着色不变的着色数,然后相加所有的量。设D(f)是通过f保持着色不变的着色集,所以用这种方式计数得到,证明,另一种计数的方式按等价类将着色归类。 在同一等价类中,两种着色对和贡献了同样的量,每个等价类的总贡献是|G|。 因此,不同等价类数目就是: 通过每个置换保持着色不变的着色除以置换总数。,证明,要得到在置换下稳定不动的方案,即把置换的每个循环节都染上相同的颜色。 假设有k种不同的颜色,某个置换的循环数为c,则对于这个置换,通过它保持不变的着色数为,k的c次方。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 数据结构与算法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报