Является ли all_pairs_dijkstra быстрее, чем несколько dijkstra_path? - PullRequest
0 голосов
/ 23 июня 2019

Является ли all_pairs_dijkstra просто dijkstra_path с циклом for, или все маршруты кратчайшего пути рассчитываются одновременно в all_pairs_dijkstra?

Быстрее ли сделать один all_pairs_dijkstra или многоdijkstra_path в цикле?

1 Ответ

0 голосов
/ 24 июня 2019

Хотя я не могу конкретно говорить о том, как networkx реализует эту функцию, использование алгоритма Дейкстры для решения проблемы кратчайших путей всех пар просто означает запуск одной копии алгоритма Дейкстры, начиная с каждого узла в графе, для вычисления парных расстояний.

При принятии решения, использовать ли цикл for вокруг одного вызова или использовать функцию all_pairs_dijkstra, я бы рекомендовал использовать all_pairs_dijkstra, если у вас нет веских причин не делать этого, поскольку эта функцияявно телеграфирует ваше намерение.Кроме того, если за кулисами проводятся какие-либо оптимизации, вы сможете ими воспользоваться.

Но специально для networkx, есть ли причина не просто использовать более простую функцию all_shortest_paths?Я полагаю, что это еще проще и будет хорошим вызовом, если у вас нет особых причин использовать all_pairs_dijkstra.

...