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

Презентация:



Advertisements
Похожие презентации
Компьютерная геометрия и графика. Лекция 3. План занятия: Задача о пересечении двух выпуклых многоугольников. Задача о пересечении двух произвольных многоугольников.
Advertisements

Логическое программировыание Презентация 5 Списки в Прологе.
Модуль поиска путей в игровом движке Владимир Олейник
Интеллектуальный поиск путей на графах. Обзор алгоритмов, применение в компьютерных играх Факультет ВМК Кафедра МО ЭВМ Нижегородский государственный университет.
Интеллектуальный поиск путей на графах. Обзор алгоритмов, применение в компьютерных играх Факультет ВМК Кафедра МО ЭВМ Нижегородский государственный университет.
Светлана Винокурова МарГУ ФМФ 5 курс СИСТЕМА ПОИСКА ПУТИ В ТРЕХМЕРНОМ ПРОСТРАНСТВЕ.
ПОИСК В ПРОСТРАНСТВЕ СОСТЯНИЙ. Методы решения задач Представление задач в пространстве состояний
Алгоритмы иерархического поиска пути в играх Андрей Плахов
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
Задача о максимальном потоке в сети Алгоритм Фалкерсона-Форда.
МЕТОДЫ ЭКСПЕРИМЕНТАЛЬНОЙ ОПТИМИЗАЦИИ. Метод деления отрезка пополам Метод позволяет исключать на каждой итерации в точности половину интервала. Иногда.
Вычислительная сложность Классы сложности P и NP. Сергей Казаков, аспирант каф. КТ, НИУ ИТМО.
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
Компьютерная геометрия и графика. Лекция 10. План занятия: Алгоритм Робертса.
Способы обхода графов, каркасы графа Лекция 12. Поиск в глубину (Depth-first search, DFS) Пусть задан граф G = (V, E). Алгоритм поиска описывается следующим.
АЛГОРИТМЫ НАХОЖДЕНИЯ КРАТЧАЙШИХ ПУТЕЙ НА ГРАФАХ..
Граф отображает элементный состав системы и структуру связей между элементами этой системы А B C D F K.
Алгоритмы топологической оптимизации транспортных сетей.
Графы и их применение (подготовка к ЕГЭ) Мастер – класс учитель Майсова Т.Б.
Теория графов Алгоритмы на графах. Медиана графа Медиана вершина графа, у которой сумма кратчайших расстояний от неё до вершин графа минимальная возможная.
Транксрипт:

Постановка задачи Найти путь от точки А к точке Б значит найти последовательность действий проделав которые можно переместиться на игровом поле из А в Б Действия не противоречат правилам игры

Виды карт Карта дискретна. Нужно найти путь на графе Карта непрерывна. Нужно найти векторную функцию Комбинация двух подходов: об этом позже

Поиск пути на графе Найти путь значит найти последовательность рёбер, от исходной вершины к искомой Классические алгоритмы: Дейкстры, Флойда, Волновой алгоритм А* - наиболее распространённый в играх

А* Общие сведения Впервые упомянут в 1968 году Питером Хартом Нильсом Нильсоном и Бертраном Рафаэлем. Является эвристическим Всегда находит решение, если оно существует По сути является обобщённым алгоритмом Дейкстры Лёгок в реализации

А* Описание алгоритма Алгоритм А* оперирует с двумя списками: открытым и закрытым. В открытый список помещаются клетки, которые нужно проверить. В закрытые те, что уже не нужно проверять То, какую клетку проверить первой определяется по значению F=G+H. G – Стоимость передвижения из стартовой клетки в исходную с учётом данной H – эвристическая функция

А* описание алгоритма 1) Добавляем стартовую клетку в открытый список. 2) Повторяем следующее: a) Ищем в открытом списке клетку с наименьшей стоимостью F. Делаем ее текущей клеткой. b) Помещаем ее в закрытый список. (И удаляем с открытого) c) Для каждой из соседних 8-ми клеток … Если клетка непроходимая или она находится в закрытом списке, игнорируем ее. В противном случае делаем следующее. Если клетка еще не в открытом списке, то добавляем ее туда. Делаем текущую клетку родительской для это клетки. Расчитываем стоимости F, G и H клетки. Если клетка уже в открытом списке, то проверяем, не дешевле ли будет путь через эту клетку. Для сравнения используем стоимость G. Более низкая стоимость G указывает на то, что путь будет дешевле. Эсли это так, то меняем родителя клетки на текущую клетку и пересчитываем для нее стоимости G и F. Если вы сортируете открытый список по стоимости F, то вам надо отсортировать свесь список в соответствии с изменениями. d) Останавливаемся если: Добавили целевую клетку в открытый список, в этом случае путь найден. Или открытый список пуст и мы не дошли до целевой клетки. В этом случае путь отсутствует. 3) Сохраняем путь. Двигаясь назад от целевой точки, проходя от каждой точки к ее родителю до тех пор, пока не дойдем до стартовой точки. Это и будет наш путь

Проблемы А* Сглаживание пути Рост потребляемой памяти Одновременный поиск

Проблемы А*: сглаживание пути Неестественная траектория Зигзагообразная траектория Путь по центрам клеток

Проблемы А*: память и скорость Улучшаем алгоритм Улучшаем эвристику Укрупняем клетки(двупроходный алгоритм) Комбинируем с другими алгоритмами

Метод потенциальных полей Препятствия отталкивают, цель притягивает Основная проблема – локальные минимумы Локальные минимумы обходим итерациями Не подходит для больших расстояний Быстрый

Метод виртуальных отталкивающих клеток Вариант предидущего метода Препятствия режутся на клетки Отталкивают клетки, которые близко Более плавное движение

Комбинируем методы поиска Делим мир на локации От локации к локации – А* Внутри локации метод потенциальных полей Локации это выпуклые фигуры или фигуры содержащие точку видимости Точка видимости, это точка из которой можно провести отрезок в любую точку локации целиком находящийся в ней

Вопросы

Нужна помощь – пиши на мыло