《离散数学》:代数系统和图论导论

一、代数系统

代数系统是数学中的一个重要概念,它涉及一组对象以及定义在这些对象上的运算规则。代数系统可以是抽象的,也可以是具体的。

在抽象代数中,代数系统通常由一组元素和一组操作(或称为运算)组成。这些操作可以是二元的(例如加法和乘法)或一元的(例如取负)。代数系统的运算必须符合一定的性质,例如结合律、交换律、单位元和逆元等。常见的抽象代数系统包括群、环、域和向量空间等。

本文中关于代数系统的讨论部分和前文《代数入门》很相似,主要做了一些拓展和案例补充。

(〇)代数系统

只要满足两个条件就是一个代数系统

  • 集合非空
  • 运算封闭

(一)广群

满足最低要求的代数系统,就是广群。

(二)半群

满足结合律的广群就是半群。

半群的性质:

  • 如果 S 是一个有限半群,那么 S 中一定有等幂元;
  • 如果 S 是一个含幺半群(独异点),则运算表中没有两行或者两列是相同的;

(三)含幺半群

集合中对于运算*存在幺元 e 的半群就是含幺半群,也叫独异点。

(四)群

对于每一个元素都存在逆元的含幺半群,就是群。

可以看到,群是具有最严格的定义:

  • 封闭性
  • 结合性
  • 含有幺元
  • 含有逆元

常见的一个群为:是一个群,幺元为空集,每个元素的逆元都是自己。

群的性质:

  • 无零元
  • 群G 中,ax=b的解是唯一的,因为每个元素都有逆元,x = a^-1b;
  • 群的计算满足消去律,或者群中的元素都是可约的;
  • 如果一个有限含幺半群,满足可约,那么一定是一个群。(可约去就暗示了该群含有幺元,那么自然就是一个群了);
  • 群众的等幂元素一定是幺元。证明: xx=x=xe,则 x = e
  • 有限群运算表中每一行或每一列都是群 G 中的元素一个置换;(两行元素如果双射,就是一个置换)
  • 如果 S 是 G 的子集,且 S 是有限的,只要运算*在 S 中封闭,那么 S 一定是一个子群;
  • 如果 S 是 G 的子集,S中的任意两个元素a、b,只要满足 a*b^-1也属于 S,那么 S 就是一个子群。注意这里没有对集合 S 是否有限作出限制。

这就是最基本的群的部分性质,底下的讨论相较于群,增加了部分性质

(五)阿贝尔群

如果中的元素对于操作*是可交换的,就称为阿贝尔群或者交换群,也叫加法群

(六)循环群

中的所有的元素都可由一个元素 x 通过不断地*运算生成,则称为循环群,x 被称为生成元,事实上生成元往往不止一个。

这里有几个重要的结论:

  • 由拉格朗日定理,n 阶群的子群,其阶数一定是 n 的因数
  • 素数阶的群一定是循环群,由拉格朗日定理,素数阶的群一定只有两个平凡子群;
  • 四阶群按照分类,只能分为克莱因四元群四阶循环群
  • 循环群是加法群;
  • 对于n 阶循环群 G,如果 a 是一个生成元,则:a^n=e;
  • 对于无限循环群 G,如果 a 是一个生成元,那么另一个唯一一个生成元为 a^-1;

(七)置换群

任何一个有限群,事实上都可由一个置换群表示

置换群(Permutation Group)是群论中的一个重要概念,它研究的是一组对象的排列及其上的运算。在置换群中,对象的排列通过置换操作来描述,而置换群则是由这些置换构成的群。

具体来说,给定一个有限集合X,一个置换是对X中元素的重新排列。每个置换可以表示为一个映射,将集合X中的元素映射到另一个元素上。这种映射可以用一个有序的元素列表来表示,其中列表中的第i个元素表示将原始集合中的第i个元素映射到的新位置。

置换群是由所有可能的置换组成的群,它的运算是置换的复合。换句话说,对于两个置换,可以将它们按照给定的顺序,依次执行,得到一个新的置换。这个复合运算满足结合律单位元逆元的群性质。

(八)环

环(Ring)是抽象代数中的一个重要的代数结构。它由一个非空集合R和两个二元运算(加法和乘法)组成,分别记作"+“和”·"。

