《离散数学导学》精炼——第8章(关系)

2024-03-20 10:10

本文主要是介绍《离散数学导学》精炼——第8章(关系),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学无止境追求真,勤奋刻苦起点新。每日精进千里路,成功不是梦想闲。

文章目录

  • 引言
  • 正文
    • 第八章 关系
      • 定义
      • 定义域,值域
      • 关系的逆
      • 关系上的运算(重点)
      • 关系的合成
      • 同类关系和异类关系
      • 关系的性质(重难点)
      • 顺序与等价(简介)
      • 闭包
      • 多元关系

引言

笔者一直觉得在计算机这一学科的学习中,离散数学是极为重要的知识基础。离散化的思想体现在计算机学科的方方面面。举例来说,“像素”这一概念是我们日常生活中耳熟能详的,将一个图片拆分成一个个极微小的像素,就是利用了离散化的思想。为了帮助大家打好离散数学的思维基础,笔者新开一个专栏,对《离散数学导学》这本书做一个精炼,使其更易理解。这篇文章是这个专栏的第四部分,主要介绍第8章。
1-3章传送门
4-5章传送门
6-7章传送门

正文

首先明确一点,关系是特殊的集合,函数是特殊的关系。

第八章 关系

定义

关系是笛卡尔积的一个子集,也就是序偶的集合。

“(a,b)满足关系R”可以写成(a,b)∈R,R(a,b),a→b。当写成最后一种形式时,将(a,b)看作关系中的一种映射。

我们这里举个书上的例子:
在这里插入图片描述
A↔B是P(A×B),也就是A×B的幂集。在这里A和B分别是两个集合。

定义域,值域

我们知道,关系是笛卡尔积的子集, 如果这个笛卡尔积是A×B,那么我们定义A是关系的源头,B是关系的目标。定义域指A中出现在关系中的所有元素的集合,值域指B中出现在关系中的所有元素的集合。我们举个例子:
在这里插入图片描述
注意下面的土豆图,这个图可以很形象的表示一个关系。从图中我们可以看出, House_mate集合是这个关系的源头及目标,但它的定义域是{凯琳,马特},值域是{凯莉,马特}。关系R的定义域符号是dom R,值域符号是ran R。

关系的逆

一个关系的逆就是把关系的源头和目标反过来,比如上述的关系的逆就是{(马特→凯琳),(凯莉→马特)}。关系R的逆称作R~或R-1

关系上的运算(重点)

  1. 定义域限制符◅,它产生一个新的关系,这个关系的定义域是原关系的定义域与定义域限制符左边的集合的交集。举例:

原关系为{a→1,b→2,c→3},则{a}◅{a→1,b→2,c→3}={a→1}。

注意,定义域限制符左右都是集合。

  1. 定义域伴随限制符
    定义域伴随限制符可以看作是定义域限制符的补,它返回的关系的定义域是原关系的定义域减定义域限制符左边的集合的差运算。定义域限制符的符号是定义域限制符中间画一条横线(原谅笔者实在没找到这个符号)。
  2. 值域限制符▻:和定义域限制符相似。
  3. 值域伴随限制符⌲:和定义域伴随限制符相似。定义域伴随限制符的符号就是它的反向。
  4. 关系的像:给定关系R,它的像运算符是R(|A|),其中A是个集合。这个运算返回一个值域的子集。举例:

R是{a→1,b→2,c→3},则R(|{a,b}|)={1,2}。

关系的合成

给定两个关系A和B,我们称A○B是这两个关系的合成关系。我们用土豆图来说明这个:

  1. 这是关系A的土豆图:
    在这里插入图片描述
  2. 这是关系B的土豆图:
    在这里插入图片描述
  3. 合成运算就是将B接到A的后面,形成这样一个土豆图:
    在这里插入图片描述
  4. 观察这个图,a映射到2,2映射到β,因此a可以直接映射到β,其他元素也同理。因此就得出了合成后的关系:
    在这里插入图片描述
    这就是关系的合成。注意:从合成过程中我们可以看出,关系合成必须要求B的源头集合和A的目标集合是一个类型的,否则合成计算是未定义的。

同类关系和异类关系

一个关系的源头和目标集合如果是同一类型的,就称之为同类关系;反之则称为异类关系。同类关系可以自己与自己进行合成运算,但异类关系不能。

