pálya计数法的应用教学讲义.pptx

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pálya计数法的应用教学讲义.pptx

Pólya计数法的应用 问题描述 问题描述 N=3 K=2 简单分析 枚举会超时 普通的乘法原理无法求解 Burnside引理 设G是置换群,C是G的着色集合。 C中的不等价着色数为:使着色通过G中的置换保持不变的着色的平均数。 Pólya定理 假设有k种不同的颜色,某个置换的循环数为c,则对于这个置换,通过它保持不变的着色数为,k的c次方。 例题分析 放在这个问题中,置换群中的对象就是所有的边,染成k种颜色,G就是由点的置换引起的边的置换的群。 分析 例如N=3时一共有3条边。 点的不同排列有3!=6种。 由点的置换而引起的对应的边的置换如下: 分析 先求出每个置换的循环数c 根据Pólya定理,可求出本质不同的方案数: 分析 这个算法十分直观,直接套用了Pólya定理,但需要枚举每个对于点的置换,并求循环数。时间复杂度为 O(N!N2)。 对于本题N≤53的数据范围,这个算法会超时。 分析 再进一步分析问题,会发现,其实这N!个置换中,有许多是类似的,比如: 分析 观察这些对于点的置换,发现它们都是由一个长度为1和一个长度为2的循环组成。 显然它们对应的边的置换,也是类似的。如果把每个置换都处理一遍,是很浪费的。 这3个,只要处理一个即可。 分析 枚举出所有本质不同的对于点的置换,并对每种置换求下面2个值 1、该种置换的对应边的置换的循环节数 2、与该种置换类似的置换总数 分析 要保证枚举出来的对于点的置换各不相同,只需枚举它的所有循环节长度,设为Li,并保证 0<L1≤L2≤…≤Lm L1+L2+…+Lm=N N=53时,一共要需要枚举329921种不同情况。 分析 然后需要把对应点的循环信息转化成对应边的置换的循环节数 分析 假设点i与点j同属于一个长度为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) 分析 还需要求出与其类似的置换数 假设已确定了0<L1≤L2≤…≤Lm ,接下来就是将1…N这N个点分别放入这m个循环节中,满足第i个循环中恰含有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-1≡1 (mod p) T2-1 ≡ T2p-1×T2-1=T2p-2 (mod p) 所以可以把T2-1转化为求T2p-2,可用倍增的方法在O(Logp) 的时间内求解。 本题总结 这个问题遇到了这样的困难: 置换的个数偏多而导致不能对每个置换都算其循环数 解决的方法,就是找出置换群中相似的置换,而不重复计算 这个去除冗余运算的方法在Pólya计数问题中经常用到 对于每类相似置换个数的计算,也需要扎实的数学功底。 全文总结 信息学竞赛中经常出现这类问题。比如 Transportation is fun (spoj 419) He’s Circles (sgu 294) Cubes (uva 10601) 它们在直接使用公式时往往会遇到一些困难。这些困难虽然不同,但也有一些相似之处。 全文总结 Pólya计数法不仅仅能解决许多计数问题,它的证明过程也是相当有意思的。 灵活使用Pólya计数法,不仅仅需要熟练掌握此类问题的性质,还要有扎实的数学功底和分析问题能力。 数学方法是解决问题的工具,而分析问题能力是算法的源泉。 分析 下面讨论一下如何计算: 一部分是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 属于G(c)。 反之,假设f-1 g属于G(c) ,通过类似的计算可证得f*c=

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档