En matemáticas , dado un conjunto no vacío de objetos de extensión finita en -dimensional espacio , por ejemplo un conjunto de puntos, una esfera de delimitación , encerrando esfera o encerrando balón para ese conjunto es una -dimensional esfera sólida que contiene todos estos objetos.
Utilizada en gráficos por computadora y geometría computacional , una esfera delimitadora es un tipo especial de volumen delimitador . Hay varios algoritmos de construcción de esferas delimitadores rápidos y simples con un alto valor práctico en aplicaciones de gráficos por computadora en tiempo real. [1]
En estadística e investigación de operaciones , los objetos suelen ser puntos y, en general, la esfera de interés es la esfera delimitadora mínima , es decir, la esfera con un radio mínimo entre todas las esferas delimitadoras. Se puede probar que tal esfera es única: si hay dos de ellos, entonces los objetos en cuestión se encuentran dentro de su intersección. Pero una intersección de dos esferas no coincidentes de igual radio está contenida en una esfera de menor radio.
El problema de calcular el centro de una esfera delimitante mínima también se conoce como el "problema euclidiano de 1 centro no ponderado ".
Estas esferas son útiles en la agrupación , donde los grupos de puntos de datos similares se clasifican juntos.
En el análisis estadístico, la dispersión de puntos de datos dentro de una esfera puede atribuirse a errores de medición o procesos naturales (generalmente térmicos), en cuyo caso el grupo representa una perturbación de un punto ideal. En algunas circunstancias, este punto ideal se puede utilizar como sustituto de los puntos del grupo, lo que resulta ventajoso para reducir el tiempo de cálculo.
En la investigación de operaciones, la agrupación de valores en un punto ideal también se puede utilizar para reducir el número de entradas con el fin de obtener valores aproximados para problemas NP-difíciles en un tiempo razonable. El punto elegido no suele ser el centro de la esfera, ya que esto puede estar sesgado por valores atípicos, sino que se calcula alguna forma de ubicación promedio, como un punto de mínimos cuadrados, para representar el grupo.
Existen algoritmos exactos y aproximados para resolver el problema de la esfera delimitante.
Nimrod Megiddo estudió extensamente el problema de un centro y lo publicó al menos cinco veces en los años ochenta. [2] En 1983, propuso un algoritmo de " poda y búsqueda " que encuentra la esfera límite óptima y se ejecuta en tiempo lineal si la dimensión se fija como una constante. Cuando se tiene en cuenta la dimensión, la complejidad del tiempo de ejecución es poco práctica para aplicaciones de alta dimensión. Megido utilizó este enfoque de programación lineal en tiempo lineal cuando la dimensión es fija.
En 1991, Emo Welzl propuso un algoritmo aleatorio mucho más simple basado en la extensión de un algoritmo de programación lineal aleatorio de Raimund Seidel . Se ejecuta en el tiempo lineal esperado. El artículo proporciona resultados experimentales que demuestran su practicidad en dimensiones superiores. [3]
La biblioteca de algoritmos de geometría computacional de código abierto (CGAL) contiene una implementación de este algoritmo. [4]
En 1990, Jack Ritter propuso un algoritmo simple para encontrar una esfera delimitadora no mínima. [5] Es ampliamente utilizado en varias aplicaciones por su simplicidad. El algoritmo funciona de esta manera:
El algoritmo de Ritter se ejecuta en el tiempo en entradas que consisten en puntos en el espacio dimensional, lo que lo hace muy eficiente. Sin embargo, solo da un resultado aproximado que suele ser de un 5% a un 20% más grande que el óptimo. [ cita requerida ]
Bădoiu y col. presentó una aproximación al problema de la esfera delimitadora, [6] donde una aproximación significa que la esfera construida tiene un radio como máximo , donde es el radio más pequeño posible de una esfera delimitadora.
Un coreset es un pequeño subconjunto, que una expansión de la solución en el subconjunto es una esfera delimitadora de todo el conjunto. El núcleo se construye de forma incremental agregando el punto más lejano al conjunto en cada iteración.
Kumar y col. mejoró este algoritmo de aproximación [7] para que se ejecute en el tiempo .
Fischer y col. (2003) propuso un solucionador exacto, aunque el algoritmo no tiene un tiempo de ejecución polinomial en el peor de los casos. [8] El algoritmo es puramente combinatorio e implementa un esquema pivotante similar al método simplex para la programación lineal., utilizado anteriormente en algunas heurísticas. Comienza con una gran esfera que cubre todos los puntos y se encoge gradualmente hasta que no se puede encoger más. El algoritmo presenta reglas de terminación correctas en casos de degeneraciones, ignoradas por autores anteriores; y manejo eficiente de soluciones parciales, lo que produce una mayor aceleración. Los autores verificaron que el algoritmo es eficiente en la práctica en dimensiones bajas y moderadamente bajas (hasta 10,000) y afirman que no presenta problemas de estabilidad numérica en sus operaciones de punto flotante. [8] Una implementación C ++ del algoritmo está disponible como proyecto de código abierto. [9]
Larsson (2008) propuso el método de "esfera óptima de puntos extremos" con velocidad controlable a una aproximación de precisión para resolver el problema de la esfera delimitadora. Este método funciona tomando un conjunto de vectores de dirección y proyectando todos los puntos en cada vector en ; sirve como una variable de compensación de velocidad-precisión. Se aplica un solucionador exacto a los puntos extremos de estas proyecciones. El algoritmo luego itera sobre los puntos restantes, si los hay, haciendo crecer la esfera si es necesario. Para grandes, este método es órdenes de magnitud más rápido que los métodos exactos, al tiempo que da resultados comparables. Tiene un peor momento de . [1]