Как ограничить определенные пути в графах NetworkX ?

Я пытаюсь вычислить кратчайший путь между двумя точками, используя алгоритмы Дейкстры и A Star (в ориентированном графе NetworkX).

В настоящее время он работает нормально, и я вижу рассчитанный путь, но я хотел бы найти способ из , ограничивающего определенные пути .

Например, если у нас есть следующие узлы:

узлов = [1,2,3,4]

С этими ребрами:

ребер = ((1,2), (2,3), (3,4))

Есть ли способ заблокировать / ограничить 1 -> 2 -> 3 , но все же разрешить 2 -> 3 & 1 -> 2 .

Это будет означать, что:

  • может перемещаться от 1 до 2

  • может перемещаться от 2 до 3

  • не может перемещаться от 1 до 3 .. прямо или косвенно ( т.е. ограничить путь 1-> 2-> 3).

Можно ли этого достичь в NetworkX ... если нет, есть ли еще одна библиотека графов в Python, которая позволила бы это?

Спасибо.

10
задан nka 2 November 2011 в 16:20
поделиться