离散数学【关系】习题解析(二)自反对称传递,闭包,warshall

目录

  • 1.求三大闭包
  • 2. warshall算法
  • 3 求传递闭包和对称闭包
  • 5 求直积
  • 6 判断集合类型
  • 7 求t( R)

1.求三大闭包

在这里插入图片描述
R的关系矩阵如下

M R = [ 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 ] M_R=\begin{bmatrix} 1&0&1&0&0\\ 0&0&1&0&1\\ 0&0&1&0&0\\ 0&0&0&0&1\\ 1&0&0&0&0 \end{bmatrix} MR=1000100000111000000001010
自反闭包r( R)将对角线补齐即可
M r ( R ) = [ 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 ] M_r(R)=\begin{bmatrix} 1&0&1&0&0\\ 0&1&1&0&1\\ 0&0&1&0&0\\ 0&0&0&1&1\\ 1&0&0&0&1 \end{bmatrix} Mr(R)=1000101000111000001001011
对称闭包s( R)将矩阵沿着对角线补对称
M s ( R ) = [ 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 ] M_s(R)=\begin{bmatrix} 1&0&1&0&1\\ 0&0&1&0&1\\ 1&1&1&0&0\\ 0&0&0&0&1\\ 1&1&0&1&0 \end{bmatrix} Ms(R)=1010100101111000000111010
传递闭包t( R)需要进行关系的复合
M ( R 2 ) = [ 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 ] ∘ [ 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 ] = [ 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 ] M(R^2)=\begin{bmatrix} 1&0&1&0&0\\ 0&0&1&0&1\\ 0&0&1&0&0\\ 0&0&0&0&1\\ 1&0&0&0&0 \end{bmatrix} \circ \begin{bmatrix} 1&0&1&0&0\\ 0&0&1&0&1\\ 0&0&1&0&0\\ 0&0&0&0&1\\ 1&0&0&0&0 \end{bmatrix}= \begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&0\\ 0&0&1&0&0\\ 1&0&0&0&0\\ 1&0&1&0&0 \end{bmatrix} M(R2)=10001000001110000000010101000100000111000000001010=1101100000111010000000000
因为2传递的
R ⋃ R 2 = [ 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 ] ⋃ [ 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 ] = [ 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 ] R\bigcup R^2=\begin{bmatrix} 1&0&1&0&0\\ 0&0&1&0&1\\ 0&0&1&0&0\\ 0&0&0&0&1\\ 1&0&0&0&0 \end{bmatrix} \bigcup \begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&0\\ 0&0&1&0&0\\ 1&0&0&0&0\\ 1&0&1&0&0 \end{bmatrix}= \begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&1\\ 0&0&1&0&0\\ 1&0&0&0&1\\ 1&0&1&0&0 \end{bmatrix} RR2=10001000001110000000010101101100000111010000000000=1101100000111010000001010

M ( R 3 ) = [ 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 ] M(R^3)=\begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&0\\ 0&0&1&0&0\\ 1&0&1&0&0\\ 1&0&1&0&0 \end{bmatrix} M(R3)=1101100000111110000000000

可以看出R3 ⊈ \nsubseteq R ⋃ \bigcup R2

所以
R ⋃ R 2 ⋃ R 3 = [ 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 ] ⋃ [ 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 ] ⋃ [ 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 ] = [ 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 ] R\bigcup R^2\bigcup R^3=\begin{bmatrix} 1&0&1&0&0\\ 0&0&1&0&1\\ 0&0&1&0&0\\ 0&0&0&0&1\\ 1&0&0&0&0 \end{bmatrix} \bigcup \begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&0\\ 0&0&1&0&0\\ 1&0&0&0&0\\ 1&0&1&0&0 \end{bmatrix} \bigcup \begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&0\\ 0&0&1&0&0\\ 1&0&1&0&0\\ 1&0&1&0&0 \end{bmatrix}= \begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&1\\ 0&0&1&0&0\\ 1&0&1&0&1\\ 1&0&1&0&0 \end{bmatrix} RR2R3=100010000011100000000101011011000001110100000000001101100000111110000000000=1101100000111110000001010