可以看到,对于乘法运算(·)并没有要求交换律和逆元。因此,环(Ring)可以定义为:

  • 加法运算(+)是交换群;
  • 乘法运算(·),可结合,也是含幺半群
  • 后者对前者满足分配率。

一个经典的例子就是,其中 A 是矩阵。显然矩阵(方阵)加法是一个交换群,矩阵乘法是一个半群(可结合,有幺元,也是含幺半群),,乘法对加法满足分配率。因此**就是一个经典的环**。

事实上,矩阵运算还是一个含幺环,因为乘法具有幺元 E。

环有以下分类

  • 如果乘法存在幺元,则为含幺环
  • 如果乘法满足交换律,则为交换环
  • 对于任意的 a*b=0,一定有 a=0或者 b=0,则为无零因子环
  • 如果都满足上面三个条件,则是整环

(九)域

域的定义比环更加严格,可定义为:

  • 加法运算 是交换群;
  • 乘法运算 是交换群;
  • 后者对前者满足分配率。

比如****就是一个经典的域。它满足加法交换群,去除0后,也是交换群,同时后者对于前者满足分配率。域一定是环,且是整环

二、图论导论

(一)图的分类

图是由结点和边构成,又分为有向图、无向图、带权图、无权图、混合图等等,这些概念很简单,不再赘述。

完全图:任意两个节(结)点之间都有边,记为 Kn图,n 为节点数目;
节点的度:连接的边的个数,细分为出度、入度;

1、结点的度

一些定理

  • 握手定理,结点的度的和等于边的两倍
  • 对于有向图:度数之和为 0;
  • 奇数度的结点的个数一定为偶数个。

2、子图与生成子图

生成子图结点构成的集合不变,子图没有要求,真子图结点会少一些。

3、图的同构

拓扑结构不变的图,就是互为同构。
目前没有一个通用的方法来判断两个图是否同构,只能得到同构的图的一些必要的性质:

  • 同构的图的结点数目相同;
  • 同构的图的边的数目相同;
  • 同构的图度数相同的结点的数目相同。

这些必要条件都是简单的易于理解的,但是没有一个充分条件能用来判断两个图是否同构。这里给出一个尝试,就是按照顺序分别算出两个图的矩阵表示,然后判断两个矩阵是否相等,如果相等就同构。但是这个过程的难点在于无法按照顺序算出矩阵表示,尤其当结点数目很大时。

(二)图的连通性

1、路与回路

有以下基本概念:

  • 如果边没有重复,就是简单路径,(简单回路),称为
  • 如果点没有重复,就是基本路径,(基本回路),称为通路

路的性质和推论:

  • 如果n个节点的图存在一条通路,那么这条通路最长不会超过 n-1;
  • 图中任何一个圈的长度都不会超过 n;

2、无向图的连通性

这里牵扯到一点割集、割点、边割集、割边或者桥的概念,很简单。
常见的结论有:

  • 如果 v 是连通图G 的一个割点,那么 G-{v}是一个非连通图;
  • 完全图没有点割集,也没有割边(有边割集,注意区别);
  • 非连通图的点割集和边割集都是空集,这是人为规定。

3、有向图的可达性

对于有向图的可达性,有以下定义:

  • 如果任意两个点,至少从一个点到另一个点可达,那么 G 就是单侧连通的;
  • 如果任意两个节点之间都是可达的,则是强连通图
  • 如果略去所有方向后,有向图成为了一个连通无向图,则有向图 G 是弱连通的;

一些性质:

  • 如果强连通图只有一条回路,那么这个回路至少包含每个节点一次;
  • 如果 P是 G 的一个子图,并且 P 是强连通的,且不存在包含 P 的更大强连通子图,那么 P就是 G 的强分图。
  • 在有向图 G 中,每个节点只能存在于一个强分图中。如果存在于两个,那么这个这个节点就是两个强分图的枢纽,那么这两个图就成为一个图,因此矛盾。

(三)图的矩阵表示

矩阵表示的图,具有诸多的特点,能更简单的存储在计算机中,被各种算法计算,也更简洁,可以压缩。

1、邻接矩阵

对于一个无向图:

  • 邻接矩阵一定是对阵的;
  • 邻接矩阵主对角线元素为 0,因为自己与自己不邻接
  • 某行(列) 1 的个数为该结点的度

