Научная статья на тему 'Применение алгоритма a* для минимизации путей в заданном гомологическом классе'

Применение алгоритма a* для минимизации путей в заданном гомологическом классе Текст научной статьи по специальности «Математика»

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

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

Рассматриваются триангулированные замкнутые многообразия, реберные пути на них и группы гомологий по модулю 2. Разработана и практически опробована модификация для алгоритма поиска минимального пути, гомологичного заданному, основанная на использовании эвристического алгоритма A*.

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

APPLICATION OF THE ALGORITHM A* TO PATH MINIMIZATION IN A GIVEN HOMOLOGY CLASS

Triangulated closed manifolds, their edge paths and modulo 2 homology groups are considered. A modification to the search algorithm for the shortest path (homologous to a given one) based on the use of a heuristic algorithm A* has been developed and practically tested.

Текст научной работы на тему «Применение алгоритма a* для минимизации путей в заданном гомологическом классе»

262

Вестник Нижегородского университета им. Н.И. Лобачевского, 2014, № 1 (2), с. 262-264

МАТЕМАТИКА

УДК 519.6

ПРИМЕНЕНИЕ АЛГОРИТМА А* ДЛЯ МИНИМИЗАЦИИ ПУТЕЙ В ЗАДАННОМ ГОМОЛОГИЧЕСКОМ КЛАССЕ

© 2014 г. А.В. Галанин

Нижегородский госуниверситет им. Н.И. Лобачевского

[email protected]

Поступила в редакцию 25.09.2013

Рассматриваются триангулированные замкнутые многообразия, реберные пути на них и группы гомологий по модулю 2. Разработана и практически опробована модификация для алгоритма поиска минимального пути, гомологичного заданному, основанная на использовании эвристического алгоритма A*.

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

Постановка задачи и подходы к ее решению

В работе рассматриваются прямолинейные

полиэдры в И" и рёберные пути на них. Полиэдр предполагается двумерным, однако алгоритм может быть модифицирован для поиска минимального пути и в полиэдре размерности т. Используются группы гомологий с коэффициентами из поля Ъ2.

Дан полиэдр Р, являющийся замкнутым многообразием, неотрицательная весовая функция Ь: С1(Р) ^ И, где вес ребра равен его

длине в И", и путь х0 е С (Р) с начальной вершиной 5 и конечной вершиной £. Требуется найти путь с минимальным весом среди всех путей с концами 5 и £, гомологичных х0.

Для решения этой задачи в [1] разработан следующий алгоритм. АЛГОРИТМ 1

1. Нахождение базиса [у1],.,[уг] группы гомологий Н (Р).

2. Построение индексной вектор-функции Л: С (Р) ^ относительно найденного базиса

[ У1],...,[ Уг].

3. Построение накрывающего полиэдра Р с множеством вершин V = V х Ъг2 и множеством ребер Е = {[йУ] = [(и,£)(у,^)]|[му]е Е,^ =

= Л([иу])}, где V и Е — наборы вершин и ребер исходного полиэдра Р , а также проекции %: Р ^ Р и весовой функции

Ь = Ь о %: С (Р) ^ И .

4. Применение алгоритма Дейкстры (см. [2]) для поиска пути с минимальным весом на накрывающем полиэдре. При этом в качестве

начальной точки на Р выбирается пара (5,0), а

в качестве конечной - (£, Л (х0)).

5. Вычисление проекции найденного пути на Р.

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

Модификация алгоритма поиска минимального пути

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

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

Применение алгоритма А * для минимизации путей в заданном гомологическом классе

263

исходного полиэдра в пространстве. Для этого применим алгоритм A* (см. [2]).

В алгоритме A* каждой вершине графа, по которому ведётся минимизация, сопоставляется функция /(у) = g(v) + Н(у), где g (у) - значение минимизируемой функции в вершине у, а Н(у) - оценка снизу минимизируемой функции между вершинами у и t.

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

Также на вершины, помещаемые в очередь, можно наложить дополнительное ограничение /(у) < М, где М - длина исходного пути перед

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

Как и всякий эвристический алгоритм, алгоритм А* не гарантирует того, что вершины будут рассмотрены в оптимальном порядке, поэтому можно подобрать примеры, в которых А* будет работать много дольше алгоритма Дейкстры. Но для большинства рассмотренных моделей модифицированный алгоритм показал 30-40-кратный прирост в скорости работы и 6-9-кратное снижение количества итераций.

К сожалению, прямое применение такого подхода к шагу 4 алгоритма 1 невозможно. Дело в том, что на шаге 3 строится только сим-

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

V = V х Ъг2, для чего требуется добавить в алгоритм 1 дополнительный шаг.

