Поиск путей в сложных полигонах для динамических систем реального времени. Работа Порошина И.А., 544 гр. Научный руководитель Уфнаровский В.В. Рецензент, доцент кафедры информатики, к.ф.-м.н.Соловьёв И.П. Математико-механический факультет СПбГУ, 2007г.
Постановка задачи поиска пути для систем виртуальной реальности Симуляторы, системы визуализации, игры СРВ с высокой частотой обновления Интеллектуальные агенты с возможностью передвижения Задача поиска пути в R 3 NP-трудна Ограничение свободы перемещения навигационными поверхностями
Поиск путей в сложных полигонах C free = cl ( U {Loc i } \ U {Obst j }) –Loc i (помещения) и Obst j (препятствия) – многоугольники с конечным числом вершин –Все помещения попарно дизъюнктны, все препятствия попарно дизъюнктны –Каждое препятствие полностью содержится в некотором помещении –Границей является семейство ломаных (стены) –Никакие две стены не имеют общих точек, кроме пар стен, инцидентных одной и той же вершине Loc 1 Loc 2 Obst 2 Obst 1
Граф видимостей и его использование при поиске кратчайших путей Построение статической части графа видимостей Достроение динамической части графа А*, эвристика – евклидово расстояние до конца пути
Недостатки базового алгоритма Сложный процесс достроения графа (в среднем сложнее поиска пути в графе) Ловушки для евклидовой эвристики Избыточность поиска всего пути Распределение вычислений во времени
Метод обзоров View(A) – множество вершин графа видимостей, видимых из А View(A i )→View(A i+1 ) Средняя вычислительная сложность О(|A i A i+1 |*ρ 2 ) при смене направления, в большинстве случаев О(1) при сохранении направления
Метод зонирования пространства Основная цель – улучшение используемой эвристики Известные методы декомпозиции не подходят Метод трапецийМетод квадратов Требуемое разбиение
Сужение области поиска пути Выделена область, рассматриваемая А* при работе базового алгоритма Заштрихована область, исключаемая при анализе разбиения пространства на зоны
Кусочное построение путей Границы между зонами – двери Двери – последовательность промежуточных целей Увеличение длины пути на суммарную длину пересекаемых дверей Выбор промежуточной цели на основании «графа видимостей» для множества дверей
Оптимизация базового алгоритма Метод обзоров Метод зон Достроение графа ● Ловушки для эвристики ● Избыточность поиска всего пути ● Распределение вычислений во времени ●●
Результаты работы Проанализированы существующие методы поиска путей в системах виртуальной реальности Выявлены основные недостатки используемого подхода Предложено два способа оптимизации Проведено доказательство корректности новых методов, даны оценки потери точности и вычислительной сложности. Новый метод реализован в рамках реально действующей системы для навигации персонажей в игре, разрабатываемой компанией «Мадиа» по заказу компании «Новый Диск»