Russian Qt Forum

Программирование => Алгоритмы => Тема начата: gil9red от Июль 03, 2012, 12:33



Название: [РЕШЕНО] Граф. Алгоритм нахождения расстояния м/д вершинами.
Отправлено: gil9red от Июль 03, 2012, 12:33
Здравствуйте, форумчане!
Не пинайте меня пожалуйста!!  :)
Нужен алгоритм поиска расстояния м/д вершинами графа,
граф не имеет ориентации и его ребра не имеют веса.
Он ооочень нужен, а в алгоритмах я не очень силен, вообще не силен :)
Спасибо, заранее :)


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: Igors от Июль 03, 2012, 12:41
Не пинайте меня пожалуйста!!  :)
Нужен алгоритм поиска расстояния м/д вершинами графа,
граф не имеет ориентации и его ребра не имеют веса.
Пинать не будем, но скажите что надо. Если заданы ребра и каждая вершина (точка) имеет координату, то чего находить-то? Длины ребер известны. Или Вам надо построить ребра? Или найти путь в графе? Нет задачи - не будет и решений. 


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: DmitryM от Июль 03, 2012, 12:45
Здравствуйте, форумчане!
Не пинайте меня пожалуйста!!  :)
Нужен алгоритм поиска расстояния м/д вершинами графа,
граф не имеет ориентации и его ребра не имеют веса.
Он ооочень нужен, а в алгоритмах я не очень силен, вообще не силен :)
Спасибо, заранее :)
Алгоритм Дейкстры (http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D1%8B)


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: gil9red от Июль 03, 2012, 13:50
Если полное условие, то:
есть файл, в нем:
  • кол-во вершин
  • кол-во ребер
  • связь м\д вершинами

например для графа (http://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Sample_graph.svg/131px-Sample_graph.svg.png)
связь будет такой:
1->2
2->3
2->4
2->5
3->4
4->5
5->6

нужно вывести расстояние м/д 1 вершиной и всеми остальными

для данного графа, расстояние м/д 1 и 4 вершинами будет 2


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: gil9red от Июль 03, 2012, 14:28
DmitryM, я написал что ребра графа не имеют веса, а алгоритм Дейкстры находит находит минимальное расстояние учитывая веса ребер


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: Patrin Andrey от Июль 03, 2012, 14:34
Ну так представьте, что вес всех рёбер равен.


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: gil9red от Июль 03, 2012, 14:44
Patrin Andrey, в алгоритме Дейкстры это представление не даст ничего хорошего, представим, что нужно найти минимальнй путь скажем от первой вершины до последней, вес у всех равен, следовательно, первый же путь окажется для такого алгоритма истинным (что не всегда хорошо), для условия моей задачи ориентации нет и нет у ребер веса, что определенно облегчает алгоритм поиска, и использовать для его решения Дейкстру не очень рационально, да и как я говорил выше, с генерацией и претворением алгоритмов у меня проблемы  :)
Поэтому я и прошу у вас помощи :)


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: Fat-Zer от Июль 03, 2012, 14:55
ОМГ. обычный «поиск в ширину»...


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: Igors от Июль 03, 2012, 15:04
Проще написать (аттач) чем объяснять.

gil9red просьба убрать из названия темы "лень". Если затрудняетесь с какой-то вещью (пусть простой), лучше так и сказать, чем делать вид типа "да я могу но мне лень"  :)


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами. Лень.
Отправлено: DmitryM от Июль 03, 2012, 16:09
Patrin Andrey, в алгоритме Дейкстры это представление не даст ничего хорошего, представим, что нужно найти минимальнй путь скажем от первой вершины до последней, вес у всех равен, следовательно, первый же путь окажется для такого алгоритма истинным (что не всегда хорошо), для условия моей задачи ориентации нет и нет у ребер веса, что определенно облегчает алгоритм поиска, и использовать для его решения Дейкстру не очень рационально, да и как я говорил выше, с генерацией и претворением алгоритмов у меня проблемы  :)
Поэтому я и прошу у вас помощи :)
Не смешите мои тапочки. Алгоритм Дейкстры находит кратчайшие пути от одной из вершин до всех. Если принять вес ребра 1, то получишь расстояние от заданной вершины, до любой другой.


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами.
Отправлено: gil9red от Июль 03, 2012, 16:14
Igors, спасибо большое =)
осталось теперь перевести этот код на Java :), но это уже моя забота, да и похожи они синтаксисом :)

DmitryM, не буду с вами спорить, я писал предположение, выдвинутое, благодаря знаниям (или их отсутствием, смотря с чем сравнивать), поэтому могу и ошибаться, но по крайней мере материал википедии я читал :)


Название: Re: Граф. Алгоритм нахождения расстояния м/д вершинами.
Отправлено: kostya2vntu от Июль 04, 2012, 11:24
Никакой дейкстры, самый обычный bfs (уже писали - поиск в ширину).