МАТЕМАТИЧЕСКИЕ МЕТОДЫ В ЕСТЕСТВЕННЫХ, ТЕХНИЧЕСКИХ И СОЦИАЛЬНЫХ НАУКАХ
УДК 515.14+519.6
Е.И. Яковлев, А.А. Ценова
АЛГОРИТМ ВЫЧИСЛЕНИЯ БАЗИСОВ ГРУПП ДВУМЕРНЫХ ГОМОЛОГИЙ РАЗВЕТВЛЕННЫХ ТРИАНГУЛИРОВАННЫХ ПОВЕРХНОСТЕЙ
Нижегородский государственный университет им. Н.И. Лобачевского
Разработан новый алгоритм, позволяющий с помощью компьютеров вычислять базисы групп двумерных гомологий по модулю 2 разветвленных триангулированных поверхностей трехмерного евклидова пространства.
Ключевые слова: полиэдр, триангулированная поверхность, группа гомологий, базис, алгоритм.
Введение
Объектами исследования настоящей работы являются компактные однородные двумерные полиэдры трехмерного евклидова пространства Я3, представляющие собой объединения конечных наборов правильно пересекающихся прямолинейных симплексов размерности 2. Такие полиэдры принято называть триангулированными поверхностями. Они используются в качестве компьютерных моделей реальных объектов.
Предполагается, что у рассматриваемых поверхностей существуют одномерные симплексы - ребра, инцидентные более чем двум двумерным симплексам - треугольникам, при этом условии они считаются разветвленными.
Целью работы является создание нового алгоритма для вычисления базисов групп двумерных гомологий Н2 (Р) полиэдров Р указанного вида с коэффициентами из поля ^ . Отметим, что группы Н2 (Р) также являются конечными векторными пространствами над Z2. Для решения такого рода задач применяются два основных метода.
Первый из них является алгебраическим, основан на приведении матриц инциденций симплексов заданного полиэдра к нормальной диагональной форме [1, с. 98-106]. Однако компьютерные модели могут состоять из многих миллионов симплексов. Работа с матрицами таких размеров предъявляет большие требования к ресурсам используемых для вычислений компьютеров и может занимать много времени.
Второй метод можно назвать геометрическим. Он опирается на теорему Александера-Понтрягина [2, с. 159], которая в применении к данному частному случаю утверждает, что для любого полиэдра Р ^ Я3 ранг группы гомологий Н2 (Р) на единицу меньше числа компонент связности разности Я3 \ Р. Это утверждение позволяет свести решаемую задачу к поиску границ областей, на которые поверхность Р делит пространство Я3. Менее формально можно отметить, что требуется выделить стороны данного полиэдра, поэтому ключевую роль в таком подходе играют ориентации треугольников.
Отметим, что в этом подходе вскрывается и практический смысл базиса группы Н2 (Р). Например, если Р представляет собой компьютерную модель здания, при построе-
© Яковлев Е.И., Ценова А.А., 2012.
нии которой мы пренебрегли толщиной стен, то каждый базисный двумерный цикл, найденный вторым способом, является объединением стен, потолка и пола некоторой комнаты или какого-либо иного закрытого помещения в смоделированном здании. Поскольку базис группы определен неоднозначно, то при его алгебраическом вычислении найденные циклы указанным свойством обладать не обязаны.
Впервые идея такого метода была изложена в [3], где предлагалось выполнить «утолщение» поверхности до трехмерного многообразия с краем (на более строгом топологическом языке это означает построение регулярной окрестности поверхности Р в пространстве Я3), найти базисные циклы полученного многообразия и спроектировать их обратно на двумерный полиэдр. При этом в [3] нет ни подробного описания процедур утолщения и проектирования, ни строгого обоснования этой идеи.
На самом деле упомянутые проекции можно вычислить, не выходя за пределы поверхности Р , то есть без построения регулярной окрестности. Первым из авторов настоящей работы совместно с В.Ю. Зинченко разработан алгоритм [4, с. 185-196], в котором сначала строится клеточное разбиение полиэдра Р , содержащее минимально возможное число клеток размерности 2, затем каждая двумерная клетка снабжается двумя различными ориента-циями, после чего происходит построение функции склейки. Последнее представляет собой процедуру для нахождения ответа на вопрос: должны ли данные две ориентированные двумерные клетки входить в один двумерный цикл поверхности Р или нет? Однако при этом одна и та же проверка выполняется столько раз, сколько общих ребер имеют рассматриваемые клетки. Таким образом, одно и то же действие может повторяться тысячи раз, причем с одним и тем же результатом.
Для устранения указанного недостатка авторы предлагают новый алгоритм решения сформулированной задачи. Он также основан на геометрическом подходе. Поэтому матрицы в этом алгоритме не используются, все процедуры выполняются только для элементов различных списков. В то же время здесь не применяется и предварительное разбиение на клетки. Вместо этого с самого начала удваивается список треугольников поверхности Р путем добавления треугольников с противоположными ориентациями, затем для каждого ребра выполняется специальная сортировка списка ориентированных треугольников, входящих в его звезду. Это позволяет, начиная с произвольно выбранного ориентированного треугольника, корректно запустить процесс построения содержащего этот треугольник двумерного цикла. На последнем этапе из набора полученных таким способом ненулевых циклов остается удалить один лишний.
Алгоритм
Пусть Р - разветвленная триангулированная поверхность в Я3. Обозначим буквами V , Е и Т списки вершин, ребер и треугольников полиэдра Р . Обычно в компьютере задаются только список вершин с указанием их пространственных координат и список, состоящий из троек натуральных чисел, обозначающих номера вершин, на которые натянуты треугольники. Из этих данных легко получить список ребер Е, а для каждого ребра а е Е -список инцидентных а треугольников [4, с. 97-99].
Предположим, что имеется ребро а е Е, инцидентное только одному треугольнику ? полиэдра Р . Удалив из Е ребро а, а из Т - треугольник ?, построим подполиэдр Р' ^ Р. При этом считают, что подполиэдр Р' получен из Р элементарным коллапсированием (в размерности 2). Последовательное выполнение конечного числа таких преобразований называется коллапсированием. Если полиэдр Р сколлапсирован на подполиэдр Р* ^ Р, то включение /: Р* ^ Р является гомотопической эквивалентностью. При этом любой базис группы И2(Р*) будет базисом и для И2 (Р) . Так как Р* может содержать намного меньше симплексов, чем исходная поверхность, то прежде чем начинать вычисления базисов групп гомоло-гий, целесообразно сначала выполнить полное коллапсирование полиэдра Р . Для решения
этой задачи имеются подробно описанные алгоритмы (например, [4, с. 122-124]). Поэтому далее мы будем считать этот этап пройденным, а рассматриваемый полиэдр P уже некол-лапсируемым, при этом каждое ребро a е E инцидентно не менее чем двум треугольникам.
Также будет предполагаться, что поверхность P сильно связна. Это значит, что для произвольных двух треугольников из T найдется соединяющий их двумерный путь, то есть цепь X е C2 (P), в которой симплексы с соседними номерами имеют общую одномерную грань. В противном случае базис группы Н2 (P) представляет собой объединение базисов групп двумерных гомологий компонент сильной связности, поэтому его построение сведется к применению следующего алгоритма к каждой из указанных компонент. Алгоритм 1. Вычисление двумерных базисных циклов разветвленной поверхности. Вход:
1. Список ребер E полиэдра P.
2. Список треугольников T полиэдра P.
3. Для каждого ребра a е E список d-1(a) инцидентных ему треугольников полиэдра P. Выход:
Список PP двумерных цепей полиэдра P . Описание алгоритма:
Шаг 1. Создание копии списка треугольников. Положим T := T.
Шаг 2. Удвоение списка треугольников полиэдра. Для каждого треугольника t е T поменяем местами первые две вершины и добавим полученный треугольник в список T . Шаг 3. Построение для каждого ребра упорядоченного списка ориентированных треугольников, принадлежащих его звезде. Для каждого ребра a е E выполним процедуры 3.1 - 3.2.
3.1. Если card Э-1 (a) = n > 2, то выполним последовательность операций 3.1.1 - 3.1.4.
3.1.1. Ориентирование инцидентных а треугольников. Ориентируем треугольники из списка Э-1 (a) так, чтобы они индуцировали на ребре a его исходную ориентацию.
3.1.2. Вычисление двугранных углов. Выберем ориентированный треугольник из списка d-1(a) и обозначим его символом t0. Затем для каждого треугольника ^ е Э-1 (a) вычислим двугранный угол ф^. е (0,2л) от треугольника t0 до треугольника t в положительном направлении, определенном ориентацией ребра a .
3.1.3. Упорядочение списка инцидентных а треугольников. Перенумеруем элементы списка d-1(a) так, чтобы для треугольников ti, t . еЭ-1^) с номерами i < j выполнялось неравенство фг- < ф j.
3.1.4. Удвоение списка инцидентных а треугольников. Построим список
D"1(a):={s1,., S2n}, полагая s1 := t0, s2k :="tk и S2k+1 := tk для k = n"1 и
s2n := —10 .
3.2. Если card Э-1(a) = 2, то выполним операции 3.2.1 - 3.2.2.
3.2.1. Ориентирование инцидентных а треугольников. Ориентируем треугольники t0, ^ е Э-1^) так, чтобы они индуцировали на ребре a его исходную ориентацию.
3.2.2. Удвоение списка инцидентных а треугольников. Положим s := t0, s2 := — ^,
s3 := tx, s4 :=—10 и D~l(a) := {s1,s2,s3,s4}.
Шаг 4. Инициализация переменных. Положим i := 0. Заведем пустую очередь R := 0.
Шаг 5. Начальный этап построения 2-цикла.
5.1. Задание номера. Положим i := i +1.
5.2. Обработка первого треугольника. Выберем ориентированный треугольник t е T,
пометим его и удалим из общего списка ориентированных треугольников Т .
5.3. Инициализация 2-цикла. Положим Р =
5.4. Первое расширение очереди Я. Для любой стороны Ь треугольника t выполним операции 5.4.1 - 5.4.2.
5.4.1. Найдем номер I треугольника t в списке Б_1(Ь) .
5.4.2. Добавим пару (Ь,I) в конец очереди Я.
Шаг 6. Основной этап построения 2-цикла. Пока Я Ф 0 выполняем последовательность
действий 6.1 - 6.6.
6.1. Выбор переменной. Выберем первую пару (а,к) из очереди Я и удалим (а,к) из Я.
6.2. Выбор очередного треугольника. Если к четно, то выберем из списка Б_1(а) ориентированный треугольник t с номером к — 1. Если к нечетно, то выберем ориентированный треугольник t е Б 1 (а) с номером к +1.
6.3. Проверка новизны. Если треугольник t помечен, то вернемся к шагу 6.
6.4. Сокращение списка треугольников. Если треугольник t ранее не был использован, то пометим его и удалим из общего списка ориентированных треугольников Т .
6.5. Расширение цикла. Положим Р := Р +1 .
6.6. Очередное расширение очереди Я . Для сторон Ь треугольника t, Ь Ф а, выполним операции 6.6.1 - 6.6.2.
6.6.1. Найдем номер I треугольника t в списке Б_1(Ь).
6.6.2. Добавим пару (Ь, I) в конец очереди Я.
Шаг 7. Исключение нулевого 2-цикла. Если Р = 0, положим г := г — 1.
Шаг 8. Переход к построению нового 2-цикла. Если Т Ф 0, то вернемся к шагу 5.
Шаг 9. Удаление лишнего 2-цикла. Если г > 0, то положим г := г — 1 и из списка
{Р,..., Р+1} = {Р,..., Р } удалим один элемент. При г = 0 положим г := г = 0.
Обоснование
Теорема 1. Если полиэдр Р является сильно связной и неколлапсируемой разветвленной поверхностью, то найденное в результате работы алгоритма 1 число г равно рангу группы гомологий И2(Р). При г > 0 построенные циклы Р,...,Рг образуют базис группы И2(Р).
Доказательство. Сначала рассмотрим случай г > 0. Докажем, что при этом для каждого т е{1,...,г +1} цепь Рт является циклом по модулю 2. Для этого рассмотрим произвольное ребро с е Е и обозначим символом Б— (с, Рт) список инцидентных с треугольников цепи Рт. Если список Б— (с, Р) пуст, то с £дРт. Поэтому далее будем предполагать, что Б'1 (с, Рт ) Ф0 .
Напомним, что список Б"1 (с) = Б"1 (с, Р), построенный на шаге 3, состоит из четного числа ориентированных треугольников ,..., 52и}. В силу неколлапсируемости полиэдра Р имеет место неравенство п > 2 . Разобьем Б_1(с) на пары {я2._52.}, 7 = 1,.,п.
Согласно неравенству Б_1(с, Р) Ф0, ребро с вместе с некоторым номером р из списка {1,...,2п} хотя бы один раз побывало в очереди Я при г = т . Пара (с,р) попадает в конец очереди Я либо на шаге 5.4.2, либо на шаге 6.6.2 в виде (с,р) = (Ь,I). Перед этим либо на шаге 5.3, либо на шаге 6.5 к цепи Р = Р прибавляется ориентированный треугольник t. Пусть {я2._!, 52.} - пара из Б_1(с), содержащая треугольник t.
Пара (с,р) удаляется из очереди Я на шаге 6.1 в виде (с,р) = (а,к). При этом на
следующем шаге 6.2 из пары {я2 ■_!,■} выбирается треугольник, отличный от рассмотренного в предыдущем абзаце. Согласно шагам 6.3 - 6.5, он прибавляется к цепи Рт, если это не было сделано ранее.
Таким образом, для каждого 7 = 1,.,п элементы пары {я2._52 .} принимают участие в построении цепи Р или нет одновременно. Следовательно, в этом процессе задействовано
четное число ориентированных треугольников из списка Б_1(с) . Если два треугольника, отличающиеся друг от друга только ориентацией, входили в их число, то при суммировании они оба уничтожаются. Поэтому в окончательной сумме Р содержится четное число треугольников из д—1 (с) . Это значит, что с £ дРт . Поскольку с - произвольное ребро полиэдра Р, то отсюда следует, что дРт = 0 и потому Рт е ^ (Р).
Далее убедимся в том, что циклыР,...,Рг линейно независимы. Допустим, что это не так. Тогда сумма некоторых из этих циклов равна нулю. С точностью до нумерации можно считать, что
Р +... + Р = 0, (1)
где 1 < q < г.
Пусть М - объединение циклов Р,...,Р , а N - набор всех остальных треугольников
из списка Т. Согласно шагам 5.2 и 6.4 алгоритма, произвольный ориентированный треугольник t е Т может входить только в один из построенных циклов. Отсюда и из (1) следует, что множество М содержит четное число треугольников, причем вместе с любым треугольником t в М имеется тот же треугольник с противоположной ориентацией.
В силу неравенств 0 < q < г +1 ни одно из множеств М и N не может быть пустым. Поэтому найдутся треугольники t е М и и е N. Так как полиэдр Р сильно связен, то в нем имеется двумерный путь X = {0,...,^}, соединяющий t и и. Без ограничения общности можно считать, что треугольники из X ориентированы когерентно, то есть для любого 7 = 1,.,И треугольники ^ и индуцируют на общей стороне а. = ^tj противоположные ориентации, и ^ = t. При этом треугольники ^ и и либо совпадают, либо имеют противоположные ориентации. Если X ^ М, то, согласно результатам предыдущего абзаца, в обоих случаях и е М, что противоречит выбору ориентированного треугольника и.
Следовательно, найдется такое 7 е {1,.,И}, что tj—1 еМ, а tj е N.
Согласно шагу 3 алгоритма 1, треугольники и входят в список
Б-\а]) = {^,...,52и }. Мы доказали, что Б х(а]) не лежит целиком ни в М, ни в N, поэтому найдутся соседние элементы ^ е Б~х(а]) , один из которых принадлежит М, а другой -множеству N.
Полученный результат немедленно приводит к противоречию. Действительно, если число г четно, то, согласно шагу 6.2 алгоритма, треугольники и ^ должны были оба попасть в один из построенных циклов и, следовательно, принадлежать одному из множеств М и N . Если же г нечетно, то согласно пп. 3.1.4 и 3.2.2, ^ и ^ представляют собой один и тот же треугольник, но с противоположными ориентациями. Как доказано ранее, в этой ситуации они также обязаны оба принадлежать либо М, либо N .
Полученное противоречие показывает, что наше допущение неверно и на самом деле циклы Р,. , Р линейно независимы.
Так как dim P = 2, то Н2 (P) = Z2 (P). Отсюда и из доказанного ранее утверждения следует, что
r < rank Н2 (P). (2)
Согласно лемме 3.3 из [5], пространство R3 можно триангулировать так, чтобы поверхность P стала подполиэдром полиэдра R3. Зададим на R3 правую ориентацию. Она индуцирует ориентации на всех трехмерных симплексах. Зафиксируем их. Если t - двумерная грань 3-симплекса а, то на t индуцируется ориентация, которую мы будем считать согласованной с ориентацией симплекса а . При этом соответствующий вектор нормали к t направлен внутрь симплекса а.
Пусть Z = {P,...,Pr+j} - список 2-циклов полиэдра P, построенных в ходе работы алгоритма до шага 9, а O = {U,...,U } - набор компонент связности множества R3 \P. Построение произвольного цикла P е Z начинается на шаге 5.3 с некоторого начального ориентированного треугольника t = t0, выбранного на шаге 5.2. Треугольнику t0 инцидентны
два трехмерных симплекса пространства R 3 . Ориентация одного из них согласована с заданной ориентацией треугольника t0. Обозначим этот симплекс буквой а0. Тогда найдется
компонента U е O, содержащая внутренность симплекса а0. Полагая g(P) = Uk, для всех
P е Z, определим отображение g: Z ^ O.
Докажем, что отображение g: Z ^ O сюръективно. Для этого рассмотрим произвольную область U е O и обозначим буквой S совокупность трехмерных симплексов пространства R3, внутренности которых лежат в U. Тогда S - трехмерная цепь. Так как Z3 (R3) = 0, то dS ^ 0 . Пусть 4 е dS. Тогда существует симплекс а* е S, для которого t» является гранью. Симплекс а* индуцирует на U ориентацию, которую мы назовем положительной по отношению к области U .
Согласно шагу 8, в работе алгоритма 1 используется каждый ориентированный треугольник полиэдра P, поэтому для некоторого значения параметра i для треугольника t = t» выполняются либо действия 5.2 и 5.3, либо операции 6.2 - 6.5.
В первом случае 4 = t0, и потому Int а0 = Int а* ^ U . Если же 4 ^ t0, то из пп. 5.4, 6.6, 6.2 алгоритма следует существование двумерного пути {t0,4,...,t } в P с конечным треугольником t = U, в котором любые два соседних треугольника tn_j и tn ориентированы когерентно. Поскольку треугольники tn_j и tn , n е{1,...,q}, образуют пару вида {s2y-i,s2y-} из D У(ап) для их общего ребра аи = tB-1 п 4, то в силу построения списка D~1(ап) на шаге 3 найдется трехмерный путь Yn = {аи0,...,а^}, в котором соседние симплексы агй_1 и а^ также ориентированы когерентно, их общая грань Ink не принадлежит поверхности P, tn_1 е даи0, tn е 5аnpn , причем ориентации симплексов да^ и 5а npn согласованы с ориента-циями треугольников tn_j и tn соответственно. Из последнего свойства, в частности, следует, что а10 = а0 и а = а*. Положим
q pn pn
V = U ((U Int а*) и (U Int Ink)).
n=1 k=0 k=1
Множество V связно и не пересекается с полиэдром P . Следовательно, оно целиком лежит в одной из компонент связности множества R3 \ P . Так как V содержит внутренность симплекса а* и Int а* ^ U, то V ^ U. При этом а0 ^ V ^ U .
Предположим, что при том же значении параметра i операции 6.2 - 6.5 выполнялись с ориентированным треугольником 4* = —4. Пусть а« - трехмерный симплекс полиэдра R3, инцидентный треугольнику 4* и отличный от а*. Тогда ориентации симплексов а и 4* согласованы. При этом точно так, как это было сделано в предыдущем абзаце, можно построить связное подмножество W ^ R3 \ P, содержащее внутренности симплексов а0 и а**. При этом из включений Int а0 ^ U и Int а0 ^ W следует, что W ^ U. В результате Int а** ^ U, и потому а** е S . Последнее противоречит включению 4 е dS .
Таким образом, допущение неверно и, на самом деле, на этом этапе треугольник — 4 не используется. Это означает, что для рассматриваемого i мы придем к шагу 7 с непустым списком p . Но тогда р е Z, а из включения Int а ^ U следует, что g(р) = U.
Из сюръективности отображения g : Z ^ O следует, что r +1 > р . По теореме Алек-сандера-Понтрягина р —1 = rankH2(P) ([2], с. 159). Поэтому r > rankH2(P) . Последнее вместе с (2) влечет за собой равенство r = rankH2(P) . Так как циклы р,...,Pr линейно независимы, то они образуют базис группы H2 (P) = Z2 (P). Этим в случае r > 0 теорема доказана.
Пусть далее r = 0 . Это значит, что для каждого значения параметра i на шаге 7 мы имели равенство P = 0. Последнее возможно только тогда, когда вместе с любым ориентированным
треугольником t при том же значении i обрабатывается и противоположно ориентированный треугольник — t. При этом, как показано ранее, оба инцидентных треугольнику t трехмерных симплекса пространства R3 лежат в одной компоненте связности множества R 3 \ P .
Следовательно, поверхность является односторонней, что равносильно связности множества R3 \ P. Отсюда, согласно уже упоминавшейся теореме Александера-Понтрягина, следует, что rank H2 (P) = 0 = r.
Оценка сложности
Пусть n = card T, n(a) = card d—:(a) для всех a е E и r» - количество повторений шагов 5 - 8 алгоритма 1. Очевидно, r +1 < r < n . Для каждого m = 1, .,9 символом Nm обозначим число операций, выполняемых на шаге с номером m .
Наиболее трудоемкими в алгоритме 1 являются шаги 3 и 6. Поэтому их и оценим в первую очередь.
Шаг 3 выполняется для каждого ребра a е E . При этом более всего времени требует процедура 3.1.3, которая подразумевает сортировку списка д—1(a). На это нужно не более, чем n(a)2 операций [6, с. 228]. В пп. 3.1.1, 3.1.2 и 3.1.4 число действий линейно зависит от n(a). Заметим, что шаг 3.1 предназначен только для ребер ветвления, для остальных ребер предусмотрен гораздо менее трудоемкий шаг 3.2. Но в худшем случае все элементы списка E могут оказаться ребрами ветвления. Из этого будем исходить. Тогда для выполнения всего шага 3 потребуется самое большее N3 = ^n(a)2 + c3 ^n(a) операций, где c3 - некоторая
иеЕ иеЕ
константа. Поскольку любой треугольник имеет три стороны, то в сумме ^ п(а) учтен каж-
аеЕ
дый элемент списка Т , причем ровно 3 раза. Поэтому ^ п(а) = 3п . Кроме того, в силу по-
аеЕ
ложительности чисел п(а) для всех а е Е имеет место неравенство ^ п(а)2 < (^ п(а))2.
аеЕ аеЕ
Следовательно, N< 9п2 + 3с3п .
Для оценки шага 6 заметим, что каждая пара (а, к), где а е Е и к е О у (а), точно
один раз попадает в очередь R. Так как card D 1(a) = 2n(a), то через R пройдут
n(a) = 6n пар указанного вида. Для каждой пары (a,k) в пп. 6.1 - 6.5 выполняется по-
aeE
стоянное число операций. В п. 6.6.1 происходит поиск номера некоторого треугольника t в списке D_1(b) для b е ôt, b ^ a . Для этого требуется 2n(b) < 2n действий. Поскольку b принимает 2 значения, а в п. 6.6.2 предусмотрено всего одно действие, то общее число операций в п. 6.6 ограничено сверху числом 4n + 2. Таким образом, N < 24n2 + cn.
На шаге 5 производятся аналогичные операции, только с гораздо меньшим числом объектов, поэтому заведомо N < N.
Также легко видеть, что N линейно зависит от n , величины N и N линейно зависят от параметра r < n, а на шагах 1, 4 и 9 суммарно выполняется всего 7 действий. Отсюда и из неравенств, полученных в предыдущих абзацах, вытекает следующая асимптотическая оценка эффективности построенного алгоритма.
Теорема 2. Время выполнения алгоритма 1 в наихудшем случае имеет порядок O(n2), где n - число двумерных симплексов (треугольников) полиэдра P.
Работа выполнена при финансовой поддержке Минобрнауки РФ в рамках государственного задания на оказание услуг в 2012-2014 гг. подведомственными высшими учебными заведениями (шифр заявки 1.1907.2011).
Библиографический список
1. Зейферт, Г. Топология / Г.Зейферт, В. Трельфалль. - М.-Л.: ГОНТИ, 1938; Ижевск: НИЦ РХД, 2001.
2. Фоменко, А.Т. Курс гомотопической топологии / А.Т. Фоменко, Д.Б. Фукс. - М.: Наука, 1989.
3. Dey T.K., Guha S. Computing homology groups of simplicial complexes in R3. Journal of the ACM. Vol. 45, №2. March 1998. Pp. 266-287.
4. Яковлев, Е.И. Вычислительная топология / Е.И. Яковлев. - Нижний Новгород: Изд-во ННГУ, 2005.
5. Рурк, К. Введение в кусочно линейную топологию / К. Рурк, Б. Сандерсон. - М.: Мир, 1974.
6. Ахо, А.В. Структуры данных и алгоритмы / А.В. Ахо, Д.Э. Хопкрофт, Д.Д. Ульман. - М.: Ви-льямс, 2001.
Дата поступления в редакцию 25.04.2012
E.I. Yakovlev, A.A. Tsenova
THE ALGORITHM FOR COMPUTING BASISES OF TWO-DIMENSIONAL HOMOLOGY GROUPS OF THE BRANCHED TRIANGULATED SURFACES
Nizhny Novgorod State University n.a. N.I. Lobachevsky
A new algorithm allowing by means of computers to calculate basises of two-dimensional homology groups modulo 2 of the branched triangulated surfaces in the three-dimensional Euclidean space has been developed.
The algorithm is based on Alexander-Pontryagin theorem according to which the solved problem can be reduced to the creation of borders of areas into which the surface divides space. This method has essential advantages before the classical algorithm known still since the 1930th years. First, the two-dimensional cycles that founded with its help have important geometrical sense. Secondly, in it application of insidence matrices isn't provided, all actions are carried out only with lists. Thirdly, the new algorithm faster - time of its work in the worst case has an order of O (n2), where n - number two-dimensional simplices (triangles) of considered polyhedron.
Key words: polyhedron, triangulated surface, homology group, basis, algorithm.