Матем атика
Вестник Нижегородского университета им. Н.И. Лобачевского, 2014, № 1 (1), с. 203-208
УДК 515.14+519.6
МЕТОД ЭКВИВАЛЕНТНЫХ ДУГ ДЛЯ МИНИМИЗАЦИИ ПУТЕЙ В ЗАДАННОМ ГОМОЛОГИЧЕСКОМ КЛАССЕ
© 2014 г. А.В. Галанин
Нижегородский госуниверситет им. Н.И. Лобачевского [email protected]
Поступила в редакцию 24.09.2013
Рассматриваются триангулированные замкнутые многообразия, реберные пути на них и группы гомологий по модулю 2. Разработан метод снижения алгоритмической сложности для алгоритма поиска минимального пути, гомологичного заданному.
Ключевые слова: симплекс, полиэдр, группа гомологий, алгоритм, минимизация.
Краткие сведения об индексной вектор-функции
В настоящем пункте мы кратко напомним понятие индексной вектор-функции, более детально данная конструкция описана в [1]. Пусть Р - т-мерное триангулированное многообразие без края и 1М : Н1(Р) х Нт-1(Р) ^ Z 2 - индекс пересечения, а [ >>[],...,[ уг ] - базис группы гомологий Нт-1(Р).
Гомоморфизм J: С1(Р) ^ Z2, J = (/1,..., Jr), называется индексной вектор-функцией, если для произвольных 7 е Z1(P) и k е{1,...,г} имеет место равенство
^ ]). (1) При этом для любой цепи х е С\ (Р) значение J (х) называется ее индексом относительно
базиса [ у1],...,[у.].
Имеет место [1]
Предложение 1. Если х, х е С (Р) и дх = дх', то J(х) = J(х') тогда и только тогда, когда х ~ х'.
Процесс построения компонент индексной вектор-функции J: С1 (Р) ^ Z2 относительно некоторого набора базисных (т -1) -мерных циклов называется индексацией.
Постановка задачи и подходы к ее решению
В работе рассматриваются прямолинейные полиэдры в Rп. Пути предполагаются рёберными. Полиэдр предполагается двумерным, однако алгоритм может быть модифицирован для
поиска минимального пути и в полиэдре размерности т. Используются группы гомологий с коэффициентами из поля Z2.
Дан полиэдр P, являющийся двумерным замкнутым многообразием, неотрицательная весовая функция L : C\ (P) ^ R и путь x0 е C (P) с начальной вершиной s и конечной вершиной t. Требуется найти путь с минимальным весом среди всех путей с концами s и t, гомологичных x0.
Для решения этой задачи в [1] используется переход к накрывающему полиэдру P. Его вершинами являются пары (v, i), где v - вершина исходного полиэдра P, а i е Z2, r = rank H1 (P). Кроме того, для любого пути x е C (P), соединяющего вершины а, Ъ е V(P), накрывающие пути соединяют вершины (a,ia),(Ъ,ib)eV(P), удовлетворяющие равенству ia + ib = J (x). Здесь J: C1 (P) ^ Z2 - описанная выше индексная вектор-функция относительно некоторого базиса группы H1 (P).
Запишем основные шаги алгоритма, разработанного в [1].
Алгоритм 1
1. Нахождение базиса группы гомологий Hi(P).
2. Построение индексной вектор-функции J относительно найденного базиса.
3. Построение накрывающего полиэдра P .
4. Применение алгоритма Дейкстры (см. [2]) для поиска пути с минимальным весом на накрывающем полиэдре. При этом в качестве начальной точки на P выбирается пара (s,0), а в качестве конечной - (t, J (x0)).
5. Вычисление проекции найденного пути на Р.
Переход к накрывающему полиэдру в данном алгоритме позволяет свести рассматриваемую задачу к уже решённой задаче поиска пути с минимальным весом на графе. Однако при этом не используется информация о соответствии между вершинами исходного полиэдра и накрывающего. Это приводит к тому, что пути на накрывающем полиэдре, имеющие один образ при накрывающем отображении, минимизируются независимо друг от друга, что приводит к значительному увеличению времени работы алгоритма. Поэтому предлагается модификация алгоритма, свободная от указанного недостатка.
Заметим также, что накрывающий полиэдр
Р может быть построен и с помощью гомоморфизма J: С1 (Р) — Z2, не являющегося индексной вектор-функцией. В этом случае применение шагов 3-5 указанного алгоритма позволяет найти минимальный элемент среди всех путей х є С (Р) с концами 5 и t, удовлетворяющих равенству J(х) = J (х0).
Метод эквивалентных дуг
Множество вершин полиэдра триангулированного многообразия Р обозначим буквой V, множество рёбер - Е. Пусть, как и выше, L -неотрицательная весовая функция, J -индексная вектор-функция относительно некоторого базиса группы Н1 (Р), а граф G = (V, Е) представляет собой одномерный остов полиэдра Р .
Определение 1. Ребро е є Е назовём проиндексированным, если J(е) = 0 . Обозначим множество проиндексированных рёбер буквой I.
Определение 2. Назовём вершину V є V специальной, если она совпадает с начальной или конечной вершиной минимизируемого пути или инцидентна как минимум одному индексированному ребру. Множество всех специальных вершин обозначим как 5 с V.
Определение 3. Назовём путь нуль-индексным, если он начинается и кончается в специальных вершинах и и V и не содержит ни одного проиндексированного ребра. Множество всех нуль-индексных путей, соединяющих вершины и и V графа 0, обозначим ^.
Если ф 0, то множество всех путей из , имеющих минимальный вес, обозначим как . Назовём элементы этого множества
минимальными нуль-индексными путями. Выберем и зафиксируем путь хш є .
Построим мультиграф О = (V' , Е') с множеством вершин V' = 5. Пусть и,V є V'. Если существует ребро е = [и, V] є I, то будем считать, что е є Е'. Кроме того, при ф 0 включим в Е' путь хиу є .
Замечание 1. По построению каждую пару вершин и, V є 5 могут соединять не более чем две дуги графа О = (V' , Е'), так как в графе 0 может быть не более чем одно проиндексированное ребро, соединяющее и и V, а множество нуль-индексных путей заменяется не более чем на одну дугу. Следовательно,
К2
| Е |<----2 = К2,
2
где К =| 51.
Обозначим символом 0.(0,5) множество путей графа О , соединяющих точки множества 5, а символом 0(0') - множество всех путей мультиграфа О'. По построению Е с 0(0,5) с с С1 (Р). Следовательно, определено включение /': Е' ——С1(Р), причем /'(Е') с 0(0,5).
Произвольная цепь х'є С1(0') представляет
собой формальную сумму х' = ^ е'к дуг е'к є Е.
к
Положим
Дх') = f £ ек) = 2/'(ек). (2)
кк
Этим построен гомоморфизм f С 1(0') — —С1(Р), удовлетворяющий условию f (0(0')) с с 0(0,5). С его помощью посредством формул Ь' = Ь о f и J' = J о f определим весовую функцию Ь': 0(0') — R и гомоморфизм J': С1(0') — Z2. Значения последнего на одномерных цепях мультиграфа 0’ = (V' , Е) договоримся по-прежнему называть их индексами.
Рассмотрим вершины и, V є 5 и вектор
у є Z2. Обозначим символами 0(0, и, V, у) и 0(0', и,V, у) множества путей графов 0 и 0' соответственно, соединяющих вершины и и V и имеющих индекс у. Согласно построению функции J' имеет место включение
Д0(0', и, V, у)) с 0(0, и, V, у). (3)
Также введем обозначения М(0, и,V, у) и М (0', и, V, у) для множеств путей с минимальным весом из 0(0, и, V, у) и 0(0', и, V, у) соответственно.
Теорема 1. Имеет место включение f (М(О', и,V,у)) сМ(О, и,V, у).
Доказательство. Произвольный путь х е е О(О, S) представляет собой сумму х = [v0v1 ] +
+[V1V2] + . + [vn-lvn], где V е V , [V-V] е Е для всех i = 1,., п , а v0, vn е 5 . Допустим, что путь
х* = \VpVp+1 ] + . + [Уд-'Уд ] составлен из максимального набора идущих подряд ребер пути х , не лежащих в I. Тогда J (х*) = J ([урур+1]) + + . + J (^д-Уд ]) = 0. Если р = 0, то ур = уо е 5 по выбору пути х. При Р > 0 ребро [Ур-1Ур ] пути х принадлежит множеству I в силу максимальности х*. Но тогда V е 5 по определению множества специальных вершин. Аналогично проверяется, что и V е 5. Таким образом, х* е Nv ,, .
УрУд
Итак, доказано, что любой путь х е О(О, 5) может быть представлен в виде суммы
х = ^ хк, где либо хк = е е I, либо хк е Nuv для
k
некоторых и, V е 5 . Положим
F (х) = F £ хк) = ^ F (хк), (4)
кк
где F(хк) = е в первой из указанных ситуаций и F(хк) = хи, - во второй, причем хи, - зафиксированный ранее путь из множества Nuv. Этим определено отображение Е: О(О, 5) ^ О(О').
По построению Е(хк) = хи, для всех Nuv.
Таким образом, J о f о Е = J и потому
J 'о Е = J. Отсюда следует, что
Е (О(О, и, V, у)) сО(О', и, V, у). (5)
Заметим также, что L(f (Е(хк))) = L(xк) при
хк = е е 1 и L(;[(Е(хк))) < Цхк) при хк е Nuv для некоторых и, V е 5 . Поэтому для любого х = О(О, 5)
L((f о Е)(х)) < L(х). (6)
Рассмотрим далее путь х е М(О, и,V, у) и положим х' = Е(х) и у = f (х'). Согласно (5) х'еО(О',и,V,у), а в силу (3) уеО(О,и,V,у). Из (6) также следует, что L(у) < L(х). Таким образом, вес пути у не превышает минимального веса пути из множества О(О, и,V, у). А это значит, что у е М (О, и, V, у).
Пусть, наконец, 7 - произвольный элемент множества М(О', и, V, у). Так как 7 имеет минимальный вес среди всех путей из О(О', и, V, у), а
построенный выше путь х' = Е(х) принадлежит О(О',и,V,у), то L'(z') < L'(х'). Положим 7 = = f (7'). Тогда L(7) = L(f (7)) = Г(7) <
< L'(х') = L( f (х')) = L(у). Кроме того, согласно (3) 7еО(О,и,V,у). Отсюда и из включения у е М(О, и, V, у) следует, что 7 е М(О, и, V, у). Теорема доказана.
Следствие. Пусть хО, - минимальный путь индекса J'(хО.) = J(х0) в графе О', соединяющий вершины 5 и t. Тогда его образ хО = f (хО,) гомологичен х0 в Р и имеет наименьший вес среди таких путей.
Действительно, по условию хО,е М (О',
5, t, J(х0)). Отсюда по теореме 1 следует, что путь хО = f (хО,) имеет наименьший вес среди всех путей х графа О = (V, Е), соединяющих вершины 5 и t, имеющих индекс J(х) = J(х0). Согласно предложению 1 для всех таких путей [х] = [х0] в Н1(Р).
Определение 4. Пусть V’ - множество вершин графа О', Е - множество его рёбер, а J': С1(О') ^ Z2 - построенный выше гомо-
морфизм. Положим V = V'хZ2. Элементы й = = (и, Е) е V и V = (V, ^) е V назовём соседними и
включим ребро [иР] в список Е, если выполнены условия:
(А1) существует ребро е = [uv] е Е;
(А2) П = ^+ J '(е).
Граф, состоящий из множества вершин V и
множества ребер Е, обозначим как О'.
Определение 5. Определим отображение п: О' ^ О' следующим образом: пг ((и, Е,)) = и , пЕ ([и']) = К (и)пу (V)], п = (nV, пЕ) для и,
V е V, [г5л5] е Е.
Предложение 2. Для любого пути х = = [и0и1 ] + [и1и2 ] + ... + [ир-1ир ] графа О' и произвольного вектора Е0 е Z2 существует единственный путь х = [/20/21 ] + [гР1г52 ] + ... + [ир-1йр ] графа
О, обладающий свойствами:
(С1) г?0 = (uo, Е0);
(С2) п(.х) = х.
Предложение 3. Пусть х = [и0и1 ] + [и1и2 ] + + ... + [ир-1ир ] и у = ^0^ + [vlv2] + ... +^-1^ ] -пути графа О', идущие из вершины и0 = V,, в
вершину up = vq , x = [и0иі ] + [uu ] + ... +
+ [Up-Vp ] и y = [^і] + [^2] + . + [vq-і vq ]-
пути в G', накрывающие пути x и y соответственно и имеющие общее начало u0 = v„. Тогда U = Vlq в том и только в том случае, если J '(x) = J'(у).
Предложения 2 и З доказываются аналогично предложениям і0.2 и і0.З из [З] соответственно. Предложения 2 и З позволяют использовать
граф G' для поиска минимального элемента среди путей x' графа G’, соединяющих вершинні s и t и имеющих индекс J'(x') = J (x0). В результате мы получаем новый алгоритм для решения поставленной задачи.
Алгоритм 2
1. Нахождение базиса [yj,...,[yr] группы гомологий H (P).
2. Вычисление индексной вектор-функции J: C^P) — Z2 относительно базиса [уі],.,[yr ].
3. Построение мультиграфа G’ = (V',E’).
4. Построение с помощью гомоморфизмов
f :Ci(G') —>Ci(P) и J' = J о f накрытия
л: G' — G'.
5. Поиск пути x' с минимальным весом L'(x'), L' = L о f о л, на накрывающем графе G', соединяющий вершины (s,0) и (t, J (x0)).
6. Вычисление проекции x' = л(.x') найденного пути на G ’.
У. Восстановление соответствующего x' пути x = f (x') на G.
Новыми в данном алгоритме являются шаги
З и У. Наиболее существенна задача построения графа G’, потому распишем метод ее решения подробнее.
Первый шаг реализуется процедурой build_new_graph(s,t), в ней передаются начальная (s) и конечная (t) вершины пути. Затем производится вычисление минимальных значений весовой функции L для всех пар специальных вершин графа G , при этом начальная вершина s минимизируемого пути рассматривается первой.
Внутри процедуры используется очередь EQ, в которую помещаются очередные специальные вершины.
procedure build_new_graph(s, t)
ENQUEUE(EQ, s)
G' ^ G’^{s} repeat
u ^ POP(EQ)
make_new_graph_edges(EQ, u, t) until EQ = 0
Функция make_new_graph_edges(EQ, u, t) для заданной вершины u находит минимальные нуль-индексные пути до всех специальных вершин (в том числе конечной вершины t). Для их вычисления используется алгоритм Дейкстры (см. [2]) с запретом пересечения индексированных рёбер. Граф считается заданным списком смежности Adj.
В случае, если во время работы алгоритма попалась ещё не рассмотренная специальная вершина v, она добавляется в очередь EQ на проверку. Граф G’ пополняется новой вершиной и ребром, эквивалентным минимальному нуль-индексному пути между U и V.
Для специальной вершины, инцидентной индексированному ребру, производятся следующие действия: вершина w, инцидентная тому же ребру, добавляется в V'; индексированное ребро добавляется в E .
Заметим, что начальная вершина в make_new_graph_edges(EQ, u, t) не рассматривается как специальная. Так как граф G не ориентированный и начальная вершина ставится в очередь первой, это не приводит к потере дуг в G’, инцидентных ей.
В массиве visited хранятся булевские значения, обозначающие посещённые вершины, массив d хранит текущее минимальное значение весовой функции на пути до вершины v, массив from используется для сохранения предыдущей вершины в графе предшествования. Флаг visited выставляется, если вершина w является специальной (согласно определению 2). Функция process_ null_index_path вызывается для сохранения нуль-индексного пути, эквива-лентного новой дуге. Также в функциях make_ new_graph_edges и process_nulljndex_path заполняется таблица значений для функций J’ и F.
procedure make_new_graph_edges (EQ, u, t) for each v є G visited[v] ^ false d[v] ^ да
ENQUEUE(Q, u, 0) d[u] ^ 0 from[u] ^ u while Q ^0 v ^ POP(Q) if visited[v] then continue special ^ v = t
for each w є Adj\v] e ^ [v, w]
edge _ weight ^ L (v, w)
path_weight ^ d[v] + edge_weight
idx ^ J(e)
if idx Ф 0 then
special ^ true
if w g V' then
V'^ VU{w}
ENQUEUE(EQ,w) if e g E' then E' ^ E'u{[v, w]}
J' (e) ^ idx F (e) ^ {e} else
if path _ weight < d[w] then ENQUEUE(Q,w, path _ weight) d[w] ^ path _ weight from[w] ^ v if special then
processzeroindex_path (EQ, u, v, from)
Процедура process zero index_path (EQ, u, v) добавляет в граф G' дугу, эквивалентную кратчайшему нуль-индексному пути между u и v. Кратчайший путь берётся из графа предшествования, сохранённого в массиве from. Если вершина v ещё не содержится в G , то она будет добавлена в него.
procedure process_zero_index_path (EQ, u, v, from)
ifvg V'then
V' ^ V U{v}
ENQUEUE(EQ, v) path ^ 0 if u Ф v then t ^ v
while from[t] Ф t do
path[t ] ^ path[t ] u [ from[t ], t] t ^ from[t]
E' ^ E' u {[u, v]}
J '([u, v]) ^ 0 F([u,v]) ^ path
Шаги і, 2 и 4-б аналогичны соответствующим процедурам алгоритма і. На шаге У применяется формула (2).
Оценка сложности
Введём обозначения: N = max(N0,N1,N2),
где Nt - количество симплексов размерности i в исходном полиэдре; K =| S |. При построении графа G' для каждой вершины u е S используется алгоритм Дейкстры для графа G c N0 вершинами и N1 рёбрами, сложность которого O(N02 + N1). Следовательно, шаг 3 алгоритма имеет сложность
0(K (N2 + N1)) = O(KN2), (7)
так как N0,N1 < N.
Для построения накрывающего графа G' и последующего поиска на нём минимального пути используется граф G', содержащий
| V'|= K вершин. К графу G' вновь применяется алгоритм Дейкстры. Этот алгоритм имеет сложность
O(\F\2 +1E |) = O((K2r)2 +1 E'l 2r) = O(K222r), (8) так как | V\=V '|2r, | E\=\E '|2r по построению G' и \ E \< K2 по замечанию 1.
Вычисление базиса группы H1(P) и индексация относительно него могут быть выполнены с помощью алгоритмов, разработанных в [3] и [4]. Первый из них имеет сложность O( Nr), а второй - O(N log N). Остальные шаги в силу их простоты на окончательную оценку сложности алгоритма повлиять не могут.
Отсюда, из (7) и (8) получаем сложность O(Nr + N log N + KN2 + K 222r) = O(KN2 + K 222r). Заметим, что если применять алгоритм Дейкстры к графу G , накрывающему G , как это делается в алгоритме 2 из [1], то сложность составит O(N222r). Поэтому существенный выигрыш от применения нового варианта алгоритма может быть получен в ситуации, когда количество специальных вершин K =\ S \ намного меньше
параметра N = max(N0,Nl,N2).
Работа выполнена при финансовой поддержке Минобрнауки РФ в рамках государственного задания на оказание услуг в 2012-2014 гг. подведомственными высшими учебными заведениями (шифр заявки 1.1907.2011) и федеральной целевой программы «Научные и научнопедагогические кадры инновационной России», контракт M14.B37.21.0361.
Список литературы
1. Lapteva A.V. and Yakovlev E.I. Index Vector-Function and Minimal Cycles // Lobachevskii Journal of Mathematics. 2006. V. 22. P. 35-46.
2. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: 4. Lapteva A.V., Yakovlev E.I. Minimal 1-Cycles
построение и анализ. М.: МЦНМО, 2001. 960 с. Generating a Canonical Basis of 2-Manifold’s Homolo-
3. Яковлев Е.И. Вычислительная топология. Н. gy Group // International Journal of Pure and Applied
Новгород: Изд-во ННГУ, 2005. 214 с. Mathematics. 2006. V. 31. № 4. P. 555-570.
THE METHOD OF EQUIVALENT EDGES FOR PATH MINIMIZATION IN A GIVEN HOMOLOGY CLASS
A V. Galanin
Closed triangulated manifolds, their edge paths and 2-module homology groups are considered. A new method has been developed to reduce complexity for the shortest path algorithm which is homologous to the given one.
Keywords: simplex, polyhedron, homology group, algorithm, minimization.
References
1. Lapteva A.V. and Yakovlev E.I. Index Vector-Function and Minimal Cycles // Lobachevskii Journal of Mathematics. 2006. V. 22. P. 35-46.
2. Kormen T., Lejzerson Ch., Rivest R. Algo-ritmy: postroenie i analiz. M.: MCNMO, 2001. 960 s.
3. Jakovlev E.I. Vychislitel'naja topologija. N. Novgorod: Izd-vo NNGU, 2005. 214 s.
4. Lapteva A.V., Yakovlev E.I. Minimal 1-Cycles Generating a Canonical Basis of 2-Manifold’s Homology Group // International Journal of Pure and Applied Mathematics. 2006. V. 31. № 4. P. 555-570.