Есть ли разница во временной сложности для алгоритмов средней длины кратчайшего пути и диаметра графа?

Для неориентированного невзвешенного графа есть ли разница во временной сложности алгоритма вычисления его средней длины кратчайшего пути и сложности алгоритма, который вычисляет диаметр графа, т. Е. Самый длинный кратчайший путь между двумя вершинами?


person stressed_geek    schedule 02.08.2011    source источник


Ответы (3)


Согласно Wikipedia, чтобы вычислить диаметр графа, вы должны сначала найти кратчайший путь для всех пар. После вычисления кратчайшего пути для всех пар оба алгоритма сводятся к вычислению O (V ^ 2), поэтому их сложность одинакова.

person Zer0    schedule 02.08.2011

Я не читал много литературы по этой теме, но подозреваю, что это одно и то же. Однако, если есть несоответствие, я бы сказал, что вычисление диаметра графа может быть асимптотически быстрее.

Мой алгоритм для обоих будет заключаться в вычислении кратчайшего пути для всех пар с использованием алгоритма Дейкстры, который выполняется в V*(E+V*log(V)). Затем в качестве среднего вы должны взять среднее арифметическое по всем этим значениям. Я не вижу способа ускорить это.

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

person tskuzzy    schedule 02.08.2011
comment
Алгоритм Дейкстры вычисляет только кратчайшие пути из одного источника, а не кратчайший путь из всех пар. Модификацией алгоритма Дейкстры, который вычисляет кратчайшие пути для всех пар, является алгоритм Джонсона, который в некоторых случаях может превзойти Флойда-Уоршалла. - person templatetypedef; 02.08.2011
comment
Просто запустите алгоритм Дейкстры на всех отдельных источниках. Все равно быстрее FW. - person tskuzzy; 03.08.2011
comment
@ tskuzzy - алгоритм Джонсона, по сути, делает это после предварительной обработки графа, чтобы исключить любые ребра с отрицательным весом. :-) - person templatetypedef; 03.08.2011

Нет, не должно быть никакой разницы во временной сложности между ними.

Вы можете найти самый длинный путь между двумя вершинами, настроив алгоритм кратчайшего пути.

person bluefalcon    schedule 02.08.2011