Complejidad para encontrar una pelota que maximice el número de puntos que se encuentran en ella.


10

Dado un conjunto de puntos y un radio r . Cuál es la complejidad de encontrar el punto con mayor número de puntos a una distancia menor que r . Por ejemplo, el que maximiza n i = 1 1 x - x ir ?x1,,xnR2rri=1n1xxir

Un algoritmo de fuerza bruta sería revisar cada punto y contar el número de puntos que están a una distancia menor que . Eso daría una complejidad de O ( n 2 ) .rO(n2)

¿Hay un mejor enfoque?


¿Has mirado los árboles de particiones cuadrículas y espacio binario? Anticiparía que podrían dar un algoritmo que es más eficiente en la práctica, aunque no sé cuál podría ser el peor tiempo de ejecución asintótico.
DW

(¿El centro del balltítulo debe ser del conjunto?) Una idea podría ser estimar si el radio es pequeño en comparación con la distancia promedio al vecino más cercano o en el orden del diámetro (y considerar enfoques para estos extremos (barrido plano para la pequeña ) y el amplio espacio intermedio). r
barba gris

xi

O(n)O(log2(n)+k)

O(nlog(n))O(log2(n)+k)O(n2))

Respuestas:


5

Parece que un algoritmo sublineal para el problema de conteo de rango de bola no se conoce por ahora.

O(log2(n)+k)

O(nlog(n))


3

La respuesta no es tan simple, hay un estudio avanzado de esta pregunta en la teoría de la complejidad; parece estudiarse, por ejemplo, como el siguiente problema, que se centra en consultas rápidas de "conteo esférico de rango". Sí, son posibles límites teóricos mejorados, pero estos parecen ser algoritmos abstractos que nadie ha implementado. Si desea implementaciones reales, esa es una pregunta diferente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.