[音乐] 嗨,欢迎回来。 那我们呢在定义了关系 的概念之后,我们也学习了关系如何去表示 接下来我们看看关系和关系之间它们是怎么样进行变换的 那么这一个也就是关系的运算 那么运算呢先有一些基本的定义,首先我们来定义什么样叫做关系是相等的 当然作为一个集合,我们有集合相等的这个完整的定义 但是作为关系呢它是一种特殊的集合,那么关系相等呢也具有它的特殊性 那么关系相等是这样,如果关系R和S,首先它要有相同的前域和陪域 然后呢再并且有任意x任意y xRy是双向蕴含xSy 那么就把这种,就这种关系的这个两个关系呢称之为相等的R等于S 那么这里头关系运算当中的这个前域和陪域是非常重要的 那么也就是说一个关系,R的关系它是A到B的一个关系的话,那么A是前域 B是陪域,那么后边这些所有的这个关系运算 都要求两个,参加运算的两个关系呢都应该具有 相同的前域和陪域,那么这个才能够接着 下去做这些运算。 当然了,这个条件并不是本质的,我们 总是可以把不同前域和陪域这两个关系呢 分别把这个前域和陪域分别进行扩充 然后使得它满足这个条件就可以了。 只不过这个扩充呢 我们可以隐含。 所以我们后面呢我们都把这个参加运算的关系 都是当做它的前域和陪域,都是相同的。 关系呢首先是个集合 所以呢适用于集合的那些运算也都适用于关系 下面我们来先看看集合的运算对于关系来讲,它会是什么样子的 R和S呢是A到B的二元关系 那么也就是说R和S呢都是A×B的这个子集 那么作为一个集合的并运算,R并上S 那么就是<x, y> |xRy∨xSy 好这是它作为并集的定义 那么交集呢就是xRy∧xSy 差集就是xRy ∧¬ xSy,就是<x, y>呢不属于S 也就是说从R当中排除掉 在S当中也有的那些二元组,那这就是差运算了 当然最后呢根据差我们还有一个补 那么R的补运算呢也跟集合的补运算是一样,它是一个单元的运算 那么R的补呢是A定义为 A和B的笛卡尔集,也就是前域和陪域做笛卡尔集 跟R做一个差集,这叫做补关系,这叫补关系 那么也就是<x, y>不属于R 将所有的这些二元组收集起来 那么这个呢跟补关系和集合运算的补关系就有 点不一样了,因为集合运算的这个补关系是全集,也就是整个的个体域 减去这个R,那么它不是这样的。 那么我们作为关系这种特殊集合 那么它的这个补关系呢是由全关系和这个 关系R的差,这样呢形成了一个补关系 那么我们在上一节,我们说关系呢可以用矩阵来表示 那么关系既然可以用矩阵来表示之后呢,我们对于这个关系的这个基本 的运算那么也可以用矩阵运算来计算它 那么我们假设呢Mr、 Ms就是R和S的这个关系矩阵 那么对于并运算来讲,那么我们就把这个关系矩阵的对应的分量做一个析取 那么最终就能够得到R和S这两个关系的这个 并集,并关系的这个关系矩阵 那当然如果是一个交运算,那么就是对于矩阵,两个矩阵的这个对应分量做一个合取 合取呢就是00等于0,只有11它才会等于1,那么这样呢也就能够得到 这个关系矩阵,就是R和S交集的关系的这么一个关系矩阵 那么补呢就是对矩阵对应的分量做否定,是吧?做否定 本来是0变成1, 1变成0,这样。 那么是一个差的话 那么就正好呢就是对于这个R交上S的补 R交上S的补,这就是一个差集。 所以呢它的这个关系矩阵 的运算呢也很正好是R的关系矩阵和S的补的矩阵 做一个合取,对对应的分量做合取 那这样就得到了差集,就是差关系的这种关系矩阵 接下来的关系的运算呢称之为逆运算 逆运算,逆运算呢用这个 'iii' 来代表 那么它是这么定义的,R呢是一个二元关系 那么它的这个逆的,逆关系就是xRy 那么就把这个<x, y> 呢对调一下就是<y, x> 就称之为R的逆,这也就是逆关系。 那么很显然呢 它的这个逆关系实际上把前域和陪域也对调了 所以呢它是一个B到A的一个关系,也就是R的逆关系呢是B×A并上R集的一个子集 那么逆关系的关系矩阵 那么相对于原关系来讲,那也很简单,就是做一个矩阵的一个转置 一个矩阵转置,我们知道矩阵转置啊,所以转置一下就可以了 那么这样的逆运算的例子也很多。 比如说 对于相等关系,A上的相等关系来讲 它如果求逆,当然如果我们用关系矩阵来表示,我们看到如果是一个单位矩阵 它转置了以后,它还是单位矩阵,所以呢 EA的逆关系还是等于它自己,还等于它自己 那么空关系的逆还是它自己,那么A×B这个全关系的逆 就等于B×A这么一个全关系,这是逆运算 那么自然数的里面的这个小于关系 那么如果是求逆的话,那么正好呢是把前后两个数对调过来,那么它就应该是一个大于关系 那么这个逆。 当然另外的这个补关系 那么我们可以看出来它跟逆呢有所区别 是吧?像小于关系它的补关系呢就是 大于或等于,不仅仅是逆关系的那个大于了,就是大于或等于 这样的,这是一个补关系。 这是逆和补之间有这么一个区别 那么关系的逆运算实际上是一个很 强的运算,因为它并没有改变这个二元组 所以呢,它跟其他的这个运算呢之间它进行 组合的话,是一个很方便的,它具有一个很良好的性质 比如说我们说逆运算和并交差补这些运算呢 都满足这个分配率。 那分配率是这样,R、 S呢都是A到B的二元关系 我们用$要来表示并交差这些运算之一 那么这样呢就会有这些性质,R两次逆的话还 回到自己,也就是两次逆就会复原。 然后如果是逆的补 它就等于补的逆,这就相当于一个分配了 那么如果说R和S做一个$,也就是并交差 这个运算,然后呢再做求逆的话,那么 这就相当于说R和S首先求逆,然后再做并交差 再做并交差。 还有呢这个R和S之间,如果R这个关系是 S的一个子集的话,那么当且仅当R的逆是S的逆的一个子集 那么这一切呢都源于说这个求逆从矩阵转置这个角度上来看 就表现为这个矩阵转置运算呢实际上并不会改变任何的 这个矩阵的分量,只是说把这个行变成列,列变成行了 而已。 所以呢它具有,这个运算呢具有这么良好的性质