目录
- 1.求三大闭包
- 2. warshall算法
- 3 求传递闭包和对称闭包
- 5 求直积
- 6 判断集合类型
- 7 求t( R)
1.求三大闭包
R的关系矩阵如下
MR=[1010000101001000000110000]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?=???????10001?00000?11100?00000?01010????????
自反闭包r( R)将对角线补齐即可
Mr(R)=[1010001101001000001110001]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)=???????10001?01000?11100?00010?01011????????
对称闭包s( R)将矩阵沿着对角线补对称
Ms(R)=[1010100101111000000111010]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)=???????10101?00101?11100?00001?11010????????
传递闭包t( R)需要进行关系的复合
M(R2)=[1010000101001000000110000]?[1010000101001000000110000]=[1010010100001001000010100]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)=???????10001?00000?11100?00000?01010????????????????10001?00000?11100?00000?01010????????=???????11011?00000?11101?00000?00000????????
因为2传递的
R?R2=[1010000101001000000110000]?[1010010100001001000010100]=[1010010101001001000110100]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} R?R2=???????10001?00000?11100?00000?01010????????????????11011?00000?11101?00000?00000????????=???????11011?00000?11101?00000?01010????????
M(R3)=[1010010100001001010010100]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)=???????11011?00000?11111?00000?00000????????
可以看出R3?\nsubseteq? R?\bigcup? R2
所以
R?R2?R3=[1010000101001000000110000]?[1010010100001001000010100]?[1010010100001001010010100]=[1010010101001001010110100]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} R?R2?R3=???????10001?00000?11100?00000?01010????????????????11011?00000?11101?00000?00000????????????????11011?00000?11111?00000?00000????????=???????11011?00000?11111?00000?01010????????
M(R4)=[1010010100001001010010100]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)=???????11011?00000?11111?00000?00000????????
发现 R4?\subseteq? R?\bigcup? R2?\bigcup? R3
所以t(R)=R?\bigcup? R2?\bigcup? R3
2. warshall算法
R的关系图如下
R的关系矩阵如下
M(R)=[000011000000101000000010010000000000]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)=?????????001000?000010?001000?000000?100100?100000??????????
warshall算法的核心是,从列开始计算,在为1的元素中,身处在那x列就将x行的值加入当前元素所在的行
M31=[000011000000101011000010010000000000]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=?????????001000?000010?001000?000000?101100?101000??????????
M52=[000011000000101011000010010000000000]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=?????????001000?000010?001000?000000?101100?101000??????????
M33=[000011000000101011000010010000000000]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=?????????001000?000010?001000?000000?101100?101000??????????
M15=[010011000000101011000010010000000000]M35=[010011000000111011000010010000000000]M45=[010011000000111011010010010000000000]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=?????????001000?100010?001000?000000?101100?101000??????????M35=?????????001000?101010?001000?000000?101100?101000??????????M45=?????????001000?101110?001000?000000?101100?101000??????????
M16=M36=[010011000000111011010010010000000000]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=?????????001000?101110?001000?000000?101100?101000??????????
M36就是她的传递闭包t(R),关系图为,其中红色线(代替虚线更加明显)部分是新加入的序偶
3 求传递闭包和对称闭包
关系矩阵如下
M(R)=[0101110100000111010001011]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)=???????01010?10001?01010?10101?10101????????
其对称闭包为,只需将矩阵沿对角线补齐即可
Ms(R)=[0101110101010111010111111]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)=???????01011?10101?01011?10101?11111????????
传递闭包的warshall算法
M21=[0101111111000111010001011]M41=[0101111111000111111101011]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=???????01010?11001?01010?11101?11101????????M41=???????01010?11011?01010?11111?11111????????
M12=[1111111111000111111101011]M52=[1111111111000111111111111]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=???????11010?11011?11010?11111?11111????????M52=???????11011?11011?11011?11111?11111????????
M34=[1111111111111111111111111]=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=???????11111?11111?11111?11111?11111????????=t(R)
所以传递闭包t(R)为M34
等价类定义如下
5 求直积
P(A)={A的所有子集的集合}=2A
求P(A)与A的直积
AXP(A)={<a,a>,<a,?\emptyset?>,<a,b>,<a,a,b>,<b,a>,<b,b>,<b,?\emptyset?>,<b,a,b>}
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={<a,b>,<b,c>,<b,e>,<c,d>,<d,c>,<e,e>}
r?={<a,a>,<a,b>,<b,b>,<b,c>,<b,e>,<c,c>,<c,d>,<d,c>,<d,d>,<e,e>}
s(R)={<a,b>,<b,a>,<b,c>,<b,e>,<c,b>,<c,d>,<d,c>,<e,b>,<e,e>}
使用warshall算法求得的传递闭包
M(R)=[0100000101000100010000001]M12=[0110100101000100010000001]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)=???????00000?10000?01010?00100?01001????????M12=???????00000?10000?11010?00100?11001????????
M13=[0111100101000100010000001]M23=[0111100111000100010000001]M43=[0111100111000100011000001]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=???????00000?10000?11010?10100?11001????????M23=???????00000?10000?11010?11100?11001????????M43=???????00000?10000?11010?11110?11001????????
M34=[0111100111001100011000001]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=???????00000?10000?11110?11110?11001????????
M55=[0111100111000100011000001]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=???????00000?10000?11010?11110?11001????????
所以t(R)=M55