想说的话
完全不废话,谁都能懂 φ(>ω<*)
只关注如何求关系闭包,不讲原理,因为懒(不是)
方便起见,就以下图为例。关系为
R
=
{
⟨
1
,
1
⟩
,
⟨
1
,
2
⟩
,
⟨
3
,
1
⟩
}
R=\lbrace\langle1,1\rangle,\langle1,2\rangle,\langle3,1\rangle\rbrace
R={⟨1,1⟩,⟨1,2⟩,⟨3,1⟩}
自反闭包
将没有环的结点加上环。
例题中结点
1
1
1有环,结点
2
,
3
2,3
2,3无环,因此将结点
2
,
3
2,3
2,3加上环即可。
对称闭包
将只有一条边相连的两个结点之间加上一条相反的边。
结点 1 , 2 1,2 1,2之间和结点 1 , 3 1,3 1,3之间只有一条边相连,因此各加上一条相反的边即可。
传递闭包
就像抄近道一样,将通过两条及以上的边相连的结点连起来。
结点
2
,
3
2,3
2,3以
3
→
1
→
2
3\to1\to2
3→1→2的路径相连,因此只要加上路径
3
→
2
3\to2
3→2 即可。
注意一种特殊情况:若存在
1
→
2
→
1
1\to2\to1
1→2→1的情况,需要连接
1
→
1
1\to1
1→1 ,即将结点
1
1
1连环,同理,结点2连环。
练习题
分别求出以下三个关系中的自反闭包、对称闭包和传递闭包。
关系一:
设关系二: R = { ⟨ a , a ⟩ , ⟨ b , b ⟩ , ⟨ b , c ⟩ , ⟨ c , b ⟩ } R=\lbrace\langle a,a\rangle,\langle b,b\rangle,\langle b,c\rangle,\langle c,b\rangle\rbrace R={⟨a,a⟩,⟨b,b⟩,⟨b,c⟩,⟨c,b⟩}
关系三:
答案:
关系一:
r ( R ) = { ⟨ 1 , 1 ⟩ , ⟨ 2 , 2 ⟩ , ⟨ 3 , 3 ⟩ , ⟨ 1 , 2 ⟩ , ⟨ 2 , 1 ⟩ , ⟨ 2 , 3 ⟩ , ⟨ 3 , 1 ⟩ } r(R)=\lbrace\langle 1,1\rangle,\langle 2,2\rangle,\langle 3,3\rangle,\langle 1,2\rangle,\langle 2,1\rangle,\langle 2,3\rangle,\langle 3,1\rangle\rbrace r(R)={⟨1,1⟩,⟨2,2⟩,⟨3,3⟩,⟨1,2⟩,⟨2,1⟩,⟨2,3⟩,⟨3,1⟩}
s ( R ) = { ⟨ 1 , 1 ⟩ , ⟨ 2 , 2 ⟩ , ⟨ 1 , 2 ⟩ , ⟨ 2 , 1 ⟩ , ⟨ 2 , 3 ⟩ , ⟨ 3 , 2 ⟩ , ⟨ 1 , 3 ⟩ , ⟨ 3 , 1 ⟩ } s(R)=\lbrace\langle 1,1\rangle,\langle 2,2\rangle,\langle 1,2\rangle,\langle 2,1\rangle,\langle 2,3\rangle,\langle 3,2\rangle,\langle 1,3\rangle,\langle 3,1\rangle\rbrace s(R)={⟨1,1⟩,⟨2,2⟩,⟨1,2⟩,⟨2,1⟩,⟨2,3⟩,⟨3,2⟩,⟨1,3⟩,⟨3,1⟩}
t ( R ) = { ⟨ 1 , 1 ⟩ , ⟨ 2 , 2 ⟩ , ⟨ 1 , 2 ⟩ , ⟨ 2 , 1 ⟩ , ⟨ 2 , 3 ⟩ , ⟨ 3 , 2 ⟩ , ⟨ 1 , 3 ⟩ , ⟨ 3 , 1 ⟩ } t(R)=\lbrace\langle 1,1\rangle,\langle 2,2\rangle,\langle 1,2\rangle,\langle 2,1\rangle,\langle 2,3\rangle,\langle 3,2\rangle,\langle 1,3\rangle,\langle 3,1\rangle\rbrace t(R)={⟨1,1⟩,⟨2,2⟩,⟨1,2⟩,⟨2,1⟩,⟨2,3⟩,⟨3,2⟩,⟨1,3⟩,⟨3,1⟩}
关系二:
r ( R ) = { ⟨ a , a ⟩ , ⟨ b , b ⟩ , ⟨ b , c ⟩ , ⟨ c , b ⟩ , ⟨ c , c ⟩ } r(R)=\lbrace\langle a,a\rangle,\langle b,b\rangle,\langle b,c\rangle,\langle c,b\rangle,\langle c,c\rangle\rbrace r(R)={⟨a,a⟩,⟨b,b⟩,⟨b,c⟩,⟨c,b⟩,⟨c,c⟩}
s ( R ) = { ⟨ a , a ⟩ , ⟨ b , b ⟩ , ⟨ b , c ⟩ , ⟨ c , b ⟩ } s(R)=\lbrace\langle a,a\rangle,\langle b,b\rangle,\langle b,c\rangle,\langle c,b\rangle\rbrace s(R)={⟨a,a⟩,⟨b,b⟩,⟨b,c⟩,⟨c,b⟩}
t ( R ) = { ⟨ a , a ⟩ , ⟨ b , b ⟩ , ⟨ c , c ⟩ , ⟨ b , c ⟩ , ⟨ c , b ⟩ } t(R)=\lbrace\langle a,a\rangle,\langle b,b\rangle,\langle c,c\rangle,\langle b,c\rangle,\langle c,b\rangle\rbrace t(R)={⟨a,a⟩,⟨b,b⟩,⟨c,c⟩,⟨b,c⟩,⟨c,b⟩}
关系三:
r ( R ) = { ⟨ a , a ⟩ , ⟨ b , b ⟩ , ⟨ c , c ⟩ , ⟨ a , b ⟩ } r(R)=\lbrace\langle a,a\rangle,\langle b,b\rangle,\langle c,c\rangle,\langle a,b\rangle\rbrace r(R)={⟨a,a⟩,⟨b,b⟩,⟨c,c⟩,⟨a,b⟩}
s ( R ) = { ⟨ a , a ⟩ , ⟨ a , b ⟩ , ⟨ b , a ⟩ } s(R)=\lbrace\langle a,a\rangle,\langle a,b\rangle,\langle b,a\rangle\rbrace s(R)={⟨a,a⟩,⟨a,b⟩,⟨b,a⟩}
t ( R ) = { ⟨ a , a ⟩ , ⟨ a , b ⟩ } t(R)=\lbrace\langle a,a\rangle,\langle a,b\rangle\rbrace t(R)={⟨a,a⟩,⟨a,b⟩}
有任何错误欢迎指出(〃‘▽’〃)