#3. Алгоритм Дейкстры (Dijkstra’s algorithm) | Алгоритмы на Python

Поділитися
Вставка
  • Опубліковано 20 лют 2021
  • Рассматривается работа алгоритма Дейкстры поиска оптимальных маршрутов в связном изолированном графе. Приведен пример его реализации на языке Python.
    algorithm-dikstry.py: github.com/selfedu-rus/python...

КОМЕНТАРІ • 70

  • @vladimirfolomeev5697
    @vladimirfolomeev5697 3 роки тому +56

    Спасибо за Ваши старания! Не останавливайтесь, пожалуйста, Ваш канал по справедливости оценит аудитория и у Вас ещё будут миллионы просмотров.

  • @Dimkecola
    @Dimkecola 10 місяців тому +6

    Дай бог тебе здоровья и денег кучу! Чтобы я делал без тебя! Спасибо Вам огромное за труд.

  • @tamarazarizina4628
    @tamarazarizina4628 Рік тому +5

    Вы идеальный преподаватель, желаю Вам всего самого лучшего)

  • @electron4ik123
    @electron4ik123 Рік тому +14

    Прохожу Ваш курс по ООП, узнал о лекциях по алгоритмам. Спасибо большое за проделанную работу.

  • @devops8058
    @devops8058 3 роки тому +7

    Я рад что попал на этот канал а то по разным местам собирал инфу

  • @user-ki5zn6yg1l
    @user-ki5zn6yg1l 4 місяці тому +2

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

  • @2000diker
    @2000diker Рік тому +7

    Спасибо!!!
    В коде, при выборе v не 0, функция arg_min может возвращать значение 0, а значит условие "if v > 0:" не выполнится.
    При условии "if v >= 0" все работает чётко!
    Ещё раз спасибо большое за объяснения!!

  • @user-cy8uj5qk7i
    @user-cy8uj5qk7i 2 роки тому +4

    Спасибо! Сейчас буду до конца разбираться в реализации, но в целом все понятно объяснили.

  • @user-mr6qi3xn5f
    @user-mr6qi3xn5f Рік тому +3

    Большое спасибо за проделанную работу!

  • @nikitazinchenko2561
    @nikitazinchenko2561 3 роки тому +5

    Спасибо, очень полезная информация !!!

  • @user-yv1ox3mb5o
    @user-yv1ox3mb5o 29 днів тому

    Провозившись несколько дней с испытаним "Бремя наследия" могу сказать "спасибо". Спасибо за то что по этому видео его выполнить невозможно. За то, что здесь отсутствует часть алгоритма по поиску собственно, маршрута (и понимание, что описание неполное и надо искать дальше приходит далеко не сразу). За то, что, как оказалось, программа на Git отличается от описания тут. И спасибо за то, что описания направленных и ненаправленных графов тут нет (а в тестах-то они есть). Просто великолепно...

  • @friend1cat
    @friend1cat 3 роки тому +7

    Спасибо, Сергей!

  • @ressurextion3690
    @ressurextion3690 Рік тому +2

    Прохожу ваш курс по ООП! Спасибо вам!

  • @elenatalley7899
    @elenatalley7899 2 роки тому +4

    Спасибо! лучшее объяснение!

  • @AspiringToTheBest
    @AspiringToTheBest Рік тому +8

    Один из немногих нормальных ютуберов, который делает все в одном месте, понятно и качественно. А главное старается помочь аудитории и экономит время, за что отдельный респект! Не останавливайся!) (p.s. летом тоже хочу канал начать вести, может посоветует кто что по тематике?))

    • @AspiringToTheBest
      @AspiringToTheBest Рік тому +2

      лол а почему в репе отличается код для дейкстры? 😅

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

      @@AspiringToTheBest возможно, что-то правил потом, не помню уже. А по тематике канала, лучше брать то, что нравится и в чем разбираетесь, иначе будет тяжко )) Успехов!

  • @user-ch2oe7lu1x
    @user-ch2oe7lu1x 3 роки тому +17

    Похоже что новый плейлист "Алгоритмы" не за горами)

    • @sergeyv1534
      @sergeyv1534 3 роки тому +6

      Вот эти алгоритмы, крайне желательно:
      Линейная регрессия.
      Логистическая регрессия.
      Деревья решений.
      Метод опорных векторов.
      Метод k-ближайших соседей.
      Алгоритм случайный лес.
      Метод k-средних.
      Метод главных компонент.

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

    Спасибо большое! Всё понятно стало.

  • @vladpronin5033
    @vladpronin5033 3 роки тому +5

    Спасибо! За такое изложение алгоритмов нельзя скипать рекламу)

  • @user-ci5iy3eg7j
    @user-ci5iy3eg7j Рік тому +2

    Спасибо огромное, очень помог💖

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

    спасибо за старания!!!

  • @vitalicpodmarkov2336
    @vitalicpodmarkov2336 6 місяців тому +1

    Спасибо, очень просто и понятно))

  • @man05ru
    @man05ru Рік тому +5

    Один момент не совсем понятно. Объясните Сергей как после построения этой таблицы строить мин-й маршрут ?

  • @Ruslan501
    @Ruslan501 Рік тому +2

    Ох, чел. Спасибо тебе!!!

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

    Спасибо!

  • @mixa_football_ru
    @mixa_football_ru 10 днів тому +1

    Спасибо!!!

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

    привет с тобой можно как-то связаться?
    у меня матрица 18на18 не работает

  • @user-vu7hz8hg1u
    @user-vu7hz8hg1u 3 роки тому +2

    👍

  • @IM-gp9yj
    @IM-gp9yj 3 роки тому +2

    Здравствуйте, это же только для двунаправленных графов?
    Будет видео для однонаправленных графов?

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

      Пока нет, но вы можете и сами его модифицировать для однонаправленных

  • @dedhood2183
    @dedhood2183 2 роки тому +1

    ТОП!!!

  • @tip_2469
    @tip_2469 Рік тому +3

    Можешь написать как в этой программе получить кратчайший путь до той же точки 5 или 2? номер целевой точки в идеале поместить в переменную. Тут суммируется длина к ним но как сам путь получить?

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

      Попробовав утром и смог разобраться в этом питон коде и понять сам чёткий алгоритм действий

    • @artyr4an271
      @artyr4an271 8 місяців тому

      привет, смог разобраться?
      @@tip_2469

    • @artyr4an271
      @artyr4an271 8 місяців тому

      подскажи как ты сделал цель например до 5, а еще если смог начальную вершину запихнуть в переменную, например путь от 3 до 5, то буду благодарен)@@tip_2469

    • @tip_2469
      @tip_2469 8 місяців тому

      @@artyr4an271 Я уже и не помню как переделывал этот скрипт. Сейчас это часть большой системы навигации AI в открытом мире с обходом опасных мест написанная на с++. ua-cam.com/video/ZWPhXijmpW8/v-deo.html

  • @sanyarud5676
    @sanyarud5676 3 роки тому +4

    Ппц я это знаю. Но не так подробно. Спасипка большое

  • @user-ct7oy6rm8i
    @user-ct7oy6rm8i 6 місяців тому

    спасибо!

  • @blanket8422
    @blanket8422 2 роки тому +7

    Можно вариант кода, где переменные записаны словами, а не буквами. Пожалуйста, сложно код разбирать

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

    Извиняюсь, а где ссылочка на показанную в видео реализацию алгоритма на github?

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

      github.com/selfedu-rus/python-algorithms (файл algorithm-dikstry.py)

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

      Благодарю!

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

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

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

      если не ошибаюсь O(n^2)

  • @user-gw8bx4pm2o
    @user-gw8bx4pm2o 3 роки тому +7

    Повезло повезло

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

    Нифига не понял, но очень интересно!

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

    Я тоже в начале не понял что это за вес такой что за цифры и откуда они взялись )))))
    Надеюсь вы не убежали сразу же как только поняли что ничего уже в начале не понимаете )))
    Я смотрел 3 раза что бы сообразить что за вес дуг )))))
    Для тез кто на первых минутах не понял что это за цифры ВЕС ДУГ. Имеется в виду некий промежуток времени или некое расстояние между точками. Допустим из этого графа (маршрута) от точки 1 до точки 2 расстояние 3 км или 3 часа. А от точки 1 до точки 4 расстояние 3км или 3 часа.
    Почему часы или километры ? Не важно, важно, что время затраченное или расстояние, от некой точки до некой точки составляет некую величину. И исходя из этих величин рассчитывается расстояние на которое вы потратите меньше времени или пробежите меньше километров.

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

    А как алгоритм знает между какими вершинами есть связь, а какими нету?

    • @DenisTrebushnikov
      @DenisTrebushnikov 8 місяців тому

      таблица смежности D. Вбита вручную на строках 20-25, в ней 0 - отсутствие связи, всё, что больше 0 - означает связь есть, а само значение - вес этой связи.

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

    порекомендуите книги по алгоритмам

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

      Классика - это Вирт Н. Алгоритмы и структуры данных

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

      @@selfedu_rus Спасибо

    • @user-ki5qq1oz3t
      @user-ki5qq1oz3t 2 роки тому +2

      @@selfedu_rus допустим, я хочу начать с третьей вершины, значит стартовый элемент я должен поменять на 2. (v=2.) Но алгоритм зацикливаться тогда. Подскажи, пожалуйста, как исправить?

    • @tanteria6959
      @tanteria6959 2 роки тому +1

      @@user-ki5qq1oz3t жиза. Тоже никак не могу найти ошибку

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

    Но разве матрица смежности начинается с 1?

    • @DenisTrebushnikov
      @DenisTrebushnikov 8 місяців тому

      индексация списка начинается с 0, поэтому и сами номера графов Сергей сдвинул на 1-цу влево. (не 1-6, а 0-5)

  • @smartman-ef7wh
    @smartman-ef7wh Рік тому +2

    А саму матрицу смежности программист вручную, на бумажке чертит и вносит ее в программу и будет играться с ней?

  • @user-pb2nv3ye9w
    @user-pb2nv3ye9w 10 місяців тому

    не понял код,видимо я еще слишком чайник(

  • @nicolasray6257
    @nicolasray6257 8 місяців тому +1

    меня убивают эти названия переменных

  • @staylonely9743
    @staylonely9743 Рік тому +5

    ужасное название переменных))

    • @lil_landau
      @lil_landau 6 місяців тому

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

    • @user-jy5rp7mt7h
      @user-jy5rp7mt7h 2 місяці тому

      По этому комменту можно понять, что кто-то не решает алгоритмические задачи)

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

    Спасибо, бро

  • @user-ku4nn5pw8p
    @user-ku4nn5pw8p 3 місяці тому +1

    Здравствуйте. К сожалению ваш код не рабочий - программа зависает при таких данных:
    Matrix:
    0 4 4 2 4
    4 0 10 1 7
    4 10 0 9 1
    2 1 9 0 4
    4 7 1 4 0
    start: 1, end: 2
    На строчке: end = M[P[-1]]. M[P[-1]] возвращает ноль и так по кругу в бесконечном цикле

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

      Бывает и такое )

  • @kosk4306
    @kosk4306 3 місяці тому +1

    пиздец какой-то... нет, я, конечно, всё понимаю, но этого я не понимаю...