Cierre transitivo en línea mejor que O (N ^ 2) por adición de borde

15

Estoy buscando un algoritmo en línea para mantener el cierre transitivo de un gráfico acíclico dirigido con una complejidad temporal menor que O (N ^ 2) por adición de borde. Mi algoritmo actual es así:

For every new edge u->v connect all nodes in Pred(u) \cup { u } with all nodes in Succ(v) \ \cup { v }.

Para los bordes O (N ^ 2) esto se traduce en una complejidad de tiempo total de O (N ^ 4) que es mucho peor que, por ejemplo, Floyd-Warshall .

Alexandru
fuente

Respuestas:

15

O (n) tiempo por adición de borde:

Jukka Suomela
fuente
2
Ver también: DM Yellin. Acelerando el cierre transitivo dinámico para gráficos de grado acotado. Acta Informatica, 30: 369–384, 1993.
Jeffε
1
El primer artículo proporciona dos operaciones importantes desde el cierre transitivo, pero necesito una tercera: iterar a través de todos los nodos accesibles. Sin embargo, el segundo artículo es bueno.
Alexandru