Tranzitív lezárt és Warshall algoritmus

Download Report

Transcript Tranzitív lezárt és Warshall algoritmus


Egy G=(V,E) gráf tranzitív lezárása G'(V',E')
gráf, ahol V'=V és (u,v)∈E'⇔ ∃u ->v út a
gráfban.



Célja: Egy véges, súlyozatlan, irányított vagy
irányítatlan gráf tranzitív lezártjának
meghatározása.
Az algoritmus alapja a Floyd algoritmus lesz, ám
logikai műveletekkel értelmezve.
A kiindulási mátrixot (W) töltsük fel a köv. szerint:
1, ha i  j vagy (i, j)  E
 i , j  re (1  i , j  n ) : W [ i , j ] : 
 0 , különben

A ciklusban végzett művelet pedig legyen a
következő:
W[i, j] : W[i, j]  (W[i, k]  W[k, j])
1
2
3
4
5
1
2
3
4
5
1
1
1
0
1
0
2
1
1
1
0
0
3
0
0
1
0
1
4
0
0
0
1
0
5
0
0
1
0
1
1
2
3
4
5
1
2
3
4
5
1
1
1
1
1
0
2
1
1
1
0
0
3
0
0
1
0
1
4
0
0
0
1
0
5
0
0
1
0
1
1
2
3
4
5
1
2
3
4
5
1
1
1
1
1
1
2
1
1
1
1
0
3
0
0
1
0
1
4
0
0
0
1
0
5
0
0
1
0
1
1
2
3
4
5
1
2
3
4
5
1
1
1
1
1
1
2
1
1
1
1
1
3
0
0
1
0
1
4
0
0
0
1
0
5
0
0
1
0
1
1
2
3
4
5
1
2
3
4
5
1
1
1
1
1
1
2
1
1
1
1
1
3
0
0
1
0
1
4
0
0
0
1
0
5
0
0
1
0
1