Articulo de referencia

Problema del círculo más pequeño

Algunos ejemplos del círculo delimitador más pequeño. El problema del círculo más pequeño (también conocido como problema del círculo de cobertura mínimo , problema del círculo ...

Algunos ejemplos del círculo delimitador más pequeño.

El problema del círculo más pequeño (también conocido como problema del círculo de cobertura mínimo , problema del círculo delimitador , problema del círculo delimitador mínimo , problema del círculo envolvente más pequeño ) es un problema de geometría computacional que consiste en calcular el círculo más pequeño que contiene todos los puntos de un conjunto dado en el plano euclidiano . El problema correspondiente en el espacio n- dimensional , el problema de la esfera delimitadora más pequeña , consiste en calcular la n -esfera más pequeña que contiene todos los puntos de un conjunto dado. [ 1 ] El problema del círculo más pequeño fue propuesto inicialmente por el matemático inglés James Joseph Sylvester en 1857. [ 2 ]

El problema del círculo más pequeño en el plano es un ejemplo de un problema de localización de instalaciones (el problema del 1-centro ) en el que se debe elegir la ubicación de una nueva instalación para brindar servicio a un número de clientes, minimizando la distancia más lejana que cualquier cliente debe recorrer para llegar a la nueva instalación. [ 3 ] Tanto el problema del círculo más pequeño en el plano como el problema de la esfera delimitadora más pequeña en cualquier espacio de dimensión superior de dimensión acotada son resolubles en tiempo lineal en el peor de los casos .

Caracterización

La mayoría de los enfoques geométricos para el problema buscan puntos que se encuentren en el límite del círculo mínimo y se basan en los siguientes hechos simples:

  • El círculo de cobertura mínimo es único.
  • El círculo mínimo que cubre un conjunto S se puede determinar mediante, como máximo, tres puntos de S situados en el borde del círculo. Si se determina mediante solo dos puntos, el segmento de recta que une esos dos puntos debe ser un diámetro del círculo mínimo. Si se determina mediante tres puntos, el triángulo formado por esos tres puntos no es obtuso .

Soluciones de tiempo lineal

Como demostró Nimrod Megiddo , [ 5 ] el círculo envolvente mínimo se puede encontrar en tiempo lineal, y el mismo límite de tiempo lineal también se aplica a la esfera envolvente más pequeña en espacios euclidianos de cualquier dimensión constante. Su artículo también ofrece una breve descripción general de trabajos anteriores.O(norte3){\displaystyle O(n^{3})}yO(norteregistronorte){\displaystyle O(n\log n)}algoritmos; [ 6 ] al hacerlo, Megiddo demostró que la conjetura de Shamos y Hoey —que una solución al problema del círculo más pequeño era computable enΩ(norteregistronorte){\displaystyle \Omega (n\log n)}en el mejor de los casos, era falso. [ 7 ]

Emo Welzl [ 8 ] propuso un algoritmo aleatorio simple para el problema del círculo de cobertura mínimo que se ejecuta en tiempo esperado.O(norte){\displaystyle O(n)}, basado en un algoritmo de programación lineal de Raimund Seidel .

Posteriormente, el problema del círculo más pequeño se incluyó en una clase general de problemas de tipo LP que pueden resolverse mediante algoritmos como el de Welzl basado en programación lineal. Como consecuencia de pertenecer a esta clase, se demostró que la dependencia de la dimensión del factor constante en elO(norte){\displaystyle O(n)}El límite de tiempo, que era factorial para el método de Seidel, podría reducirse a subexponencial . [ 6 ] El algoritmo de minidisco de Welzl se ha extendido para manejar divergencias de Bregman [ 9 ] que incluyen la distancia euclidiana al cuadrado.

El algoritmo de Megido

Fase de ejecución del algoritmo de Megido, descartando del conjunto de puntos A, B, ..., U los puntos innecesarios E, T.

El algoritmo de Megiddo [ 5 ] se basa en la técnica llamada poda y búsqueda, que reduce el tamaño del problema eliminandonorte16{\textstyle {\frac {n}{16}}}puntos innecesarios. Eso lleva a la recurrencia.t(norte)t(15norte16)+donorte{\displaystyle t(n)\leq t\left({\frac {15n}{16}}\right)+cn}donaciónt(norte)=16donorte{\displaystyle t(n)=16cn}.

El algoritmo es bastante complejo, como lo demuestra su elevada constante multiplicativa. La reducción requiere resolver dos veces un problema similar en el que el centro del círculo que se busca debe estar sobre una línea dada . La solución del subproblema es la solución del problema sin restricciones o se utiliza para determinar el semiplano donde se ubica el centro de la solución sin restricciones.

Elnorte16{\textstyle {\frac {n}{16}}}Los puntos que se descartan se encuentran de la siguiente manera: Los puntos P i se organizan en pares que definennorte2{\textstyle {\frac {n}{2}}}líneas p j como sus bisectrices . Se encuentra la mediana media p m de las bisectrices en orden según sus direcciones (orientadas al mismo semiplano determinado por la bisectriz p 1 ) y se forman pares de bisectrices, de modo que en cada par una bisectriz tenga una dirección como máximo p m y la otra como mínimo p m (la dirección p 1 podría considerarse como −{\displaystyle \infty }o +{\displaystyle \infty }(Según nuestras necesidades.) Sea Q k la intersección de las bisectrices en el k -ésimo par.

La línea q en la dirección p 1 se coloca para que pase por una intersección Q x tal que haynorte8{\textstyle {\frac {n}{8}}}intersecciones en cada semiplano definido por la línea (posición media). La versión restringida del problema de cerramiento se ejecuta en la línea q' que determina el semiplano donde se encuentra el centro. La línea q ' en la dirección pm se coloca para que pase por una intersección Qx ' de tal manera que hayanorte16{\textstyle {\frac {n}{16}}}intersecciones en cada mitad del semiplano que no contiene la solución. La versión restringida del problema de cerco se ejecuta en la línea q ′ que, junto con q, determina el cuadrante donde se ubica el centro. Consideramos los puntos Q k en el cuadrante que no está contenido en un semiplano que contiene la solución. Una de las bisectrices del par que define Q k tiene la dirección que asegura cuál de los puntos P i que definen la bisectriz está más cerca de cada punto en el cuadrante que contiene el centro del círculo de cerco. Este punto podría descartarse.

La versión restringida del algoritmo también se resuelve mediante la técnica de poda y búsqueda, pero reduciendo el tamaño del problema mediante la eliminación denorte4{\textstyle {\frac {n}{4}}}puntos que conducen a la recurrencia

t(norte)t(3norte4)+donorte{\displaystyle t(n)\leq t\left({\frac {3n}{4}}\right)+cn}

donaciónt(norte)=4donorte{\displaystyle t(n)=4cn}.

Elnorte4{\textstyle {\frac {n}{4}}}Los puntos a descartar se encuentran de la siguiente manera: Los puntos P i se organizan en pares. Para cada par, se encuentra la intersección Q j de su bisectriz con la línea de restricción q (si esta intersección no existe, se puede eliminar un punto del par inmediatamente). Se encuentra la mediana M de los puntos Q j en la línea q y en tiempo O ( n ) se determina qué semirrecta de q que comienza en M contiene la solución del problema restringido. Consideramos los puntos Q j de la otra semirrecta. Sabemos cuál de los puntos P i que definen Q j está más cerca de cada punto de la semirrecta que contiene el centro del círculo que encierra la solución del problema restringido. Este punto puede descartarse.

El semiplano donde se encuentra la solución sin restricciones puede determinarse mediante los puntos P i en el límite de la solución circular con restricciones. (Basta con el primer y el último punto de la circunferencia en cada semiplano. Si el centro pertenece a su envolvente convexa , se trata de una solución sin restricciones; de lo contrario, la dirección hacia el borde más cercano determina el semiplano de la solución sin restricciones).

El algoritmo de Welzl

El algoritmo es recursivo .

La entrada inicial es un conjunto P de puntos. El algoritmo selecciona un punto p de forma aleatoria y uniforme de P , y encuentra recursivamente el círculo mínimo que contiene P – { p }, es decir, todos los demás puntos de P excepto p . Si el círculo resultante también encierra a p , es el círculo mínimo para todo P y se devuelve.

De lo contrario, el punto p debe estar en el límite del círculo resultante. Es recursivo, pero con el conjunto R de puntos que se sabe que están en el límite como parámetro adicional.

La recursión termina cuando P está vacío , y se puede encontrar una solución a partir de los puntos en R : para 0 o 1 punto la solución es trivial; para 2 puntos, el círculo mínimo tiene su centro en el punto medio entre los dos puntos; y para 3 puntos, el círculo es la circunferencia circunscrita al triángulo descrito por los puntos. (En tres dimensiones, 4 puntos requieren el cálculo de la esfera circunscrita a un tetraedro ).

La recursión también puede terminar cuando R tiene tamaño 3 (en 2D, o 4 en 3D) porque los puntos restantes en P deben estar dentro del círculo descrito por R.

El algoritmo welzl es [ 8 ] entrada: conjuntos finitos P y R de puntos en el plano | R |  3. salida: disco mínimo que encierra P con R en el límite. Si P está vacío o | R | = 3 , entonces devuelve trivial( R ). Elige p en P ( de forma aleatoria y uniforme ). D := welzl( P − { p }, R ) si p está en D entonces devuelve Dreturn welzl( P − { p }, R ∪ { p })

El artículo de Welzl afirma que basta con permutar aleatoriamente la entrada al principio, en lugar de realizar elecciones aleatorias independientes de p en cada recursión.

También afirma que el rendimiento mejora al reordenar dinámicamente los puntos de manera que aquellos que se encuentran fuera de un círculo se consideren posteriormente antes, pero esto requiere un cambio en la estructura del algoritmo para almacenar P como un valor "global".

Otros algoritmos

Antes del resultado de Megiddo , que demostró que el problema del círculo más pequeño puede resolverse en tiempo lineal, aparecieron en la literatura varios algoritmos de mayor complejidad. Un algoritmo ingenuo resuelve el problema en tiempo O( n⁴ ) probando los círculos determinados por todos los pares y tríos de puntos.

  • Un algoritmo de Chrystal y Peirce aplica una estrategia de optimización local que mantiene dos puntos en el límite de un círculo envolvente y reduce repetidamente el círculo, reemplazando el par de puntos del límite, hasta encontrar un círculo óptimo. Chakraborty y Chaudhuri [ 10 ] proponen un método de tiempo lineal para seleccionar un círculo inicial adecuado y un par de puntos del límite en ese círculo. Cada paso del algoritmo incluye como uno de los dos puntos del límite un nuevo vértice de la envoltura convexa , por lo que si la envoltura tiene h vértices, este método puede implementarse para ejecutarse en tiempo O( nh ).
  • Elzinga y Hearn [ 11 ] describieron un algoritmo que mantiene un círculo de cobertura para un subconjunto de los puntos. En cada paso, un punto no cubierto por la esfera actual se utiliza para encontrar una esfera más grande que cubra un nuevo subconjunto de puntos, incluido el punto encontrado. Aunque su tiempo de ejecución en el peor de los casos es O( h³n ) , los autores informan que se ejecutó en tiempo lineal en sus experimentos. La complejidad del método ha sido analizada por Drezner y Shelah. [ 12 ] Los códigos en Fortran y C están disponibles en Hearn, Vijay y Nickel (1995) . [ 13 ]
  • El problema de la esfera más pequeña puede formularse como un programa cuadrático [ 1 ] definido por un sistema de restricciones lineales con una función objetivo cuadrática convexa. Por lo tanto, cualquier algoritmo de dirección factible puede proporcionar la solución del problema. [ 14 ] Hearn y Vijay [ 15 ] demostraron que el enfoque de dirección factible elegido por Jacobsen es equivalente al algoritmo de Chrystal-Peirce.
  • El dual de este programa cuadrático también puede formularse explícitamente; [ 16 ] un algoritmo de Lawson [ 17 ] puede describirse de esta manera como un algoritmo primal-dual. [ 15 ]
  • Shamos y Hoey [ 7 ] propusieron un algoritmo de tiempo O( n  log n ) para el problema basado en la observación de que el centro del círculo más pequeño que lo encierra debe ser un vértice del diagrama de Voronoi del punto más alejado del conjunto de puntos de entrada. 

Variantes ponderadas del problema

La versión ponderada del problema del círculo de cobertura mínimo toma como entrada un conjunto de puntos en un espacio euclidiano, cada uno con pesos; el objetivo es encontrar un único punto que minimice la distancia ponderada máxima (es decir, la distancia multiplicada por el peso correspondiente) a cualquier punto. El problema original (no ponderado) del círculo de cobertura mínimo corresponde al caso en que todos los pesos son iguales a 1. Al igual que con el problema no ponderado, el problema ponderado puede resolverse en tiempo lineal en cualquier espacio de dimensión acotada, utilizando enfoques estrechamente relacionados con algoritmos de programación lineal de dimensión acotada, aunque en la literatura también son frecuentes algoritmos más lentos. [ 15 ] [ 18 ] [ 19 ]

Bolas de contención más pequeñas en geometría no euclidiana

La bola envolvente más pequeña de un conjunto finito de puntos se ha estudiado en geometría riemanniana, incluyendo variedades de Cartan-Hadamard . [ 20 ]

Véase también

Referencias

  1. 1 2 Elzinga, J.; Hearn, DW (1972), "El problema de la esfera de cobertura mínima", Management Science , 19 : 96–104 , doi : 10.1287/mnsc.19.1.96
  2. Sylvester, JJ (1857), "Una cuestión en la geometría de la situación", Quarterly Journal of Mathematics , 1 : 79.
  3. Francis, RL; McGinnis, LF; White, JA (1992), Diseño y ubicación de instalaciones: un enfoque analítico (2.ª ed.), Englewood Cliffs, NJ: Prentice–Hall, Inc. .
  4. Welzl 1991 , pág. 2.
  5. 1 2 Megiddo, Nimrod (1983), "Algoritmos de tiempo lineal para programación lineal en R 3 y problemas relacionados", SIAM Journal on Computing , 12 (4): 759– 776, doi : 10.1137/0212052 , MR 0721011 , S2CID 14467740  .
  6. 1 2 Matoušek, Jiří ; Sharir, Micha ; Welzl, Emo (1996), "Una cota subexponencial para la programación lineal" (PDF) , Algorithmica , 16 ( 4–5 ): 498–516 , CiteSeerX 10.1.1.46.5644 , doi : 10.1007/BF01940877 , S2CID 877032  .
  7. 1 2 Shamos, MI ; Hoey, D. (1975), "Problemas del punto más cercano", Actas del 16.º Simposio Anual del IEEE sobre Fundamentos de la Informática , págs. 151–162 , doi : 10.1109/SFCS.1975.8 , S2CID 40615455  
  8. 1 2 Welzl, Emo (1991), "Discos envolventes más pequeños (bolas y elipsoides)", en Maurer, H. (ed.), Nuevos resultados y nuevas tendencias en informática , Lecture Notes in Computer Science, vol. 555, Springer-Verlag, pp. 359–370 , CiteSeerX 10.1.1.46.1450 , doi : 10.1007/BFb0038202 , ISBN    978-3-540-54869-0.
  9. Nielsen, Frank; Nock, Richard (2008), "Sobre el disco de información más pequeño que contiene información", Information Processing Letters , 105 (3): 93– 97, doi : 10.1016/j.ipl.2007.08.007
  10. Chakraborty, RK; Chaudhuri, PK (1981), "Nota sobre soluciones geométricas para algunos problemas de localización minimax", Transportation Science , 15 (2): 164–166 , doi : 10.1287/trsc.15.2.164.
  11. Elzinga, J.; Hearn, DW (1972), "Soluciones geométricas para algunos problemas de localización minimax", Transportation Science , 6 (4): 379–394 , doi : 10.1287/trsc.6.4.379.
  12. Drezner, Zvi; Shelah, Saharon (1987), "Sobre la complejidad del algoritmo de Elzinga-Hearn para el problema del centro único", Mathematics of Operations Research , 12 (2): 255–261 , doi : 10.1287/moor.12.2.255 , JSTOR 3689688 .
  13. Hearn, DW; Vijay, J.; Nickel, S. (1995), "Códigos de algoritmos geométricos para el problema del círculo mínimo (ponderado)", European Journal of Operational Research , 80 : 236–237 , doi : 10.1016/0377-2217(95)90075-6.
  14. Jacobsen, SK (1981), "Un algoritmo para el problema minimax de Weber", European Journal of Operational Research , 6 (2): 144– 148, doi : 10.1016/0377-2217(81)90200-9.
  15. 1 2 3 Hearn, DW; Vijay, J. (1982), "Algoritmos eficientes para el problema del círculo mínimo (ponderado)", Operations Research , 30 (4): 777–795 , doi : 10.1287/opre.30.4.777.
  16. Elzinga, J.; Hearn, DW; Randolph, WD (1976), "Ubicación multifacética minimax con distancias euclidianas", Transportation Science , 10 (4): 321–336 , doi : 10.1287/trsc.10.4.321.
  17. Lawson, CL (1965), "El cono o esfera de recubrimiento más pequeño", SIAM Review , 7 (3): 415– 417, doi : 10.1137/1007084.
  18. Megiddo, N. (1983), "El problema euclidiano ponderado de 1 centro", Matemáticas de la Investigación Operativa , 8 (4): 498– 504, doi : 10.1287/moor.8.4.498.
  19. Megiddo, N. ; Zemel, E. (1986), "Un algoritmo aleatorio O ( n log n ) para el problema euclidiano ponderado de 1 centro", Journal of Algorithms , 7 (3): 358– 368, doi : 10.1016/0196-6774(86)90027-1  .
  20. Arnaudon, Marc; Nielsen, Frank (2013), "Sobre la aproximación del 1-centro riemanniano", Geometría Computacional , 46 (1): 93– 104, arXiv : 1101.4718 , doi : 10.1016/j.comgeo.2012.04.007
  • El código de bolas de contención más pequeño de Bernd Gärtner
  • CGAL, el paquete Min_sphere_of_spheres de la Biblioteca de Algoritmos de Geometría Computacional (CGAL).
  • Miniball es una implementación de código abierto de un algoritmo para el problema de la bola más pequeña que contiene un objeto, para dimensiones bajas y moderadamente altas.