Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pathfinding.doc
Скачиваний:
45
Добавлен:
18.04.2015
Размер:
351.74 Кб
Скачать

Навигационная сетка

Навигационная сетка, или navmesh– приём, применяемый при поиске пути по заранее полностью известной местности. Ключевым отличием от предыдущих методов является отсутствие чёткой дискретизации этого пространства поиска, тогда как в вышеизложенных методах пространство заменяют узлы графов или ячейки массивов. Практически это позволяет строить более реалистичные траектории движения, что наиболее востребовано при моделировании движения живых организмов, поскольку зная всю проходимую область можно выстраивать кривые траектории движения без риска получения неактуального пути.

Также пространство, представленное навигационной сеткой, может содержать дополнительную информацию, влияющую на поведение исполнителя, что особенно полезно при конструировании AI(ArtificialIntelligence), чьё назначение не ограничивается поиском пути. В частности,AIуправляющий персонажами видеоигр зачастую требует для оптимизации своей деятельности данные о тактических характеристиках пространства, аAI, автоматизирующий работу бытового пылесоса зачастую использует навигационную сетку для структурирования информации о запылённости помещения.

Тем не менее, navmeshявляется лишь модификацией для поиска пути в определённых практических ситуациях, и изначальный поиск пути между двумя точками в условиях навигационной сетки осуществляется по одному из вышеописанных алгоритмов, как правило,A*.

Эвристические алгоритмы поиска пути

Существует множество алгоритмов, описывающих поиск пути проще, чем уже рассмотренные в данной работе алгоритмы, но выдаваемый ими результат, как правило, неточен в большей или меньшей степени вплоть до риска вовсе не обнаружить путь при его наличии.

Ввиду большого количества таких алгоритмов, в рамках данной работы рассмотрен будет лишь один из основных алгоритмов этой группы – алгоритм поворота Креша (Crash)

Данный алгоритм оценивает путь не весь сразу, а только на один шаг, что немного расширяет его практическое применение. Неформальное описание данного алгоритма будет выглядеть следующим образом:

1. Постройте прямую линию до конечной точки. Надо всегда запомнить

координаты секции в которой Путник был ( на один шаг ).

2. Если Путник встретился с препятствием он пробует правило правой

руки. Перемещайте его вправо, до тех пор пока не встретится

свободный проход. И затем двигайте его на эту секцию.

3. Повторяйте пункты 1-2 до достижения конечного пункта движения.

Или если Путник оказался в предыдущей секции.

4. Если Путник попал в предыдущую секции, надо сменить правило

правой руки на правило левой руки и повторить всю процедуру

снова.

Также возможна несколько усложненная версия алгоритма, когда при обнаружении препятствия исполнитель двигается в одну сторону вдоль края препятствия, пока движение к концу пути по прямой не станет эквивалентно движению от препятствия.

Очевидным минусом алгоритма поворота Креша является то, что его применение на лабиринтоподобной местности практически никогда не позволяет найти какой-либо путь.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]