Тёмный

Алгоритм Дейкстры 

Kirsanov2011
Подписаться 38 тыс.
Просмотров 149 тыс.
50% 1

Имеем ориентированный взвешенный граф. Ищем кратчайшие пути от одной из вершин до остальных. Вершинам задаем так называемые "временные" и "постоянные" метки. На каждом этапе наименьшая временная метка становится постоянной, от вершины с этой меткой на следующем этапе разыскиваются пути к доступным (соседним) вершинам. См. книгу Кирсанов М.Н. "Графы в Maple".

Опубликовано:

 

19 июн 2012

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 144   
@user-cy4lp7gn7p
@user-cy4lp7gn7p Год назад
Большое спасибо. Это лучшее объяснение данного алгоритма, из тех что я встретил на просторах. Понятно и наглядно👍👍
@senya5668
@senya5668 4 года назад
Пасибо , что спасаете ленивых студентов..
@annavasileva5688
@annavasileva5688 Год назад
Объяснение с прямой линией вижу в первый раз, и это очень удобно. Спасибо большое!
@RomanOleynik92
@RomanOleynik92 8 лет назад
Благодарю вас за информационный, легко усвоиемый видео урок.
@lif0CLUB
@lif0CLUB 7 лет назад
Большое спасибо,вам за ваши труды
@Faustism
@Faustism 10 лет назад
Отлично! Очень доходчиво. Спасибо!
@user-ls6ko9je3c
@user-ls6ko9je3c 7 лет назад
Спасибо, всех благ вам за ваши труды :)
@osenyaaPechen
@osenyaaPechen 11 лет назад
Вы сэкономили мне кучу времени. Спасибо!
@yehorpanchenko10
@yehorpanchenko10 7 лет назад
Посмотрел куча других видео - ничего не понял. Посмотрел ваше - все понял с самого начала. Спасибо за доступное объяснение.
@Enthe0genic
@Enthe0genic 7 лет назад
Спасибо большое! Очень доходчиво объясняете.
@user-go4kn1sy6u
@user-go4kn1sy6u 9 лет назад
Спасибо за урок..Всё ясно и понятно!!)нет ничего лишнего - всё по теме!!
@andrushabt
@andrushabt 2 года назад
спасибобольшое вам за очень простое обьяснение. здоровья и процветания вам
@user-wg8ty1rg1l
@user-wg8ty1rg1l 9 лет назад
Большое спасибо за доступное объяснение
@archwarden7004
@archwarden7004 4 года назад
Очень интересно и доходчиво, спасибо!
@ya_gema
@ya_gema 6 лет назад
Спасибо Вам большое, очень доступно и понятно объяснили.
@MySaluto
@MySaluto 11 лет назад
Хочу заметить, что алгоритм физически напоминает поведение воды когда она накапливается на неровном ландшафте, первым делом заливает пустоты, затем если вокруг высокие препятствия - ищет следующий кратчайший путь повышая уровень воды. Повышение уровня воды - это аналог "удорожания маршрута".
@iluhanse745
@iluhanse745 4 месяца назад
Спасибо Вам огромное! Наконец-то окончательно разобрался с этим алгоритмом.
@fogrinn7525
@fogrinn7525 3 года назад
Спасибо большое вам за обьяснение!
@user-sr8ss2er6r
@user-sr8ss2er6r 4 месяца назад
Огромное спасибо! Вы помогли мне понять этот алгоритм!
@raikhantemirova8951
@raikhantemirova8951 4 года назад
Благодаря вам , получил 90 баллов по дискретной математике. Спасибо!!!
@user-ht1dy9pl7i
@user-ht1dy9pl7i 3 года назад
Спасибо огромное, уже столько времени прошло, а акутально и по сей день:)
@s4ygak
@s4ygak 2 года назад
Пересмотрел несколько раз, поставил лайк, алгоритм запомнил, идеально
@ellviira
@ellviira 9 лет назад
Большое спасибо,все понятно и доступно
@user-sh2qg9vk4u
@user-sh2qg9vk4u 5 лет назад
Отличное объяснение) Спасибо!!
@leonidsah
@leonidsah 3 года назад
Вы просто лучший
@valermann
@valermann 5 лет назад
Отличное представление!
@user-yg7jf6jw7r
@user-yg7jf6jw7r 11 лет назад
Отлично! Разобрался с алгоритмом Дейсктры! Нет ли у Вас такого же доступного урока по алгоритмам Форда и Флойда? Не могу разобраться. Заранее благодарен!!!
@MsTurugor
@MsTurugor 11 лет назад
Благодарю) Долго не мог понять, теперь разобрался)
@arthuralunts5424
@arthuralunts5424 Год назад
Спасибо, док.
@Gidrionix
@Gidrionix 9 лет назад
Спасибо огромное!!!!!!!!!!!!!!
@blk8722
@blk8722 11 лет назад
Всё отлично понятно, спасибо за видео)
@user-lb7bg6tx3x
@user-lb7bg6tx3x 9 лет назад
Спасибо, все понятно. Но у нам в университете используют алгоритм из 6-ти ходов... То еще занятие, но результат тот же значит?
@user-ub5tj9th1m
@user-ub5tj9th1m 10 лет назад
Спасибо автору
@rusg777
@rusg777 11 лет назад
Спасибо большое!
@dailyInfo24
@dailyInfo24 Год назад
спасибо, тятя, вы очинь умнний. Я сам узбек делал поступило ни унивирсэтет. очинь сложна(((. вы памоч спосибо
@Kirsanov2011
@Kirsanov2011 11 лет назад
Для поиска последовательности узлов алгоритм надо еще немного доработать. Но не принципиально, просто на каждом этапе запоминать, из чего складывается минимальная сумма, а потом стирать ее, если найдется еще меньше (а в ней тоже уже хранится последовательность...). На любом алгоритм.языке это не трудно сделать. Я это делал в Maple (см. мою книгу "Графы в Maple", она есть в сети)
@DrRofl54
@DrRofl54 10 лет назад
Спасибо!
@Kirsanov2011
@Kirsanov2011 11 лет назад
просмотрите еще раз и почитайте книги... Успехов!
@azazelluciferfuck
@azazelluciferfuck 9 лет назад
Спасибо большое взглянул на это с другой стороны
@FixedA
@FixedA 8 лет назад
не могли бы пожалуйста, про D* еще рассказать
@treugolinik
@treugolinik 10 лет назад
Спасибо!!!
@JeckPot111
@JeckPot111 8 лет назад
Мужик, спасиб большое
@haruhiismygoddess2727
@haruhiismygoddess2727 11 лет назад
Никак не мог разобраться, как работает протокол динамической маршрутизации OSPF, он как раз основан на методе Дейкстры. Посмотрел видео, разобрался. Спасибо)
@kattyrein9900
@kattyrein9900 8 лет назад
Отличное видео, все очень понятно! Единственный вопрос, как вычислять сам путь (порядок вершин), а не только длину пути?
@Kirsanov2011
@Kirsanov2011 8 лет назад
+Katty Rein Пишите каждый раз список предшествующих вершин
@Guveba
@Guveba 11 лет назад
Хорошо, нашли мы кратчайшее расстояние, а как узнать через какие точки? Из полученной таблицы я наглядно этого не увидел.
@Suuuuuuhovich
@Suuuuuuhovich 10 лет назад
Могли бы вы рассказать о методе Беллмана-Мура? Для отрицательных весов
@BbeeTV
@BbeeTV 11 лет назад
Могли бы вы нарисовать блок схему к вашему решению и к алгоритму в целом?? Очень нужно! Заранее спасибо!
@user-ey5ch7vu1w
@user-ey5ch7vu1w 8 лет назад
благодаря видео я сдела свою контрольную работу по графам))) спасибо БОЛЬШОЕ
@Kirsanov2011
@Kirsanov2011 8 лет назад
+Дима Рекун Ради этого я и трудился...
@GAVVVR
@GAVVVR 11 лет назад
Спасибо большое, все понятно)
@vladimirduchenchuk8518
@vladimirduchenchuk8518 11 лет назад
Огромное спасибо! Ни как не мог найти ошибку в своей реализации алгоритма=)
@OrangeWithThorns
@OrangeWithThorns 5 лет назад
Спасибо.
@ablgmv
@ablgmv 8 лет назад
спасибо!
@antontelyaev4927
@antontelyaev4927 7 лет назад
супер!
@Andrea13339
@Andrea13339 11 лет назад
Надо внимательнее, видио-гид очень подробно расписан: шаг за шагом. Спасибо за алгоритм!
@jmnext1338
@jmnext1338 7 лет назад
Здравствуйте. А алгоритм флойда уошера у вас нет? Я ваши видео глянул но ничего такого не встретил. Заранее спасибо
@user-of8fj1um1x
@user-of8fj1um1x 7 лет назад
Спасибо)
@sobolmx
@sobolmx 11 лет назад
superb! spassibo!
@Pancelet
@Pancelet 3 года назад
Мэи с заставкой в начале звучит грандиозно
@IvanGavr
@IvanGavr 10 месяцев назад
Спасибо. А если так?! Найти все пути из первой точки в последнюю; затем для каждого найденного пути найти расстояние; сохранить все в массиве, отсортировать массив расстояний по возрастанию, то первое значение и будет кратчайшим путём. Это уже будет далеко от алгоритма Дейкстры?!
@Kirsanov2011
@Kirsanov2011 9 месяцев назад
Вот в том то и дело - как найти ВСЕ пути? Перебором? Думайте. Вопрос не закрыт. Алг Дейкстры - это одно из решений
@IvanGavr
@IvanGavr 9 месяцев назад
@@Kirsanov2011вот такой у меня получился способ, (без кода) на основе упорядоченной матрицы: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-FBk5vDdusoY.html
@user-ih1mm4uv4m
@user-ih1mm4uv4m 8 лет назад
спасибо
@dudejustdude
@dudejustdude 11 лет назад
Сделал лабу четверти группы, спасибо)
@flukalpes
@flukalpes 7 лет назад
А как найти сам путь, а не только его длину?
@hskdjs
@hskdjs 7 лет назад
Как вариант - при обновлении метки сохранять информацию о вершине-предшественнике.
@Kirsanov2011
@Kirsanov2011 11 лет назад
Зачем блок-схема? Могу и саму программу на простом и понятном языке Maple. См. стр. 111 моей книги "Графы в Maple" (книга есть в сети, но уже нет в продаже). Но там задействованы и спец.команды Maple, хотя их назначение довольно ясно...
@SahkaP
@SahkaP 11 лет назад
С этой таблицей я запутался еще сильнее
@gudapavella1751
@gudapavella1751 3 года назад
Теперь я понимаю, почему в универе частенько ничего не понимал, этож надо, на 75% видео сказать, я ошибся в самом начале, давайте я за 2 секунды все переделаю.
@batista12001
@batista12001 10 лет назад
Назначь длиной каждого ребра единицу, тогда этот алгоритм выведет тебе наименьшее кол-во рёбер от начальной до конечной вершины, а это и есть маршрут.
@Kirsanov2011
@Kirsanov2011 11 лет назад
Будет и Форд-Флойд. А Форд-Фалкерсон уже есть. Ищите.
@Kirsanov2011
@Kirsanov2011 11 лет назад
Ничего не изменится, хоть 1000000! Можете еще алгоритмом Флойда воспользоваться, это еще проще, а потом свериться с Дейкстрой, все совпадет. Все эти алгоритмы доказываются, это только я так по-простому все рассказал... См. книги.
@AntonioNeStradivary
@AntonioNeStradivary 11 лет назад
Я извиняюсь, просто посмотрел описание на Вики, и уж очень странным оно мне показалось. Под впечатлением, отправил сообщение не по адресу. Прошу извинить. Я только одного момента не понял, алгоритм Дейкстры находит именно ВЕЛИЧИНУ пути, в вашем примере, это 5, либо он может найти сам путь, т.е. перечень всех узлов по порядку которые нужно посетить?
@AntonioNeStradivary
@AntonioNeStradivary 11 лет назад
В рамках моей задачи, для поиска маршрута я могу использовать следующий подход - удалять из графа все длинные пути к одной и той-же вершине, оставляя только короткие. При вычислении веса вершины, если новый вес больше текущего, это значит, что найден дополнительный и более длинный путь к этой вершине. Следовательно этот путь (ребро) я могу удалить из графа. Для моей задачи это не критично. Таким образом в конце получаю граф в котором все точки связаны только одним маршрутом. Думаю это сработает.
@user-xb7fs2uc4f
@user-xb7fs2uc4f 4 года назад
Вопрос такой. Если в одном ряду получилось два одинаковых числа и они оба наименьшие, то что делать?
@Kirsanov2011
@Kirsanov2011 4 года назад
Решение бывает не единственным. Поэтому берите любую. Потом для интереса возьмите другую.
@alexandristomin2410
@alexandristomin2410 8 лет назад
Спасибо за видео, всё понятно, но у меня вопрос, что делать если в конце 2 повторяется постоянная вершина 4 ?
@Kirsanov2011
@Kirsanov2011 8 лет назад
Не совсем ясен вопрос. Постоянная вершина только один раз появляется. Потом ход на нее запрещен.
@alexandristomin2410
@alexandristomin2410 8 лет назад
у меня повторяется наименьшее число
@Kirsanov2011
@Kirsanov2011 8 лет назад
Если два одинаковых наименьших числа - берите любое.
@alexandristomin2410
@alexandristomin2410 8 лет назад
Kirsanov2011 ясно, спасибо вам
@fenrrisulfr
@fenrrisulfr Год назад
@@Kirsanov2011 а что делать, если я пришла к определенной вершине (до конечной еще не дошла), но из нее ходы только в постоянные вершины, т.е. тупик?
@AngelVlad100
@AngelVlad100 10 лет назад
А что делать если в ряду 2 одинаковые вершины?Решать относительно каждой?
@Kirsanov2011
@Kirsanov2011 10 лет назад
Выбирать любую из них.
@BbeeTV
@BbeeTV 11 лет назад
просто мне именно блок-схема нужна для курсовой работы все объяснение ваше понял, а вот как нарисовать блок-схему не понимаю(
@AntonioNeStradivary
@AntonioNeStradivary 11 лет назад
ок, буду дорабатывать. Спасибо.
@user-zm2lx8ly2j
@user-zm2lx8ly2j 3 года назад
Здравствуйте,этот алгоритм с первого раза приведет к кратчайшему пути? Просто я для интереса выбрала не самый короткий путь на некоторых шагах а в итоге прошла более коротким путем чем если бы я действовала по алгоритму
@Kirsanov2011
@Kirsanov2011 3 года назад
Не может этого быть! Ошиблись.
@user-zm2lx8ly2j
@user-zm2lx8ly2j 3 года назад
@@Kirsanov2011 да,ошибка была в сносе,а где обзор на алгоритм Форда-Беллмана?
@SahkaP
@SahkaP 11 лет назад
Спасибо, но я просто пытался вспомнить алгоритм. Википедия расставила все на своим места
@dizogdizog2591
@dizogdizog2591 8 лет назад
Спасибо за ролик в любом случае. но мне кажется надо это понимать на языке символов и алгоритмов. так для общего частного понимания средних к коим и себя отношу умов
@MaximumDo
@MaximumDo 4 года назад
имеем 2 массива: дист[n] = [0]*n, tested[n] = [false]*n и матрица смежности am[n][n], где, если вершины не связаны, стоит inf пока минимальная длина < inf tested[minvert] = true для всех вершин графа если dist[minvert] + am[minvert][i] < dist[i] обновляем dist[i] ищем вершину с наименьшим дист[i] и tested[i] == false minvert = i mindist = dist[i]
@mcd-ti2wv
@mcd-ti2wv 3 года назад
Самое понятное разъяснение
@user-wm8st2ni4x
@user-wm8st2ni4x 8 лет назад
Находим минимальный путь, а если нужен максимальный путь выбираем на каждом шаге максимум? Спасибо
@Kirsanov2011
@Kirsanov2011 8 лет назад
+Марина иванова Минимум функции f(x) совпадает с максимумом A-f(x) - просто перевернуть график
@Ilichi
@Ilichi 8 лет назад
Можете подробней описать, как найти максимальний путь?
@Kirsanov2011
@Kirsanov2011 8 лет назад
1. Берете какое-нибудь большое число А, большее, чем вес любой дуги графа. 2. Все веса f_k графа заменяете на A-f_k 3. В полученном графе находите минимальный путь. Для исходного графа он будет максимальным.
@Ilichi
@Ilichi 8 лет назад
Благодарю за ответ!
@Kirsanov2011
@Kirsanov2011 10 лет назад
См, например, мою книгу "Графы в Maple"
@kriguitar4753
@kriguitar4753 10 лет назад
Ясно, алгоритм находит кратчайшее расстояние от одной вершины к остальным, а как быть если мне надо узнать не численное расстояние до остальных вершин, а маршрут (то есть список вершин чтобы в сумме удовлетворяли расстоянию) ?
@bond94g
@bond94g 5 лет назад
Жалко, лектор этого не рассказал. Там нужно завести ещё один столбец, в котором указывать номер вершины, получившей постоянную пометку на данном шаге. С помощью этого столбца легко восстанавливается кратчайший путь до любой вершины. Также можно построить т.н. дерево кратчайших путей.
@kyzmitch2
@kyzmitch2 Год назад
у нас в универе никогда не говорили "снести"
@dm.vortex4171
@dm.vortex4171 8 лет назад
я не понял как он с вершины 3 в вершину 2 попал ?
@user-sf1pm4jz4j
@user-sf1pm4jz4j 8 лет назад
+Дмитрий Вихарев , снес "2" с предыдущей строки так как она весит (мы её не прошли), и сравнил - минимальное в получившейся строчке
@traxternberg
@traxternberg 5 лет назад
Представленный алгоритм неполный, путь по вершинам, образующим минимальное расстояние не фиксируется. И вообще, объяснение не Дейкстры, родной алгоритм предусматривает обход по всем соседним вершинам, на которых еще не был. Далее Обход соседей от соседних вершин и т.д. ...
@Kirsanov2011
@Kirsanov2011 5 лет назад
Спасибо!
@lerby5512
@lerby5512 10 лет назад
Безусловно плюс за ваш труд, но, как мне кажется, не помешало бы сделать метку на видео когда начинается сам алгоритм :)
@DimaasisDas
@DimaasisDas 11 лет назад
да это же элементарно! как можно запутаться?
@user-bb4xz2ok7z
@user-bb4xz2ok7z 3 года назад
спасибо огромное, у меня завтра экзамен по теории алгоритмов, надеюсь сдам)
@Kirsanov2011
@Kirsanov2011 3 года назад
Есть еще А*
@Suuuuuuhovich
@Suuuuuuhovich 10 лет назад
Как найти максимальный путь
@MrProdagi
@MrProdagi 9 лет назад
выбирай найбольшее значение в каждой строке.
@BbeeTV
@BbeeTV 11 лет назад
Или хотя бы понятный алгоритм написать, по которому можно будет нарисовать блок-схему
@ekklesiast
@ekklesiast 7 лет назад
Не понимаю, в вики описание отличается.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 6 лет назад
в вики графически представлено и псевдокодом там тоже хорошая подача материала
@Inseidful
@Inseidful 6 лет назад
слабо что-то понял, почему 5 если минимальное расстояние 1-3-6?
@IvanShulga
@IvanShulga 6 лет назад
5 - это минимальное расстояние (минимальная сумма длин ребер), а не номер вершины, т.е длина ребра (1)->(3) = 1; длина ребра (3) -> (6) = 4. итого минимальное расстояние (1)->(3)->(6) = 1+4 = 5
@user-ui5ob8cu5u
@user-ui5ob8cu5u 5 лет назад
Вообще то это и так видно что кратчайшее расстояние 5 данный зачем формализм?
@juneority
@juneority 5 лет назад
а если там тысячи вершин?
@user-jg3xw2hs7i
@user-jg3xw2hs7i 7 лет назад
Ааа зачем алгоритм дейскры если крускала быстрее
@Kirsanov2011
@Kirsanov2011 7 лет назад
Алгоритм построения минимального остова? Зачем? или у Крускала есть еще алгоритм, который я не знаю?
@user-jg3xw2hs7i
@user-jg3xw2hs7i 7 лет назад
чтобы дойти до вершины 6
@user-jg3xw2hs7i
@user-jg3xw2hs7i 7 лет назад
и кстати за сколько работает алгоритм дейкстры
@user-jg3xw2hs7i
@user-jg3xw2hs7i 7 лет назад
за квадрат или линию на логарифм
@dmitrypetrov8491
@dmitrypetrov8491 7 лет назад
1) Алгоритм Крускала используется для построения минимального остова, а не для поиска кратчайших путей в орграфах. 2) Чтобы говорить об асимптотике алгоритма Дейкстры, нужно определиться со структурами данных, которые Вы собираетесь использовать. В самой наивной реализации, если Вы будите хранить граф в виде матрицы смежности, то алгоритм будет работать за O(n^2), где n - число вершин графа. В самом деле, вам нужно будет сделать n шагов, на каждом из которых просматривать n вершин.
@mkdotam
@mkdotam 11 лет назад
Если владеете английском посмотрите вот сюда, /watch?v=xT5o1QCeWS8 - очень все четко объяснено.
@vasyapupkin997
@vasyapupkin997 4 года назад
угарный чел
@john1987742
@john1987742 3 года назад
ничего не понял
@dizogdizog2591
@dizogdizog2591 8 лет назад
Спасибо посмотрел но вот же )))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
@Kirsanov2011
@Kirsanov2011 8 лет назад
Мне эта инф знакома. Скоро будет новый вариант видео "Модификация алг Дейкстры".
@AntonioNeStradivary
@AntonioNeStradivary 11 лет назад
Гладко было на бумаге... А если вес 4-6 будет 1000, что этот алгоритм покажет? Я ещё десяток графов могу нарисовать, в которых этот алгоритм не будет работать корректно.
@Leha900
@Leha900 6 лет назад
Он один из тех преподавателей, которому если самому ясно, то и ладно, а как там ученики, его не очень волнует. Пропускает детали в объяснении.
Далее
Муравьиный алгоритм
37:01
Просмотров 44 тыс.
Алгоритм Дейкстры
12:07
Просмотров 156 тыс.
МОЩЩЩНОСТЬ ZEEKR 001 FR
00:46
Просмотров 948 тыс.
WOW... WHAT A FIGHT!!!!! 📣 #ufc302
00:48
Просмотров 1 млн
REALLY LOVES CHIPS
00:19
Просмотров 2,6 млн
Алгоритм Прима
12:11
Просмотров 15 тыс.
Алгоритм Флойда
21:51
Просмотров 40 тыс.
Насыщение сети
17:17
Просмотров 58 тыс.
Минимальный остов
15:53
Просмотров 43 тыс.
Алгоритм Дейкстры
26:28
Просмотров 62 тыс.
МОЩЩЩНОСТЬ ZEEKR 001 FR
00:46
Просмотров 948 тыс.