对于一个有向图,则有出度和入度概念。

2、计算两个节点之间的路的数目

定理:设图 G 的邻接矩阵为 A,则结点 v i v_i vi v j v_j vj 之间长度为 k 的路的数量为矩阵 A k A^{k} Ak a i , j a_i,_j ai,j。这个定理的证明很有意思,比较简单,不再赘述。

这个定理有以下几个简单推论:

  • 如果对于 m = 1,2,3,...,n-1都有 A m A^{m} Am a i , j a_i,_j ai,j = 0,则说明结点 v i v_i vi v j v_j vj之间没有路,它们必定位于不同的连通分支;
  • 结点 v i v_i vi v j v_j vj之间的最小距离就是使得 A m A^{m} Am a i , j a_i,_j ai,j = 1 成立的最小值 m
  • A m A^{m} Am 的元素 a i , i a_i,_i ai,i就是开始并结束于 v i v_i vi的长度为m 的回路的数量。

3、可达性矩阵

可达矩阵研究的是结点 v i v_i vi v j v_j vj之间有没有路的问题,这个问题很好解决。

  • 方法一:我们只需要把上面的 A m A^{m} Am进行逻辑求和,不等于 0 的元素置为 1,就得到了可达性矩阵。 a i , j a_i,_j ai,j = 1 就意味着结点 v i v_i vi v j v_j vj之间可达。
  • 方法二:假设关系< v i v_i vi v j v_j vj> 意味着可达,我们很容易得到一个矩阵 A ,矩阵中 a i , j a_i,_j ai,j = 1 就意味着两点距离为 1,可达。但是有时候,存在两个节点之间没有长度为 1 的路,但是有长度等于 m 的路,因此我们需要对 A 进行不断的复合,得到长度为 2、3、... 、m 的路,之后再进行逻辑加。仔细一想,这就是再求传递闭包!因此,整个过程本质上就是在求传递闭包

因此,最简单的方法就是利用 Warshall 算法进行求解!

怎么判断一个关系矩阵A是否具有对称性?
  • 计算对称闭包,如果等于 A 就具有对称性
怎么判断一个关系矩阵 A 是否具有传递性?
  • 计算传递闭包,如果等于 A 就具有传递性
计算传递闭包本质上是在干什么?
  • 计算关系 A 中所有元素的关系,直接的间接的。这点与可达矩阵如出一辙,因为图描述的本来就是结点之间的拓扑关系!

4、有向图的可达矩阵

有向图和无向图的可达性矩阵计算方式一模一样。但是有向图的强分图怎么算呢?

定理: 有向图 G 是强连通的当且仅当其可达性矩阵 P 的所有元素均为1

是这么理解的:设 P 是图 G 的可达性矩阵,其元素为 p i , j p_i,_j pi,j P T P^{T} PT是 P 的转置矩阵。则图G的强分图可由P∧ P T P^{T} PT求得。因为从 v i v_i vi v j v_j vj可达,则 p i , j p_i,_j pi,j=1;从 v j v_j vj v i v_i vi可达,则 p i , j p_i,_j pi,j=1。于是当且仅当vi与vj相互可达时,P∧ P T P^{T} PT的第(i,j)元素的值为1

例1:求出下图所示图的强分图。

《离散数学》:代数系统和图论导论_第1张图片
求出它的可达矩阵与可达矩阵的转置,然后进行逻辑乘:
《离散数学》:代数系统和图论导论_第2张图片
例2:设 t 时刻的相关资源集为R={r1, r2, r3, r4},进程集为P={p1, p2, p3, p4},进程占据资源的情况为:

  • p1占据资源r4且请求资源r1;
  • p2占据资源r1且请求资源r2和r3;
  • p3占据资源r2且请求资源r3;
  • p4占据资源r3且请求资源r1和r4。
    《离散数学》:代数系统和图论导论_第3张图片

对应的资源分布图如上图所示。这样我们就能根据这个有向图得到一个矩阵 A,再求出它的可达矩阵,得到强分图。只要这个强分图不是 E(大于 E),那么就是死锁的。解决办法就是挂掉某些进程,使得可达矩阵某些元素为 0,这就会导致强分图为 E(自己到自己默认可达),从而解决死锁。

全文完,感谢阅读!

你可能感兴趣的:(离散数学,图论,离散数学,代数系统)