置换群

代码生成器技术乱弹十七,让我们来玩石子,代码生成群论初步

青春壹個敷衍的年華 提交于 2019-12-24 10:19:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 对代码生成器而言,我们可以从集合论的基础上定义代码生成的代码生成置换群的空间和每个动词算子的含义。 对谋个具体的域对象(数据对象)而言,代码生成置换群是他的所有字段及某个字段的所有合法取值构成的笛卡尔空间,这个空间非常庞大,但对任何一个域对象而言,这都是一个有限的空间。 对数据库动词算子而言,有两个行集是重要的,一个是动词算子的输入行集,这一般是数据库里的纪录或者是记录的一部分,这些行集也一定是代码生成置换群的子集。 还有一个行集是动词算子的输出行集。这个行集可能是输入行集的子集,也可能会有所变化,但如果结果是正确的,这个行集也是代码生成置换群的子集。 动词算子分两类,一类不影响数据库里的行集,一类会影响。(我们把影响一条数据库种行的动词算子也算做影响行集的动词算子,应为我们可以把它视为只有一行的行集。) 所以这样一来,所有的动词算子就都变成了集合操作。 这是我对代码生成群论的初步构想,抛砖引玉,备忘,欢迎大家拍砖。 来源: oschina 链接: https://my.oschina.net/jerryshensjf/blog/3146504

群的结构

不打扰是莪最后的温柔 提交于 2019-12-05 18:08:12
子群的生成 定义: 设G是一个群,X是G的一个子集,设 \(\{H_i \}_{i \in I}\) 是G的包含X的所有子群,则 \(\bigcap_{i\in I}H_i\) 构成G的一个子群,叫做G的由X生成的子群,记为 。 证明. \(\forall a,b\in \bigcap_{i\in I}H_i, a,b\in H_i,for\space all\space i\in I\) 由于 \(H_i\) 是各自为一个群,则 \(ab^{-1}\in H_i,for\space all\space i\in I\) \(\therefore ab^{-1}\in\bigcap_{i\in I}H_i\) \(\therefore \bigcap_{i\in I}H_i\) 是G的一个子群 Notation: X的元素称为子群 的生成元,如果X={ \(a_1,\cdots,a_n\) },则可以将 记为< \(a_1,\cdots,a_n\) >。如果G=< \(a_1,\cdots,a_n\) >,则称G是有限生成的,特别的,如果G= ,则称G为a生成的循环群。 下面给出生成子群中元素的显示表示: 设G是一个群,X=< \(a_1,\cdots,a_t\) >是G的一个子集则, ={ \(a_1^{n_1}\cdots a_t^{n_t} | a_i\in X,n_i\in

置换群 理解

匿名 (未验证) 提交于 2019-12-03 00:19:01
http://blog.163.com/myq_952/blog/static/863906320110211731329/ 先说下循环的概念。 记(a1 a2 ^ an)= 为一个循环。循环亦称做轮换。可以认为是a1到an组成了一个环。而一个置换可以写成多个循环的乘积。比如 =(a1a3a6)(a2a4)(a5)。而循环节的长度就是轮换的个数。这里循环节长度为3。 对于循环有一些操作。比如乘上一个[对换]。 定义(a1,b1)为将a循环中的a1元素和b循环中的b1元素交换。则这是一个两元素在不同轮换中的对换。给循环乘上这个对换。即相当于将原来的两个“环”分别在a1和b1处拆开,再连接成一个新的“环”。也就是说,就是这种对换将两个轮换合并成了一个。 反之,如果对换发生在某轮换内部,那么相当于在(a1,ai)处将此环拆开,然后分别合并为了两个新“环”。也就是说,这种对换将轮换分拆为了两个新的轮换。 如果我们记置换群中元素个数为n,循环节长度为a,可以发生的内部对换数为b。则有下列式子成立: b = n-a。 想到了神马?对了,最小路径覆盖。 实际上,二分图就是一个置换群。上面一排元素为X集,下面一排元素为Y集。在利用二分图求解最小路径覆盖问题的时候,每次增加一个匹配,路径数就会减少一条。也就是说,匹配数+路径条数==顶点个数。如果想要尽量减小路径条数,大家都看得出来要求最大匹配。

群的结构

空扰寡人 提交于 2019-11-28 15:11:03
子群的生成 定义: 设G是一个群,X是G的一个子集,设 \(\{H_i \}_{i \in I}\) 是G的包含X的所有子群,则 \(\bigcap_{i\in I}H_i\) 构成G的一个子群,叫做G的由X生成的子群,记为 。 证明. \(\forall a,b\in \bigcap_{i\in I}H_i, a,b\in H_i,for\space all\space i\in I\) 由于 \(H_i\) 是各自为一个群,则 \(ab^{-1}\in H_i,for\space all\space i\in I\) \(\therefore ab^{-1}\in\bigcap_{i\in I}H_i\) \(\therefore \bigcap_{i\in I}H_i\) 是G的一个子群 Notation: X的元素称为子群 的生成元,如果X={ \(a_1,\cdots,a_n\) },则可以将 记为< \(a_1,\cdots,a_n\) >。如果G=< \(a_1,\cdots,a_n\) >,则称G是有限生成的,特别的,如果G=< \(a\) >,则称G为a生成的循环群。 下面给出生成子群中元素的显示表示: 设G是一个群,X=< \(a_1,\cdots,a_t\) >是G的一个子集则, ={ \(a_1^{n_1}\cdots a_t^{n_t} | a_i\in

Burnside引理与Pólya计数

主宰稳场 提交于 2019-11-26 17:06:08
前置知识 1.群 2.置换 3.置换群 问题背景 求解等价染色问题。(本质相同) 比如用k种颜色给一个2*2的方格染色,并认为旋转后相同的方案是本质相同的。 求有多少本质不同的方案。 Burnside引理 上面的问题也就是在求等价类个数了。 这个问题中,置换群就是恒等置换,转90,转180,转270。 先给出式子,将在后面证明。 等 价 类 个 数 = ∑ C ( f ) ∣ G ∣ 等价类个数 = \frac {\sum C(f)} {|G|} 等 价 类 个 数 = ∣ G ∣ ∑ C ( f ) ​ 其中C(f)为对于置换f,满足 c ⋅ f = c c \cdot f = c c ⋅ f = c 的着色方案(也简称着色,将置换f作用在c上)c个数(不动点个数)。 ∣ G ∣ |G| ∣ G ∣ 为置换群的大小(阶)。 证明 定义 G ( c ) G(c) G ( c ) 为着色c的稳定核,是置换群的子集。其中的置换f满足 c ⋅ f = c c \cdot f = c c ⋅ f = c 由定义我们有 ∑ C ( f ) = ∑ G ( c ) \sum C(f) = \sum G(c) ∑ C ( f ) = ∑ G ( c ) 即总的不动着色 - 置换 ( c , f ) (c, f) ( c , f ) 对数相等。 现在我们通过改变右式来证明burnside定理。