TGViewer
Программирование {BookFlow} Программирование {BookFlow} @bookflow · 15.6K subscribers
Post #3660 1.45K
‍Похоже, я придумал свой алгоритм поиска кратчайшего пути

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

Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =)

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

Повторюсь, алгоритм работает с отрицательными ребрами графа (но не с циклическими отрицательными). Чем этот алгоритм отличается от известного Беллмана-Форда?

Эвристической сложностью! У известного алгоритма сложность составляет O(En), где n - количество узлов, Е - количество ребер. У "моего" алгоритма такая же ассимптотическая сложность. Но по моим расчетам худшая сложность в большинстве случаев не достигается. А у Беллмана-Форда худших случаев намного больше (об этом далее). Более того, в среднем алгоритм не превышает оригинальной сложности алгоритма Дейкстры, а именно O(n2+E). Об этом тоже напишу далее. Реализация на языке Python:

P.S.
В статье исправлены многие моменты, спасибо сообществу за тест-кейсы и подсказки. Некоторые комментарии не будут актуальными (в том числе саркастически-оскорбительные), т.к. я считаю, что доказал работоспособность алгоритма.

https://habr.com/ru/articles/811051/


#python@bookflow

👉 @Bookflow
  • 👍 5
More from @bookflow
  1. Oct 13, 2026Полезные команды PowerShell для работы с сетью 1. Проверка сетевого подключения (аналог ко…
  2. Oct 5, 2026🖼 Из картинки - в 3D-сцену со звуком: image-blaster Загружаешь изображение, запускаешь Cl…
  3. Oct 2, 2026xdg-ninja — это полезный инструмент для программистов и пользователей Linux, который помог…
  4. Sep 29, 2026🔐 Путеводитель по аутентификации: от Cookies до OAuth 2.0 Разбираться в способах входа по…
  5. Sep 24, 2026Работа с HTTP API (на практике) Подготовил мини-серию из пары десятков практических задани…
  6. Sep 22, 2026🔎 Kor — найти забытые ресурсы в Kubernetes После экспериментов и релизов в кластере остаю…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →