Алгоритмы Поиска Пути на Python. Алгоритм А*, Дейкстры, Поиск в ширину [ Pygame ]

Поделиться
HTML-код
  • Опубликовано: 5 сен 2020
  • В данном видео мы познакомимся и на практике применим алгоритмы поиска кратчайших путей такие, как алгоритм Дейкстры (Dijkstra), алгоритм А*(A star) и алгоритм поиска в ширину (BFS) на языке Python (Пайтон, "питон").
    Увидим что алгоритм поиска в ширину (breadth first search) используется там, где нет затрат на перемещение. Алгоритм Дейкстры применяется для взвешенного графа в том случае, когда надо найти пути до всех вершин в графе. И алгоритм А* (A star, А со звездочкой) идеально подходит в поиске пути для определенной точки или вершины.
    Алгоритмы поиска пути имеют важное и фундаментальное значение в разработке игр, маршрутизации и работы навигаторов.
    Для вывода графической информации будем использовать библиотеку Pygame. Pygame это удобная библиотека для вывода графической информации и для создания несложных игр, превосходно подходит для начинающих программировать на языке Python (Пайтон, "Питон").
    Чтобы установить Pygame, напечатайте в терминале и нажмите Enter: "pip install pygame" (без кавычек)
    Код из видео:
    github.com/StanislavPetrovV/P...
    #standalonecoder

