• 9.3 关系的表示


    9.3 关系的表示

    关系的一般表示方法:

    • 将所有关系列出;
    • 用一个到{T, F}的映射

    关系的特殊表示方法

    • 用0-1矩阵(zero-one matrix)来表示;
    • 用有向图(directed graph)来表示

    用邻接矩阵表示关系

    称0-1矩阵MR为R的邻接矩阵, 定义如下:

    1. 通过以下观察0-1矩阵,很容易发现以下性质:
    • 拥有自反性(reflexive)的0-1矩阵主对角线全为“1”
    • 拥有非自反性(irreflexive)的0-1矩阵主对角线全为“0”
    • 拥有对称性(symmetric)的0-1矩阵主对角线任意,关于主对角线对称的元素相等
    • 拥有反对称性(antisymmetric)的0-1矩阵主对角线任意,关于主对角线对称的元素不能同时为“1”
    1. 定义两个邻接矩阵的join为这两个矩阵的布尔或运算(boolean 'or')
    2. 定义两个邻接矩阵的meet为这两个矩阵的布尔与运算(boolean 'and')

    用0-1矩阵表示关系的复合:

    MS◦R = [tij], MR = [rij], MS = [sij]
    MS◦R = MRMS
    其中,⊙表示两个矩阵进行布尔乘运算(boolean product)

    例:

    [ M_R = left[egin{matrix} 1 & 0 & 1 \ 1 & 1 & 0 \ 0 & 0 & 0 end{matrix} ight] ]

    [ and quad M_S = left[egin{matrix} 0 & 1 & 0 \ 0 & 0 & 1 \ 1 & 0 & 1 end{matrix} ight] ]

    MS◦R的每个tijMR的第i行与MS的第j列进行布尔乘运算,得到S◦R的邻接矩阵为:

    [ M_{S◦R} = left[egin{matrix} 1 & 1 & 1 \ 0 & 1 & 1 \ 0 & 0 & 0 end{matrix} ight] ]

    矩阵布尔乘计算器

    用图表示关系

    理解:

    • 顶点(vertex)
    • 边(arc or edge)
    • 有向图(directed graph or digraph)
    例:用有向图来表示一个关系: ![](https://img2018.cnblogs.com/blog/1803261/201909/1803261-20190918184243520-1113860860.png)
    1. 入度与出度
    • 顶点a的入度:以顶点a为起点的箭头的个数
    • 顶点a的出度:以顶点a为终点的箭头的个数
    1. 限制
      如果R是定义在A上的关系,并且B是A的子集,则R对B的限制(the restriction of R to B)为:

    R ∩ (B × B)

    1. 有特殊性质的图
    • 具有自反性的图:每个节点都有自环

    • 具有反自反性的图:无自环节点

    • 具有对称性的图:所有箭头都是双向的

    • 具有反对称性的图:无双向箭头

    • 特别注意:①.没有既不对称又不反对称的图;②.没有既不自反也不反自反的图。

    1. 一些等价关系:

    有一个关系R以及它的邻接矩阵MR,设△是一个等价关系,即M是单位矩阵

    ①. R自反 <= => △ ⊆ R <= => all 1's on its main diagonal
    ②. R反自反 <= => △ ∩ R = ∅ <= => all 0's on its main diagonal
    ③. R对称反对称非对称显然不赘述
    ④. R传递 <= => MR=[mij]具有这个性质:如果mij = 1,并且mjk = 1,那么mik = 1.
    ④. R传递 ==> R2 ⊆ R, because if a and c are connected by a path of length 2 in R, then they must be connected by a path of length 1.

    1. 误区:

    The answer is NO!

  • 相关阅读:
    Jenkins发布遇到的问题
    js相关问题总结
    代码洁癖症轻度患者-页面显示状态判断解决方案
    eclipse没有打断点,项目确仍然要进入断点的问题。
    liunx新装tomcat之后,tomcat不能识别新发布的项目
    phpstorm+xdebug单步调试的配置
    laravel 路由前缀,路由名称前缀区别
    Specified key was too long ... 767 bytes
    postman 自动化测试
    Linux top输出st 的值过高导致系统负载过高
  • 原文地址:https://www.cnblogs.com/SpicyArticle/p/11868611.html
Copyright © 2020-2023  润新知