Articulo de referencia

Árbol simplex

Un ejemplo de complejo simplicial y la estructura de datos de árbol simplex correspondiente. Nótese que los dos nodos inferiores tienen un camino de 4 hacia el nodo, lo que indi...

La parte superior está compuesta por 2 tetraedros, 1 triángulo, 1 línea y 1 punto, conectados de forma laxa. La parte inferior es el árbol simplex correspondiente.
Un ejemplo de complejo simplicial y la estructura de datos de árbol simplex correspondiente. Nótese que los dos nodos inferiores tienen un camino de 4 hacia el nodo, lo que indica los dos simplex tridimensionales compuestos por 4 vértices cada uno.

En el análisis topológico de datos , un árbol simplex es un tipo de trie que se utiliza para representar de forma eficiente cualquier complejo simplicial general . A través de sus nodos, esta estructura de datos representa explícitamente todos los símplices. Su estructura flexible permite la implementación de muchas operaciones básicas útiles para el cálculo de la homología persistente . Esta estructura de datos fue inventada por Jean-Daniel Boissonnat y Clément Maria en 2014, en el artículo «The Simplex Tree: An Efficient Data Structure for General Simplicial Complexes» [ 1 ] . Esta estructura de datos ofrece operaciones eficientes sobre complejos simpliciales dispersos. Para símplices densos o máximos, se utilizan representaciones Skeleton-Blocker [ 2 ] o Toplex Map [ 3 ] .

Definiciones

Muchos investigadores en análisis topológico de datos consideran que el árbol simplex es la estructura de datos basada en simplex más compacta para complejos simpliciales, y una estructura de datos que permite una comprensión intuitiva de los complejos simpliciales debido al uso integrado de sus propiedades matemáticas. [ 1 ] [ 3 ] [ 4 ]

Definición heurística

Consideremos cualquier complejo simplicial como un conjunto compuesto por puntos (0 dimensiones), segmentos de línea (1 dimensión), triángulos (2 dimensiones) y sus contrapartes n -dimensionales, llamados n-símplexes dentro de un espacio topológico . Por las propiedades matemáticas de los símplexes, cualquier n-símplex está compuesto por múltiples(norte1){\displaystyle (n-1)}-símplexes. Así, las líneas se componen de puntos, los triángulos de líneas y los tetraedros de triángulos. Nótese que cada nivel superior añade un vértice a los vértices del n-símplex. La estructura de datos se basa en símplexes; por lo tanto, debe representar todos los símplexes de forma única mediante los puntos que los definen. Una manera sencilla de lograrlo es definir cada símplex por sus puntos ordenados.

DejarK{\displaystyle \mathrm {K} }sea ​​un complejo simplicial de dimensión k,V{\displaystyle V}su conjunto de vértices, donde los vértices están etiquetados del 1 al|V|{\displaystyle \left\vert V\right\vert }y ordenado en consecuencia. Ahora, construya un diccionario de tamaño|V|{\displaystyle \left\vert V\right\vert }que contiene todas las etiquetas de vértices en orden. Esto representa los símplexes de dimensión 0. Luego, para la ruta al diccionario inicial de cada entrada en el diccionario inicial, agregue como diccionario hijo todos los vértices completamente conectados al conjunto actual de vértices, todos los cuales tienen una etiqueta mayor quel{\displaystyle l}. Represente este paso en k niveles. Claramente, considerando el primer diccionario como profundidad 0, cualquier entrada en profundidadτ{\displaystyle \tau }de cualquier diccionario en esta estructura de datos representa de forma única unτ{\displaystyle \tau }-símplex dentroK{\displaystyle \mathrm {K} }Para mayor claridad, el puntero al diccionario inicial se considera la representación del simplex vacío. Para facilitar las operaciones, las etiquetas que se repiten en el mismo nivel se enlazan entre sí, formando una lista enlazada en bucle . Finalmente, los diccionarios hijos también tienen punteros a su diccionario padre, para un acceso rápido a los ancestros. [ 1 ]

Definición constructiva

DejarK{\displaystyle \mathrm {K} }Sea un complejo simplicial de dimensión k. Comenzamos descomponiendo el complejo simplicial en símplices mutuamente excluyentes. Esto se puede lograr de manera voraz eliminando iterativamente del complejo simplicial los símplices de orden más alto hasta que el complejo simplicial esté vacío. Luego necesitamos etiquetar cada vértice del 1 al|V|{\displaystyle \left\vert V\right\vert }y asociamos cada simplex con su "palabra" correspondiente, es decir, la lista ordenada de sus vértices por etiqueta. Ordenar las etiquetas garantiza que no haya repeticiones en el árbol simplex, ya que solo hay una forma de describir un simplex. Comenzamos con una raíz nula, que representa el simplex nulo. Luego, iteramos a través de todos los simplex y a través de cada etiqueta de cada palabra simplex. Si la etiqueta está disponible como hijo de la raíz actual, hacemos de ese hijo la raíz temporal del proceso de inserción; de lo contrario, creamos un nuevo nodo para el hijo, lo convertimos en la nueva raíz temporal y continuamos con el resto de la palabra. Durante este proceso, se mantienen k diccionarios con todas las etiquetas e insertamos la dirección del nodo para la etiqueta correspondiente. Si ya existe una dirección en ese espacio del diccionario, se crea un puntero desde el nodo antiguo al nuevo nodo. Una vez finalizado el proceso, todos los hijos de cada nodo se ingresan en un diccionario y todos los punteros se recorren en bucle para formar listas enlazadas en bucle. Aquí se podría aplicar una amplia gama de diccionarios, como tablas hash, pero algunas operaciones asumen la posibilidad de un recorrido ordenado de las entradas, lo que lleva a que la mayoría de las implementaciones utilicen árboles rojo-negro como diccionarios. [ 1 ]