Комментарии • 116

  • @user-lp3pp9hu7t
    @user-lp3pp9hu7t 3 года назад +62

    Просто красотище. Почему не было таких видео в то время когда я учился ( ... Автору ЖЫРНЫЙ Лайк.

    • @aangryguyy
      @aangryguyy 3 года назад +1

      Почему ЖЫРНЫЙ?

    • @ohnocoder
      @ohnocoder 2 года назад

      @@aangryguyy Ну типа, ЖЫРНЫЙ, а не жирный, типа совсем жирный.

  • @user-tl6xf6cc6o
    @user-tl6xf6cc6o 3 года назад +48

    Комментарий в поддержку программистов на Python

  • @stashmm
    @stashmm 3 года назад +16

    Лайк, коммент для продвижения канала

  • @watermelon0guy
    @watermelon0guy 2 года назад +7

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

  • @PP667
    @PP667 3 года назад +20

    Это, то чего мне не хватало! Спасибо огромное, ты лучший!

  • @dgdarkking266
    @dgdarkking266 3 месяца назад +1

    Полгода назад искал как описывать препятсвия в таких алгоритмах - сам конечно допёр, но потом попадались только статьи от 2ГИС, и вот мне решили показать наконец-то то что я искал - да почему бы и нет - прогу то всё равно надо сделать, но рекомендации ютуба это С-скорость, ну как говорится лучше поздно чем никогда

  • @andrewskylone1052
    @andrewskylone1052 2 года назад +3

    Посмотрел сотни видео по этой теме и прочитал множество статей. Реализация просто гениальна. Очень элегантно, автор жжет

  • @Xuxik
    @Xuxik 3 года назад +13

    Продолжай в том же духе

  • @mi4i045
    @mi4i045 3 года назад +2

    Красавчик, спасибо за прекрасно подготовленный и поданый материал! В проверке остальных твоих видосов!

  • @lso4462
    @lso4462 3 года назад +2

    Это самый полезный канал на ютубе(мне надо было систему поиска пути) очень помог.

  • @fess1024
    @fess1024 3 года назад +1

    Довольно интересные темы на канале, спасибо за видео!

  • @doumasama5654
    @doumasama5654 3 года назад +4

    Да ты в каждом видео делаешь крутые проекты. И оставляешь код. Я думаю студенты обожествляют тебя за такие труды.

  • @user-qy2rf2bz3k
    @user-qy2rf2bz3k 3 года назад +7

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

  • @user-bc1rr2pe9j
    @user-bc1rr2pe9j 3 года назад +2

    Какой же ты красава! Спасибо за контент)

  • @olgach3989
    @olgach3989 3 года назад +4

    Как всегда, круто!)

  • @sdxfcgbhjklmbjvhcxchj
    @sdxfcgbhjklmbjvhcxchj 3 года назад

    Спасибо за ваши видео, желаю дальнейших успехов

  • @vancheloChanel
    @vancheloChanel 3 года назад

    Отличная подача материала! Успехов вам)

  • @sleepyeconomist509
    @sleepyeconomist509 Год назад

    Шикарно объяснил всё. Спасибо большое!

  • @kirillusenko
    @kirillusenko 3 года назад

    Прекрасный контент! Хорошо сделано! Желаю удачи в продвижении, 👍

  • @smoke9238
    @smoke9238 3 года назад +5

    Cool, respect.

  • @kawaikaino5277
    @kawaikaino5277 3 года назад

    Круто, видел подобный алгоритм в книге - грокаем алгоритмы, Спасибо за видео

  • @stashmm
    @stashmm 3 года назад +6

    снова коммент для продвижения канала

  • @SuperWolchara
    @SuperWolchara 3 года назад +4

    Великолепно!

  • @user-pq1qe2jf2y
    @user-pq1qe2jf2y 3 года назад +1

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

  • @yzh749
    @yzh749 3 года назад

    Шикарный канал!!! Ты молодец!

  • @user-hc3ke1wy1j
    @user-hc3ke1wy1j 3 года назад +3

    Прекрасно👏

  • @WhiteLightRus
    @WhiteLightRus 3 года назад

    Огонь! Спасибо за видео!)))

  • @yz777zhumabayev6
    @yz777zhumabayev6 3 года назад

    Класс!!! Тема очень интересна!

  • @zlatovik9805
    @zlatovik9805 2 года назад +1

    Это очень полезно, спасибо большое

  • @user-ce6ff5zm3b
    @user-ce6ff5zm3b Год назад

    Это просто мега, супер видео, автор молодец с большой буквы, лайк лайк ...

  • @ExotErr
    @ExotErr 3 года назад +1

    Респект, классные видео👍

  • @axelbunt543
    @axelbunt543 3 года назад +5

    Успел до 100 просмотров)

  • @stashmm
    @stashmm 3 года назад +5

    Еще коммент для продвижения канала

  • @DimPerch
    @DimPerch 3 года назад +4

    👍👍👍

  • @user-zb5hg2ij3o
    @user-zb5hg2ij3o 2 года назад

    Святой человек, спасибо тебе!)

  • @user-wy5bv2lw8s
    @user-wy5bv2lw8s 8 месяцев назад

    супер видео!

  • @mr.v890
    @mr.v890 3 года назад +1

    Нет слов, чисто лайк

  • @user-cq7bp8qh5b
    @user-cq7bp8qh5b 3 года назад +1

    Красавчик!

  • @user-mn8rr8rg8d
    @user-mn8rr8rg8d 2 года назад

    Спасибо, очень помогло в универе

  • @GG-mh8cg
    @GG-mh8cg 3 года назад

    Очень качественно. 10/10

  • @imbaquad
    @imbaquad 3 года назад

    Крутотень!

  • @Bit_Maximum
    @Bit_Maximum 7 месяцев назад

    Спасибо!

  • @TrueErr
    @TrueErr 3 года назад +4

    👍

  • @highest3253
    @highest3253 3 года назад +1

    Интересно:)

  • @ozimandias1738
    @ozimandias1738 2 года назад

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

  • @nicko6815
    @nicko6815 3 года назад

    Благодарю

  • @Bibulayev
    @Bibulayev 3 года назад

    Круть!

  • @vialomur__vialomur5682
    @vialomur__vialomur5682 3 года назад

    Круто)

  • @andrewslee_channel
    @andrewslee_channel 3 года назад

    Оставлю комментарий, что бы помочь в продвижении)

  • @doumasama5654
    @doumasama5654 3 года назад

    Сделай видео про различные фракталы(кривая дракона, песочница и тд) думаю будет невероятно круто.

  • @StalkTz
    @StalkTz 2 года назад

    Чел ты крут

  • @user-yo9xg7di7t
    @user-yo9xg7di7t 3 года назад

    Хочу ещё))

  • @M0ToR
    @M0ToR 3 года назад

    поддержу

  • @user-pe1bn6br4d
    @user-pe1bn6br4d 3 года назад

    Пушка

  • @shrigley4500
    @shrigley4500 3 года назад

    Лайк, коммент

  • @user-mo2nt4ki9y
    @user-mo2nt4ki9y 3 года назад

    Луууучший

  • @govdamikhaylo4183
    @govdamikhaylo4183 3 года назад

    Сросибо

  • @MrDnbass
    @MrDnbass 3 года назад

    Очень круто, жаль сложно.

  • @bro_fedka3951
    @bro_fedka3951 3 года назад

    Аааа!!!! Вы куда пропали ?!? Канал годный ...

  • @stashmm
    @stashmm 3 года назад +10

    коммент для продвижения канала, зачем я делаю это

  • @mrvillst
    @mrvillst 3 года назад

    Вот не поверишь как ты помог, материал классный. Кроме алгоритма Дейкстры и А* существуют ещё алгоритмы построения позволяющие построить дерево Штейнера?

  • @sergentinamas2135
    @sergentinamas2135 2 года назад +1

    Классно, но не хватает комментариев в коде на гитхабе)

  • @the.zolars
    @the.zolars 3 года назад

    сделай пж урок по рэй марчинг, ищу ищу информацию да все никак не понимаю найденного, ты очень хорошо объясняешь пж сними ролик🥺🥺🥺

  • @hdf6kr74j3d
    @hdf6kr74j3d Год назад

    Мне приходилось искать методом волнового алгоритма путь по поверхности 3D модели. Только вместо клеток - вершины.

  • @sanyarud5676
    @sanyarud5676 3 года назад +2

    Никера не понял. Но очень интересно!

  • @user-wr8wh1uw5z
    @user-wr8wh1uw5z 3 года назад

    Подскажите пожалуйста, где вы нашли такую картинку карты (Алгоритм Дейкстры)((и как сетку сделали? В Пеинте?))? Где можно найти подобные? Заранее спасибо
    upd:
    про сетку: не заметил офис, прошу прощения)

  • @stashmm
    @stashmm 3 года назад +8

    Сделай пожалуйста дискорд сервер канала

  • @user-zv8nb2jk4j
    @user-zv8nb2jk4j 3 года назад

    Очень прошу: пишите, пожалуйста, комментарии в коде, который Вы выкладываете на github. Так будет легче понять что и где происходит. Спасибо

  • @Milashnaya
    @Milashnaya 3 года назад +1

    ⭐⭐⭐⭐⭐

  • @TGrod
    @TGrod 3 года назад +2

    Очень интересно! Правда в коде особо не старался разобраться, так как уже устал задень. Завтра попробую понять))) И не забрасывай это дело. Но мне не даёт покоя вопрос - сколько же тебе лет?)

  • @yehorpererva9735
    @yehorpererva9735 3 года назад

    Класс! А если поле не квадратами, а шестиугольниками, то эти алгоритмы работают так же? Или там вся соль в представлении системы координат для такого поля?

    • @StandaloneCoder
      @StandaloneCoder  3 года назад

      Да, вся соль в представлении такой карты, а алгоритмы те же.

  • @magomedmagomedov9168
    @magomedmagomedov9168 3 года назад

    643 лайка и 0 дизов, молодец)

  • @peskarr
    @peskarr 3 года назад

    однако!

  • @StimSmit
    @StimSmit 3 года назад

    У меня вопрос(2:45): Зачем в переменную graph запихивать каждую соседнюю клетку сразу всех клеток? Разве это не забьёт память не нужной информацией, если карта будет большой, в то время, когда 80% этой информации даже не понадобится.
    Разве не легче вызывать функцию get_neighbours с параметрами текущей клетки тогда, когда это нужно, чтобы получать только тех соседей, которые нужны.

  • @tavernaan
    @tavernaan 3 года назад

    А такое-же, только в 3д будет?

  • @vladb3546
    @vladb3546 3 года назад

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

  • @MrTero47
    @MrTero47 Год назад

    Что если у тебя не будет пути из А в В в графах такое возможно?

  • @dmitristarkdmitristark7850
    @dmitristarkdmitristark7850 3 года назад +1

    Отлично, автор ответь по электронной почте пожалуйста

  • @ggg-tq9be
    @ggg-tq9be 2 года назад

    Кажется переменная cur_cost не нужна и можно просто добавлять в приоритетную очередь элементы. 7:17

  • @templar_a_godblabla160
    @templar_a_godblabla160 2 года назад

    А можно как то сделать чтобы алгоритм двигался с 0 на 1 а с 1 на 0 (желательно кодом если можно)

  • @qwerasdf5371
    @qwerasdf5371 2 года назад

    Deque не содержится в collections что делать

  • @vladb3546
    @vladb3546 3 года назад +1

    В коде с Поиском в ширину есть одна проблема, по крайней мере я точь в точь писал код и иногда выдовало ошибку, бро, когда припятствия рандомно строятся то начальная точка пути, а именно [0][0] может быть не пустой, и путь не будет строится

    • @doctorbuglindesh8563
      @doctorbuglindesh8563 2 года назад

      grid[0][0] = 0
      Проблема решается ))

    • @vladb3546
      @vladb3546 2 года назад

      @@doctorbuglindesh8563 ну я так и решил)

  • @dasha_in_vibe
    @dasha_in_vibe 3 года назад +1

    Я и тут

  • @maze9304
    @maze9304 3 года назад

    А как можно нарисовать не кратчайший путь, а самый длинный? Очень нужно, а я не очень понимаю как сделать

  • @tormozzzzz929
    @tormozzzzz929 3 года назад

    У меня к тебе вопрос .. Как в этом алгоритме сделать минимальное количество поворотов ? Тоесть найти путь с минимальным количеством поворотов

  • @Xuxik
    @Xuxik 3 года назад +1

    Привет

  • @rubrik25
    @rubrik25 2 года назад

    Вердикт:У автора уровень IQ выше 140

  • @alexanderpadalka5708
    @alexanderpadalka5708 3 года назад

  • @NoName-bp2zn
    @NoName-bp2zn 3 года назад

    Разрешите вопрос, border_radius, как автор это сделал, в моем коде он ругается на это, типа какого хрена, переменная делает здесь. Подскажите как сделать

    • @StandaloneCoder
      @StandaloneCoder  3 года назад

      Установите Pygame 2-ю версию
      pip install pygame==2.0.0dev22

    • @NoName-bp2zn
      @NoName-bp2zn 3 года назад +1

      @@StandaloneCoder спасибо большое

  • @user-hc3ke1wy1j
    @user-hc3ke1wy1j 3 года назад

    У тебя профессиональный пайчарм?

  • @user-kr8gv1my8k
    @user-kr8gv1my8k 3 года назад

    Что делать если в коде с гит хаба rect() выдает ошибку?

    • @StandaloneCoder
      @StandaloneCoder  3 года назад

      удалить параметр border_radius из rect или установить pygame 2.0.0
      pip install pygame==2.0.0dev24

  • @meoook
    @meoook 3 года назад

    Зачееееееееееет!!!

  • @IvanToropelov
    @IvanToropelov 3 года назад

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

    • @StandaloneCoder
      @StandaloneCoder  3 года назад

      Путь искали до определенной точки или пути до всех точек на поле?

    • @IvanToropelov
      @IvanToropelov 3 года назад

      @@StandaloneCoder ну смотри, брался массив карты из 0 и 1,где 0 - свободно, 1 - преграды. Каждый такт от начала я заполнял соседние свободные элементы количеством шагов, который я собственно итерировал,и проверял - конечная это точка или нет. Если точка конечная, то уже от неё искал самые низкие значения, и добавлял индекс в список, который и являлся восстановленным путем.

    • @IvanToropelov
      @IvanToropelov 3 года назад

      Ах да, путь до одной точки

  • @geeksw1492
    @geeksw1492 Год назад

    Помогите пожалуйста, у меня не работает почему то

  • @user-vz3ds7kh7j
    @user-vz3ds7kh7j 8 месяцев назад

    за что отвечает TILE

  • @babaeverruslan5519
    @babaeverruslan5519 3 года назад

    А сделай ботов на нейросетях

  • @geeksw1492
    @geeksw1492 Год назад

    Я вставил , и почему то неработает

  • @protorenesance
    @protorenesance Год назад

    слишком быстро рисуется код, слишком быстро читается текст

  • @konstantin3756
    @konstantin3756 3 года назад

    какой сложный синтаксис, для понимания ... чайнику

  • @DimChig
    @DimChig 3 года назад

    Круто, всего 1 дизлайк)