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

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 149

  • @Денис-р5в4з
    @Денис-р5в4з 2 роки тому +16

    Большое спасибо. Это лучшее объяснение данного алгоритма, из тех что я встретил на просторах. Понятно и наглядно👍👍

  • @senya5668
    @senya5668 4 роки тому +25

    Пасибо , что спасаете ленивых студентов..

  • @annavasileva5688
    @annavasileva5688 2 роки тому +2

    Объяснение с прямой линией вижу в первый раз, и это очень удобно. Спасибо большое!

  • @yehorpanchenko10
    @yehorpanchenko10 7 років тому +1

    Посмотрел куча других видео - ничего не понял. Посмотрел ваше - все понял с самого начала. Спасибо за доступное объяснение.

  • @osenyaaPechen
    @osenyaaPechen 11 років тому +30

    Вы сэкономили мне кучу времени. Спасибо!

  • @iluhanse745
    @iluhanse745 10 місяців тому

    Спасибо Вам огромное! Наконец-то окончательно разобрался с этим алгоритмом.

  • @КристинаМищенко-з1м
    @КристинаМищенко-з1м 10 місяців тому

    Огромное спасибо! Вы помогли мне понять этот алгоритм!

  • @raikhantemirova8951
    @raikhantemirova8951 5 років тому +2

    Благодаря вам , получил 90 баллов по дискретной математике. Спасибо!!!

  • @RomanOleynik92
    @RomanOleynik92 8 років тому +1

    Благодарю вас за информационный, легко усвоиемый видео урок.

  • @vrakitine
    @vrakitine 5 місяців тому +2

    В институте я много слышал про конечные автоматы (КА), но это всё было теорией - как облака в небе: воды в них много, а напиться нельзя. Корпел три месяца после института, пока не реализовал свой КА в коде в 1981 году. Сейчас существует методология программирования на этой основе - v-agent oriented programming (VAOP) - и множество примеров её реализации. Лучше начать знакомство с VAOP с этой статьи на Medium: "Bagels and Muffins of Programming or How Easy It Is to Convert a Bagel into a Black Hole" или на Хабре: "Бублики и Коржики Программирования".

  • @andrushabt
    @andrushabt 2 роки тому

    спасибобольшое вам за очень простое обьяснение. здоровья и процветания вам

  • @s4ygak
    @s4ygak 3 роки тому

    Пересмотрел несколько раз, поставил лайк, алгоритм запомнил, идеально

  • @leonidsah
    @leonidsah 3 роки тому +2

    Вы просто лучший

  • @НиколайХодарев-ь8н

    Спасибо огромное, уже столько времени прошло, а акутально и по сей день:)

  • @ДимаРекун-ю8т
    @ДимаРекун-ю8т 8 років тому

    благодаря видео я сдела свою контрольную работу по графам))) спасибо БОЛЬШОЕ

    • @Kirsanov2011
      @Kirsanov2011  8 років тому

      +Дима Рекун Ради этого я и трудился...

  • @КатяБабчинская-ю5ш
    @КатяБабчинская-ю5ш 10 років тому

    Спасибо за урок..Всё ясно и понятно!!)нет ничего лишнего - всё по теме!!

  • @lif0CLUB
    @lif0CLUB 8 років тому +1

    Большое спасибо,вам за ваши труды

  • @Faustism
    @Faustism 10 років тому +7

    Отлично! Очень доходчиво. Спасибо!

  • @Kirsanov2011
    @Kirsanov2011  11 років тому +3

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

  • @Enthe0genic
    @Enthe0genic 7 років тому +2

    Спасибо большое! Очень доходчиво объясняете.

  • @dailyInfo24
    @dailyInfo24 Рік тому +1

    спасибо, тятя, вы очинь умнний. Я сам узбек делал поступило ни унивирсэтет. очинь сложна(((. вы памоч спосибо

  • @Kirsanov2011
    @Kirsanov2011  12 років тому +15

    просмотрите еще раз и почитайте книги... Успехов!

  • @fogrinn7525
    @fogrinn7525 4 роки тому

    Спасибо большое вам за обьяснение!

  • @ya_gema
    @ya_gema 6 років тому

    Спасибо Вам большое, очень доступно и понятно объяснили.

  • @АртёмЧацкий-э9в
    @АртёмЧацкий-э9в 10 років тому +1

    Большое спасибо за доступное объяснение

  • @archwarden7004
    @archwarden7004 4 роки тому +1

    Очень интересно и доходчиво, спасибо!

  • @MySaluto
    @MySaluto 11 років тому +3

    Хочу заметить, что алгоритм физически напоминает поведение воды когда она накапливается на неровном ландшафте, первым делом заливает пустоты, затем если вокруг высокие препятствия - ищет следующий кратчайший путь повышая уровень воды. Повышение уровня воды - это аналог "удорожания маршрута".

  • @haruhiismygoddess2727
    @haruhiismygoddess2727 12 років тому +1

    Никак не мог разобраться, как работает протокол динамической маршрутизации OSPF, он как раз основан на методе Дейкстры. Посмотрел видео, разобрался. Спасибо)

  • @arthuralunts5424
    @arthuralunts5424 2 роки тому

    Спасибо, док.

  • @KartDev
    @KartDev 3 місяці тому

    Пока что самое понятное объяснение, которое я встречал в инете

  • @MsTurugor
    @MsTurugor 12 років тому +1

    Благодарю) Долго не мог понять, теперь разобрался)

  • @Мурчащиекотятки
    @Мурчащиекотятки 7 років тому +1

    Спасибо, всех благ вам за ваши труды :)

  • @ellviira
    @ellviira 9 років тому

    Большое спасибо,все понятно и доступно

  • @valermann
    @valermann 5 років тому

    Отличное представление!

  • @micebirds
    @micebirds 5 років тому

    Спасибо большое, всё очень понятно!

  • @Pancelet
    @Pancelet 4 роки тому

    Мэи с заставкой в начале звучит грандиозно

  • @ЮлияКравцова-о6ф
    @ЮлияКравцова-о6ф 6 років тому

    Отличное объяснение) Спасибо!!

  • @IvanGavr
    @IvanGavr Рік тому +1

    Спасибо. А если так?! Найти все пути из первой точки в последнюю; затем для каждого найденного пути найти расстояние; сохранить все в массиве, отсортировать массив расстояний по возрастанию, то первое значение и будет кратчайшим путём. Это уже будет далеко от алгоритма Дейкстры?!

    • @Kirsanov2011
      @Kirsanov2011  Рік тому +1

      Вот в том то и дело - как найти ВСЕ пути? Перебором? Думайте. Вопрос не закрыт. Алг Дейкстры - это одно из решений

    • @IvanGavr
      @IvanGavr Рік тому

      @@Kirsanov2011вот такой у меня получился способ, (без кода) на основе упорядоченной матрицы: ua-cam.com/video/FBk5vDdusoY/v-deo.html

  • @mcd-ti2wv
    @mcd-ti2wv 3 роки тому

    Самое понятное разъяснение

  • @Kirsanov2011
    @Kirsanov2011  11 років тому +12

    См, например, мою книгу "Графы в Maple"

  • @JeckPot111
    @JeckPot111 8 років тому

    Мужик, спасиб большое

  • @kattyrein9900
    @kattyrein9900 9 років тому +6

    Отличное видео, все очень понятно! Единственный вопрос, как вычислять сам путь (порядок вершин), а не только длину пути?

    • @Kirsanov2011
      @Kirsanov2011  9 років тому +1

      +Katty Rein Пишите каждый раз список предшествующих вершин

  • @gudapavella1751
    @gudapavella1751 3 роки тому +3

    Теперь я понимаю, почему в универе частенько ничего не понимал, этож надо, на 75% видео сказать, я ошибся в самом начале, давайте я за 2 секунды все переделаю.

  • @Kirsanov2011
    @Kirsanov2011  11 років тому +3

    Будет и Форд-Флойд. А Форд-Фалкерсон уже есть. Ищите.

  • @Andrea13339
    @Andrea13339 11 років тому

    Надо внимательнее, видио-гид очень подробно расписан: шаг за шагом. Спасибо за алгоритм!

  • @Gidrionix
    @Gidrionix 10 років тому

    Спасибо огромное!!!!!!!!!!!!!!

  • @СергейБренько-ы3л
    @СергейБренько-ы3л 10 років тому

    Спасибо автору

  • @vladimirduchenchuk8518
    @vladimirduchenchuk8518 12 років тому

    Огромное спасибо! Ни как не мог найти ошибку в своей реализации алгоритма=)

  • @rusg777
    @rusg777 12 років тому

    Спасибо большое!

  • @Kirsanov2011
    @Kirsanov2011  11 років тому +2

    Ничего не изменится, хоть 1000000! Можете еще алгоритмом Флойда воспользоваться, это еще проще, а потом свериться с Дейкстрой, все совпадет. Все эти алгоритмы доказываются, это только я так по-простому все рассказал... См. книги.

  • @Guveba
    @Guveba 12 років тому +2

    Хорошо, нашли мы кратчайшее расстояние, а как узнать через какие точки? Из полученной таблицы я наглядно этого не увидел.

  • @blk8722
    @blk8722 11 років тому

    Всё отлично понятно, спасибо за видео)

  • @АртёмТютюнник-ы7р
    @АртёмТютюнник-ы7р 11 років тому +4

    Отлично! Разобрался с алгоритмом Дейсктры!
    Нет ли у Вас такого же доступного урока по алгоритмам Форда и Флойда? Не могу разобраться.
    Заранее благодарен!!!

  • @SahkaP
    @SahkaP 12 років тому +1

    С этой таблицей я запутался еще сильнее

  • @dizogdizog2591
    @dizogdizog2591 8 років тому

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

    • @MaximumDo
      @MaximumDo 5 років тому

      имеем 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]

  • @antontelyaev4927
    @antontelyaev4927 8 років тому +1

    супер!

  • @AntonioNeStradivary
    @AntonioNeStradivary 11 років тому

    В рамках моей задачи, для поиска маршрута я могу использовать следующий подход - удалять из графа все длинные пути к одной и той-же вершине, оставляя только короткие. При вычислении веса вершины, если новый вес больше текущего, это значит, что найден дополнительный и более длинный путь к этой вершине. Следовательно этот путь (ребро) я могу удалить из графа. Для моей задачи это не критично. Таким образом в конце получаю граф в котором все точки связаны только одним маршрутом. Думаю это сработает.

  • @treugolinik
    @treugolinik 10 років тому +1

    Спасибо!!!

  • @ЮлияЛапина-ц4л
    @ЮлияЛапина-ц4л 3 роки тому

    спасибо огромное, у меня завтра экзамен по теории алгоритмов, надеюсь сдам)

  • @batista12001
    @batista12001 11 років тому +2

    Назначь длиной каждого ребра единицу, тогда этот алгоритм выведет тебе наименьшее кол-во рёбер от начальной до конечной вершины, а это и есть маршрут.

  • @flukalpes
    @flukalpes 8 років тому +11

    А как найти сам путь, а не только его длину?

    • @hskdjs
      @hskdjs 8 років тому +7

      Как вариант - при обновлении метки сохранять информацию о вершине-предшественнике.

  • @trampller
    @trampller 11 років тому

    Спасибо.

  • @ablgmv
    @ablgmv 8 років тому

    спасибо!

  • @GAVVVR
    @GAVVVR 11 років тому

    Спасибо большое, все понятно)

  • @sobolmx
    @sobolmx 11 років тому

    superb! spassibo!

  • @ПетрАвен-к7ч
    @ПетрАвен-к7ч 9 років тому

    спасибо

  • @БабкаБомБом
    @БабкаБомБом 7 років тому

    Спасибо)

  • @ustesrendel
    @ustesrendel 12 днів тому

    А для чего добавлять значение предыдущей метки?

  • @Suuuuuuhovich
    @Suuuuuuhovich 11 років тому +2

    Могли бы вы рассказать о методе Беллмана-Мура? Для отрицательных весов

  • @FixedA
    @FixedA 8 років тому

    не могли бы пожалуйста, про D* еще рассказать

  • @kyzmitch2
    @kyzmitch2 2 роки тому

    у нас в универе никогда не говорили "снести"

  • @Kirsanov2011
    @Kirsanov2011  11 років тому

    Зачем блок-схема? Могу и саму программу на простом и понятном языке Maple. См. стр. 111 моей книги "Графы в Maple" (книга есть в сети, но уже нет в продаже). Но там задействованы и спец.команды Maple, хотя их назначение довольно ясно...

  • @AntonioNeStradivary
    @AntonioNeStradivary 11 років тому

    ок, буду дорабатывать. Спасибо.

  • @dudejustdude
    @dudejustdude 12 років тому

    Сделал лабу четверти группы, спасибо)

  • @SahkaP
    @SahkaP 12 років тому

    Спасибо, но я просто пытался вспомнить алгоритм.
    Википедия расставила все на своим места

  • @dm.vortex4171
    @dm.vortex4171 9 років тому +3

    я не понял как он с вершины 3 в вершину 2 попал ?

    • @МишаОвчинников-ц8й
      @МишаОвчинников-ц8й 9 років тому

      +Дмитрий Вихарев , снес "2" с предыдущей строки так как она весит (мы её не прошли), и сравнил - минимальное в получившейся строчке

  • @lerby5512
    @lerby5512 10 років тому +2

    Безусловно плюс за ваш труд, но, как мне кажется, не помешало бы сделать метку на видео когда начинается сам алгоритм :)

  • @BbeeTV
    @BbeeTV 11 років тому

    просто мне именно блок-схема нужна для курсовой работы
    все объяснение ваше понял, а вот как нарисовать блок-схему не понимаю(

  • @traxternberg
    @traxternberg 6 років тому

    Представленный алгоритм неполный, путь по вершинам, образующим минимальное расстояние не фиксируется. И вообще, объяснение не Дейкстры, родной алгоритм предусматривает обход по всем соседним вершинам, на которых еще не был. Далее Обход соседей от соседних вершин и т.д. ...

  • @DimaasisDas
    @DimaasisDas 12 років тому

    да это же элементарно! как можно запутаться?

  • @ВалентинТятьков
    @ВалентинТятьков 10 років тому

    Спасибо, все понятно. Но у нам в университете используют алгоритм из 6-ти ходов... То еще занятие, но результат тот же значит?

  • @padla6304
    @padla6304 2 місяці тому

    4.5 < 5

  • @ЛюссанаБазарова
    @ЛюссанаБазарова 3 роки тому

    Здравствуйте,этот алгоритм с первого раза приведет к кратчайшему пути?
    Просто я для интереса выбрала не самый короткий путь на некоторых шагах а в итоге прошла более коротким путем чем если бы я действовала по алгоритму

    • @Kirsanov2011
      @Kirsanov2011  3 роки тому

      Не может этого быть! Ошиблись.

    • @ЛюссанаБазарова
      @ЛюссанаБазарова 3 роки тому

      @@Kirsanov2011 да,ошибка была в сносе,а где обзор на алгоритм Форда-Беллмана?

  • @AngelVlad100
    @AngelVlad100 10 років тому

    А что делать если в ряду 2 одинаковые вершины?Решать относительно каждой?

    • @Kirsanov2011
      @Kirsanov2011  10 років тому

      Выбирать любую из них.

  • @Маринаиванова-ф9ь
    @Маринаиванова-ф9ь 9 років тому

    Находим минимальный путь, а если нужен максимальный путь выбираем на каждом шаге максимум? Спасибо

    • @Kirsanov2011
      @Kirsanov2011  9 років тому

      +Марина иванова Минимум функции f(x) совпадает с максимумом A-f(x) - просто перевернуть график

    • @Ilichi
      @Ilichi 8 років тому

      Можете подробней описать, как найти максимальний путь?

    • @Kirsanov2011
      @Kirsanov2011  8 років тому +2

      1. Берете какое-нибудь большое число А, большее, чем вес любой дуги графа.
      2. Все веса f_k графа заменяете на A-f_k
      3. В полученном графе находите минимальный путь. Для исходного графа он будет максимальным.

    • @Ilichi
      @Ilichi 8 років тому

      Благодарю за ответ!

  • @jmnext1338
    @jmnext1338 7 років тому

    Здравствуйте. А алгоритм флойда уошера у вас нет? Я ваши видео глянул но ничего такого не встретил. Заранее спасибо

  • @Денис-з7ч
    @Денис-з7ч 5 років тому

    Вопрос такой. Если в одном ряду получилось два одинаковых числа и они оба наименьшие, то что делать?

    • @Kirsanov2011
      @Kirsanov2011  5 років тому +1

      Решение бывает не единственным. Поэтому берите любую. Потом для интереса возьмите другую.

  • @BbeeTV
    @BbeeTV 11 років тому

    Могли бы вы нарисовать блок схему к вашему решению и к алгоритму в целом??
    Очень нужно!
    Заранее спасибо!

  • @AntonioNeStradivary
    @AntonioNeStradivary 11 років тому

    Я извиняюсь, просто посмотрел описание на Вики, и уж очень странным оно мне показалось. Под впечатлением, отправил сообщение не по адресу. Прошу извинить.
    Я только одного момента не понял, алгоритм Дейкстры находит именно ВЕЛИЧИНУ пути, в вашем примере, это 5, либо он может найти сам путь, т.е. перечень всех узлов по порядку которые нужно посетить?

  • @Suuuuuuhovich
    @Suuuuuuhovich 11 років тому

    Как найти максимальный путь

    • @aivashyna
      @aivashyna 10 років тому

      выбирай найбольшее значение в каждой строке.

  • @alexandristomin2410
    @alexandristomin2410 8 років тому

    Спасибо за видео, всё понятно, но у меня вопрос, что делать если в конце 2 повторяется постоянная вершина 4 ?

    • @Kirsanov2011
      @Kirsanov2011  8 років тому +1

      Не совсем ясен вопрос. Постоянная вершина только один раз появляется. Потом ход на нее запрещен.

    • @alexandristomin2410
      @alexandristomin2410 8 років тому

      у меня повторяется наименьшее число

    • @Kirsanov2011
      @Kirsanov2011  8 років тому +1

      Если два одинаковых наименьших числа - берите любое.

    • @alexandristomin2410
      @alexandristomin2410 8 років тому

      Kirsanov2011 ясно, спасибо вам

    • @fenrrisulfr
      @fenrrisulfr Рік тому

      @@Kirsanov2011 а что делать, если я пришла к определенной вершине (до конечной еще не дошла), но из нее ходы только в постоянные вершины, т.е. тупик?

  • @ekklesiast
    @ekklesiast 8 років тому

    Не понимаю, в вики описание отличается.

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 6 років тому

      в вики графически представлено и псевдокодом
      там тоже хорошая подача материала

  • @gitarnoob
    @gitarnoob 11 років тому

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

    • @bond94g
      @bond94g 6 років тому

      Жалко, лектор этого не рассказал. Там нужно завести ещё один столбец, в котором указывать номер вершины, получившей постоянную пометку на данном шаге. С помощью этого столбца легко восстанавливается кратчайший путь до любой вершины. Также можно построить т.н. дерево кратчайших путей.

  • @john1987742
    @john1987742 3 роки тому

    ничего не понял

  • @АлександрБирич-щ2с
    @АлександрБирич-щ2с 7 років тому +2

    Ааа зачем алгоритм дейскры если крускала быстрее

    • @Kirsanov2011
      @Kirsanov2011  7 років тому +1

      Алгоритм построения минимального остова? Зачем? или у Крускала есть еще алгоритм, который я не знаю?

    • @АлександрБирич-щ2с
      @АлександрБирич-щ2с 7 років тому

      чтобы дойти до вершины 6

    • @АлександрБирич-щ2с
      @АлександрБирич-щ2с 7 років тому

      и кстати за сколько работает алгоритм дейкстры

    • @АлександрБирич-щ2с
      @АлександрБирич-щ2с 7 років тому

      за квадрат или линию на логарифм

    • @dmitrypetrov8491
      @dmitrypetrov8491 7 років тому +5

      1) Алгоритм Крускала используется для построения минимального остова, а не для поиска кратчайших путей в орграфах.
      2) Чтобы говорить об асимптотике алгоритма Дейкстры, нужно определиться со структурами данных, которые Вы собираетесь использовать.
      В самой наивной реализации, если Вы будите хранить граф в виде матрицы смежности, то алгоритм будет работать за O(n^2), где n - число вершин графа. В самом деле, вам нужно будет сделать n шагов, на каждом из которых просматривать n вершин.

  • @BbeeTV
    @BbeeTV 11 років тому

    Или хотя бы понятный алгоритм написать, по которому можно будет нарисовать блок-схему

  • @vasyapupkin997
    @vasyapupkin997 4 роки тому

    угарный чел

  • @ПррроРос
    @ПррроРос 5 років тому

    Вообще то это и так видно что кратчайшее расстояние 5 данный зачем формализм?

    • @juneority
      @juneority 5 років тому +3

      а если там тысячи вершин?

  • @mkdotam
    @mkdotam 12 років тому

    Если владеете английском посмотрите вот сюда, /watch?v=xT5o1QCeWS8 - очень все четко объяснено.

  • @Inseidful
    @Inseidful 7 років тому

    слабо что-то понял, почему 5 если минимальное расстояние 1-3-6?

    • @IvanShulga
      @IvanShulga 7 років тому

      5 - это минимальное расстояние (минимальная сумма длин ребер), а не номер вершины, т.е длина ребра (1)->(3) = 1; длина ребра (3) -> (6) = 4. итого минимальное расстояние (1)->(3)->(6) = 1+4 = 5