c++ tree nearest-neighbor

c++ - Implementación eficiente de la búsqueda de vecino más cercano



tree nearest-neighbor (2)

Hay varias buenas opciones de bibliotecas de búsqueda de vecinos más cercanos rápidos.

  • ANN , que se basa en el trabajo de Mount y Arya. Este trabajo está documentado en un documento de S. Arya y DM Mount. "Consultas aproximadas del vecino más cercano en dimensiones fijas" . En Proc. 4 ° Simposio ACM-SIAM. Algoritmos discretos, páginas 271-280, 1993.

  • FLANN , que se basa en el trabajo de Marius Muja & Co. Hay un documento de Marius Muja y David G. Lowe, "Vecinos cercanos aproximados rápidos con configuración automática de algoritmos" , en Conferencia Internacional sobre Teoría de la Visión por Computadora y Aplicaciones (VISAPP '' 09), 2009. El código para FLANN está disponible en github

FLANN parece ser más rápido en algunos casos, y es una versión más moderna del código con enlaces sólidos para varios otros idiomas, que pueden incorporar cambios rápidamente. ANN es probablemente una buena opción si desea una biblioteca estándar sólida y bien probada.

Editar en respuesta al comentario

Ambas bibliotecas tienen una amplia documentación y ejemplos.

El código de muestra para ANN está disponible en el Manual , en la sección 2.1.4

El código de muestra para FLANN está disponible en el directorio de ejemplos de repositorio de FLANN, por ejemplo /examples/flann_examples.c

Estoy tratando de implementar un algoritmo eficiente para el problema de búsqueda del vecino más cercano .

He leído tutoriales sobre algunas estructuras de datos, que admiten operaciones para este tipo de problemas (por ejemplo, R-tree , árbol de portadas , etc.), pero todos son difíciles de implementar.

Además, no puedo encontrar el código fuente de muestra para estas estructuras de datos. Sé que C ++ y estoy tratando de resolver este problema en este idioma.

Idealmente, necesito enlaces que describan cómo implementar estas estructuras de datos usando el código fuente.