Симплексное дерево

В топологическом анализе данных симплексное дерево — это тип дерева, используемого для эффективного представления любого общего симплициального комплекса . Через свои узлы эта структура данных явно представляет все симплексы. Его гибкая структура позволяет реализовать множество основных операций, полезных для вычисления устойчивой гомологии . Эта структура данных была изобретена Жаном-Даниэлем Буассонна и Клеманом Марией в 2014 году в статье Симплексное дерево: эффективная структура данных для общих симплициальных комплексов . [1] Эта структура данных предлагает эффективные операции с разреженными симплициальными комплексами. Для плотных или максимальных симплексов Skeleton-Blocker [2] представления или карта топлекса [3] используются представления.
Определения
[ редактировать ]Многие исследователи топологического анализа данных считают симплексное дерево наиболее компактной структурой данных на основе симплекса для симплициальных комплексов и структурой данных, позволяющей интуитивное понимание симплициальных комплексов благодаря комплексному использованию их математических свойств. [1] [3] [4]
Эвристическое определение
[ редактировать ]Рассмотрим любой симплициальный комплекс — это набор , состоящий из точек (0 измерений), отрезков прямых (1 измерение), треугольников (2 измерения) и их n -мерных аналогов , называемых n- симплексами в топологическом пространстве. По математическим свойствам симплексов любой n- симплекс состоит из кратных - симплексы . Таким образом, линии состоят из точек, треугольники из линий, тетраэдры из треугольников. Обратите внимание, что каждый более высокий уровень добавляет 1 вершину к вершинам n- симплекса . Структура данных основана на симплексе, поэтому она должна однозначно представлять все симплексы по точкам, определяющим симплекс. Простой способ добиться этого — определить каждый симплекс по его точкам в отсортированном порядке.
Позволять — симплициальный комплекс размерности k, его множество вершин, где вершины помечены от 1 до и заказал соответственно. Теперь создайте размер словаря содержащий все метки вершин по порядку. Это представляет собой 0-мерные симплексы. Затем для пути к начальному словарю каждой записи в исходном словаре добавьте в качестве дочернего словаря все вершины, полностью связанные с текущим набором вершин, каждая из которых имеет метку больше, чем . Представьте этот шаг на k уровнях. Очевидно, что если первый словарь имеет глубину 0, то любая запись на глубине любого словаря в этой структуре данных однозначно представляет собой -симплекс внутри . Для полноты точки зрения исходный словарь считается представлением пустого симплекса. Для практичности операций метки, повторяющиеся на одном уровне, связываются вместе, образуя зацикленный связанный список. Наконец, дочерние словари также имеют указатели на родительский словарь для быстрого доступа к предку. [1]
Конструктивное определение
[ редактировать ]Позволять — симплициальный комплекс размерности k. Начнем с разложения симплициального комплекса на взаимоисключающие симплексы. Этого можно достичь жадным способом, итеративно удаляя из симплициального комплекса симплексы высшего порядка до тех пор, пока симплициальный комплекс не станет пустым. Затем нам нужно пометить каждую вершину от 1 до и свяжем каждый симплекс с соответствующим ему «словом», то есть упорядоченным списком его вершин по меткам. Порядок меток гарантирует отсутствие повторений в симплексном дереве, поскольку существует только один способ описания симплекса. Мы начинаем с нулевого корня, представляющего нулевой симплекс. Затем мы перебираем все симплексы и каждую метку каждого симплексного слова. Если метка доступна как дочерний элемент текущего корня, сделайте этот дочерний элемент временным корнем процесса вставки, в противном случае создайте новый узел для дочернего элемента, сделайте его новым временным корнем и продолжите работу с остальной частью слова. В ходе этого процесса k словарей поддерживаются со всеми метками и вставляют адрес узла для соответствующей метки. Если адрес уже находится в этом месте словаря, создается указатель от старого узла к новому узлу. После завершения процесса все дочерние элементы каждого узла вводятся в словарь, и все указатели зацикливаются для создания зацикленных связанных списков. Здесь может быть применен широкий спектр словарей, таких как хеш-таблицы, но некоторые операции предполагают возможность упорядоченного обхода записей, что приводит к тому, что большинство реализаций, использующих красно-черные деревья, являются словарями. [1]
Операции
[ редактировать ]Хотя симплексные деревья не являются наиболее эффективными структурами данных для симплициального комплексного представления, их операции с разреженными данными считаются современными. Здесь мы даем границы различных полезных операций, возможных с помощью этого представления. Доступно множество реализаций этих операций. [1] [4] [5] [6] [7]
Сначала введем обозначения. Учитывать заданный симплекс, заданный узел, соответствующий последней вершине , — метка, связанная с этим узлом, - глубина этого узла, - размерность симплициального комплекса, — максимальное количество операций для доступа в словаре (если словарь представляет собой красно-черное дерево, это сложность). Учитывать количество софасов , и — количество узлов симплексного дерева, заканчивающихся меткой на глубине больше, чем . Уведомление .
- Поиск , вставка и удаление слов выполняются в . [1]
- Вставка и удаление всего симплекса выполняется в . [1]
- Вычисление устойчивой гомологии или, более сложным способом, вычисление чисел Бетти с наиболее эффективным использованием симплексного дерева остается открытой проблемой, однако текущие алгоритмы для этой задачи на разреженных симплициальных комплексах достигают современной производительности. [4]
- Структура симплексных деревьев допускает элементарное схлопывание раскладных симплексов, однако границы этой операции в общем случае неизвестны. [1] [5] [7]
- Подслучай элементарного коллапса — это сжатие ребер . Краевое сжатие может быть
достигнуто в . [1]
- Нахождение кограней данного симплекса может быть достигнуто в . [1]
- Нахождение сограней данного симплекса может быть достигнуто в . [1]
Что касается конструкции, то, как видно из конструктивного определения, конструкция пропорциональна числу и сложности симплексов в симплициальном комплексе. Это может быть особенно дорого, если симплициальный комплекс плотный. Тем не менее, некоторые оптимизации для конкретных симплициальных комплексов, в том числе для комплексов Флага , комплексов Рипса и комплексов Свидетелей . [1] [8]
Приложения
[ редактировать ]Симплексные деревья эффективны в разреженных симплициальных комплексах. Для этой цели многие алгоритмы постоянной гомологии, ориентированные на многомерные реальные данные (часто разреженные), используют в этих алгоритмах симплексные деревья. Хотя симплексные деревья не так эффективны, как матрица инцидентности, их симплексная структура позволяет им эффективно использоваться для хранения симплексных комплексов в алгоритмах постоянной гомологии. [9]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д и ж г час я дж к л Буассонна, Жан-Даниэль; Мария, Клеман (ноябрь 2014 г.). «Симплексное дерево: эффективная структура данных для общих симплициальных комплексов». Алгоритмика . 70 (3): 406–427. arXiv : 2001.02581 . дои : 10.1007/s00453-014-9887-3 . ISSN 0178-4617 . S2CID 15335393 .
- ^ Салинас, Дэвид (7 февраля 2020 г.). «Скелет-блокатор» . Понимание геометрии в высших измерениях . Проверено 9 декабря 2021 г.
- ^ Перейти обратно: а б Годи, Франсуа (7 февраля 2020 г.). «Карта Топлекса» . Понимание геометрии в высших измерениях . Проверено 9 декабря 2021 г.
- ^ Перейти обратно: а б с Буассонна, Жан-Даниэль. «Справочник по симплексному дереву» . Понимание геометрии в высших измерениях . Проверено 9 декабря 2021 г.
- ^ Перейти обратно: а б Пикенброк, Мэтт (13 сентября 2020 г.). «simplex_tree: Симплексное дерево» . rdrr.io. Проверено 9 декабря 2021 г.
- ^ Нанда, Видит. «Персей, программное обеспечение для постоянной гомологии» . Программный проект Perseus для быстрого расчета устойчивой гомологии . Проверено 9 декабря 2021 г.
- ^ Перейти обратно: а б Морозов, Дмитрий (2019). «Основы» . Дионис 2 . Проверено 9 декабря 2021 г.
- ^ Морозов, Дмитрий (2019). «Комплексы Виеторис-Рипс» . Дионис 2 . Проверено 9 декабря 2021 г.
- ^ Мандал, Саян (2020). «Применение устойчивой гомологии и циклов» . Университет штата Огайо . Кандидатская диссертация.