Я думаю, что какой-то алгоритм, который включает в себя эвристику, будет лучше всего подходить здесь, поскольку эвристика представляет собой представление о том, «насколько близко» к цели вы находитесь на каждом шаге и какой узел приблизит вас к цели.Без этого, я думаю, что в худшем случае нам нужно будет запустить экспоненциальный алгоритм (который может быть, когда цель не может быть достигнута с использованием только n
узлов. В этом случае мы рассмотрим все пути, которые используют n
узлыпрежде чем сделать вывод, что проблема не может быть решена).
Один из примеров использования неэвристического алгоритма заключается в следующем: регулярно запускайте Дейкстры, выбирая узел с минимальным риском.По пути следите за количеством узлов, которые вы посетили.Если количество узлов превышает n
, тогда откажитесь от текущего маршрута и вернитесь к предыдущему узлу и используйте узел со следующим наименьшим риском.Естественно, вы не можете вернуться на один уровень выше n
, так как если бы цель была на следующем уровне, она была бы выбрана.Поэтому вы возвращаетесь к уровню n-2
и продолжаете.Это также будет экспоненциальным, поскольку не существует реального способа определить небытие без проверки всех путей.
Может быть, я что-то упустил.