Я ищу реализацию алгоритма Дейкстры, которая также учитывает количество пройденных узлов.Алгоритм кратчайшего пути с минимальным числом узлов, пройденных
Что я имею в виду, это типичный алгоритм Дейкстры, учитывающий вес ребер, соединяющих узлы, при расчете кратчайшего маршрута от узла А до узла В. Я хочу вставить в него еще один параметр. Я хочу, чтобы алгоритм приводил некоторый вес к числу пройденных узлов.
Так, чтобы кратчайший маршрут, рассчитанный с A на B, под определенными значениями, может не обязательно быть самым коротким маршрутом, но маршрут с наименьшим количеством пройденных узлов.
Любые мысли по этому поводу?
Приветствия,
RD
Edit:
Мои извинения. Я должен был объяснить лучше. Итак, скажем, самый короткий маршрут от
(A, B) - A -> C -> D -> E -> F -> B, охватывающий в общей сложности 10 единиц
Но я хочу, чтобы алгоритм придумал маршрут A -> M -> N -> B, охватывающий в общей сложности 12 единиц.
Итак, я хочу, чтобы уметь придавать некоторый вес количеству узлов, а не только расстоянию подключенных узлов.
Вы можете изменить вес, увеличивая каждый ребро на константу, которая наказывает с использованием большего количества ребер (эквивалентных узлов) в пути. В основном вам нужно четко сформулировать, какая объективная функция минимизируется. – hardmath
Вы дали условия, которые слишком расплывчаты, чтобы действительно быть полезными. Это неправильный вопрос. Один очевидный комментарий: если характер учета количества узлов, пройденных во внимание, является аддитивным, тогда подумайте о добавлении единообразной суммы к вашим весам, чтобы каждый обход узла принимал единую сумму дольше. – Kaganar
Похоже, вы говорите: Маршрут, который вы возвращаете, ДОЛЖЕН быть самым коротким числом пройденных узлов, но, кроме того, из всех решений, которые являются самым коротким числом пройденных узлов, вам нужен наименьший вес края? – Jeremy