Я знаю об агоризме Дейкстры, алгоритме Флойда-Варшалла и алгоритме Беллмана-Форда для поиска самых простых путей между двумя вершинами в графах.Лучший алгоритм поиска BFS?
Но когда все края имеют одинаковую стоимость, самый дешевый путь - это путь с минимальным количеством ребер? Я прав? Нет никаких оснований для реализации Dijkstra или Floyd-Warshall, лучшим алгоритмом является поиск Breadth-First из источника, пока мы не достигнем цели? В худшем случае вам придется пересекать все вершины, поэтому сложность O (V)? Нет лучшего решения? Я прав?
Но в Интернете есть множество статей, в которых рассказывается о самых коротких дорожках в сетках с препятствиями, и они упоминают Дейкстра или А *. Даже на StackOverfow - Algorithm to find the shortest path, with obstacles или здесь http://qiao.github.io/PathFinding.js/visual/
Итак, все эти люди глупы? Или я глуп? Почему они рекомендуют для начинающих такие сложные вещи, как Дийкстра, которые просто хотят перенести своих врагов на главного героя в обычную сетку? Это похоже на то, когда кто-то спрашивает, как найти минимальное число в списке, и вы рекомендуете ему реализовать сортировку кучи, а затем взять первый элемент из отсортированного массива.
A * использует эвристику, чтобы быстрее добраться до цели, поэтому она быстрее, чем BFS. Dijkstra's не делает, поэтому я не уверен, почему вы используете алгоритм Дейкстры здесь. – Mehrdad