Articulo de referencia

Dinamización

En informática , la dinamización es el proceso de transformar una estructura de datos estática en una dinámica . [ 1 ] Si bien las estructuras de datos estáticas pueden ofrecer ...

En informática , la dinamización es el proceso de transformar una estructura de datos estática en una dinámica . [ 1 ] Si bien las estructuras de datos estáticas pueden ofrecer una funcionalidad excelente y consultas rápidas, su utilidad es limitada debido a su incapacidad para crecer o encogerse rápidamente, lo que las hace inaplicables para la solución de problemas dinámicos , donde los datos de entrada cambian. Las técnicas de dinamización proporcionan métodos uniformes para crear estructuras de datos dinámicas.

Problemas de búsqueda descomponibles

Definimos el problemaPAG{\displaystyle P}de buscar el predicadoMETRO{\displaystyle M}partido en el setS{\displaystyle S}comoPAG(METRO,S){\displaystyle P(M,S)}. ProblemaPAG{\displaystyle P}es descomponible si el conjuntoS{\displaystyle S}puede descomponerse en subconjuntosSi{\displaystyle S_{i}}y existe una operación+{\displaystyle +}de unificación de resultados tal quePAG(METRO,S)=PAG(METRO,S0)+PAG(METRO,S1)++PAG(METRO,Snorte){\displaystyle P(M,S)=P(M,S_{0})+P(M,S_{1})+\dots +P(M,S_{n})}.

Descomposición

La descomposición es un término utilizado en informática para dividir estructuras de datos estáticas en unidades más pequeñas de tamaño desigual. El principio básico es que cualquier número decimal puede representarse en cualquier otra base. Para más detalles sobre el tema, consulte Descomposición (informática) . Para simplificar, en este artículo se utilizará el sistema binario, pero también se pueden utilizar otras bases (como los números de Fibonacci ).

Si se utiliza el sistema binario, un conjunto denorte{\displaystyle n}los elementos se dividen en subconjuntos de tamaños con

2inortei{\displaystyle 2^{i}*n_{i}}

elementos dondenortei{\displaystyle n_{i}}es el i{\displaystyle i}-la parte denorte{\displaystyle n}en binario. Esto significa que sinorte{\displaystyle n}tienei{\displaystyle i}Si el bit -ésimo es igual a 0, el conjunto correspondiente no contiene ningún elemento. Cada uno de los subconjuntos tiene la misma propiedad que la estructura de datos estática original. Las operaciones realizadas en la nueva estructura de datos dinámica pueden implicar recorrerregistro2(norte){\displaystyle \log _{2}\left(n\right)}conjuntos formados por descomposición. Como resultado, esto añadiráO(registro(norte)){\displaystyle O(\log \left(n\right))} factor en contraposición a las operaciones de estructura de datos estática pero permitirá agregar operaciones de inserción/eliminación.

Kurt Mehlhorn demostró varias ecuaciones para la complejidad temporal de las operaciones en las estructuras de datos dinamizadas según esta idea. Algunas de estas igualdades se enumeran a continuación.

Si

  • PAGS(norte){\displaystyle P_{S}\left(n\right)}es el momento de construir la estructura de datos estática
  • QS(norte){\displaystyle Q_{S}\left(n\right)}es el momento de consultar la estructura de datos estática
  • QD(norte){\displaystyle Q_{D}\left(n\right)}es el momento de consultar la estructura de datos dinámica formada por descomposición
  • I¯{\displaystyle {\overline {I}}}es el tiempo de inserción amortizado

entonces

  • QD(norte)=O(QS(norte)registro(norte)){\displaystyle Q_{D}\left(n\right)=O\left(Q_{S}\left(n\right)\cdot \log \left(n\right)\right)}
  • I¯=O((PAGS(norte)/norte)registro(norte)).{\displaystyle {\overline {I}}=O\left(\left(P_{S}\left(n\right)/n\right)\cdot \log \left(n\right)\right).}

SiQS(norte){\displaystyle Q_{S}\left(n\right)}es al menos polinomial , entoncesQD(norte)=O(QS(norte)){\displaystyle Q_{D}\left(n\right)=O\left(Q_{S}\left(n\right)\right)}.

Referencias

  1. Mathieu, Claire; Rajaraman, Rajmohan; Young, Neal E.; Yousefi, Arman (11 de octubre de 2024). "Dinamización competitiva de estructuras de datos" . ACM Trans. Algorithms . 20 (4): 37:1–37:28. arXiv : 2011.02615 . doi : 10.1145/3672614 . ISSN 1549-6325 . La dinamización es una técnica genérica para transformar cualquier estructura de datos de contenedor estática en una dinámica que admite inserciones y consultas intercaladas arbitrariamente. 

Lecturas adicionales

  • Kurt Mehlhorn, Estructuras de datos y algoritmos 3, . Una serie EATCS, vol. 3, Springer, 1984.