Let us state the steps of the Warshall's algorithm:
Step 1. Let W : = M R , k : = 0. W:=M_R,\ k:=0. W := M R , k := 0.
Step 2. Put k : = k + 1. k:=k+1. k := k + 1.
Step 3. For all i ≠ k i\ne k i = k such that w i k = 1 w_{ik}=1 w ik = 1 and for all j j j let w i j = w i j ∨ w k j . w_{ij}=w_{ij}\lor w_{kj}. w ij = w ij ∨ w kj .
Step 4. If k = n k=n k = n then STOP: W = M R ∗ , W=M_{R^*}, W = M R ∗ , else go to Step 2.
Consider a relation R = { ( 1 , 1 ) , ( 1 , 0 ) , ( 0 , 2 ) , ( 2 , 3 ) , ( 3 , 1 ) } R=\{ (1,1),(1, 0), (0,2), (2,3), (3,1)\} R = {( 1 , 1 ) , ( 1 , 0 ) , ( 0 , 2 ) , ( 2 , 3 ) , ( 3 , 1 )} on the set A = { 0 , 1 , 2 , 3 } A=\{0, 1,2,3\} A = { 0 , 1 , 2 , 3 } .
Let us find transitive closure of the relation R R R using Warshall's algorithm:
W ( 0 ) = M R = ( 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 ) W^{(0)}=M_R
=\begin{pmatrix}
0 & 0 & 1 & 0\\
1 & 1 & 0 & 0\\
0 & 0 & 0 & 1\\
0 & 1 & 0 & 0
\end{pmatrix} W ( 0 ) = M R = ⎝ ⎛ 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 ⎠ ⎞
W ( 1 ) = ( 0 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 ) W^{(1)}
=\begin{pmatrix}
0 & 0 & 1 & 0\\
1 & 1 & 1 & 0\\
0 & 0 & 0 & 1\\
0 & 1 & 0 & 0
\end{pmatrix} W ( 1 ) = ⎝ ⎛ 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 ⎠ ⎞
W ( 2 ) = ( 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 ) W^{(2)}
=\begin{pmatrix}
0 & 0 & 1 & 0\\
1 & 1 & 1 & 0\\
0 & 0 & 0 & 1\\
1 & 1 & 1 & 0
\end{pmatrix} W ( 2 ) = ⎝ ⎛ 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 ⎠ ⎞
W ( 3 ) = ( 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 ) W^{(3)}
=\begin{pmatrix}
0 & 0 & 1 & 1\\
1 & 1 & 1 & 1\\
0 & 0 & 0 & 1\\
1 & 1 & 1 & 1
\end{pmatrix} W ( 3 ) = ⎝ ⎛ 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 ⎠ ⎞
M R ∗ = W ( 4 ) = ( 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ) M_{R^*}=W^{(4)}
=\begin{pmatrix}
1 & 1 & 1 & 1\\
1 & 1 & 1 & 1\\
1 & 1 & 1 & 1\\
1 & 1 & 1 & 1
\end{pmatrix} M R ∗ = W ( 4 ) = ⎝ ⎛ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ⎠ ⎞
It follows that R ∗ = A × A R^*=A\times A R ∗ = A × A is a universal relation on the set A . A. A .
Comments