第6章-附:传递闭包的计算

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第i行:1 0 1 0 第j行:0 1 0 0 + 1110 相加之后写回第i行:
布尔加:0+0 = 0 1+0 = 1 0+1 = 1
广东工业大学计算机学院
++j <= n
N
1+0 = 1 1+1 = 1
结束
Warshall算法应用举例(续)
mij 0 M 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0
mij
0 1 M 1 0 0 1 0 1 0 0 01 1 0 0 0 0 1 0
开始
AM,j=1
N
m22 = 1
Y
j=j+1∧n=4 j = 2+1 =3 j <= n
m2k = m2k + m2k
Y
++j <= n
N 结束
广东工业大学计算机学院
Warshall算法应用举例(续) 访问m22之后,将依次访问: 第3列:m13, m23 第4列:m14, m24, m34 mij
传递闭包的计算
(Warshall算法)
传递闭包的计算(Warshall算法)
设关系R的传递闭包为t(R),其矩阵 表示为Mt。 输入:M 输出: Mt (1) 用关系矩阵M表示关系R (2) 置变量j = 1 (3) 对于所有i,如果mij = 1, 对可k = 1, 2, …, n, 置 mik = mik + mjk(布尔加) 即:将第i行与第j行相加,所得结 Y 果写回第i行。 (4) j = j + 1; (5) 如果j≤n, 转至步骤(3), 否则停止。
广东工业大学计算机学院
开始
Rwk.baidu.comM,j=1
mij = 1 Y
N
mik = mik + mjk
++j <= n N
结束
Warshall算法应用举例
开始
例:设关系R的关系矩阵表示 如下图M所示,求它的传递 闭包。
M 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0
Y
AM,j=1
N
mij = 1
Y
mik = mik + mjk
++j <= n
N 结束
广东工业大学计算机学院
Warshall算法应用举例(续)
mij 0 1 M 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0
m21 = 1
Y
开始
AM,j=1
N
j=1 m21 = 1,i = 2;
m2k = m2k + m1k
Y
N
开始
AM,j=1
mij = 1
0 1 1 M 0 0
1 0 1 0 0
01 1 0 0
01 01 1 0
Y
mik = mik + mjk
Y
++j <= n
N
j = 4 ++j<= n不成立,程 序运行结束
广东工业大学计算机学院
结束
Warshall算法举例
例:设A = {a, b, c, d, e}, R = {<a, b>, <b, c>, <c, a>, <d, e>, <e, a>}, 求t(R)
开始
AM,j=1
N
m21 = 1
Y
j = j + 1∧ n = 4 j=1+1=2 j <= n
m2k = m2k + m1k
Y
++j <= n
N 结束
广东工业大学计算机学院
Warshall算法应用举例(续)
mij
开始
0 1 1 M 0 0
1
0 1 0 0
01 1 0 0
0
0 1 0
AM,j=1
0 0 M 0 1 0 0 1 1 M 3 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 M 1 1 0 0 1 1 M 4 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 M 2 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 M 5 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0
N
j=2 m12 = 1; i = 1 第i行:0 1 0 0 第j行:1 1 1 0 + 1110 相加之后写入第i行: 注意:第j行中存在m22 = 1, 仍然需要 再作一次加法。
广东工业大学计算机学院
m12 = 1
Y
m1k = m1k + m2k
Y
++j <= n
N
结束
Warshall算法应用举例(续)
广东工业大学计算机学院
1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1
相关文档
最新文档