9.1关系 relationship!

aRb : a,b有关系R a属于A b属于B AB为两个集合
用箭头表示 也可以用 数组(表格)表示

函数作为关系 只要记住多对一是不可以的 画个图 其实是差不多的啦

集合自身的关系: 定义:集合A上的关系是从A到A的关系
集合A上的关系是AxA的子集
怎么理解?
eg:{1,2,3,4,5} a整除b的有序对有哪些
1 1
1 2…等等
你看,这是一个关系,但他不完整,不能描述AxA所有的有序对

Q:n元素集合上有多少个不同的关系?
考虑n元素的集合A
AxA 一共n^2个有序对
把一个个有序对看成元素,求他的子集
ans=2^(n^2)
n=3 ->512个 哇有这么大!

关系的性质:
自反:对A中的每个元素a有(a,a)属于R
正整数集合上整除关系是自反的吗?
显然! (a,a) a|a 成立!

非负呢?
不成立!!
0|0无意义

对称的:对于任意a,b属于A,若只要(a,b)属于R,就有(b,a)属于R
反对称:对于任意a,b属于A (a,b) &&(b,a)属于R,b=a成立

R 2,1 || 3,1 || 3,2 || 4,1 || 4,2 || 4,3
反对称的对不对,我们找不到 a,b && b,a这样的元素
R 1,1 || 1,2 || 2,1 这个呢?
对称的!

传递的 a,b 属于R b,c 属于R -> a,c 属于R 我简写了 abc任意的

关系的组合
和集合很像的 sub 交 并

关系还有另一种组合方式
合成
R: A到B
S: B到C

(a,b) 属于R
(b,c)属于S
合成变成(a,c)
记做:SoR
B相当于一个中转炉
怎么合成,找第二个元素(ab中的b)和第一个元素(bc中的b)一样的不就得了

双亲关系与自身的合成
若a是b的父母 (a,b)属于R (a,c)属于RoR 当且仅当 a是b的父母 b是c的父母 a是c的祖父母
递归定义R的n次幂
我的父母的父母的父母的父母的父母的父母……

证明一个传递关系的幂是该关系的子集
集合A上的关系是传递的,当且仅当n=1,2,3有R^n属于R
充分性 R^n属于R A传递?考虑n=2,R^2属于R 由合成的定义知 a,b属于R b,c属于R a,c属于R^2所以a,c属于R

已知传递的 推出 R^n属于R 数学归纳法!
n=1不解释

R^n属于R成立
R^n+1=R^n o R 存在 (a,x)属于R^n (x,b) 属于R a,b属于R^n+1
而R^n属于R so! a,x x,b属于R 由于R是传递的 a,b属于R
所以R^n+1属于R

9.2n元关系

数据库里常用 没啥意思 不讲

9.3 关系的表示

用矩阵表示关系 ,有关系的标1 无关系 0

R是对称的当且仅当MR=(MR)的转置
自反的:对角线主对角线all 1其他无所谓
反对称的:当且仅当 a,b属于R b,a属于R 则a=b
if mij=1 i不等于j
then mji=0
交 和 并 不讲 对每个对应的元素交一下并一下就可以了

关系合成的矩阵

引入布尔积
乘法知道的吧 布尔积就是乘法法则中 只要有一对 对应元素都为1则Cij=1
你也可以写个乘法,然后把>=1 都写成1就可以了 (0-1矩阵)

9.4闭包

把不在R中的所有形如(a,a)的有序对加入R,得到R的自反闭包

同样地,加入(a,b)属于R而(b,a)不属于R,这个新关系是对称的,称为R的对称闭包

传递闭包有点复杂,要不断加入新东西直到不能加

将关系看成一条条路,比如a,b 看成a能走到b 但b走不过来a
除非加入b,a或者其他一些路构成回路

定理:设R是集合A上的关系,从a到b存在一条长为n的路径,当且仅当(a,b)属于R^n

