Encuentre el cierre transitivo de la computadora para resolver la relación del algoritmo del lenguaje R C
Para transferir el cierre, la técnica más sencilla es utilizar el algoritmo de Floyd.
El algoritmo de Floyd-Warshall es una forma de resolver el camino más corto entre dos puntos cualesquiera. Un algoritmo que puede manejar correctamente el. Problema del camino más corto de grafos dirigidos o pesos negativos, y también se utiliza para calcular el cierre transitivo de grafos dirigidos.
La complejidad temporal del algoritmo Floyd-Warshall es O(N3) y la complejidad espacial es O(N2).
El principio del algoritmo Floyd-Warshall es la programación dinámica.
Sea Di, j, k la longitud del camino más corto de i a j con solo los nodos en (1..k) establecidos como nodos intermedios.
1. Si el camino más corto pasa por el punto k, entonces Di, j, k = Di, k, k ? el camino más corto Sin pasar por el punto k, entonces Di, j, k = Di, j, k 1.
Por tanto, Di, j, k = min (Di, k, k ? 1 Dk, j, k ? 1, Di, j, k ? 1).
En el algoritmo real, para ahorrar espacio, la iteración se puede realizar directamente en el espacio original, de modo que el espacio se pueda reducir a dos dimensiones.
Para el código, consulte: