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

  Рет қаралды 149,088

Kirsanov2011

Kirsanov2011

12 жыл бұрын

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

Пікірлер: 144
@user-cy4lp7gn7p
@user-cy4lp7gn7p Жыл бұрын
Большое спасибо. Это лучшее объяснение данного алгоритма, из тех что я встретил на просторах. Понятно и наглядно👍👍
@senya5668
@senya5668 4 жыл бұрын
Пасибо , что спасаете ленивых студентов..
@annavasileva5688
@annavasileva5688 Жыл бұрын
Объяснение с прямой линией вижу в первый раз, и это очень удобно. Спасибо большое!
@osenyaaPechen
@osenyaaPechen 11 жыл бұрын
Вы сэкономили мне кучу времени. Спасибо!
@RomanOleynik92
@RomanOleynik92 8 жыл бұрын
Благодарю вас за информационный, легко усвоиемый видео урок.
@lif0CLUB
@lif0CLUB 7 жыл бұрын
Большое спасибо,вам за ваши труды
@user-ls6ko9je3c
@user-ls6ko9je3c 7 жыл бұрын
Спасибо, всех благ вам за ваши труды :)
@Enthe0genic
@Enthe0genic 7 жыл бұрын
Спасибо большое! Очень доходчиво объясняете.
@user-go4kn1sy6u
@user-go4kn1sy6u 9 жыл бұрын
Спасибо за урок..Всё ясно и понятно!!)нет ничего лишнего - всё по теме!!
@Faustism
@Faustism 10 жыл бұрын
Отлично! Очень доходчиво. Спасибо!
@user-ht1dy9pl7i
@user-ht1dy9pl7i 3 жыл бұрын
Спасибо огромное, уже столько времени прошло, а акутально и по сей день:)
@yehorpanchenko10
@yehorpanchenko10 7 жыл бұрын
Посмотрел куча других видео - ничего не понял. Посмотрел ваше - все понял с самого начала. Спасибо за доступное объяснение.
@iluhanse745
@iluhanse745 5 ай бұрын
Спасибо Вам огромное! Наконец-то окончательно разобрался с этим алгоритмом.
@ya_gema
@ya_gema 6 жыл бұрын
Спасибо Вам большое, очень доступно и понятно объяснили.
@andrushabt
@andrushabt 2 жыл бұрын
спасибобольшое вам за очень простое обьяснение. здоровья и процветания вам
@archwarden7004
@archwarden7004 4 жыл бұрын
Очень интересно и доходчиво, спасибо!
@leonidsah
@leonidsah 3 жыл бұрын
Вы просто лучший
@user-wg8ty1rg1l
@user-wg8ty1rg1l 9 жыл бұрын
Большое спасибо за доступное объяснение
@user-sr8ss2er6r
@user-sr8ss2er6r 5 ай бұрын
Огромное спасибо! Вы помогли мне понять этот алгоритм!
@fogrinn7525
@fogrinn7525 3 жыл бұрын
Спасибо большое вам за обьяснение!
@s4ygak
@s4ygak 2 жыл бұрын
Пересмотрел несколько раз, поставил лайк, алгоритм запомнил, идеально
@ellviira
@ellviira 9 жыл бұрын
Большое спасибо,все понятно и доступно
@user-sh2qg9vk4u
@user-sh2qg9vk4u 5 жыл бұрын
Отличное объяснение) Спасибо!!
@raikhantemirova8951
@raikhantemirova8951 4 жыл бұрын
Благодаря вам , получил 90 баллов по дискретной математике. Спасибо!!!
@MsTurugor
@MsTurugor 11 жыл бұрын
Благодарю) Долго не мог понять, теперь разобрался)
@valermann
@valermann 5 жыл бұрын
Отличное представление!
@dailyInfo24
@dailyInfo24 Жыл бұрын
спасибо, тятя, вы очинь умнний. Я сам узбек делал поступило ни унивирсэтет. очинь сложна(((. вы памоч спосибо
@blk8722
@blk8722 11 жыл бұрын
Всё отлично понятно, спасибо за видео)
@Gidrionix
@Gidrionix 9 жыл бұрын
Спасибо огромное!!!!!!!!!!!!!!
@MySaluto
@MySaluto 11 жыл бұрын
Хочу заметить, что алгоритм физически напоминает поведение воды когда она накапливается на неровном ландшафте, первым делом заливает пустоты, затем если вокруг высокие препятствия - ищет следующий кратчайший путь повышая уровень воды. Повышение уровня воды - это аналог "удорожания маршрута".
@user-ub5tj9th1m
@user-ub5tj9th1m 10 жыл бұрын
Спасибо автору
@rusg777
@rusg777 11 жыл бұрын
Спасибо большое!
@user-ey5ch7vu1w
@user-ey5ch7vu1w 8 жыл бұрын
благодаря видео я сдела свою контрольную работу по графам))) спасибо БОЛЬШОЕ
@Kirsanov2011
@Kirsanov2011 8 жыл бұрын
+Дима Рекун Ради этого я и трудился...
@GAVVVR
@GAVVVR 11 жыл бұрын
Спасибо большое, все понятно)
@Kirsanov2011
@Kirsanov2011 11 жыл бұрын
Для поиска последовательности узлов алгоритм надо еще немного доработать. Но не принципиально, просто на каждом этапе запоминать, из чего складывается минимальная сумма, а потом стирать ее, если найдется еще меньше (а в ней тоже уже хранится последовательность...). На любом алгоритм.языке это не трудно сделать. Я это делал в Maple (см. мою книгу "Графы в Maple", она есть в сети)
@JeckPot111
@JeckPot111 8 жыл бұрын
Мужик, спасиб большое
@arthuralunts5424
@arthuralunts5424 Жыл бұрын
Спасибо, док.
@DrRofl54
@DrRofl54 10 жыл бұрын
Спасибо!
@azazelluciferfuck
@azazelluciferfuck 9 жыл бұрын
Спасибо большое взглянул на это с другой стороны
@treugolinik
@treugolinik 10 жыл бұрын
Спасибо!!!
@Kirsanov2011
@Kirsanov2011 11 жыл бұрын
просмотрите еще раз и почитайте книги... Успехов!
@antontelyaev4927
@antontelyaev4927 7 жыл бұрын
супер!
@haruhiismygoddess2727
@haruhiismygoddess2727 11 жыл бұрын
Никак не мог разобраться, как работает протокол динамической маршрутизации OSPF, он как раз основан на методе Дейкстры. Посмотрел видео, разобрался. Спасибо)
@user-yg7jf6jw7r
@user-yg7jf6jw7r 11 жыл бұрын
Отлично! Разобрался с алгоритмом Дейсктры! Нет ли у Вас такого же доступного урока по алгоритмам Форда и Флойда? Не могу разобраться. Заранее благодарен!!!
@user-of8fj1um1x
@user-of8fj1um1x 7 жыл бұрын
Спасибо)
@ablgmv
@ablgmv 8 жыл бұрын
спасибо!
@vladimirduchenchuk8518
@vladimirduchenchuk8518 11 жыл бұрын
Огромное спасибо! Ни как не мог найти ошибку в своей реализации алгоритма=)
@sobolmx
@sobolmx 11 жыл бұрын
superb! spassibo!
@trampller
@trampller 11 жыл бұрын
Спасибо.
@kattyrein9900
@kattyrein9900 8 жыл бұрын
Отличное видео, все очень понятно! Единственный вопрос, как вычислять сам путь (порядок вершин), а не только длину пути?
@Kirsanov2011
@Kirsanov2011 8 жыл бұрын
+Katty Rein Пишите каждый раз список предшествующих вершин
@user-lb7bg6tx3x
@user-lb7bg6tx3x 9 жыл бұрын
Спасибо, все понятно. Но у нам в университете используют алгоритм из 6-ти ходов... То еще занятие, но результат тот же значит?
@user-ih1mm4uv4m
@user-ih1mm4uv4m 8 жыл бұрын
спасибо
@Guveba
@Guveba 11 жыл бұрын
Хорошо, нашли мы кратчайшее расстояние, а как узнать через какие точки? Из полученной таблицы я наглядно этого не увидел.
@Pancelet
@Pancelet 3 жыл бұрын
Мэи с заставкой в начале звучит грандиозно
@Andrea13339
@Andrea13339 11 жыл бұрын
Надо внимательнее, видио-гид очень подробно расписан: шаг за шагом. Спасибо за алгоритм!
@Suuuuuuhovich
@Suuuuuuhovich 10 жыл бұрын
Могли бы вы рассказать о методе Беллмана-Мура? Для отрицательных весов
@Kirsanov2011
@Kirsanov2011 11 жыл бұрын
Ничего не изменится, хоть 1000000! Можете еще алгоритмом Флойда воспользоваться, это еще проще, а потом свериться с Дейкстрой, все совпадет. Все эти алгоритмы доказываются, это только я так по-простому все рассказал... См. книги.
@BbeeTV
@BbeeTV 11 жыл бұрын
Могли бы вы нарисовать блок схему к вашему решению и к алгоритму в целом?? Очень нужно! Заранее спасибо!
@jmnext1338
@jmnext1338 7 жыл бұрын
Здравствуйте. А алгоритм флойда уошера у вас нет? Я ваши видео глянул но ничего такого не встретил. Заранее спасибо
@FixedA
@FixedA 8 жыл бұрын
не могли бы пожалуйста, про D* еще рассказать
@SahkaP
@SahkaP 11 жыл бұрын
С этой таблицей я запутался еще сильнее
@flukalpes
@flukalpes 7 жыл бұрын
А как найти сам путь, а не только его длину?
@hskdjs
@hskdjs 7 жыл бұрын
Как вариант - при обновлении метки сохранять информацию о вершине-предшественнике.
@dudejustdude
@dudejustdude 11 жыл бұрын
Сделал лабу четверти группы, спасибо)
@Kirsanov2011
@Kirsanov2011 11 жыл бұрын
Зачем блок-схема? Могу и саму программу на простом и понятном языке Maple. См. стр. 111 моей книги "Графы в Maple" (книга есть в сети, но уже нет в продаже). Но там задействованы и спец.команды Maple, хотя их назначение довольно ясно...
@AntonioNeStradivary
@AntonioNeStradivary 11 жыл бұрын
Я извиняюсь, просто посмотрел описание на Вики, и уж очень странным оно мне показалось. Под впечатлением, отправил сообщение не по адресу. Прошу извинить. Я только одного момента не понял, алгоритм Дейкстры находит именно ВЕЛИЧИНУ пути, в вашем примере, это 5, либо он может найти сам путь, т.е. перечень всех узлов по порядку которые нужно посетить?
@Kirsanov2011
@Kirsanov2011 11 жыл бұрын
Будет и Форд-Флойд. А Форд-Фалкерсон уже есть. Ищите.
@IvanGavr
@IvanGavr 10 ай бұрын
Спасибо. А если так?! Найти все пути из первой точки в последнюю; затем для каждого найденного пути найти расстояние; сохранить все в массиве, отсортировать массив расстояний по возрастанию, то первое значение и будет кратчайшим путём. Это уже будет далеко от алгоритма Дейкстры?!
@Kirsanov2011
@Kirsanov2011 10 ай бұрын
Вот в том то и дело - как найти ВСЕ пути? Перебором? Думайте. Вопрос не закрыт. Алг Дейкстры - это одно из решений
@IvanGavr
@IvanGavr 10 ай бұрын
@@Kirsanov2011вот такой у меня получился способ, (без кода) на основе упорядоченной матрицы: kzbin.info/www/bejne/fHPOZql6mdqmpbs
@batista12001
@batista12001 10 жыл бұрын
Назначь длиной каждого ребра единицу, тогда этот алгоритм выведет тебе наименьшее кол-во рёбер от начальной до конечной вершины, а это и есть маршрут.
@AntonioNeStradivary
@AntonioNeStradivary 11 жыл бұрын
ок, буду дорабатывать. Спасибо.
@AntonioNeStradivary
@AntonioNeStradivary 11 жыл бұрын
В рамках моей задачи, для поиска маршрута я могу использовать следующий подход - удалять из графа все длинные пути к одной и той-же вершине, оставляя только короткие. При вычислении веса вершины, если новый вес больше текущего, это значит, что найден дополнительный и более длинный путь к этой вершине. Следовательно этот путь (ребро) я могу удалить из графа. Для моей задачи это не критично. Таким образом в конце получаю граф в котором все точки связаны только одним маршрутом. Думаю это сработает.
@user-zm2lx8ly2j
@user-zm2lx8ly2j 3 жыл бұрын
Здравствуйте,этот алгоритм с первого раза приведет к кратчайшему пути? Просто я для интереса выбрала не самый короткий путь на некоторых шагах а в итоге прошла более коротким путем чем если бы я действовала по алгоритму
@Kirsanov2011
@Kirsanov2011 3 жыл бұрын
Не может этого быть! Ошиблись.
@user-zm2lx8ly2j
@user-zm2lx8ly2j 3 жыл бұрын
@@Kirsanov2011 да,ошибка была в сносе,а где обзор на алгоритм Форда-Беллмана?
@gudapavella1751
@gudapavella1751 3 жыл бұрын
Теперь я понимаю, почему в универе частенько ничего не понимал, этож надо, на 75% видео сказать, я ошибся в самом начале, давайте я за 2 секунды все переделаю.
@user-xb7fs2uc4f
@user-xb7fs2uc4f 4 жыл бұрын
Вопрос такой. Если в одном ряду получилось два одинаковых числа и они оба наименьшие, то что делать?
@Kirsanov2011
@Kirsanov2011 4 жыл бұрын
Решение бывает не единственным. Поэтому берите любую. Потом для интереса возьмите другую.
@SahkaP
@SahkaP 11 жыл бұрын
Спасибо, но я просто пытался вспомнить алгоритм. Википедия расставила все на своим места
@Kirsanov2011
@Kirsanov2011 10 жыл бұрын
См, например, мою книгу "Графы в Maple"
@AngelVlad100
@AngelVlad100 10 жыл бұрын
А что делать если в ряду 2 одинаковые вершины?Решать относительно каждой?
@Kirsanov2011
@Kirsanov2011 10 жыл бұрын
Выбирать любую из них.
@alexandristomin2410
@alexandristomin2410 8 жыл бұрын
Спасибо за видео, всё понятно, но у меня вопрос, что делать если в конце 2 повторяется постоянная вершина 4 ?
@Kirsanov2011
@Kirsanov2011 8 жыл бұрын
Не совсем ясен вопрос. Постоянная вершина только один раз появляется. Потом ход на нее запрещен.
@alexandristomin2410
@alexandristomin2410 8 жыл бұрын
у меня повторяется наименьшее число
@Kirsanov2011
@Kirsanov2011 8 жыл бұрын
Если два одинаковых наименьших числа - берите любое.
@alexandristomin2410
@alexandristomin2410 8 жыл бұрын
Kirsanov2011 ясно, спасибо вам
@fenrrisulfr
@fenrrisulfr Жыл бұрын
@@Kirsanov2011 а что делать, если я пришла к определенной вершине (до конечной еще не дошла), но из нее ходы только в постоянные вершины, т.е. тупик?
@mcd-ti2wv
@mcd-ti2wv 3 жыл бұрын
Самое понятное разъяснение
@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]
@user-bb4xz2ok7z
@user-bb4xz2ok7z 3 жыл бұрын
спасибо огромное, у меня завтра экзамен по теории алгоритмов, надеюсь сдам)
@Kirsanov2011
@Kirsanov2011 3 жыл бұрын
Есть еще А*
@kyzmitch2
@kyzmitch2 Жыл бұрын
у нас в универе никогда не говорили "снести"
@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 жыл бұрын
Благодарю за ответ!
@kriguitar4753
@kriguitar4753 10 жыл бұрын
Ясно, алгоритм находит кратчайшее расстояние от одной вершины к остальным, а как быть если мне надо узнать не численное расстояние до остальных вершин, а маршрут (то есть список вершин чтобы в сумме удовлетворяли расстоянию) ?
@bond94g
@bond94g 6 жыл бұрын
Жалко, лектор этого не рассказал. Там нужно завести ещё один столбец, в котором указывать номер вершины, получившей постоянную пометку на данном шаге. С помощью этого столбца легко восстанавливается кратчайший путь до любой вершины. Также можно построить т.н. дерево кратчайших путей.
@BbeeTV
@BbeeTV 11 жыл бұрын
просто мне именно блок-схема нужна для курсовой работы все объяснение ваше понял, а вот как нарисовать блок-схему не понимаю(
@lerby5512
@lerby5512 10 жыл бұрын
Безусловно плюс за ваш труд, но, как мне кажется, не помешало бы сделать метку на видео когда начинается сам алгоритм :)
@dm.vortex4171
@dm.vortex4171 8 жыл бұрын
я не понял как он с вершины 3 в вершину 2 попал ?
@user-sf1pm4jz4j
@user-sf1pm4jz4j 8 жыл бұрын
+Дмитрий Вихарев , снес "2" с предыдущей строки так как она весит (мы её не прошли), и сравнил - минимальное в получившейся строчке
@traxternberg
@traxternberg 5 жыл бұрын
Представленный алгоритм неполный, путь по вершинам, образующим минимальное расстояние не фиксируется. И вообще, объяснение не Дейкстры, родной алгоритм предусматривает обход по всем соседним вершинам, на которых еще не был. Далее Обход соседей от соседних вершин и т.д. ...
@Kirsanov2011
@Kirsanov2011 5 жыл бұрын
Спасибо!
@DimaasisDas
@DimaasisDas 11 жыл бұрын
да это же элементарно! как можно запутаться?
@Suuuuuuhovich
@Suuuuuuhovich 10 жыл бұрын
Как найти максимальный путь
@MrProdagi
@MrProdagi 9 жыл бұрын
выбирай найбольшее значение в каждой строке.
@vasyapupkin997
@vasyapupkin997 4 жыл бұрын
угарный чел
@ekklesiast
@ekklesiast 8 жыл бұрын
Не понимаю, в вики описание отличается.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 6 жыл бұрын
в вики графически представлено и псевдокодом там тоже хорошая подача материала
@BbeeTV
@BbeeTV 11 жыл бұрын
Или хотя бы понятный алгоритм написать, по которому можно будет нарисовать блок-схему
@Inseidful
@Inseidful 7 жыл бұрын
слабо что-то понял, почему 5 если минимальное расстояние 1-3-6?
@IvanShulga
@IvanShulga 6 жыл бұрын
5 - это минимальное расстояние (минимальная сумма длин ребер), а не номер вершины, т.е длина ребра (1)->(3) = 1; длина ребра (3) -> (6) = 4. итого минимальное расстояние (1)->(3)->(6) = 1+4 = 5
@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 жыл бұрын
Мне эта инф знакома. Скоро будет новый вариант видео "Модификация алг Дейкстры".
@mkdotam
@mkdotam 11 жыл бұрын
Если владеете английском посмотрите вот сюда, /watch?v=xT5o1QCeWS8 - очень все четко объяснено.
@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 вершин.
@user-ui5ob8cu5u
@user-ui5ob8cu5u 5 жыл бұрын
Вообще то это и так видно что кратчайшее расстояние 5 данный зачем формализм?
@juneority
@juneority 5 жыл бұрын
а если там тысячи вершин?
@john1987742
@john1987742 3 жыл бұрын
ничего не понял
@Leha900
@Leha900 6 жыл бұрын
Он один из тех преподавателей, которому если самому ясно, то и ладно, а как там ученики, его не очень волнует. Пропускает детали в объяснении.
@AntonioNeStradivary
@AntonioNeStradivary 11 жыл бұрын
Гладко было на бумаге... А если вес 4-6 будет 1000, что этот алгоритм покажет? Я ещё десяток графов могу нарисовать, в которых этот алгоритм не будет работать корректно.
Насыщение сети
17:17
Kirsanov2011
Рет қаралды 58 М.
Минимальный остов
15:53
Kirsanov2011
Рет қаралды 43 М.
2000000❤️⚽️#shorts #thankyou
00:20
あしざるFC
Рет қаралды 16 МЛН
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 74 МЛН
The Noodle Picture Secret 😱 #shorts
00:35
Mr DegrEE
Рет қаралды 29 МЛН
Муравьиный алгоритм
37:01
Kirsanov2011
Рет қаралды 44 М.
Алгоритм Флойда
6:27
Артур Карачёв
Рет қаралды 19 М.
Алгоритм Уоршелла
13:33
Kirsanov2011
Рет қаралды 41 М.
Знакомство с теорией графов
58:27
matfac.online
Рет қаралды 88 М.
Идея алгоритма Дейкстры
9:56
Олимпиадное программирование в УлГТУ
Рет қаралды 9 М.
Диаметр графа. Радиус. Эксцентриситет. Центр
8:55