
El problema del par de puntos más cercanos o problema del par más cercano es un problema de geometría computacional : dadoPuntos en el espacio métrico , encontrar un par de puntos con la menor distancia entre ellos. El problema del par más cercano para puntos en el plano euclidiano [ 1 ] fue uno de los primeros problemas geométricos que se trataron en los orígenes del estudio sistemático de la complejidad computacional de los algoritmos geométricos.
Límites de tiempo
Se conocen algoritmos aleatorios que resuelven el problema en tiempo lineal , en espacios euclidianos cuya dimensión se trata como una constante para los fines del análisis asintótico . [ 2 ] [ 3 ] [ 4 ] Esto es significativamente más rápido que eltiempo (expresado aquí en notación O grande ) que se obtendría mediante un algoritmo ingenuo de encontrar distancias entre todos los pares de puntos y seleccionar la más pequeña.
También es posible resolver el problema sin aleatorización, en modelos de computación de acceso aleatorio con memoria ilimitada que permiten el uso de la función piso , en sistemas casi lineales.tiempo. [ 5 ] En modelos de computación aún más restringidos, como el árbol de decisión algebraico , el problema puede resolverse en el tiempo algo más lento.límite de tiempo, [ 6 ] y esto es óptimo para este modelo, por una reducción del problema de unicidad de elementos . Tanto los algoritmos de barrido lineal como los algoritmos de divide y vencerás con este límite de tiempo más lento se enseñan comúnmente como ejemplos de estas técnicas de diseño de algoritmos. [ 7 ] [ 8 ]
Algoritmos aleatorios de tiempo lineal
Un algoritmo aleatorio de tiempo esperado lineal de Rabin (1976) , modificado ligeramente por Richard Lipton para facilitar su análisis, procede de la siguiente manera, sobre un conjunto de entradacompuesto depuntos en unEspacio euclidiano de -dimensiones:
- Seleccionarpares de puntos uniformemente al azar, con reemplazo, y seasea la distancia mínima de los pares seleccionados.
- Redondea los puntos de entrada a una cuadrícula cuadrada de puntos cuyo tamaño (la separación entre puntos adyacentes de la cuadrícula) esy utiliza una tabla hash para agrupar pares de puntos de entrada que se redondean al mismo punto de la cuadrícula.
- Para cada punto de entrada, calcule la distancia a todas las demás entradas que se redondean al mismo punto de la cuadrícula o a otro punto de la cuadrícula dentro del vecindario de Moore depuntos de la cuadrícula circundantes.
- Devuelve la menor de las distancias calculadas durante este proceso.
El algoritmo siempre determinará correctamente el par más cercano, porque asigna a cualquier par que esté más cerca que la distanciaal mismo punto de la cuadrícula o a puntos adyacentes. El muestreo uniforme de pares en el primer paso del algoritmo (en comparación con un método diferente de Rabin para muestrear un número similar de pares) simplifica la demostración de que el número esperado de distancias calculadas por el algoritmo es lineal. [ 4 ]
En cambio, un algoritmo diferente, Khuller y Matias (1995), pasa por dos fases: un proceso de filtrado iterativo aleatorio que aproxima la distancia más cercana dentro de una razón de aproximación de, junto con un paso final que convierte esta distancia aproximada en la distancia más cercana exacta. El proceso de filtrado repite los siguientes pasos, hastaqueda vacío:
- Elige un puntouniformemente al azar de.
- Calcula las distancias desdea todos los demás puntos dey dejarsea la distancia mínima de este tipo.
- Redondea los puntos de entrada a una cuadrícula cuadrada de tamañoy eliminar detodos los puntos cuyo vecindario de Moore no tiene otros puntos.
La distancia aproximada encontrada por este proceso de filtrado es el valor final de, calculado en el paso anteriorse vuelve vacío. Cada paso elimina todos los puntos cuyo vecino más cercano está a distanciao mayor, al menos la mitad de los puntos en expectativa, de lo cual se deduce que el tiempo total esperado para el filtrado es lineal. Una vez que se obtiene un valor aproximado deSe sabe que puede utilizarse para los pasos finales del algoritmo de Rabin; en estos pasos, cada punto de la cuadrícula tiene un número constante de entradas redondeadas a él, por lo que el tiempo vuelve a ser lineal. [ 3 ]
Problema dinámico del par más cercano
La versión dinámica para el problema del par más cercano se plantea de la siguiente manera:
- Dado un conjunto dinámico de objetos, encuentre algoritmos y estructuras de datos para el recálculo eficiente del par de objetos más cercanos cada vez que se inserten o eliminen objetos.
Si se conoce de antemano el cuadro delimitador para todos los puntos y se dispone de la función piso de tiempo constante, entonces se esperaSe sugirió una estructura de datos de espacio que admite el tiempo esperado.inserciones y eliminaciones y tiempo de consulta constante. Cuando se modifica para el modelo de árbol de decisión algebraico, las inserciones y eliminaciones requeriríantiempo esperado. [ 9 ] La complejidad del algoritmo de par más cercano dinámico citado anteriormente es exponencial en la dimensióny, por lo tanto, dicho algoritmo resulta menos adecuado para problemas de alta dimensionalidad.
Un algoritmo para el problema dinámico del par más cercano enEl espacio dimensional fue desarrollado por Sergey Bespamyatnikh en 1998. [ 10 ] Los puntos pueden insertarse y eliminarse entiempo por punto (en el peor de los casos).
Véase también
Notas
- ↑ Shamos, Michael Ian ; Hoey, Dan (1975). "Problemas del punto más cercano". 16.º Simposio Anual sobre Fundamentos de la Informática, Berkeley, California, EE. UU., 13-15 de octubre de 1975. IEEE Computer Society. págs. 151–162 . doi : 10.1109/SFCS.1975.8 .
- ↑ Rabin, M. (1976). "Algoritmos probabilísticos". Algoritmos y complejidad: resultados recientes y nuevas direcciones . Academic Press. págs. 21–39 . Como citan Khuller y Matias (1995) .
- 1 2 Khuller, Samir ; Matias, Yossi (1995). "Un algoritmo de criba aleatorio simple para el problema del par más cercano" . Information and Computation . 118 (1): 34–37 . doi : 10.1006/inco.1995.1049 . MR 1329236. S2CID 206566076 .
- 1 2 Lipton, Richard (24 de septiembre de 2011). "Rabin lanza una moneda" . La carta perdida de Gödel y P=NP .
- ↑ Fortune, Steve; Hopcroft, John (1979). "Una nota sobre el algoritmo del vecino más cercano de Rabin". Information Processing Letters . 8 (1): 20– 23. doi : 10.1016/0020-0190(79)90085-1 . hdl : 1813/7460 . MR 0515507 .
- ↑ Clarkson, Kenneth L. (1983). «Algoritmos rápidos para el problema de todos los vecinos más cercanos». 24.º Simposio Anual sobre Fundamentos de la Informática, Tucson, Arizona, EE. UU., 7-9 de noviembre de 1983. IEEE Computer Society. págs. 226-232 . doi : 10.1109/SFCS.1983.16 . ISBN 0-8186-0508-1.
- ↑ Cormen, Thomas H.; Leiserson , Charles E.; Rivest , Ronald L .; Stein, Clifford (2001) [1990]. "33.4: Encontrar el par de puntos más cercanos". Introducción a los algoritmos (2.ª ed.). MIT Press y McGraw-Hill. págs. 957–961 . ISBN 0-262-03293-7.
- ↑ Kleinberg, Jon M. ; Tardos, Éva (2006). "5.4 Encontrar el par de puntos más cercanos". Diseño de algoritmos . Addison-Wesley. pp. 225–231 . ISBN 978-0-321-37291-8.
- ↑ Golin, Mordecai; Raman, Rajeev; Schwarz, Christian; Smid, Michiel (1998). "Estructuras de datos aleatorizadas para el problema dinámico del par más cercano" ( PDF) . SIAM Journal on Computing . 27 (4): 1036– 1072. doi : 10.1137/S0097539794277718 . MR 1622005. S2CID 1242364 .
- ↑ Bespamyatnikh, SN (1998). "Un algoritmo óptimo para el mantenimiento de pares más cercanos" . Geometría discreta y computacional . 19 (2): 175– 195. doi : 10.1007/PL00009340 . MR 1600047 .
- Algoritmos geométricos
- Algoritmos de divide y vencerás