Научная статья на тему 'Метод поиска пути в лабиринте при наличии помех'

Метод поиска пути в лабиринте при наличии помех Текст научной статьи по специальности «Математика»

CC BY
834
53
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Блинова Н.А., Филиппов М.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Метод поиска пути в лабиринте при наличии помех»

Метод поиска пути в лабиринте при наличии помех

Блинова Н.А. МГТУ им.Н.Э.Баумана pachirisu.bna@yandex.ru Филиппов М.В. МГТУ им.Н.Э.Баумана filippov.mike@mail.ru

Аннотация

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

1 Введение

Нахождения «пути из точки А в точку В» на первый взгляд не кажется такой сложной, поскольку каждый человек решает ее в повседневности чуть ли не каждый день, например, выбирая, как лучше добраться до работы. Однако, если передвигаться предстоит по неизвестной местности или в условиях, опасных для человеческой жизни, то задача существенно усложняется. В таком случае необходимо найти не просто путь, а кратчайший путь, причем не подвергая никого опасности в процессе исследования территории. Поэтому для решения подобной проблемы используется техника, а именно различные роботы.

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

Целью настоящей статьи является метода поиска пути в лабиринте таким образом, чтобы путь прокладывался с учетом помех как физических, так и помех в каком-либо сигнале, передающем координаты конечной точки, которые изначально неизвестны.

2 Обзор существующих методов 2.1 Представление пространства

Существует два простых способа представления пространства: векторное и растровое.

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

В случае растрового представления используются дискретное рабочее поле (или навигационная сетка) (ДРП). ДРП представляет собой ограниченную замкнутой линией фигуру, не обязательно прямоугольную, разбитую на ячейки, в частном случае - квадратные. Множество всех ячеек ДРП разбивается на подмножества:

- «проходимые» (свободные), т.е. при поиске пути их можно проходить;

- «непроходимые» (препятствия), путь через эту ячейку запрещён.

Соседние ячейки принято классифицировать двояко: в смысле окрестности Мура (Рис. 1)

Рис.1 Окрестность Мура и окрестности фон Неймана (Рис. 2).

Рис.2 Окрестность фон Неймана

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

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

2.2 Методы поиска пути

Рассмотрим наиболее распространенные методы поиска пути.

Поиск в ширину (breadth-first search).

Один из основных алгоритмов на графах. Идея поиска в ширину состоит в том, чтобы посещать вершины в порядке их удаленности от некоторой заранее выбранной или указанной стартовой вершины а. Сам алгоритм можно понимать, как процесс "поджигания" графа: на нулевом шаге поджигаем только вершину. На каждом следующем шаге огонь с каждой уже горящей вершины перекидывается на всех её соседей; т.е. за одну итерацию алгоритма происходит расширение "кольца огня" в ширину на единицу (отсюда и название алгоритма).

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

Поиск в глубину (depth-first search). Вероятно, наиболее важная ввиду многочисленности приложений стратегия обхода графа. Идея этого метода - идти вперед в неисследованную область, пока это возможно, если же вокруг все исследовано, отступить на шаг назад и искать новые возможности для продвижения вперед.

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

Волновой метод (метод Ли). Метод поиска пути на планарном графе (дискретном рабо-

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

Работа алгоритма включает в себя три этапа: инициализацию, распространение волны и восстановление пути.

Во время инициализации строится образ множества ячеек обрабатываемого поля, каждой ячейке приписываются атрибуты проходимости или непроходимости, запоминаются стартовая и финишная ячейки.

Далее, от стартовой ячейки порождается шаг в соседнюю ячейку, при этом проверяется, проходима ли она, и не принадлежит ли ранее меченной в пути ячейке.

При выполнении условий проходимости и непринадлежности её к ранее помеченным в пути ячейкам, в атрибут ячейки записывается число, равное количеству шагов от стартовой ячейки (от стартовой ячейки на первом шаге это будет 1). Каждая ячейка, меченая числом шагов от стартовой ячейки становится стартовой и из неё порождаются очередные шаги в соседние ячейки. При таком переборе будет найден путь от начальной ячейки к конечной, либо очередной шаг из любой порождённой в пути ячейки будет невозможен.

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

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

Метод поиска А* («A-star»). Относится к эвристическим методам поиска. Используется для поиска кратчайшего пути между двумя вершинами графа с положительными весами ребер.

Он просматривает сначала те маршруты через вершины, которые «кажутся» ведущими к цели. От жадного алгоритма его отличает то, что при выборе вершины он учитывает, помимо прочего, весь пройденный до неё путь. Чтобы распознать такие вершины, каждой известной вершине сопоставляется значение, равное длине кратчайшего пути от начальной

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

Функция для вершины определяется так: /(.х) = g(x)-h(x) (1)

где

g(x) - функция, значение которой равно стоимости пути от начальной вершины до текущей,

X) - эвристическая функция, оценивающая стоимость пути от текущей вершины до конечной.

Метод делит вершины на три класса:

1) неизвестные вершины: эти вершины еще не были найдены. Путь к ним еще неизвестен. В начале работы алгоритма все вершины, кроме начальной, принадлежат к классу неизвестных.

2) известные вершины (OpenList): содержат уже известный (возможно, не оптимальный) путь к этим вершинам. Все известные вершины вместе со значениями сохраняются в списке. Из этого списка выбираются, в первую очередь, перспективные вершины. В начале работы алгоритма к известным вершинам принадлежит только начальная вершина.

3) полностью исследованные вершины (ClosedList): до этих вершин уже известен кратчайший путь. Полностью исследованные вершины добавляются к так называемому закрытому списку, чтобы предотвратить многократное исследование уже исследованных вершин. Список полностью исследованных вершин в начале работы алгоритма пустой.

