Warshall算法的matlab实现(计算传递闭包)
Warshall算法步骤
- 置新矩阵A:=M;
- 置i:=1;
- 对所有j,如果A[j,i]=1,则对k=1,2,…,n,有A[j,i]:=A[j,k]+A[i,k];
- i加1;
- 如果i<=n,则转到步骤(3),否则停止。
实例
设A={a,b,c,d},给定A上的关系R为R={<a,b>,<b,a>,<b,c>,<c,d>},求t®。
- i=1时,第一列中只有A[2,1]=1,将第二行与第一行各对应元素进行逻辑相加,仍记于第二行。
- i=2时,第二列中A[1,2]=A[2,2]=1,分别将第一行、第二行各对应元素和第二行进行逻辑相加,仍分别记于第一行、第二行。
- i=3时,第三列中A[1,3]=A