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

Методика оценки алгоритмов поиска пути в лабиринте для выбора мобильным роботом стратегии перемещения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
821
82
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОИСК ПУТИ / ОЦЕНОЧНЫЙ АНАЛИЗ / ПРОГРАММНЫЙ ИНСТРУМЕНТ / МЕТОДИКА СРАВНЕНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Краснов Е. С.

Предложена методика анализа наиболее распространённых алгоритмов поиска пути в лабиринте. Описан процесс сбора данных о работе алгоритмов и способ анализа этих данных. В качестве удобного инструмента для проведения этих действий было разработано программное обеспечение для платформы Microsoft Windows, которое содержит необходимые инструменты для тестирования алгоритмов, визуализации лабиринта, сбора и обработки информации.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Краснов Е. С.

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

PATHFINDING ALGORITHMS METHOD OF ESTIMATION FOR DEVELOPING THE STRATEGY OF MOBILE ROBOT MOVEMENTS

A method of estimation of the most widespread path finding algorithms is proposed. The process of collecting data about algorithms’ work and way to analyze these data is described. As most convenient tool an application for Microsoft Windows platform was created. It integrates tools for gathering, storing and analyzing collected data.

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

3. Шелухин О.И. Цифровая обработка и передача речи. М.: Радио и связь, 2000. 456 с.

4. Способ формирования сигнала возбуждения в низкоскоростных вокодерах с линейным предсказанием: пат. На изобретение № 2400832. Зарегистрировано 27.09.2010.

5. Прохоров Ю.Н. Статистические модели и рекуррентное предсказание речевых сигналов. М.: Радио и связь, 1984. 240 с.

6. Хайкин С. Нейронные сети. М.: Издательский дом «Вильямс», 2006. 1104 с.

7. Осовский С. Нейронные сети для обработки информации. М.: Финансы и статистика, 2002. 344 с.

8. Рабинер Л.Р., Шафер Р.В. Цифровая обработка речевых сигналов. М.: Радио и связь, 1981. 496 с.

A.A.Afanasjev, A.P.Ryzhkov

IMPLEMENTATION OF THE NEURAL NETWORK PROCESSING SEGMENTS IN LINEAR PREDICTION SPEECH

The considered problem of the method of linear prediction of speech signals in the context of the downward speed transmission with preservation of acceptable quality. Suggested that the use of neural networks-classifiers, to refuse to transfer the signal excitation filter-synth the reception.

Key words: speech signal; a slow speech coding; the method of linear prediction; neural networks.

Получено 17.10.12

УДК 004.896

Е.С. Краснов, инж.-исследователь, (49232)9-02-79, redrussoft@rambler.ru (Россия, Ковров, ОАО «ВНИИ «Сигнал»).

МЕТОДИКА ОЦЕНКИ АЛГОРИТМОВ ПОИСКА ПУТИ В ЛАБИРИНТЕ ДЛЯ ВЫБОРА МОБИЛЬНЫМ РОБОТОМ СТРАТЕГИИ ПЕРЕМЕЩЕНИЯ

Предложена методика анализа наиболее распространённых алгоритмов поиска пути в лабиринте. Описан процесс сбора данных о работе алгоритмов и способ анализа этих данных. В качестве удобного инструмента для проведения этих действий было разработано программное обеспечение для платформы Microsoft Windows, которое содержит необходимые инструменты для тестирования алгоритмов, визуализации лабиринта, сбора и обработки информации.

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

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

Задачи:

- формализация задачи;

- разработка методической базы;

1. Введение

Задача поиска пути, берущая своё начало с древних головоломок, в настоящее время получила серьёзное развитие во множестве отраслей, в особенности в робототехнике. Робот может получать данные о положении препятствий порциями, либо иметь заранее построенную карту, уточняемую в процессе движения. При этом могут сильно варьироваться размеры карты, количество препятствий и их плотность - всё зависит от назначения робота и окружающей среды. Таким образом, возникает задача - выяснить какой из алгоритмов лучше подходит для каждой конкретной ситуации? Для её решения в статье предлагается оценочная методика.

2. Формализация задачи

2.1 Структура лабиринта

Прямоугольный «лабиринт» (также «карта»), рассматриваемый в статье, является двумерным динамическим массивом, состоящим из элементов («ячеек» или «блоков»). Он имеет ширину, обозначаемую как и высоту - Иь. Во всех строках и столбцах элементы нумеруются с нуля, следовательно, их индексы варьируются в диапазонах \0..Жь-1] и \0..Иь-1] соответственно. Начало координат - в левом верхнем углу карты. Каждый блок лабиринта может быть одного из следующих типов:

- свободный блок;

- препятствие;

- стартовый/финишный блок;

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

