262
Вестник Нижегородского университета им. Н.И. Лобачевского, 2014, № 1 (2), с. 262-264
МАТЕМАТИКА
УДК 519.6
ПРИМЕНЕНИЕ АЛГОРИТМА А* ДЛЯ МИНИМИЗАЦИИ ПУТЕЙ В ЗАДАННОМ ГОМОЛОГИЧЕСКОМ КЛАССЕ
© 2014 г. А.В. Галанин
Нижегородский госуниверситет им. Н.И. Лобачевского
Поступила в редакцию 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.