数学归纳法
n=1 显然成立
假设对于n=k,成立,从a到b存在k+1的路径,一定有一条长1 (a,c)属于R,一条k(c,b)属于R^k连起来
因此 从a到b存在k+1的路径,当且仅当有一条长1 (a,c)属于R,且(c,b)属于R^k,若有这样的c当且仅当(a,b)属于R^(n+1)

R*=R+R^2+。。。。。。。。R^n

定理:关系R的传递闭包等于连通性关系R*

传统算法2n^3(n-1)
沃舍尔算法 2n^3

  1. 首先是从定义出发的标准算法,若要求出包含关系R的最小的传递闭包,我们就要为R中的每一种可能传递的关系补完其可传递性。不同于自反和对称闭包,传递的复杂之处在于,他是可以有多重传递的,这就造成了初次补完R以后,新添加的关系有可能会和原有的关系一起产生新的传递关系(路径),这时候就需要二次补完。同样的道理,三次、四次…直到n次(n为R的顶点数)以后。
    如上描述,求传递闭包的标准方法就是依次求出1、2、3…、n阶传递关系并在每阶求完之后与前一阶的矩阵联合,再进行下一阶的求解。具体的操作方法是对原矩阵MR(图7-11右)进行布尔幂运算。我们可以看到——MR[k]的值mij正好是其前一阶,即MR[k-1]的i行j列(或者说,顶点i和顶点j之间)传递关系存在与否的解。(难理解的话可以亲手算一算)。

  2. 接着是沃舍尔算法,这个算法比前面的标准算法复杂度上少了一阶。沃舍尔算法使用了一条路径的“内点”的概念。即如a,b,c,…..,x样的一条路径,除去a和x之外的所有端点称为这条路径的内点。具体的操作方法是以R为开头构造一系列(n个)矩阵,他们是W0 ,W1,W2,W3,W4 …..,其中W0= MR。这看起来和标准算法差不多,但是沃舍尔算法的高阶矩阵的值并不是由前一阶的布尔幂运算得来。而是这样定义的:Wk=[wij[k]],如果存在一条从vi到vj的路径且这条路径的所有内点都在集合{v1,v2,….,vk}(表中的前k个顶点)内,那么wij[k]=1,否则为0.(注意有两个合取的条件)。
    可以看到,因为Wk-1中的“1”也必然满足于Wk,所以Wk-1中的“1”可以直接继承到Wk之中,即wij[k-1]=1→wij[k]=1。而对于Wk-1中的0,从前段的定义中我们可以看到,对于wij[k-1]为0,而wij[k]为1的情况,当且仅当wik[k-1]=1且wkj[k-1]=1。(或者使用路径的说法——存在一条从vi到vk和一条从vk到vj的路径,使得当内点集合扩大到vk时才满足了前段定义的第二条条件)注意这里的下标k,不再泛指k≤n的正整数,而是实指当前正在运算的Wk的k。举图7-11的例子来说明,W1的w24[1]的值应该是w21[0]*w14[0]=1,而在W0中这个位置的值是0.
    总结来说,标准算法是通过n阶布尔幂来化简多重传递,并在过程中进行了矩阵合并的运算以保证所有路径都被保留;而沃舍尔算法在每阶矩阵的每个元素上,最多只进行2次布尔运算就可以取代标准算法的一个复杂度为O(n)的矩阵运算,因此效率得以提升。