Блоки типа «препятствие» не имеют подтипов и лишь обозначают области непроходимых препятствий, вне зависимости от их природы.

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

0 < Г < -1 (1)

0 < YsF < Иь -1, (2)

где Х8,р - абсциссы точек старта и финиша; YXF - их ординаты.

Маршрут - это последовательность блоков (точек), ведущая от старта к финишу. Маршрут является результатом работы каждого рассматриваемого алгоритма (см. разд. 3). Важно отметить, что полученные маршруты не подвергаются никаким модификациям, таким как спрямление или сглаживание, за исключением одной, (см. разд. 5).

2.2. Типы лабиринтов

Лабиринты, в первую очередь, могут отличаться по размерам. Ниже представлено четыре основных типоразмера лабиринтов:

- малые (размером порядка 20х20 блоков);

- средние (размером от 40х40 до 70х70 блоков);

- большие (размером порядка 100х100 блоков);

- гигантские (размером порядка 200х200 блоков и более).

Лабиринты меньших и больших размеров не рассматриваются.

Другая классификация лабиринтов - по количеству препятствий:

- свободные (менее 10 % заполнения препятствиями);

- средние (от 10 до 40 % заполнения препятствиями);

- тесные (более 50 % заполнения препятствиями).

Пример карты среднего размера (40х34) и средней заполненности препятствиями (268/1360 ~ 0,19 = 19) представлен на рис. 1.

3. Рассматриваемые алгоритмы поиска пути

В данной статье оговариваются следующие алгоритмы:

1. А* (так называемый А-стар);

2. Волновой алгоритм (алгоритм Ли);

3. Волновой алгоритм (восьминаправленная модификация);

4. Лучевой алгоритм;

5. Алгоритм Дейкстры;

6. Поиск в глубину;

7. Поиск в ширину;

8. Алгоритм правой руки;

9. Алгоритм левой руки.

Чтобы устранить все возможные двусмысленности, ниже приведены подробные описания каждого из алгоритмов.

1. Подразумевается оригинальный алгоритм А*, разработанный П. Хартом, Н. Нильсоном и Б. Рафаэлем в 1968 году. Он использует модель поиска «лучший первый» в сочетании с эвристической функцией:

/(X) = g(X) + К(х), (3)

где g(.х) - путь от стартовой точки до текущей, Н(х) - эвристическая функция, оценивающая расстояние до финишной на каждом шаге, в качестве которой выбрано Чебышевское расстояние, равное наибольшему из удалений по вертикали и горизонтали (ортогональная метрика).

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

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

4. Рассматривается однолучевой алгоритм. Он исследует лабиринт, передвигаясь на ближайший наиболее многообещающий блок (разновид-

ность «жадного» алгоритма), используя эвристическую функцию, рассчитывающую Манхэттенское расстояние

^ + АУу . (4)

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

6. Стандартный рекурсивный алгоритм поиска в глубину.

7. Стандартный алгоритм поиска в ширину.

8. Широко известный алгоритм поиска выхода из лабиринта. Модифицирован во избежание возможных зацикливаний.

9. Алгоритм идентичный предыдущему во всём, но для левой руки.

4. Описание программного обеспечения

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

Данное ПО функционирует в соответствии со всеми правилами и ограничениями, описанными выше. Визуально, оно состоит из 4 частей:

- панель инструментов с «кистями» для рисования лабиринта;

- область карты (выглядит аналогично рис. 1);

- панель настроек карты (размер карты и блоков);

- панель выполнения алгоритмов.

Рис. 1. Пример лабиринта

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

сти установки проходимости блоков - могут быть определены лишь свободные блоки, препятствия и старт/финиш, однако методика оценки уже рассчитана на учёт блоков разной проходимости (см. разд. 6).

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

Внешний вид программного обеспечения представлен на рис. 2.

Рис. 2. Внешний вид программного инструмента

5. Исследуемые характеристики

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

1. Время работы алгоритма (время вычислений)

2. Длина маршрута

3. Объём памяти для вычислений

4. Опасность маршрута

5. Гладкость маршрута

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

1. Время работы алгоритма (время вычислений) - одна из наиболее значимых характеристик. Очевидно, что меньшее значение однозначно го-

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

Данная величина зависит от размеров карты.

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

Единственная модификация, применяемая к маршруту - удаление повторяющихся точек, если таковые возникают. Данная операция не включается во временную оценку каждого алгоритма. Измерение длины производится после этой операции.

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

Ь = (5)

ЬБ

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

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

Также для каждого блока задана проходимость и, таким образом, величина Ьк , зависящая от N , будет вычисляться по формуле

Мк -1

Ьк кг , (6)

1=0

где кг - коэффициент проходимости для каждого блока, входящего в маршрут (для простого свободного блока равный единице).

