1

Тема: Диаметр графа

Как находить диаметр взвешенного графа?

2

Re: Диаметр графа

а какая разница взвешенный или нет?
ну самое тупое -- V BFS'ов

3

Re: Диаметр графа

вы бы ограничения дали smile

4

Re: Диаметр графа

Есть замечательный алгоритм Флойда-Уоршалла. Работает за O(N^3), реализация занимает 3 строки.

5

Re: Диаметр графа

chum пишет:

а какая разница взвешенный или нет?
ну самое тупое -- V BFS'ов

Есть разница ... Если у нас граф с рёбрами стоимостью 1, то тут да очередь обычная, а если взвешенный то тут не выгодно писать очередь, она может много раз ложить одну вершину .. Придётся писать V дейкстр с кучей ^^

6 Отредактировано chum (2010-04-15 08:32:41)

Re: Диаметр графа

brainail пишет:
chum пишет:

а какая разница взвешенный или нет?
ну самое тупое -- V BFS'ов

Есть разница ... Если у нас граф с рёбрами стоимостью 1, то тут да очередь обычная, а если взвешенный то тут не выгодно писать очередь, она может много раз ложить одну вершину .. Придётся писать V дейкстр с кучей ^^

конечно же нет разницы!

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

какие дейкстры с флойдами?))
V обходов в глубину / ширину!

7

Re: Диаметр графа

Аааа, тогда да.
Я же подумал что человек хочет узнать диаметр, если рёбра взвешены, и уже считается не по кол-ву рёбер, а по длине пути! извиняюсь.

8

Re: Диаметр графа

Кстати, наверняка человек это и имел ввиду иначе зачем он указал что граф взвешенный. При взвешенном графе, если конечно вес = длина ребра, диаметр считается по длине пути.

9

Re: Диаметр графа

Ну тогда если так, то не БФС, а Дейкстра с кучей smile

10

Re: Диаметр графа

brainail пишет:

Ну тогда если так, то не БФС, а Дейкстра с кучей smile

Почему именно с кучей? Она ведь не всегда работает быстрее smile Если ребер много, то проще уже писать Флойда - будет работать быстрее чем N Дейкстр с кучей и писать намного быстрее.

11

Re: Диаметр графа

KADR пишет:
brainail пишет:

Ну тогда если так, то не БФС, а Дейкстра с кучей smile

Почему именно с кучей? Она ведь не всегда работает быстрее smile Если ребер много, то проще уже писать Флойда - будет работать быстрее чем N Дейкстр с кучей и писать намного быстрее.

Конечно согласен! Просто условия не вижу вот и говорю что по ассимптотике лучше smile Но не всегда! tongue
Интересно, а вот фибоначива куча, она ведь за O(1) большинство операций делает, и ведь тогда дейкстра будет работать за O(V + E) :-D Я никогда её не писал, но если кто писал, как она себя ведёт при работе на больших тестах? smile

12

Re: Диаметр графа

brainail пишет:
KADR пишет:
brainail пишет:

Ну тогда если так, то не БФС, а Дейкстра с кучей smile

Почему именно с кучей? Она ведь не всегда работает быстрее smile Если ребер много, то проще уже писать Флойда - будет работать быстрее чем N Дейкстр с кучей и писать намного быстрее.

Конечно согласен! Просто условия не вижу вот и говорю что по ассимптотике лучше smile Но не всегда! tongue
Интересно, а вот фибоначива куча, она ведь за O(1) большинство операций делает, и ведь тогда дейкстра будет работать за O(V + E) :-D Я никогда её не писал, но если кто писал, как она себя ведёт при работе на больших тестах? smile

ээм
но мы же изменяем в куче элементы
а изменение стоит O(logN)

вообще дейкстру с фенвиком проще всего писать

13

Re: Диаметр графа

ээм
но мы же изменяем в куче элементы
а изменение стоит O(logN)

вообще дейкстру с фенвиком проще всего писать

На С++ есть priority_queue. Всегда писал с ней и нормально работало smile А Фенвика еще нужно руками писать. Хоть там кода мало, но все равно занимает время.

14

Re: Диаметр графа

tongue Куча рулез ^^