Versiones anteriores de esta página
Supported versions:
Bidirectional Dijkstra - Familia de funciones¶
pgr_bdDijkstra - Algoritmo Dijkstra bidireccional para las rutas más cortas.
pgr_bdDijkstraCost - Dijkstra bidireccional para calcular el costo de las rutas más cortas
pgr_bdDijkstraCostMatrix - Algoritmo Dijkstra bidireccional para crear una matriz de costes de las rutas más cortas.
Sinopsis¶
Basado en el algoritmo de Dijkstra, la búsqueda bidireccional encuentra el camino más corto entre el vértice de inicio al vértice final.
Corre dos búsquedas simultaneas: una adelante de la fuente y otra atrás del objetivo, parándose cuando los dos coinciden en medio.
Esta implementación se puede usar para los grafos dirigidos y no dirigidos.
Características¶
Las características principales son:
El proceso se realiza sólo en aristas con costos positivos.
Valor no negativo en una columna de costo se interpreta como la arista no exite.
Los valores se devuelven cuando hay una ruta.
Cuando no hay ruta:
Cuando el vértice de salida y el vértice destino son iguales.
El costo agregado de los valores no incluídos \((v, v)\) es \(0\)
Cuando el vértice de salida y el vértice destino son diferentes y no hay ninguna ruta:
El costo agregado de los valores no incluídos \((u, v)\) es :math: infty
Para fines de optimización, se ignora cualquier valor duplicado en los vertices de salida o destino.
Tiempo de ejecución (peor de los casos): \(O((V \log V + E))\)
Para grandes gráficos donde hay un camino entre el vértice inicial y el vértice final:
Se espera que termine más rápido que pgr_dijkstra
Ver también¶
Índices y tablas