Величина Ь не зависит от размеров карты.

3. Если алгоритм работает быстро, но потребляет много памяти, его использование может быть нежелательным, а иногда даже и неприемлемым. Поэтому объём памяти, использованный алгоритмом для вычислений, также показателен и должен быть измерен (единожды для каждого алгоритма). Обозначим величину как М.

Данная величина зависит от размеров карты.

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

Н = ^, (7)

где пН - число точек маршрута, соседствующих с препятствиями.

Данная величина не зависит от размеров карты.

5. Для измерения гладкости маршрута необходимо попарно рассмотреть все точки маршрута (1 и 2, 2 и 3, 3 и 4 и т.д.) в качестве отрезков и измерить угол между каждой парой отрезков. Из ограничений в разд. 2.1 очевидно, что возможны только следующие варианты:

- нет поворота (обозначим количество таких стыков как п0);

- малый поворот - 45° (количество таких стыков - пД

- крутой поворот - 90° (количество таких стыков - п2);

- малый разворот - 135° (количество таких стыков - п3);

- полный разворот - 180° (количество таких стыков - п4).

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

п

А =, (8)

г N - 2

где г - счётчик, варьируемый от 0 до 4, в зависимости от типа поворота.

При этом очевидно, что справедливо соотношение

4

Е Аг = 1. (9)

г = 0

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

А = 1 - 0.25 А1 - 0.5А2 - 0.75 А3 - А4. (10)

Исходя из формулы (10) получаем, что при преобладании малых поворотов величина А будет стремиться к значению 0,75; при преобладании крутых поворотов - к 0.5 и т.д. При этом ввиду соотношения (9) невозможно никакое сочетание величин А}.4 , дающее А < 0.

Полученная величина гладкости А инвариантна к длине маршрута.

6. Методика анализа

Для получения достаточного количества статистических данных необходимо провести множество тестов. Они должны быть разделены на 12 групп по следующим критериям: размер карты и её заполненность препятствиями (4х3 = 12). На основе такого разделения при помощи анализа статистических данных можно проследить, как меняются характеристики каждого алгоритма для разных типов карт, а также сравнивать по ним разные алгоритмы на одном типе карт. Тесты внутри каждой группы прово-

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

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

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

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

ТN = 1" ^, (И)

I т

7 = 1

где т - число алгоритмов, равное 9 на данный момент.

Аналогичные рассуждения применимы и для вычисления величин, нормализованных длины маршрута и объёма

^ = 1 , (12)

т

I

7=1

Мн = 1 . (13)

м т

I м>

7 =1

Для характеристики опасности маршрута нормализованное значение будет вычисляться по формуле

Иы = 1 - Н . (14)

Характеристика гладкости уже нормализована, поэтому Ам = А. На основе нормализованных характеристик можно вычислить величину ¥а1%, показывающую, насколько удачен алгоритм:

¥а = кт ■ тм + кь ■ + км ■ Мм + кн ■ нм + кА ■ Ам, (15)

где кт, кь, км, кн, кА - весовые коэффициенты каждой из характеристик.

При всех весовых коэффициентах, равных единице, значение функ-

4

ции лежит в пределах от 0 до 5, а в общем случае - от 0 до I к7 .

7 = 0

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

7. Заключение

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

Преимущества предложенного решения:

- однозначность получаемой оценки;

- универсальность получаемых результатов (применимо на реальных роботах различной конструкции, в видеоиграх и в др. задачах;

- повышение производительности системы;

- возможность расширения как методики, так и числа алгоритмов;

Тем не менее, эта статья - лишь определённый этап в ходе общей

работы и предстоит ещё много работы: необходимо собрать достаточное количество статистических данных, рассмотреть и другие алгоритмы, такие, как модификации А*, алгоритм обхода по периметру, многолучевые алгоритмы и др.

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

1. Князев Б.А., Черкасский В.С. Начала обработки экспериментальных данных. Измерительный практикум: методическое пособие. Новосибирск: Изд-во Новосиб. ун-та, 1996.

2. Седжвик Р. Фундаментальные алгоритмы на C. Алгоритмы на графах / пер. с англ. М.: ДиаСофтЮП, 2003. Ч.5.

E.S. Krasnov

PATHFINDING ALGORITHMS METHOD OF ESTIMATION FOR DEVELOPING THE STRATEGY OF MOBILE ROBOT MOVEMENTS

A method of estimation of the most widespread path-finding algorithms is proposed. The process of collecting data about algorithms' work and way to analyze these data is described. As most convenient tool an application for Microsoft Windows platform was created. It integrates tools for gathering, storing and analyzing collected data.

Key words: path-finding, estimating analysis, software tool, comparison method.

Получено 17.10.12

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