Resumen
La idea central del proyecto
El cKd-tree surge como una alternativa compacta al Kd-tree clásico, pero todavía
necesita validarse con consultas KNN sobre escenarios más reales y comparaciones
con algoritmos de búsqueda estándar.
Estudiante
Felipe Elías Alegría Lara
Ingeniería en Ejecución en Computación e Informática
Área
Estructuras compactas
Búsqueda espacial, eficiencia y uso de memoria
Problemática
La brecha técnica actual
El cKd-tree es una estructura recientemente desarrollada (2024) que logra comprimir índices Kd-tree con ratios de compresión cercanos al 70% respecto de otras estructuras compactas, manteniendo capacidad de consulta. Sin embargo, enfrenta limitaciones críticas que impiden su adopción operativa:
1. Inexistencia de algoritmos de búsqueda KNN validados
La estructura actual solo implementa almacenamiento y consultas de rango (búsquedas que retornan todos los puntos dentro de un rectángulo delimitado). Sin embargo, carece de una implementación operativa de K-Vecinos más Cercanos (KNN), una funcionalidad esencial para aplicaciones reales como:
- Sistemas de recomendación: Encontrar los N productos más similares a uno dado.
- Reconocimiento de patrones: Clasificar datos basados en proximidad a ejemplares conocidos.
- Clustering y análisis de datos: Agrupación de puntos cercanos en espacios multidimensionales.
- Búsqueda de similitud: Recuperar imágenes, documentos o registros similares.
Impacto: Una estructura que solo almacena pero no permite consultar de manera eficiente es incompleta funcionalmente.
2. Incertidumbre en eficiencia temporal
El cKd-tree logra reducción de memoria dramática (70% aprovechamiento) mediante:
- Eliminación de punteros: Los árboles tradicionales requieren punteros para conectar nodos (memoria extra). cKd-tree usa codificación implícita.
- Codificación compacta: Utiliza secuencias en espiral (curva de Hilbert) y DACs (Direct Access Codes) para representar la estructura.
Sin embargo, existe incertidumbre crítica: ¿Navegar una estructura sin punteros anula el ahorro de memoria?
- Cada búsqueda KNN requiere reconstruir posiciones sobre la marcha (costo computacional).
- El overhead de cálculos podría neutralizar la ganancia de RAM.
- Datos de tiempo real para cKd-tree son inexistentes.
Preguntas sin respuesta: ¿Cuántos ciclos de CPU se gastan en reconstrucción? ¿Hay dispositivos con RAM limitada donde cKd-tree es viable?
3. Falta de estudios comparativos entre algoritmos
Existen dos estrategias clásicas para búsqueda KNN. No hay datos empíricos sobre cuál es superior en cKd-tree:
- Cola de Prioridad (Priority Queue): Explora primero las regiones más prometedoras. Mayor overhead de memoria pero búsquedas más rápidas en espacios uniformes.
- Radio Incremental (Incremental Radius): Expande el área de búsqueda gradualmente. Bajo overhead de memoria pero potencialmente más iteraciones.
En k²-tree (2023), Radio Incremental demostró ser superior. Pero cKd-tree tiene una arquitectura diferente (partición celular vs. basada en bits), así que no hay garantía.
Consecuencia: Ingenieros no pueden tomar decisiones informadas. ¿Cuál algoritmo elegir? Depende de datos desconocidos.
Propuesta
Qué se va a implementar
Se propone implementar y comparar dos variantes de búsqueda KNN sobre cKd-tree:
Cola de Prioridad y Radio Incremental. El resultado esperado es identificar cuál
se adapta mejor a la estructura y ofrece mejor balance entre tiempo y memoria.
01 Adaptación del algoritmo a la lógica de partición del cKd-tree.
02 Comparación de rendimiento usando pruebas de estrés.
03 Validación de la utilidad práctica de la estructura compacta.
Objetivo general
Validar la operatividad del cKd-tree
Evaluar el rendimiento y la eficacia de las técnicas KNN de Radio Incremental y
Colas de Prioridad implementadas sobre la estructura compacta cKd-tree.
Objetivos específicos
Desglose del trabajo técnico
- Estudiar la estructura interna del cKd-tree y la lógica KNN.
- Diseñar e implementar ambos módulos de búsqueda.
- Evaluar rendimiento con diferentes volúmenes de datos.
- Comparar resultados y redactar conclusiones.
Justificación
Por qué es importante este estudio
La investigación sobre KNN en cKd-tree se justifica por razones académicas, técnicas y prácticas:
1. Habilitación de operatividad de la estructura
El trabajo fundacional del cKd-tree (2024) completó dos funcionalidades: almacenamiento compacto y consultas de rango. Pero esto es solo parte de la utilidad. Este proyecto extiende la funcionalidad hacia búsquedas de proximidad (KNN), transformando la estructura de un modelo teórico de almacenamiento a una herramienta de consulta prácticamente viable.
Consecuencia: cKd-tree pasa de ser "interesante" a ser "operacionalmente completo".
2. Validación rigurosa del compromise espacio-tiempo
Las estructuras compactas ofrecen un tradeoff (compromiso) fundamental entre:
- Ahorro de espacio: cKd-tree logra ~70% de compresión vs k²-tree.
- Costo computacional: Navegar sin punteros requiere cálculos adicionales.
Este proyecto cuantifica experimentalmente:
- ¿Cuánta memoria se economiza realmente con KNN?
- ¿Cuánto tiempo se tarda en una búsqueda vs Kd-tree clásico?
- ¿A partir de qué tamaño de dataset cKd-tree es más eficiente?
- ¿En qué tipo de hardware (RAM limitada, procesadores móviles) es viable?
Importancia: Valida si el compromiso teórico es realmente beneficioso en práctica.
3. Resolución de incertidumbre sobre selección de algoritmos
Dos algoritmos KNN estándar compiten en estructuras compactas. Investigaciones previas muestran tendencias contradictorias:
| Algoritmo | k²-tree (2023) | iBit-tree | cKd-tree (DESCONOCIDO) |
| Cola de Prioridad | ✓ Rápido | ✓ Rápido | ? |
| Radio Incremental | ✓✓ Muy rápido | ✓ Competitivo | ? |
El problema: cKd-tree tiene una arquitectura única (partición celular con DACs) que no se mapea directamente a k²-tree (navegación bit-a-bit). Extrapolar resultados es arriesgado.
Beneficio: Este proyecto cierra la brecha de conocimiento, permitiendo a futuros desarrolladores elegir el algoritmo correcto desde el inicio.
4. Contribución al estado del arte en estructuras compactas
Las estructuras de datos compactas son un área emergente crítica para:
- Big Data: Datasets de miles de millones de puntos que no caben en RAM tradicional.
- Sistemas embebidos y IoT: Dispositivos con memoria severamente limitada (smartphones, sensores, drones).
- Centros de datos sustentables: Reducir consumo de memoria = menos energía consumida.
- Aplicaciones de baja latencia: Si cKd-tree compite en velocidad, reemplaza Kd-tree clásico sin penalidad.
Este proyecto contribuye metodología reproducible para validar estructuras compactas futuras.
Alcance: Los resultados y técnicas de benchmarking servirán para investigaciones posteriores en compresión de índices espaciales.
Metodología
Prototipo evolutivo
La propuesta usa una metodología evolutiva porque permite construir versiones
funcionales, probar temprano la lógica de búsqueda y ajustar el diseño según los
resultados de cada iteración.
Riesgo técnico moderado
La complejidad algorítmica es alta, pero el tamaño del software es acotado y
permite iterar con control.
Complemento IEEE
cKd-tree: A Compact Kd-tree (IEEE Access, 2024)
El artículo base presenta cKd-tree como una estructura compacta para representar
índices Kd-tree en escenarios de Big Data con conjuntos estáticos extensos, donde
el objetivo principal es reducir memoria sin perder capacidad de consulta.
- La codificación se apoya en la secuencia en espiral del iKd-tree usando DACs.
- Evalúa dos tipos de consulta espacial: consulta puntual y consulta por rango.
- Compara el desempeño frente a iKd-tree y k2-tree en compresión y tiempo.
- Reporta una compresión cercana al 70% respecto de k2-tree.
- Describe mejor desempeño en consulta puntual y buen comportamiento en rango, especialmente con datos dispersos.
Datos bibliográficos DOI: 10.1109/ACCESS.2024.3365054 IEEE Xplore ID: 10431741 Fuente: IEEE Access, vol. 12, pp. 28666-28676 Ver publicación
Síntesis elaborada con metadatos y resumen público indexado (OpenAlex/DBLP), ya
que IEEE bloquea la descarga directa en este entorno.
Complemento IEEE II
On Incremental Radius Algorithm for KNN over k²-tree (2023)
Este artículo evalúa la aplicación del algoritmo de Radio Incremental para búsquedas KNN
sobre la estructura compacta k²-tree, demostrando que supera al enfoque de Cola de Prioridad
en escenarios con datos sintéticos y restricciones de memoria.
- Propone implementación de Radio Incremental con conteo compacto para optimizar rendimiento.
- Demuestra que Radio Incremental es altamente competitivo frente a Cola de Prioridad en k²-tree.
- Valida la efectividad del radio incremental en estructuras de partición espacial compactas.
- Proporciona base experimental para seleccionar estrategias de búsqueda en estructuras compactas.
Datos bibliográficos Autor: Rodrigo Torres-Avilés IEEE Xplore ID: 10315737 Fuente: Proc. 42nd IEEE Int. Conf. Chilean Computer Science Society (SCCC), pp. 1-4, 2023 DOI: 10.1109/sccc59417.2023.10315737 Ver publicación
Investigación sobre algoritmos KNN en k²-tree, comparable con la presente propuesta en cKd-tree.
Plan de trabajo
Secuencia de actividades
01 Revisión bibliográfica de cKd-tree y KNN.
02 Diseño y codificación de los módulos de búsqueda.
03 Pruebas de estrés y recolección de métricas.
04 Comparación de resultados y redacción final.
Referencias base
Antecedentes del proyecto
Ref. 1: Base técnica
cKd-tree: A Compact Kd-tree (2024)
Autores: G. Gutiérrez, R. Torres-Avilés, M. Caniupán | Publicación: IEEE Access, vol. 12, pp. 28666–28676, 2024
Aportación central: Propone cKd-tree como estructura compacta que elimina punteros mediante codificación en espiral (DACs), logrando 70% de compresión respecto de k²-tree.
Relevancia para la propuesta: Es el trabajo fundacional sobre el cual esta propuesta construye. Establece la arquitectura celular y demuestra viabilidad de almacenamiento. Esta propuesta completa el ciclo implementando búsqueda KNN sobre esa arquitectura.
Ref. 2: Algoritmo precedente
On Incremental Radius Algorithm for KNN over k²-tree (2023)
Autor: Rodrigo Torres-Avilés | Publicación: Proc. 42nd IEEE Int. Conf. Chilean Computer Science Society (SCCC), pp. 1–4, 2023
Aportación central: Evalúa la implementación de Radio Incremental para KNN sobre k²-tree, demostrando que supera a Cola de Prioridad en estructuras compactas con restricciones de memoria.
Relevancia para la propuesta: Proporciona el precedente directo de comparación entre algoritmos KNN en estructuras compactas. Esta propuesta extiende esa comparativa específicamente a cKd-tree, validando si Radio Incremental mantiene su efectividad en una arquitectura de partición celular diferente.
Ref. 3: Marco algorítmico
Efficient Computation of Spatial Queries over k2-tree (2021)
Autores: Fernando Santolaya, Mónica Caniupán, Luis Gajardo, Miguel Romero, Rodrigo Torres-Avilés | Publicación: Theoretical Computer Science, vol. 892, pp. 108–131, Nov. 2021
Aportación central: Describe algoritmos KNN y K-Closest Pair Queries (KCPQ) sobre k²-tree, demostrando escalabilidad en memoria principal donde métodos de almacenamiento secundario fallan.
Relevancia para la propuesta: Proporciona el marco algorítmico de referencia para búsquedas de proximidad en estructuras compactas. Aunque opera sobre k²-tree (navegación basada en bits), sus lógicas de poda y expansión informan el diseño de algoritmos para cKd-tree (navegación basada en celdas), validando el enfoque comparativo.