Я посетил ваш сайт. Вы заявили, что робот может получать команды типа «Перейти к кетчену». Ну, я советую не изобретать велосипед. На самом деле, вам не нужно посещать каждую клетку или «область отверстия». Скорее, вы должны выбрать кратчайший путь к нему, а затем пройти через него.
Я полагаю, Алгоритм Дейкстры намного лучше для поиска вашего робота.
Улучшенная версия Дейкстры: A * алгоритм , который в среднем занимает меньше времени.
Здесь вы можете найти примеры того, как они работают, эффективно.
EDIT:
Я снова посетил ваш сайт. Вы заявили, что вам нужен алгоритм для навигации по всей области. Ну, насколько я знаю, повторение алгоритма A * будет намного лучше. A * использует BFS, которая имеет лучшую производительность в среднем случае. Это очень эффективно по сравнению с волновым фронтом. Псевдокод выглядит следующим образом:
- A) Найдите кратчайший путь с помощью алгоритма A * между местоположением и целью
- B) Если нет пути к цели, укажите временное местоположение и перейдите к нему. (С вами
указано, это может найти способ позже). После прибытия в временное местоположение, перейдите к шагу А.
- C) В противном случае, если вы нашли способ, перейдите к цели.