离散数学第九章—学习笔记相关推荐

  1. OpenGL蓝宝书第九章学习笔记:片段着色器和帧缓存

    前言 本篇在讲什么 OpenGL蓝宝书第九章学习笔记之片段着色器和帧缓存 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C++语法有简单认知 对OpenGL有简单认知 最好是有OpenGL ...

  2. 工程伦理第九章学习笔记2020最新

    工程伦理第九章学习笔记2020最新 继续更新

  3. 《Java从入门到精通》第九章学习笔记

    第9章 类的高级特性 一.抽象类 抽象类只声明方法的存在,不能被实例化,就是说抽象类不能创建其对象,在定义抽象类时要在class前面加上abstract关键字. 1 /*定义一个抽象类Fruit,并定 ...

  4. 《自己动手写CPU》--第九章--学习笔记

    章将实现MIPS32指令集架构中定义的加载存储指令,分两步:首先实现除ll.sc指令外的一般加载存储指令,其次实现比较特殊的加载存储指令ll.sc. 9.1加载存储指令说明 MIPS32指令集架构中定 ...

  5. dx12 龙书第九章学习笔记 -- 纹理贴图

    1.纹理与资源的回顾 我们其实很早就接触过纹理了,之前的深度缓冲区与后台缓冲区,它们都是通过ID3D12Resource接口表示,并以D3D12_RESOURCE_DESC::Dimension成员中 ...

  6. 王爽汇编第九章学习笔记

    在这里0-1=ffff 有关于根据位移进行转移的意义:跳转指令与浮动装配(汇编相关),汇编语言交流,技术交流区,鱼C论坛 - Powered by Discuz! 实验八:重点关注jmp short ...

  7. 知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别

    知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别 知识图谱的概念,与传统语义网络的区别 狭义概念 作为语义网络的内涵 与传统语义网络的区别 优点 缺点 与 ...

  8. 工程伦理第三章学习笔记2020最新

    工程伦理第三章学习笔记2020最新 因为之前自己在网上找答案总是觉得费劲,一道一道的找,很慢,突然找到了前两章的答案,感觉有一种前人种树后人乘凉的感觉,于是自己在艰难找完第三章习题并全对的情况下,将题 ...

  9. 多维随机变量及其分布——《概率论及其数理统计》第三章学习笔记

    多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 文章目录 多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 前言 MindMap 二维随机变量 定义与 ...

  10. 周志华西瓜书第三章学习笔记

    第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...

最新文章

  1. 数字开头的正则表达式_初学Web前端要注意什么 正则表达式是怎么回事
  2. RS100项目进展更新
  3. Struts原理与实践(2)
  4. Jquery读取.Net WebService Json数据
  5. 视频封装格式篇(TS)
  6. inurl faq.php,seo新手工作就是做外链
  7. matlab画受力分析图,MATLAB求解受力分析
  8. hough直线检测c语言,基于hough变换的直线检测
  9. 培根密码加解密(Python)
  10. 一、HTML基础(笔记)
  11. 【转载】2005中文博客排名报告
  12. 使用HTML Purifier防止xss攻击
  13. java 开发模式详解_Java开发中的23种设计模式详解4
  14. 2021-“新“的开源项目之handpose_x(手势识别交互)
  15. java代码控制电脑发出警报_java – 如何使用警报构建器对话框显示消息
  16. 如何搭建自己的博客网站(手把手教你搭建免费个人博客网站)
  17. SATA SSD需要NCQ开启吗?
  18. jieba分词使用方法
  19. 广州塔C语言程序,小蛮腰 led广州塔diy程序
  20. 记录webp图像转gif(python webp格式转换)

热门文章

  1. execution表达式里写多个条件
  2. 2021年危险化学品经营单位安全管理人员新版试题及危险化学品经营单位安全管理人员模拟考试系统
  3. Junit单元测试的基本步骤
  4. 个人主页 — github + jekyll 搭建自己的个人主页
  5. Cnskype移动办公现状分析管理
  6. php探针教程,php探针程序的推荐
  7. 关于C#操作WPS和office兼容性的问题
  8. 成功破解电信限制路由器方法
  9. 【游戏开发实战】Unity逆向怀旧经典游戏《寻秦OL》,解析二进制动画文件生成预设并播放(资源逆向 | 二进制 | C#)
  10. 做一个网站要多少钱?