伯恩赛德定理(集合S的 置换群 诱导出来的等价关系 对集合S 划分 得到的 等价类个数)

本文主要是介绍伯恩赛德定理(集合S的 置换群 诱导出来的等价关系 对集合S 划分 得到的 等价类个数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:仅个人小记。这个定理就是用来计数的,用来数一数等价类的个数,而等价类本质上是一种降维表示,即把同种东西归类,进而达到简化的目的,进而更能凸现事物的本质等价类的个数类似于线性代数里面 “秩” 这个概念,而不同的等价类则类似于不同的 “基向量”

前要知识和规定

1.由集合 S 上的一个置换群 &lt; G , ∗ &gt; &lt;G,*&gt; <G,>诱导的二元关系 R是一个等价关系 。证明参看 https://blog.csdn.net/qq_25847123/article/details/100253596
2. X a b X_{ab} Xab 表示所有将 a 置换成 b 的置换的集合。

伯恩赛德(Burnside)定理内容

由集合 S 上的一个置换群 &lt; G , ∗ &gt; &lt;G,*&gt; <G,>诱导的等价关系 R 将集合 S 划分所得到的等价类数目等于
1 ∣ G ∣ ∑ π ∈ G ψ ( π ) \frac{1}{|G|}\sum_{\pi\in G}\psi(\pi) G1πGψ(π) ψ ( π ) \psi(\pi) ψ(π)表示 在置换 π \pi π 作用下不变元个数。不变元指的是满足 π ( a ) = a \pi(a)=a π(a)=a 的元素 a 。

引入 η ( a ) \eta(a) η(a) 表示元素 a 在多少个作用下是保持不变的,由上图,显然有 ∑ π ∈ G ψ ( π ) = ∑ s ∈ S η ( s ) \sum_{\pi\in G}\psi(\pi)=\sum_{s\in S}\eta (s) πGψ(π)=sSη(s) 所 有 行 和 的 总 和 = 所 有 列 和 的 总 和 所有行和的总和=所有列和的总和 =

故而, 想要求解等价类个数,只要数一数 G 中各个元素 π \pi π分别有多少个不变元,然后加起来,再除以置换群 G 的阶,就得到等价类的个数了。

定理证明

显然,证明 等 价 类 的 个 数 = 1 ∣ G ∣ ∑ π ∈ G ψ ( π ) 等价类的个数=\frac{1}{|G|}\sum_{\pi\in G}\psi(\pi) =G1πGψ(π)就等价于证明 等 价 类 的 个 数 = 1 ∣ G ∣ ∑ s ∈ S η ( s ) 等价类的个数=\frac{1}{|G|}\sum_{s\in S}\eta (s) =G1sSη(s)

前要证明(1)

证明: 如果 a, b 同属一个等价类,则必然有且仅有 η ( a ) \eta(a) η(a) 个作用,使得 a 置换成 b

所有作用于 a 结果仍为 a作用为集合 X a a X_{aa} Xaa,该集合元素个数为 ∣ X a a ∣ = η ( a ) |X_{aa}|=\eta(a) Xaa=η(a)
因为 a, b 同属一个等价类,所以必然存在 π t \pi_t πt ,有 π t ( a ) = b \pi_t(a)=b πt(a)=b。用 π t \pi_t πt和集合 X a X_a Xa中的每个元素相乘,容易证明

π t ∗ π i = ̸ π t ∗ π j , i = ̸ j , π i , π j ∈ X a a \pi_t*\pi_i=\not\pi_t*\pi_j,i=\not j,\pi_i,\pi_j\in X_{aa} πtπi≠πtπj,i≠j,πi,πjXaa故而, π t \pi_t πt和集合 X a a X_{aa} Xaa中的每个元素相乘结果互不相同,故而可以记为集合 X a b X_{ab} Xab,显然该集合元素个数为 ∣ X a b ∣ = ∣ X a a ∣ = η ( a ) |X_{ab}|=|X_{aa}|=\eta(a) Xab=Xaa=η(a)

X a b = { π ∣ π ( a ) = b , ∀ π ∈ X a a } X_{ab}=\{\pi|\pi(a)=b, \forall \pi \in X_{aa}\} Xab={ππ(a)=b,πXaa}显然,集合 X a b X_{ab} Xab中的每个元素都满足 π ( a ) = b , ∀ π ∈ X a b \pi(a)=b,\forall \pi\in X_{ab} π(a)=b,πXab我们认为不可能再有其他的不属于集合 X a b X_{ab} Xab的作用 π k \pi_k πk 能够 π k ( a ) = b \pi_k(a)=b πk(a)=b。反证法如下:
假定
∃ π k ∈ ̸ X a b , 使 得 π k ( a ) = b \exist\pi_k\in\not X_{ab},使得\pi_k(a)=b πk̸Xab,使πk(a)=b则,因为这些元素都来自置换群 G,所以这些元素都可逆。进而取集合 X a b X_{ab} Xab中任一元素 π t \pi_t πt,则其逆元
π t − 1 , 有 π t − 1 ( b ) = a {\pi_t}^{-1},有{\pi_t}^{-1}(b)=a πt1,πt1(b)=a进而显然 π t − 1 ∗ π k ( a ) = π t − 1 ( b ) = a {\pi_t}^{-1}*\pi_k(a)={\pi_t}^{-1}(b)=a πt1πk(a)=πt1(b)=a又因为封闭性,所以

π t − 1 ∗ π k ∈ G {\pi_t}^{-1}*\pi_k\in G πt1πkG又因为所有能够是的 a 仍作用为 a 的作用都在集合 X a a X_{aa} Xaa中,所以必然

π t − 1 ∗ π k ∈ X a {\pi_t}^{-1}*\pi_k\in X_a πt1πkXa进而 π k = π t ∗ ( π t − 1 ∗ π k ) ∈ X a b \pi_k=\pi_t*({\pi_t}^{-1}*\pi_k)\in X_{ab} πk=πt(πt1πk)Xab与上述 π k ∈ ̸ X a b \pi_k\in\not X_{ab} πk̸Xab矛盾。故而不存在其他的作用能够使得 a 作用成 b,所以,所有的能够使得 a 作用成 b 的作用都在集合 X a b X_{ab} Xab中,故而,当 a, b 同属一个等价类时,必然有且仅有 η ( a ) \eta(a) η(a)个作用,使得 a 作用成 b。证毕!

正式证明

对于任意一个置换,必然将元素 a 置换成 a 所在等价类中的某个元素,假设 a 的等价类为 [a]={a,b,…,k},则

∣ X a a ∣ + ∣ X a b ∣ + . . . + ∣ X a k ∣ = ∣ G ∣ |X_{aa}|+|X_{ab}|+...+|X_{ak}|=|G| Xaa+Xab+...+Xak=G又根据前要证明(1),知

η ( a ) = ∣ X a a ∣ = ∣ X a b ∣ = . . . = ∣ X a k ∣ \eta(a)=|X_{aa}|=|X_{ab}|=...=|X_{ak}| η(a)=Xaa=Xab=...=Xak进而

η ( a ) = η ( b ) = . . . = η ( k ) = ∣ G ∣ k \eta(a)=\eta(b)=...=\eta(k)=\frac{|G|}{k} η(a)=η(b)=...=η(k)=kG由于 a 是从 S 中任意选取的,根据上面知道, ∀ 等 价 类 [ a ] , ∑ s ∈ [ a ] η ( s ) = ∣ G ∣ \forall 等价类[a],\sum_{s\in[a]}\eta(s)=|G| [a],s[a]η(s)=G进而,如果有 p 个等价类,则

∑ s ∈ S η ( s ) = p ∣ G ∣ \sum_{s\in S}\eta(s)=p|G| sSη(s)=pG故而等价类数目为

p = 1 ∣ G ∣ ∑ s ∈ S η ( s ) = 1 ∣ G ∣ ∑ π ∈ G ψ ( π ) p=\frac{1}{|G|}\sum_{s\in S}\eta(s)=\frac{1}{|G|}\sum_{\pi\in G}\psi(\pi) p=G1sSη(s)=G1πGψ(π)证毕!

这篇关于伯恩赛德定理(集合S的 置换群 诱导出来的等价关系 对集合S 划分 得到的 等价类个数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701038

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据