В предлагаемом нами модифицированном алгоритме шаг 4 алгоритма 1 заменяется на следующие действия.

4.1. Нахождение оценки минимальных расстояний И(у) от произвольных точек у е V до

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

4.2. Поиск с применением алгоритма A* пути с минимальным весом на одномерном остове

накрывающего полиэдра P, соединяющего вершины s = (s,0) и t = (t, J(x0)). При этом в качестве оценочной функции может быть использована композиция h = h ° %.

Применение функции h в алгоритме A* на P корректно, так как для любой вершины v = (v, e V и минимального пути x из v в t путь x = %(x) имеет начало v = %(V) и конец

t = %(t), и потому L(X) = L(x) > h(v) = h(v).

Поскольку шаг 4.2 является существенно новым, опишем его подробнее. procedure search_A_star (s, t)

for each v e G

visited\v\ ^ false d\v\ ^ да ENQ UE UEQ, s, h(s, t)) d\s\ ^ 0 from\s\ ^s while Q

v ^ POP(Q)

if visited[ v ] then continue

visited\v\ ^ true for each w e Adjv\

path weight^ d\v\ + L(v, W) if path_weight< d\W\ then

ENQUEUE(Q, W, path_ weight + h(v)) d\W\ ^ path_weight from \w\ ^ v

Функция search_A_star (s, t) для вершины s находит кратчайший путь до конечной вершины t с помощью алгоритма A*. Граф считается заданным списком смежности Adj.

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

f (v) = g(v) + h(v), где g (v) - длина кратчайшего пути от вершины s до v . Элементы очереди Q рассматриваются в порядке возрастания приоритета.

В массиве visited хранятся булевские значения, обозначающие посещённые вершины, массив d хранит текущее минимальное значение

264

А.В. Галанин

весовой функции на пути до вершины V, массив from используется для сохранения предыдущей вершины в графе предшествования.

Сравнение производительности алгоритмов поиска

В рамках работы было проведено сравнение модифицированного алгоритма с оригинальным. На различных моделях полиэдров выбирался рёберный путь, и к нему применялся алгоритм минимизации, описанный в [1], и алгоритм, описанный выше. В качестве h(v) выбрано расстояние в декартовом пространстве между текущей вершиной v и конечной вершиной t. Такая оценка может быть использована в алгоритме A*, так как длина любого пути между вершинами v и t не может быть меньше, чем расстояние между вершинами.

Таблица

Таблица времени исполнения алгоритмов

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

Данные Оригинальный Модификация

Время Шаги Время Шаги

Тор (19) 0.03 с 735 0.05 с 226

Узел (58) 0.18 с 2599 0.34 с 2346

Лестница (44) 19.108 с 24937 2.42 с 7485

Лестница (50) 12.85 мин 151253 1.91 мин 42231

Лестница (54) 8.35 мин 118308 23.05 с 19048

Лестница 2 (89) 4.13 час 712062 5.76 мин 76257

Модифицированный алгоритм показал примерно 30-40-кратный прирост в скорости работы и 6-9-кратное снижение количества итераций. Точные результаты сравнения времени исполнения и количества итераций рассматриваемых алгоритмов приведены в таблице.

Выводы

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

Работа выполнена при финансовой поддержке Минобрнауки РФ в рамках государственного задания на оказание услуг в 2012—2014 гг. подведомственными высшими учебными заведениями (шифр заявки 1.1907.2011).

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

1. Lapteva A.V. and Yakovlev E.I. Index Vector-Function and Minimal Cycles // Lobachevskii Journal of Mathematics. 2006. Vol. 22. P. 35-46.

2. Лорьер Ж.-Л. Системы искусственного интеллекта / Пер. с фр. и ред. В.Л. Стефанюка. М.: Мир, 1991.

APPLICATION OF THE ALGORITHM A* TO PATH MINIMIZATION IN A GIVEN HOMOLOGY CLASS

A. V. Galanin

Triangulated closed manifolds, their edge paths and modulo 2 homology groups are considered. A modification to the search algorithm for the shortest path (homologous to a given one) based on the use of a heuristic algorithm A* has been developed and practically tested.

Keywords: simplex, polyhedron, homology group, algorithm, minimization, heuristics, algorithm A*. References

1. Lapteva A.V. and Yakovlev E.I. Index Vector- 2. Lor'er Zh.-L. Sistemy iskusstvennogo intellekta / Function and Minimal Cycles // Lobchevskii Journal of Per. s fr. i red. V.L. Stefanjuka. M.: Mir, 1991. Mathematics. 2006. Vol. 22. P. 35-46.

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