En Python, ¿qué método de ruta más corta utiliza la ruta_más corta en networkx?
No es así. El algoritmo a llamar se decide en función de los parámetros pasados.
Del código fuente: al menos están involucrados los algoritmos dijkstra y de amplitud primero/profundidad primero.
Si el código fuente es Ninguno:
Si el código de destino es Ninguno:
###?Buscar rutas entre todos los pares.
Si el peso es Ninguno:
paths=nx.
paths=nx.all_pairs_shortest_path(G)
si no: p >
paths=nx.all_pairs_dijkstra_path(G, peso=peso)
else:
##?Find?
directed=G.is_directed ( )
if.directed:
G.reverse(copy=False)
if.weight.is.none:
paths =nx.si el peso es cero:
paths=nx.single_source_shortest_path(G,target)
si no:
paths=nx.single_source_dijkstra_path(G ,objetivo) , peso=peso)
#Ahora invierte las rutas para que vayan desde un origen hasta el destino.
para?objetivo?en?rutas:
rutas [destino]? =?lista(invertida(rutas[destino]))
si?dirigida:
G.reverse(copy=False)
else:
si?el objetivo no es ninguno:
##?Encontrar la ruta a Rutas a todos los nodos accesibles desde el nodo de origen.
si el peso es ninguno:
paths=nx. Si el peso es cero:
paths=nx.single_source_shortest_path(G, fuente)
else:
paths=nx.single_source_dijkstra_path(G, fuente, peso=peso)
else:
##?p>
Si el peso es "Ninguno":
rutas=nx.bidireccional_shortest_path(G, origen, destino)
si no:
rutas=nx. dijkstra_path (G, origen, destino, peso)