En matemáticas combinatorias e informática teórica , la descomposición pesada-ligera (también llamada descomposición de caminos pesados ) es una técnica para descomponer un árbol con raíz en un conjunto de caminos . En una descomposición de caminos pesados, cada nodo que no es una hoja selecciona una "arista pesada", la arista que conecta con el hijo que tiene el mayor número de descendientes (los empates se resuelven arbitrariamente). Las aristas seleccionadas forman los caminos de la descomposición.
Descomposición en rutas
Si las aristas de un árbol T se dividen en un conjunto de aristas pesadas y aristas ligeras, con una arista pesada desde cada nodo no hoja a uno de sus hijos, entonces el subgrafo formado por las aristas pesadas consiste en un conjunto de caminos, donde cada vértice no hoja pertenece a exactamente un camino, el que contiene su arista pesada. Los nodos hoja del árbol que no son el extremo de una arista pesada pueden considerarse como caminos de longitud cero. De esta manera, cada vértice pertenece a exactamente uno de los caminos. Cada camino tiene un vértice cabeza, su vértice superior.
Alternativamente, los caminos de aristas pesadas pueden extenderse incluyendo una arista ligera, la que va desde la cabeza del camino hasta su padre. [ 1 ] En esta variación de la descomposición, algunos vértices pertenecen a múltiples caminos, pero cada arista de T pertenece exactamente a un camino.
El árbol del camino
Las rutas de la descomposición pueden organizarse en un árbol denominado «árbol de rutas», «árbol de rutas pesadas» o «árbol comprimido». Cada nodo del árbol de rutas corresponde a una ruta de la descomposición de rutas pesadas. Si p es una ruta de la descomposición de rutas pesadas, entonces el padre de p en el árbol de rutas es la ruta que contiene al padre de la cabeza de p . La raíz del árbol de rutas es la ruta que contiene la raíz del árbol original. Alternativamente, el árbol de rutas puede formarse a partir del árbol original mediante la contracción de todas las aristas pesadas.
Una arista "ligera" de un árbol dado es una arista que no fue seleccionada como parte de la descomposición de ruta pesada. Si una arista ligera conecta dos nodos de árbol x e y , donde x es el padre de y , entonces x debe tener al menos el doble de descendientes que y . Por lo tanto, en cualquier ruta de raíz a hoja de un árbol con n nodos, puede haber como máximo log₂n aristas ligeras . De manera equivalente, el árbol de ruta tiene una altura como máximo log₂n .
Aplicaciones
La descomposición de caminos pesados fue introducida por Sleator y Tarjan (1983) como parte del análisis amortizado de su estructura de árbol de enlaces/cortes , [ 2 ] y por Harel y Tarjan (1984) como parte de su estructura de datos para los ancestros comunes más bajos , [ 3 ] La estructura de datos de árbol de enlaces/cortes utiliza una partición de un árbol dinámico en caminos que no es necesariamente la descomposición de caminos pesados; su análisis utiliza una función potencial que mide su distancia de la descomposición de caminos pesados, y la pequeña altura del árbol de caminos implica que cada operación de la estructura de datos realiza solo un pequeño número de pasos que no pueden imputarse a las mejoras de esta función. [ 2 ] En la estructura de datos del ancestro común más bajo, la descomposición se utiliza para incrustar el árbol de entrada en un árbol binario completo de profundidad logarítmica, lo que permite que cada consulta se resuelva mediante operaciones bit a bit de tiempo constante . [ 3 ]
Las aplicaciones posteriores de la descomposición de rutas pesadas han incluido la resolución del problema del ancestro de nivel , [ 4 ] el cálculo de la distancia de edición entre árboles, [ 5 ] [ 6 ] el dibujo de grafos y la incrustación voraz , [ 7 ] [ 8 ] [ 9 ] encontrar una ruta cerca de todos los nodos de un grafo dado, [ 10 ] el diagnóstico de fallas en redes de comunicación de fibra óptica , [ 1 ] y la decodificación de códigos basados en gramática , [ 11 ] entre otros.
Referencias
- 1 2 Harvey, Nicholas JA; Pătraşcu, Mihai ; Wen, Yonggang; Yekhanin, Sergey; Chan, Vincent WS (2007), "Diagnóstico de fallas no adaptativo para redes totalmente ópticas mediante pruebas de grupo combinatorias en grafos", 26.ª Conferencia Internacional IEEE sobre Comunicaciones Informáticas (INFOCOM 2007) , págs. 697–705 , doi : 10.1109/INFCOM.2007.87 , ISBN 978-1-4244-1047-7
- 1 2 Sleator, Daniel D. ; Tarjan, Robert Endre (1983), "Una estructura de datos para árboles dinámicos", Journal of Computer and System Sciences , 26 (3): 362– 391, doi : 10.1016/0022-0000(83)90006-5 , MR 0710253
- 1 2 Harel, Dov; Tarjan, Robert E. (1984), "Algoritmos rápidos para encontrar ancestros comunes más cercanos", SIAM Journal on Computing , 13 (2): 338– 355, doi : 10.1137/0213024
- ↑ Dietz, Paul F. (1991), "Finding level-ancestors in dynamic trees", Algorithms and data structures (Ottawa, ON, 1991) , Lecture Notes in Computer Science, vol. 519, Berlín: Springer, pp. 32–40 , doi : 10.1007/BFb0028247 , ISBN 3-540-54343-0, MR 1146687
- ↑ Klein, Philip N. (1998), "Computing the edit-distance between unrooted ordered trees", Algorithms—ESA '98 (Venecia) , Lecture Notes in Computer Science, vol. 1461, Berlín: Springer, pp. 91–102 , doi : 10.1007/3-540-68530-8_8 , ISBN 978-3-540-64848-2, MR 1683332 , S2CID 9910968
- ↑ Demaine, Erik D .; Mozes, Shay; Rossman, Benjamin; Weimann, Oren (2010), "Un algoritmo de descomposición óptimo para la distancia de edición de árboles", ACM Transactions on Algorithms , 6 (1): A2, doi : 10.1007/978-3-540-73420-8_15 , MR 2654906
- ↑ Buchsbaum, Adam L.; Westbrook, Jeffery R. (2000), "Mantenimiento de vistas jerárquicas de grafos", Actas del Undécimo Simposio Anual ACM-SIAM sobre Algoritmos Discretos (San Francisco, CA, 2000) , Nueva York: ACM, págs. 566–575 , MR 1755515
- ↑ Eppstein, David ; Goodrich, Michael T. (2011), "Enrutamiento geométrico voraz conciso mediante geometría hiperbólica", IEEE Transactions on Computers , 60 (11): 1571–1580 , Bibcode : 2011ITCmp..60.1571E , doi : 10.1109/TC.2010.257 , MR 2830035 , S2CID 40368995
- ↑ Duncan, Christian A.; Eppstein, David ; Goodrich, Michael T .; Kobourov, Stephen G.; Nöllenburg, Martin (2013), "Drawing trees with perfect angular resolution and polynomial area", Discrete and Computational Geometry , 49 (2): 157–182 , arXiv : 1009.0581 , doi : 10.1007/s00454-012-9472-y , MR 3017904 , S2CID 254034095
- ^ Alstrup, Stephen; Lauridsen, Peter W; Sommerlund, compañero; Thorup, Mikkel (1997), "Encontrar núcleos de longitud limitada", Algoritmos y estructuras de datos , Lecture Notes in Computer Science Volume, vol. 1272, Springer, págs. 45 a 54, doi : 10.1007/3-540-63307-3_47 , ISBN 978-3-540-63307-5
- ↑ Bille, Philip; Landau, Gad M.; Raman, Rajeev; Sadakane, Kunihiko; Satti, Srinivasa Rao; Weimann, Oren (2011), "Acceso aleatorio a cadenas comprimidas por gramática", Actas del Vigésimo Segundo Simposio Anual ACM-SIAM sobre Algoritmos Discretos , Filadelfia, PA: SIAM, págs. 373–389 , MR 2857133
- Árboles (teoría de grafos)