Алгоритм останавливается, когда конечная вершина попадает в список полностью исследованных вершин. Найденный путь воспроизводится с помощью указателей на предыдущую вершину. Если список известных вершин пустеет, то решения задачи не существует и алгоритм прекращает поиск.

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

3 Описание разработанного метода

На основе изложенных выше результатов сравнительного анализа для разработки метода решения задачи поиска пути при наличии помех в качестве базового был использован волновой алгоритм поиска. В данной работе представлено дальнейшее развитие этого алго-

ритма для случая, когда координаты цели заранее неизвестны, но в дальнейшем информация о них может появиться. Кроме того предложен способ уменьшения затрат памяти для хранения карты ДРП.

Можно выделить следующие этапы работы метода:

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

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

3. Обработка текущей позиции заключается в определении информации о целевой позиции и обходе всех смежных с ней позиций, в которые возможно совершить переход. Если переход возможен, то эти позиции становятся подлежащими исследованию.

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

Чтобы определить порядок обхода, необходимо использовать некоторый приоритет при выборе следующей для исследования позиции. Таким приоритетом является весовая функция, учитывающая расстояние от текущей позиции и до начальной позиции, и до конечной.

Расстояние от начальной точки до текущей позиции рассчитывается по следующей формуле:

Ь(п) = Ь(п-1) - Щп) (2)

где п - номер текущей позиции, Ь(п-1) - расстояние от начальной позиции до позиции, из которой был совершен переход в текущую,

^п) - проходимость текущей позиции, (эта функция отвечает за преодоление физических помех).

Для вычисления расстояния от текущей позиции до конечной используется стандартная метрика Евклида:

fin) = J(xf - хп)2 + (У/ - Уп)2,

(3)

где (xn,yn) - координаты текущей позиции, (х/,у/) - координаты конечной точки.

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

дп) = fls(n)' если fla9 = false'> (4)

[ls(ri) + lf(n), если flag = true где параметр flag - флаг получения информации о координатах расположения целевой точки.

В волновом методе и методе поиска А* для хранения карты местности используются массивы, что приводит к большим затратам памяти. В данной работе хранение карты реализуется при помощи квадродеревьев, что уменьшает необходимое количество памяти, необходимое для хранения, но потребует более сложных алгоритмов в связи с разными размерами ячеек. Пример хранения растровой карты представлен на Рис. 3

Рис.3 Хранение растровой карты с помощью квадродерева

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

4 Результаты численных расчетов

На основе описанного выше метода был разработан программный комплекс построения пути в лабиринте при наличии помех. Пример построения пути представлен на Рис.4.

Рис. 4 Карта лабиринта с проложенным путем

На Рис.4 голубые клетки - свободные, серые - занятые преградой, коричневые - представляют помеху, зеленые - начальная и конечная точка пути, желтые - проложенный путь. Помеха имеет отличную от свободной клетки проходимость, а также она может поглотить сигнал, передающий информацию о целевой точке.

В данном разделе приводятся также результаты исследование скорости работы программного комплекса и количества исследованных точек. Проведено сравнение с оригинальным волновым методом.

Для оценки указанных параметров для каждого размера карты от 10х10 клеток до 35х35 клеток было сгенерировано 50 лабиринтов с характеристиками:

1. Вероятность появления преграды - 10%

2. Вероятность появления помехи - 10%

3. Путь прокладывался из точки, находящейся в среднем ряду в крайнем левом столбце, в точку, находящейся в правом верхнем углу карты

4. Дальность распространения сигнала -15

На Рис.5 представлена зависимость количества обойденных точек, потребовавшегося при поиске пути, в зависимости от размера карты.

900

-Модификация

i 800

О

10 15 20 25 30

Размер карты

Рис.5 Количество обойденных точек в зависимости от размера карты.

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

На Рис.6 представлена зависимость времени определения пути с помощью представленного и волнового метода от размера карты.

400

-Модификация

350 * ---- Волновой /

0 300

S 250 ь

^ 200 Q.

1

% 150 т Q. CD

100 50 0

Рис.6 Зависимость времени определения пути от размера карты.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Заключение

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

Список литературы

Применение графов в различных областях жизни людей. [Электронный ресурс] - Режим до-ступа:ht:tp://obuchonok.ru/node/1321 (Дата обращения: 24.12.2018)

Клеточные автоматы [Электронный ресурс] - Режим доступа: Мр://осо.ога.щ/клеточные автоматы/ (Дата обращения: 24.12.2018)

Lee, C.Y., «An Algorithm for Path Connections and Its Applications», IRE Transactions on Electronic Computers, vol. EC-10, number 2, pp. 364—365..

Алгоритмы поиска пути [Электронный ресурс] - Режим доступа: http://pmg.org.ru/ai/stout.htm (дата обращения: 21.05.2018)

Stefan Edelkamp, Stefan Schrödl. Heuristic search: theory and applications. / Morgan Kaufmann Publishers, 2012. 712 с.,

Использование квадродеревьев при расчёте пробок 2ГИС. [Электронный ресурс] - Режим до-ступа:ht:tps://habrcom/company/2gis/blog/205742/ (Дата обращения: 24.12.2018)

Introduction to A [Электронный ресурс] - Режим до-ступа:ht:tps://www.redblobgames.com/pathfinding/ a-star/introduction.html (дата обращения: 23.05.2018)

Информированный поиск и исследование пространства состояний [Электронный ресурс]- Режим доступа : http://iskhacov.narod.ru/biblio-/InfPoiskStuart.pdf (дата обращения: 21.05.2018)

10 15 20 25 30 35

Размер карты

i Надоели баннеры? Вы всегда можете отключить рекламу.