Estoy tratando de calcular el camino más corto entre 2 puntos utilizando los algoritmos Dijkstra y A Star (en un gráfico dirigido de NetworkX).¿Cómo restringir ciertas rutas en los gráficos de NetworkX?
En estos momentos se trabaja muy bien y puedo ver la ruta calculada, pero me gustaría encontrar una manera de restringir ciertos caminos .
Por ejemplo si hemos siguientes nodos:
nodos = [1,2,3,4]
Con estos bordes:
bordes = ((1,2), (2 , 3), (3,4))
¿hay alguna manera de bloquear/restringir 1 -> 2 -> 3 pero todavía permiten 2 -> 3 & 1 -> 2.
Esto significaría que:
puede de viaje desde 1 a 2
puede viajar de 2 a 3
no puede viajes de 1 a 3 .. directa o indirectamente (es decir, restringir 1-> 2-> 3 ruta).
¿Se puede lograr esto en NetworkX ... si no hay otra biblioteca de gráficos en Python que permita esto?
Gracias.
No sé si esto se puede hacer dentro de NetworkX, pero un enfoque (conceptualmente) simple sería observar el nodo 1 y, si se utiliza, eliminar el nodo 3 por completo. – Wilduck