Как найти входной и выходной узлы в неориентированном сетевом графике сложного каркаса дорожек в пористой структуре? - PullRequest
0 голосов
/ 27 февраля 2020

Привет! У меня есть график networkX каркаса внутреннего пространства в пористой структуре. Мне нужно рассчитать длину путей между узлами входа и выхода. Чтобы сделать это, я рассматриваю узлы с координатами z больше / меньше определенного числа (нижняя и верхняя черные линии), и если они имеют пути между собой, я вычисляю их. Но при таком подходе я вычисляю почти одни и те же пути несколько раз, потому что не знаю, как определить только вход (или выход).

I consider all the nodes lower and upper black lines

1 Ответ

1 голос
/ 27 февраля 2020

Разве этого недостаточно, чтобы

  • получить список возможных входных узлов (z> 450)
  • получить список возможных выходных узлов (z <50) </li>
  • вычисляет все комбинации узлов ввода / вывода (itertools.product) и ставит sh их в сложное отображение пар с путями (dict.fromkeys(combinations, None))
  • для каждой комбинации:
    • вычислить, найден ли путь (https://networkx.github.io/documentation/stable/reference/algorithms/shortest_paths.html)
    • , если путь не найден, пометить его в dict
    • , если путь найден:
      • отметьте его в dict для пары ввода / вывода
      • , если путь содержит комбинацию узлов ввода / вывода, которую вы еще не вычислили (значение в dict равно None), этот же путь (или его подмножество) будет применяться и для этой комбинации
...