M ( R 4 ) = [ 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 ] M(R^4)=\begin{bmatrix} 1&0&1&0&0\\ 1&0&1&0&0\\ 0&0&1&0&0\\ 1&0&1&0&0\\ 1&0&1&0&0 \end{bmatrix} M(R4)=1101100000111110000000000

发现 R4 ⊆ \subseteq R ⋃ \bigcup R2 ⋃ \bigcup R3

所以t(R)=R ⋃ \bigcup R2 ⋃ \bigcup R3

2. warshall算法

在这里插入图片描述
R的关系图如下

离散数学【关系】习题解析(二)自反对称传递,闭包,warshall_第1张图片
R的关系矩阵如下
M ( R ) = [ 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M(R)=\begin{bmatrix} 0&0&0&0&1&1\\ 0&0&0&0&0&0\\ 1&0&1&0&0&0\\ 0&0&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M(R)=001000000010001000000000100100100000
warshall算法的核心是,从列开始计算,在为1的元素中,身处在那x列就将x行的值加入当前元素所在的行
M 31 = [ 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M31=\begin{bmatrix} 0&0&0&0&1&1\\ 0&0&0&0&0&0\\ 1&0&1&0&1&1\\ 0&0&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M31=001000000010001000000000101100101000

M 52 = [ 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M52=\begin{bmatrix} 0&0&0&0&1&1\\ 0&0&0&0&0&0\\ 1&0&1&0&1&1\\ 0&0&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M52=001000000010001000000000101100101000

M 33 = [ 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M33=\begin{bmatrix} 0&0&0&0&1&1\\ 0&0&0&0&0&0\\ 1&0&1&0&1&1\\ 0&0&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M33=001000000010001000000000101100101000

M 15 = [ 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M 35 = [ 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M 45 = [ 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M15=\begin{bmatrix} 0&1&0&0&1&1\\ 0&0&0&0&0&0\\ 1&0&1&0&1&1\\ 0&0&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M35=\begin{bmatrix} 0&1&0&0&1&1\\ 0&0&0&0&0&0\\ 1&1&1&0&1&1\\ 0&0&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M45=\begin{bmatrix} 0&1&0&0&1&1\\ 0&0&0&0&0&0\\ 1&1&1&0&1&1\\ 0&1&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M15=001000100010001000000000101100101000M35=001000101010001000000000101100101000M45=001000101110001000000000101100101000

M 16 = M 36 = [ 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] M16=M36=\begin{bmatrix} 0&1&0&0&1&1\\ 0&0&0&0&0&0\\ 1&1&1&0&1&1\\ 0&1&0&0&1&0\\ 0&1&0&0&0&0\\ 0&0&0&0&0&0 \end{bmatrix} M16=M36=001000101110001000000000101100101000

M36就是她的传递闭包t(R),关系图为,其中红色线(代替虚线更加明显)部分是新加入的序偶

离散数学【关系】习题解析(二)自反对称传递,闭包,warshall_第2张图片

3 求传递闭包和对称闭包

在这里插入图片描述
关系矩阵如下
M ( R ) = [ 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 ] M(R)=\begin{bmatrix} 0&1&0&1&1\\ 1&0&1&0&0\\ 0&0&0&1&1\\ 1&0&1&0&0\\ 0&1&0&1&1\\ \end{bmatrix} M(R)=0101010001010101010110101
其对称闭包为,只需将矩阵沿对角线补齐即可
M s ( R ) = [ 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 ] M_s(R)=\begin{bmatrix} 0&1&0&1&1\\ 1&0&1&0&1\\ 0&1&0&1&1\\ 1&0&1&0&1\\ 1&1&1&1&1\\ \end{bmatrix} Ms(R)=0101110101010111010111111
传递闭包的warshall算法
M 21 = [ 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 ] M 41 = [ 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 ] M21=\begin{bmatrix} 0&1&0&1&1\\ 1&1&1&1&1\\ 0&0&0&1&1\\ 1&0&1&0&0\\ 0&1&0&1&1\\ \end{bmatrix} M41=\begin{bmatrix} 0&1&0&1&1\\ 1&1&1&1&1\\ 0&0&0&1&1\\ 1&1&1&1&1\\ 0&1&0&1&1\\ \end{bmatrix} M21=0101011001010101110111101M41=0101011011010101111111111

M 12 = [ 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 ] M 52 = [ 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 ] M12=\begin{bmatrix} 1&1&1&1&1\\ 1&1&1&1&1\\ 0&0&0&1&1\\ 1&1&1&1&1\\ 0&1&0&1&1\\ \end{bmatrix} M52=\begin{bmatrix} 1&1&1&1&1\\ 1&1&1&1&1\\ 0&0&0&1&1\\ 1&1&1&1&1\\ 1&1&1&1&1\\ \end{bmatrix} M12=1101011011110101111111111M52=1101111011110111111111111

M 34 = [ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ] = t ( R ) M34=\begin{bmatrix} 1&1&1&1&1\\ 1&1&1&1&1\\ 1&1&1&1&1\\ 1&1&1&1&1\\ 1&1&1&1&1\\ \end{bmatrix}=t(R) M34=1111111111111111111111111=t(R)

所以传递闭包t(R)为M34

等价类定义如下
在这里插入图片描述

5 求直积

在这里插入图片描述
P(A)={A的所有子集的集合}=2A
求P(A)与A的直积

AXP(A)={, ∅ \emptyset >,,,,, ∅ \emptyset >,}

6 判断集合类型

在这里插入图片描述
(1) R={<1,2>,<1,4>,<1,6>,<2,1>,<2,2>,<2,4>,<2,6>,<4,1>,<4,2>,<,4,4>,<4,6>,<6,1>,<6,2>,<6,4>,<6,6>}

没有<1,1>有<2,2>所以既不是反自反也不是自反

每一条线都有反向的所以是对称的

是可传递的

(2)R={<1,1>,<2,1>,<2,2>,<4,1>,<4,2>,<4,4>,<6,1>,<6,2>,<6,6>}

每个节点都有自旋,所以是自反的

任何不相等的节点连线都只有一条,所以是反对称的

不是可传递的

7 求t( R)

在这里插入图片描述
R关系矩阵如下

a b c d e
a 0 1 0 0 0
b 0 0 1 0 1
c 0 0 0 1 0
d 0 0 1 0 0
e 0 0 0 0 1

包含的序偶

R={,,,,,}

r®={,,,,,,,,,}

s(R)={,,,,,,,,}

使用warshall算法求得的传递闭包
M ( R ) = [ 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 ] M 12 = [ 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 ] M( R)=\begin{bmatrix} 0&1&0&0&0\\ 0&0&1&0&1\\ 0&0&0&1&0\\ 0&0&1&0&0\\ 0&0&0&0&1 \end{bmatrix} M12=\begin{bmatrix} 0&1&1&0&1\\ 0&0&1&0&1\\ 0&0&0&1&0\\ 0&0&1&0&0\\ 0&0&0&0&1 \end{bmatrix} M(R)=0000010000010100010001001M12=0000010000110100010011001

M 13 = [ 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 ] M 23 = [ 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 ] M 43 = [ 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 ] M13=\begin{bmatrix} 0&1&1&1&1\\ 0&0&1&0&1\\ 0&0&0&1&0\\ 0&0&1&0&0\\ 0&0&0&0&1 \end{bmatrix} M23=\begin{bmatrix} 0&1&1&1&1\\ 0&0&1&1&1\\ 0&0&0&1&0\\ 0&0&1&0&0\\ 0&0&0&0&1 \end{bmatrix} M43=\begin{bmatrix} 0&1&1&1&1\\ 0&0&1&1&1\\ 0&0&0&1&0\\ 0&0&1&1&0\\ 0&0&0&0&1 \end{bmatrix} M13=0000010000110101010011001M23=0000010000110101110011001M43=0000010000110101111011001

M 34 = [ 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 ] M34=\begin{bmatrix} 0&1&1&1&1\\ 0&0&1&1&1\\ 0&0&1&1&0\\ 0&0&1&1&0\\ 0&0&0&0&1 \end{bmatrix} M34=0000010000111101111011001

M 55 = [ 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 ] M55=\begin{bmatrix} 0&1&1&1&1\\ 0&0&1&1&1\\ 0&0&0&1&0\\ 0&0&1&1&0\\ 0&0&0&0&1 \end{bmatrix} M55=0000010000110101111011001

所以t(R)=M55

你可能感兴趣的:(数学,矩阵)