#4. Алгоритм Флойда (Floyd's algorithm) | Алгоритмы на Python

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

КОМЕНТАРІ • 29

  • @АлексейСержантов-ж8ж

    В коде есть небольшая ошибка, из-за которой некоторые пути могут восстанавливаться некорректно, теряя связи.
    P[i][j] не должно быть равно k, так как не на каждой последующей итерации k - это ближайшая вершина к i при условии пути от вершины j, потому что в графе мы динамически заменяем изначально несуществующие пути на найденные.
    Решение заключается в том, чтобы так же динамически поддерживать список P:
    P[i][j] = P[i][k]
    В данном случае мы присваиваем P[i][j] вершину в действительности ближайщую к вершине i, если начинать наш путь от вершины j.

    • @Lacelegance
      @Lacelegance 7 місяців тому

      Спасибо, добрый человек!

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

    Ваши ролики вместо игры в шахматы и зарядка для мозга.

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

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

  • @АртёмЕфимов-о6н
    @АртёмЕфимов-о6н 3 роки тому +3

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

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

    В поддержку учебных видео.

  • @ИванЕвдокимов-л6ь
    @ИванЕвдокимов-л6ь 9 місяців тому +1

    Здравствуйте. У вас 2 ошибки в коде. Про первую уже упомянули (P[i][j] = P[i][k] вместо P[i][j] = k). Вторая связана с функцией печати пути. У вас происходит проход с последней вершины в начальную, а надо с начальной в конечную. Исправленную реализацию прикрепил ниже (так же происходит зацикливание этой функции при отрицательных ребрах, этот случай никак не обработан ни у меня, ни у вас - можно по-хорошему обработать этот случай, возвращая пустой список):
    def get_path(history, start_vertex, end_vertex):
    path = [start_vertex]
    next_vertex = start_vertex
    while next_vertex != end_vertex:
    next_vertex = history[next_vertex][end_vertex]
    path.append(next_vertex)
    return path

  • @ДрейнРул
    @ДрейнРул 2 роки тому +6

    Да вам дискретную математику нужно преподавать, очень хорошо обьясняете всё что угодно)

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

    Не забывайте про Джанго :))) Хотя я и алгосы очень люблю )) Спасибо вам )

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

    спасибо мужик

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

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

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

      Конечно, просуммируйте соответствующие веса матрицы связности и получите значение. Это хорошее практическое занятие.

  • @Всеволод-ж8д
    @Всеволод-ж8д Рік тому +1

    @selfedu Как ты относишься к Хауди Хо?

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

      никак, я его не смотрел )

  • @hopelesssuprem1867
    @hopelesssuprem1867 2 роки тому +5

    Классный алгоритм, но в объяснении есть 2 недостатка:
    1) Зачем приводить пример на цифрах, когда веса тоже цифры? Это очень затрудняет восприятие, лучше на каких-нибудь городах и т.д.
    2) Лучше делать граф не в виде матрицы, а в виде словаря: все также удобнее для чтения + словари намного быстрее списков

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

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

  • @АлексейКосарев-е4и

    Хотелось бы разбор алгоритма Данцига

    • @OlgaGalanina
      @OlgaGalanina 7 місяців тому

      А что это за алгоритм?

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

    Спасибо!
    почему при start=2 и end=3 выдает [3, 1, 2], а если start=3 и end=2 выдает [2, 1, 0, 3] ?

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

      Тоже заметил, что программа не полностью корректна, несколько тестов показывают либо пропуски каких-либо точек в цепи, либо в разную сторону, строит разный маршрут...😕

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

    Флойд Майвезер

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

      Ебать чел ты разрывную закинул, жоско рофлишь пиздец, ты аккуратнее, а то мало ли

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

      @@override5028 птицы знают толк в пунктуации

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

      @@Inteonmteca нет

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

      @@Inteonmteca смотря какой вид птиц.

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

      @@override5028 подводный вид червевидных птиц