2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

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

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Метод Дейкстры по поиску оптимального пути на графе
Сообщение03.10.2014, 19:45 


01/10/12
119
ННГУ
По курсу методов оптимизации возникла задача в решении примера поиска оптимального пути на графе с применением метода Дейкстры. Чтобы продемонстрировать, насколько этот метод не получается понять, прилагаю сам граф и попытку решения. Граф ориентированный, со скалярными весами рёбер. Как рисовать граф в latex не знаю, поэтому таблицей и скриншотом. В нулевом столбце - вершины "откуда", в нулевой строке - вершины "куда", на пересечении - затраты.

xx 1 2 3 4 5 6 7 8 9 10
______________________
01|..1.......3.....1...
02|....2.....1.........
03|......4.............
04|........2.....1.....
05|....................
06|............2...1...
07|......2.............
08|........1...........
09|............2......6
10|............4.8.....

(Оффтоп)

Изображение

Стартовая вершина - 1(первая), финальная - 5(пятая)
шаг 0: вершина 1 получает метку [0], остальные [бесконечность]
шаг 1: рассматриваем вершины, достижимые из вершины 1, это вершины 2, 6 и 9, метки переписываются следующим образом:
1 [0]
2 [1]
3 [бесконечность]
4 [бесконечность]
5 [бесконечность]
6 [3]
7 [бесконечность]
8 [бесконечность]
9 [1]
10 [бесконечность]

шаг 2: далее, как следует из википедии и из методички нашей, следует рассматривать ближайшую вершину к вершине 1, в данном случае у меня их две: это вершины 2 и 9, что же, попробую рассмотреть их обе.
для вершины 2 достижимыми являются вершины 3 и 6. Значение метки для вершины 6 меняется с [3] на [2], ибо меньше, для вершины 3 всё как обычно, [бесконечность] на [3]. Итого:
1 [0]
2 [1]
3 [3] (new)
4 [бесконечность]
5 [бесконечность]
6 [2] (new)
7 [бесконечность]
8 [бесконечность]
9 [1]
10 [бесконечность]
А также рассматриваем вершину 9. Из неё достижимы вершины 7 и 10, здесь так:
1 [0]
2 [1]
3 [3] (new)
4 [бесконечность]
5 [бесконечность]
6 [2] (new)
7 [3] (new)
8 [бесконечность]
9 [1]
10 [7] (new)
что делать дальше, не знаю. По сути, новые метки появились у вершин 3, 6, 7, 10. И надо выбрать из них наименьшую, и то будет вершина 6, но уже тут отклонимся от оптимального пути, так как оптимальный путь 1-9-7-4-5
Помогите разобраться, что же делать

 Профиль  
                  
 
 Re: Метод Дейкстры по поиску оптимального пути на графе
Сообщение03.10.2014, 19:59 
Аватара пользователя


14/10/13
339
По-моему, вы всё правильно делаете, и никакого противоречия нет. Оптимальный путь не обязан быть виден на каждом шаге, он может вылезти в самом конце алгоритма.

И да, кстати, ведь путь через вершины 2 и 6 тоже оптимальный.

 Профиль  
                  
 
 Re: Метод Дейкстры по поиску оптимального пути на графе
Сообщение03.10.2014, 20:15 


01/10/12
119
ННГУ
popolznev, спасибо, разобрался, ведь действительно, если продолжать алгоритм, рассматривая вершины, достижимые из вершины 6 мы наткнёмся на вершину 7, у которой метка [3], предлагая ей метку [4], поэтому оставим [3] и путь через вершину 2 будет прекращён.
Просто смутил момент с тем, что в самом начале возникли две вершины минимальные, но если смотреть на это, как будто они обрабатываются параллельно, то всё нормально, ведь вершина 6 будет вершиной с минимальной меткой для верхнего пути, а вершина 7 будет вершиной с минимальной меткой для нижнего пути, как бы параллельно два пути смотрим.
Ладно, пример дорешаю, возможно, ещё с другим попробую и получится, спасибо!

 Профиль  
                  
 
 Re: Метод Дейкстры по поиску оптимального пути на графе
Сообщение03.10.2014, 20:20 
Аватара пользователя


14/10/13
339
Да там не обязательно параллельно обрабатывать. Я как-то не вижу, в чём здесь может быть проблема. Можно обратить внимание разве на такой момент: в некоторых случаях у вас новое возможное значение метки для некоторой вершины совпадает со старым. И тогда у вас выбор: взять тот путь или этот, длины этих путей равны.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group