离散数学第九章—学习笔记
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
首先是从定义出发的标准算法,若要求出包含关系R的最小的传递闭包,我们就要为R中的每一种可能传递的关系补完其可传递性。不同于自反和对称闭包,传递的复杂之处在于,他是可以有多重传递的,这就造成了初次补完R以后,新添加的关系有可能会和原有的关系一起产生新的传递关系(路径),这时候就需要二次补完。同样的道理,三次、四次…直到n次(n为R的顶点数)以后。
如上描述,求传递闭包的标准方法就是依次求出1、2、3…、n阶传递关系并在每阶求完之后与前一阶的矩阵联合,再进行下一阶的求解。具体的操作方法是对原矩阵MR(图7-11右)进行布尔幂运算。我们可以看到——MR[k]的值mij正好是其前一阶,即MR[k-1]的i行j列(或者说,顶点i和顶点j之间)传递关系存在与否的解。(难理解的话可以亲手算一算)。接着是沃舍尔算法,这个算法比前面的标准算法复杂度上少了一阶。沃舍尔算法使用了一条路径的“内点”的概念。即如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)的矩阵运算,因此效率得以提升。
离散数学第九章—学习笔记相关推荐
- OpenGL蓝宝书第九章学习笔记:片段着色器和帧缓存
前言 本篇在讲什么 OpenGL蓝宝书第九章学习笔记之片段着色器和帧缓存 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C++语法有简单认知 对OpenGL有简单认知 最好是有OpenGL ...
- 工程伦理第九章学习笔记2020最新
工程伦理第九章学习笔记2020最新 继续更新
- 《Java从入门到精通》第九章学习笔记
第9章 类的高级特性 一.抽象类 抽象类只声明方法的存在,不能被实例化,就是说抽象类不能创建其对象,在定义抽象类时要在class前面加上abstract关键字. 1 /*定义一个抽象类Fruit,并定 ...
- 《自己动手写CPU》--第九章--学习笔记
章将实现MIPS32指令集架构中定义的加载存储指令,分两步:首先实现除ll.sc指令外的一般加载存储指令,其次实现比较特殊的加载存储指令ll.sc. 9.1加载存储指令说明 MIPS32指令集架构中定 ...
- dx12 龙书第九章学习笔记 -- 纹理贴图
1.纹理与资源的回顾 我们其实很早就接触过纹理了,之前的深度缓冲区与后台缓冲区,它们都是通过ID3D12Resource接口表示,并以D3D12_RESOURCE_DESC::Dimension成员中 ...
- 王爽汇编第九章学习笔记
在这里0-1=ffff 有关于根据位移进行转移的意义:跳转指令与浮动装配(汇编相关),汇编语言交流,技术交流区,鱼C论坛 - Powered by Discuz! 实验八:重点关注jmp short ...
- 知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别
知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别 知识图谱的概念,与传统语义网络的区别 狭义概念 作为语义网络的内涵 与传统语义网络的区别 优点 缺点 与 ...
- 工程伦理第三章学习笔记2020最新
工程伦理第三章学习笔记2020最新 因为之前自己在网上找答案总是觉得费劲,一道一道的找,很慢,突然找到了前两章的答案,感觉有一种前人种树后人乘凉的感觉,于是自己在艰难找完第三章习题并全对的情况下,将题 ...
- 多维随机变量及其分布——《概率论及其数理统计》第三章学习笔记
多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 文章目录 多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 前言 MindMap 二维随机变量 定义与 ...
- 周志华西瓜书第三章学习笔记
第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...
最新文章
- 数字开头的正则表达式_初学Web前端要注意什么 正则表达式是怎么回事
- RS100项目进展更新
- Struts原理与实践(2)
- Jquery读取.Net WebService Json数据
- 视频封装格式篇(TS)
- inurl faq.php,seo新手工作就是做外链
- matlab画受力分析图,MATLAB求解受力分析
- hough直线检测c语言,基于hough变换的直线检测
- 培根密码加解密(Python)
- 一、HTML基础(笔记)
- 【转载】2005中文博客排名报告
- 使用HTML Purifier防止xss攻击
- java 开发模式详解_Java开发中的23种设计模式详解4
- 2021-“新“的开源项目之handpose_x(手势识别交互)
- java代码控制电脑发出警报_java – 如何使用警报构建器对话框显示消息
- 如何搭建自己的博客网站(手把手教你搭建免费个人博客网站)
- SATA SSD需要NCQ开启吗?
- jieba分词使用方法
- 广州塔C语言程序,小蛮腰 led广州塔diy程序
- 记录webp图像转gif(python webp格式转换)