关系的性质(重难点)

关系的性质是个比较难记住的点,没看懂的可以来回看一下。

  1. 自反性:在同类关系R中,对于R的源头集合(也可以说是目标集合)X来讲,每一个X中的元素x都满足(x,x)∈R,则R是自反性的
  2. 传递性:随意拿出R中的两个序偶(x,y)和(y,z),如果(x,z)也是R中的序偶,那么R是传递性的。如果R是传递性的,那么R○R是R的子集。
  3. 对称性:随意拿出R中的一个序偶(x,y),如果(y,x)也是R中的序偶,则R是对称性的
  4. 非对称性:随意拿出R中的一个序偶(x,y),要求(y,x)不能是R中的序偶,则R是对称性的
  5. 反对称性:反对称性和非对称性其实是完全不同的两个性质。随意拿出R中的一个序偶(x,y),如果存在(y,x),那么y=x。满足这个性质的R是反对称性的。因此,如果R满足非对称性,那么它一定不是反对称性的,因为无法找到两个序偶是(x,y),(y,x)。你可能会觉得反对称性和自反性之间有联系,但经过笔者思考,这两个性质之间其实没有逻辑关系,感兴趣的读者可以自己思考一下。
  6. 完全性:在同类关系R中,R的目标集合X中任意挑出任意两个元素,都满足R的映射关系,那么称R是完全的。

顺序与等价(简介)

只有同类关系中定义了以下性质,设这个关系为R,R的源头(目标)是X。

  1. R满足自反、传递、反对称三个性质,则称R是偏序的。此时X中的元素形成某种顺序,某些元素高于其他元素。
  2. R满足反对称、传递、完全三个性质,则称R是全序的。此时X中的所有元素都有某种顺序,因此称为全序。
  3. R满足对称、传递、自反三个性质,则称R是等价的。此时取(x,y)∈R,则x“等价于”y。

闭包

一个同类关系S,加入一些序偶让S满足自反、对称、传递关系,加入后的关系分别被称为S的自反闭包,对称闭包,传递闭包。既满足自反性,又满足传递性的闭包称为自反传递闭包
构造闭包的方法就是进行并运算,将缺少的序偶以集合的方式加进去。
注意:对于传递闭包来说,传递闭包的定义和传递性不太相同,传递性只需要传递一次,但传递闭包需要传递n次,即它不仅要补上S○S(可以写成S2),也要补上S○S○S(S3),一直到n次合成后合成的关系是空集为止。

多元关系

多元关系的类型是A↔(B×C)或(A×B)↔C,更一般地说,只有最外层的符号是↔,里面都是×。因为A×B中的元素只是一个序偶,而A↔B中的元素是多个序偶,举个例子:

A↔(B↔C)的一个元素是:
(a,((b1,c1),(b1,c2))),这显然是不合理的。
而A↔(B×C)中的元素是:
(a,(b1,c1)),这是合理的。

请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的算法讲解!

这篇关于《离散数学导学》精炼——第8章(关系)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序

file-max与ulimit的关系与差别

http://zhangxugg-163-com.iteye.com/blog/1108402 http://ilikedo.iteye.com/blog/1554822

【编程底层原理】方法区、永久代和元空间之间的关系

Java虚拟机(JVM)中的内存布局经历了几个版本的变更,其中方法区、永久代和元空间是这些变更中的关键概念。以下是它们之间的关系: 一、方法区: 1、方法区是JVM规范中定义的一个概念,它用于存储类信息、常量、静态变量、即时编译器编译后的代码等数据。 3、它是JVM运行时数据区的一部分,与堆内存一样,是所有线程共享的内存区域。 二、永久代(PermGen): 1、在Java SE 7之前,

笔记整理—内核!启动!—kernel部分(1)驱动与内核的关系

首先,恭喜完成了uboot部分的内容整理,其次补充一点,uboot第一部分和第二部分的工作不是一定的,在不同的版本中,可能这个初始化早一点,那个的又放在了第二部分,版本不同,造成的工作顺序不同,但终归是要完成基本内容初始化并传参给kernel的。         那么至于驱动与内核的关系,用一张图来说明最适合不过:         驱动位于OS层的中下层与硬件相接。驱动是内