Operaciones

Si bien los árboles simplex no son las estructuras de datos más eficientes en cuanto a espacio para la representación de complejos simpliciales, sus operaciones con datos dispersos se consideran de vanguardia. Aquí, presentamos los límites de diferentes operaciones útiles posibles mediante esta representación. Existen numerosas implementaciones de estas operaciones. [ 1 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]

Primero introducimos la notación. Consideremoss{\displaystyle s}es un simplex dado,σ{\displaystyle \sigma }es un nodo dado que corresponde al último vértice des{\displaystyle s},l{\displaystyle l}es la etiqueta asociada a ese nodo,j{\displaystyle j}es la profundidad de ese nodo,k{\displaystyle k}es la dimensión del complejo simplicial,Dσ{\displaystyle D_{\sigma }}es el número máximo de operaciones a accederσ{\displaystyle \sigma }en un diccionario (si el diccionario es un árbol rojo-negro,Dσ=O(logramo(dmigramo(σ))){\displaystyle D_{\sigma }=O(log(deg(\sigma )))}es la complejidad). Consideredos{\displaystyle C_{s}}es el número de co-caras des{\displaystyle s}, ynortel>j{\displaystyle N_{l}^{>j}}es el número de nodos del árbol simplex que termina con la etiquetal{\displaystyle l}a una profundidad mayor quej{\displaystyle j}. Avisonortel>jdos{\displaystyle N_{l}^{>j}\leq C_{s}}.

  1. La búsqueda , inserción y eliminación de palabras se realizan enO(jDσ){\displaystyle O(jD_{\sigma })}. [ 1 ]
  2. La inserción y extracción de un simplex completo se realiza enO(2jDσ){\displaystyle O(2^{j}D_{\sigma })}. [ 1 ]
  3. El cálculo de la homología persistente , o de una manera más compleja, el cálculo de los números de Betti , utilizando un árbol simplex de la forma más eficiente, sigue siendo un problema abierto; sin embargo, los algoritmos actuales para esta tarea en complejos simpliciales dispersos alcanzan un rendimiento de vanguardia. [ 4 ]
  4. La estructura de los árboles simplex permite el colapso elemental de los símplices colapsables; sin embargo, se desconocen los límites de esta operación en el caso general. [ 1 ] [ 5 ] [ 7 ]
  5. Un subcaso del colapso elemental es la contracción de aristas . La contracción de aristas puede ser

logrado enO(knortel>j+dosDσ){\displaystyle O(kN_{l}^{>j}+C_{s}D_{\sigma })}. [ 1 ]

  1. La localización de co-caras de un simplex dado se puede lograr enO(knortel>j){\displaystyle O(kN_{l}^{>j})}. [ 1 ]
  2. La localización de cofacetas de un simplex dado se puede lograr enO(j2Dσ){\displaystyle O(j^{2}D_{\sigma })}. [ 1 ]

En cuanto a la construcción, como se observa en la definición constructiva, la construcción es proporcional al número y la complejidad de los símplices en el complejo simplicial. Esto puede resultar especialmente costoso si el complejo simplicial es denso. Sin embargo, existen algunas optimizaciones para complejos simpliciales particulares, incluidos los complejos Flag , Rips y Witness. [ 1 ] [ 8 ]

Aplicaciones

Los árboles simplex son eficientes en complejos simpliciales dispersos. Por ello, muchos algoritmos de homología persistente que se centran en datos reales de alta dimensión (a menudo dispersos) utilizan árboles simplex. Si bien los árboles simplex no son tan eficientes como las matrices de incidencia, su estructura basada en simplex les permite ser útiles y eficientes para el almacenamiento de complejos simpliciales dentro de los algoritmos de homología persistente. [ 9 ]

Referencias

  1. 1 2 3 4 5 6 7 8 9 10 11 12 Boissonnat, Jean-Daniel; Maria, Clément (noviembre de 2014). "El árbol simplex: una estructura de datos eficiente para complejos simpliciales generales". Algorithmica . 70 (3): 406– 427. arXiv : 2001.02581 . doi : 10.1007/s00453-014-9887-3 . ISSN 0178-4617 . S2CID 15335393 .  
  2. Salinas, David (7 de febrero de 2020). "Bloqueador de esqueleto" . Comprensión de la geometría en dimensiones superiores . Recuperado el 9 de diciembre de 2021 .
  3. 1 2 Godi, Francois (7 de febrero de 2020). "Mapa complejo" . Geometry Understanding in Higher Dimensions . Recuperado el 9 de diciembre de 2021 .
  4. 1 2 3 Boissonnat, Jean-Daniel. "Manual de referencia del árbol simplex" . Geometry Understanding in Higher Dimensions . Recuperado el 9 de diciembre de 2021 .
  5. ^ Piekenbrock , Matt (13 de septiembre de 2020). "simplex_tree: árbol simplex" . rdrr.io. ​Consultado el 9 de diciembre de 2021 .
  6. Nanda, Vidit. "Perseus, el software de homología persistente" . El proyecto de software Perseus para el cálculo rápido de la homología persistente . Consultado el 9 de diciembre de 2021 .
  7. 1 2 Morozov, Dmitriy (2019). "Fundamentos" . Dionisio 2. Recuperado el 9 de diciembre de 2021 .
  8. ^ Morozov, Dmitriy (2019). "Complejos Vietoris-Rips" . Dioniso 2 . Consultado el 9 de diciembre de 2021 .
  9. Mandal, Sayan (2020). "Aplicaciones de la homología persistente y los ciclos" . Tesis doctoral en la Universidad Estatal de Ohio .