prev up inhalt next


6.3 Transitiver Abschluß

Gegeben: G = (V,E) errichtet und unbewertet
   
Gesucht: der transitive Abschluß von G , d.h. die boolesche Matrix a , für die gilt:

Der nun folgende Algorithmus zur Bestimmung der transitiven Hülle von G ist ein typisches Beispiel für das Dynamic Programming:

Bestimme r k(i,j) = TRUE $\iff$$\exists$ Weg von i nach j , der nur über Knoten {1,...,k} läuft. Initial seien die r 0(i,j) -Werte durch r 0(i,j) = TRUE $\iff$(i,j) $\in$ E gegeben.

Der Algorithmus sieht dann wie folgt aus:


     FOR k := 1 TO n DO
          FOR ALL i, j DO
               r k(i,j) := r (k - 1)(i,j) OR ( r (k - 1)(i,k) AND r (k - 1)(k,j) )
          END;
     END;

Die Matrix (r n)i,j ist dann das gewünschte Ergebnis.

Die Laufzeit dieses Algorithmus liegt in O(n 3) .


prev up inhalt next