|
9 / 9 / 3
Регистрация: 11.12.2012
Сообщений: 152
|
|
Метод Дейкстры по поиску оптимального пути на графе02.10.2014, 19:34. Показов 2100. Ответов 4
Метки нет (Все метки)
По курсу методов оптимизации возникла задача в решении примера поиска оптимального пути на графе с применением метода Дейкстры. Чтобы продемонстрировать, насколько этот метод не получается понять, прилагаю сам граф и попытку решения. Граф ориентированный, со скалярными весами рёбер. Как рисовать граф в 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 Помогите разобраться, что же делать
0
|
|
| 02.10.2014, 19:34 | |
|
Ответы с готовыми решениями:
4
Поиск оптимального пути в графе Нахождение оптимального пути в графе Нахождение кратчайшего пути в графе (алгоритм Дейкстры) |
|
9 / 9 / 3
Регистрация: 11.12.2012
Сообщений: 152
|
|
| 02.10.2014, 19:39 [ТС] | |
|
Наврал, вот граф))
Красным - номер вершины, синим - затраты на переход по ребру
0
|
|
|
1 / 1 / 1
Регистрация: 08.10.2014
Сообщений: 25
|
|
| 20.10.2014, 13:37 | |
|
Для удобства выписал себе матрицу, если заранее неизвестно за сколько дойдем, ставим бесконечность.(по графу тоже можно смотреть).
Ставим ноль той веришне, из которой будем искать пути до других вершин, штрихуем тк от самой до себя крачайшее расстояние 0.(первая строка) Во второй строке смотрим по графу (или матрице) переписываем известные нам веса инцидентных ребер тех вершин, до которых мы знаем как дойти(2, 6, 9) и в качестве метки берем минимальное расст. ( |<x(s), 2>| - единица), штрихуем. В третьей строке : из второй вершины мы знаем как дойти до 3, 6, 9. смотрим по матрице из 2 в 3 вес ребра - 2, прибавляем к единичке и смотрим меньше ли тройка бесконечности? если меньше переписываем, если больше оставляем бесконечность. также для 6 и 9 вершины. В 4 строке: в качестве метки выбрали 9 вершину кр. расст из x(s) - единица. делаем все тоже самое. если сумма единицы(метки) и веса ребра из матрицы больше, предыдущего то мы сносим предыдущую метку, иначе пишем новую. Прокомментирую еще 7 строку. в 7 строке: в качестве метки выбрали 7 вершину с кр. расст. из x(s) - 3. из 7 вершины в 4 по матрице вес ребра - 2, прибавляем к тройке двойку получаем - 5, 5<7? да. переписываем пятёрку, которую в последующем и выберем в качестве очередной метки. и так далее до конца. получили кратчайший путь из x(s) в x(t): x(s) - 9 - 7 - 4 - x(t) кратчайшее расстояние из x(s) в x(t) : 7. Если будут вопросы, спрашивайте)
0
|
|
|
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
|
|
| 21.10.2014, 14:33 | |
|
Как видите, два кратчайших пути. В квадратиках - минимальное расстояние от вершины 1 до данной вершины
0
|
|
|
1 / 1 / 1
Регистрация: 08.10.2014
Сообщений: 25
|
|
| 21.10.2014, 21:33 | |
|
да, еще 1 забыл
0
|
|
| 21.10.2014, 21:33 | |
|
Помогаю со студенческими работами здесь
5
Прохождение игры-числового паззла в виде нахождения оптимального пути в графе Реализовать алгоритм А* для поиска оптимального пути из начальной вершины в конечную на графе Алгоритм оптимального расположения на графе Прогрмма по поиску кратчайших путей в графе Поиск оптимального пути Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|