Тёмный

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

selfedu
Подписаться 159 тыс.
Просмотров 58 тыс.
50% 1

Рассматривается работа алгоритма Дейкстры поиска оптимальных маршрутов в связном изолированном графе. Приведен пример его реализации на языке Python.
algorithm-dikstry.py: github.com/sel...

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

 

26 сен 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 69   
@Dimkecola
@Dimkecola Год назад
Дай бог тебе здоровья и денег кучу! Чтобы я делал без тебя! Спасибо Вам огромное за труд.
@СарматПересветов
@СарматПересветов 27 дней назад
Спасибо. В идеале конечно алгоритм должен искать не только расстояние но и кратчайший путь
@electron4ik123
@electron4ik123 2 года назад
Прохожу Ваш курс по ООП, узнал о лекциях по алгоритмам. Спасибо большое за проделанную работу.
@tamarazarizina4628
@tamarazarizina4628 Год назад
Вы идеальный преподаватель, желаю Вам всего самого лучшего)
@AspiringToTheBest
@AspiringToTheBest Год назад
Один из немногих нормальных ютуберов, который делает все в одном месте, понятно и качественно. А главное старается помочь аудитории и экономит время, за что отдельный респект! Не останавливайся!) (p.s. летом тоже хочу канал начать вести, может посоветует кто что по тематике?))
@AspiringToTheBest
@AspiringToTheBest Год назад
лол а почему в репе отличается код для дейкстры? 😅
@selfedu_rus
@selfedu_rus Год назад
@@AspiringToTheBest возможно, что-то правил потом, не помню уже. А по тематике канала, лучше брать то, что нравится и в чем разбираетесь, иначе будет тяжко )) Успехов!
@2000diker
@2000diker 2 года назад
Спасибо!!! В коде, при выборе v не 0, функция arg_min может возвращать значение 0, а значит условие "if v > 0:" не выполнится. При условии "if v >= 0" все работает чётко! Ещё раз спасибо большое за объяснения!!
@TonyStark-b3r
@TonyStark-b3r 8 месяцев назад
Спасибо за урок.Вы делаете великое дело,жаль вы не мой учитель по информатике.Дай бог вам здровья и успехов
@Quimorax
@Quimorax 3 года назад
Похоже что новый плейлист "Алгоритмы" не за горами)
@sergeyv1534
@sergeyv1534 3 года назад
Вот эти алгоритмы, крайне желательно: Линейная регрессия. Логистическая регрессия. Деревья решений. Метод опорных векторов. Метод k-ближайших соседей. Алгоритм случайный лес. Метод k-средних. Метод главных компонент.
@МихаилХолостов-р1п
Спасибо! Сейчас буду до конца разбираться в реализации, но в целом все понятно объяснили.
@МихаилЛебедев-п2и
Большое спасибо за проделанную работу!
@friend1cat
@friend1cat 3 года назад
Спасибо, Сергей!
@ressurextion3690
@ressurextion3690 Год назад
Прохожу ваш курс по ООП! Спасибо вам!
@vladimirfolomeev5697
@vladimirfolomeev5697 3 года назад
Спасибо за Ваши старания! Не останавливайтесь, пожалуйста, Ваш канал по справедливости оценит аудитория и у Вас ещё будут миллионы просмотров.
@nikitazinchenko2561
@nikitazinchenko2561 3 года назад
Спасибо, очень полезная информация !!!
@vladpronin5033
@vladpronin5033 3 года назад
Спасибо! За такое изложение алгоритмов нельзя скипать рекламу)
@СергейД-х7щ
@СергейД-х7щ 5 месяцев назад
Провозившись несколько дней с испытаним "Бремя наследия" могу сказать "спасибо". Спасибо за то что по этому видео его выполнить невозможно. За то, что здесь отсутствует часть алгоритма по поиску собственно, маршрута (и понимание, что описание неполное и надо искать дальше приходит далеко не сразу). За то, что, как оказалось, программа на Git отличается от описания тут. И спасибо за то, что описания направленных и ненаправленных графов тут нет (а в тестах-то они есть). Просто великолепно...
@elenatalley7899
@elenatalley7899 2 года назад
Спасибо! лучшее объяснение!
@vitalicpodmarkov2336
@vitalicpodmarkov2336 10 месяцев назад
Спасибо, очень просто и понятно))
@Ruslan501
@Ruslan501 Год назад
Ох, чел. Спасибо тебе!!!
@petersburgpietroburg
@petersburgpietroburg 3 года назад
Спасибо большое! Всё понятно стало.
@man05ru
@man05ru 2 года назад
Один момент не совсем понятно. Объясните Сергей как после построения этой таблицы строить мин-й маршрут ?
@romanbykov5922
@romanbykov5922 2 года назад
Спасибо!
@gbo4net
@gbo4net Год назад
Я тоже в начале не понял что это за вес такой что за цифры и откуда они взялись ))))) Надеюсь вы не убежали сразу же как только поняли что ничего уже в начале не понимаете ))) Я смотрел 3 раза что бы сообразить что за вес дуг ))))) Для тез кто на первых минутах не понял что это за цифры ВЕС ДУГ. Имеется в виду некий промежуток времени или некое расстояние между точками. Допустим из этого графа (маршрута) от точки 1 до точки 2 расстояние 3 км или 3 часа. А от точки 1 до точки 4 расстояние 3км или 3 часа. Почему часы или километры ? Не важно, важно, что время затраченное или расстояние, от некой точки до некой точки составляет некую величину. И исходя из этих величин рассчитывается расстояние на которое вы потратите меньше времени или пробежите меньше километров.
@dedhood2183
@dedhood2183 2 года назад
ТОП!!!
@sanyarud5676
@sanyarud5676 3 года назад
Ппц я это знаю. Но не так подробно. Спасипка большое
@tip_2469
@tip_2469 2 года назад
Можешь написать как в этой программе получить кратчайший путь до той же точки 5 или 2? номер целевой точки в идеале поместить в переменную. Тут суммируется длина к ним но как сам путь получить?
@tip_2469
@tip_2469 2 года назад
Попробовав утром и смог разобраться в этом питон коде и понять сам чёткий алгоритм действий
@artyr4an271
@artyr4an271 Год назад
привет, смог разобраться? @@tip_2469
@artyr4an271
@artyr4an271 Год назад
подскажи как ты сделал цель например до 5, а еще если смог начальную вершину запихнуть в переменную, например путь от 3 до 5, то буду благодарен)@@tip_2469
@tip_2469
@tip_2469 Год назад
@@artyr4an271 Я уже и не помню как переделывал этот скрипт. Сейчас это часть большой системы навигации AI в открытом мире с обходом опасных мест написанная на с++. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ZWPhXijmpW8.html
@blanket8422
@blanket8422 2 года назад
Можно вариант кода, где переменные записаны словами, а не буквами. Пожалуйста, сложно код разбирать
@ВикторЖигурда
@ВикторЖигурда 3 года назад
👍
@магомедтохчуков-ы3б
@магомедтохчуков-ы3б 10 месяцев назад
спасибо!
@IM-gp9yj
@IM-gp9yj 3 года назад
Здравствуйте, это же только для двунаправленных графов? Будет видео для однонаправленных графов?
@selfedu_rus
@selfedu_rus 3 года назад
Пока нет, но вы можете и сами его модифицировать для однонаправленных
@playerhs7572
@playerhs7572 6 месяцев назад
Нифига не понял, но очень интересно!
@a_z_i_m240
@a_z_i_m240 Год назад
привет с тобой можно как-то связаться? у меня матрица 18на18 не работает
@user709__aaa
@user709__aaa Год назад
подскажите пожалуйста, какая асимптотика у данного алгоритма? за сколько работает?
@selfedu_rus
@selfedu_rus Год назад
если не ошибаюсь O(n^2)
@smartman-ef7wh
@smartman-ef7wh 2 года назад
А саму матрицу смежности программист вручную, на бумажке чертит и вносит ее в программу и будет играться с ней?
@selfedu_rus
@selfedu_rus 2 года назад
да, сам )
@vladimireliseev7602
@vladimireliseev7602 3 года назад
Извиняюсь, а где ссылочка на показанную в видео реализацию алгоритма на github?
@selfedu_rus
@selfedu_rus 3 года назад
github.com/selfedu-rus/python-algorithms (файл algorithm-dikstry.py)
@vladimireliseev7602
@vladimireliseev7602 3 года назад
Благодарю!
@alexanderivanov899
@alexanderivanov899 Год назад
А как алгоритм знает между какими вершинами есть связь, а какими нету?
@DenisTrebushnikov
@DenisTrebushnikov Год назад
таблица смежности D. Вбита вручную на строках 20-25, в ней 0 - отсутствие связи, всё, что больше 0 - означает связь есть, а само значение - вес этой связи.
@MrIgor989
@MrIgor989 3 года назад
порекомендуите книги по алгоритмам
@selfedu_rus
@selfedu_rus 3 года назад
Классика - это Вирт Н. Алгоритмы и структуры данных
@MrIgor989
@MrIgor989 3 года назад
@@selfedu_rus Спасибо
@КириллНечаев-ц5р
@КириллНечаев-ц5р 3 года назад
@@selfedu_rus допустим, я хочу начать с третьей вершины, значит стартовый элемент я должен поменять на 2. (v=2.) Но алгоритм зацикливаться тогда. Подскажи, пожалуйста, как исправить?
@tanteria6959
@tanteria6959 2 года назад
@@КириллНечаев-ц5р жиза. Тоже никак не могу найти ошибку
@freaxlover
@freaxlover Год назад
Спасибо, бро
@staylonely9743
@staylonely9743 Год назад
ужасное название переменных))
@lil_landau
@lil_landau 10 месяцев назад
Зачем тебе нормальный нейминг, если это маленькая и локальная программа, которая не выйдет за пределы этого ролика...
@LizavetaSakalova
@LizavetaSakalova 6 месяцев назад
По этому комменту можно понять, что кто-то не решает алгоритмические задачи)
@ИванЕвдокимов-л6ь
@ИванЕвдокимов-л6ь 7 месяцев назад
Здравствуйте. К сожалению ваш код не рабочий - программа зависает при таких данных: 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 7 месяцев назад
Бывает и такое )
@ахуец
@ахуец 3 года назад
Повезло повезло
@kosk4306
@kosk4306 7 месяцев назад
пиздец какой-то... нет, я, конечно, всё понимаю, но этого я не понимаю...
@mixa_football_ru
@mixa_football_ru 4 месяца назад
Спасибо!!!
@devops8058
@devops8058 3 года назад
Я рад что попал на этот канал а то по разным местам собирал инфу
@дашука-ч9т
@дашука-ч9т Год назад
Спасибо огромное, очень помог💖
@nicolasray6257
@nicolasray6257 Год назад
меня убивают эти названия переменных
@strawberrylynx6259
@strawberrylynx6259 2 года назад
спасибо за старания!!!
@EgrNegr-chugun
@EgrNegr-chugun Год назад
не понял код,видимо я еще слишком чайник(
Далее
Алгоритмы на Python 3. Лекция №1
1:20:50
Алгоритм Дейкстры
12:07
Просмотров 160 тыс.