Articulo de referencia

Algoritmo de línea de barrido

Animación del algoritmo de Fortune , una técnica de barrido lineal para construir diagramas de Voronoi . En geometría computacional , un algoritmo de barrido lineal o de barrido...

Animación del algoritmo de Fortune , una técnica de barrido lineal para construir diagramas de Voronoi .

En geometría computacional , un algoritmo de barrido lineal o de barrido plano es un paradigma algorítmico que utiliza una línea o superficie de barrido conceptual para resolver diversos problemas en el espacio euclidiano . Es una de las técnicas fundamentales en geometría computacional.

La idea detrás de los algoritmos de este tipo es imaginar que una línea (a menudo vertical) se desplaza por el plano, deteniéndose en ciertos puntos. Las operaciones geométricas se limitan a los objetos geométricos que se intersecan o se encuentran en las inmediaciones de la línea de desplazamiento cuando esta se detiene, y la solución completa está disponible una vez que la línea ha pasado por todos los objetos.

Aplicaciones

Una aplicación de este enfoque condujo a un avance significativo en la complejidad computacional de los algoritmos geométricos cuando Shamos y Hoey presentaron algoritmos para la intersección de segmentos de línea en el plano en 1976. En particular, describieron cómo una combinación del enfoque de línea de exploración con estructuras de datos eficientes ( árboles de búsqueda binaria autoequilibrados ) permite detectar si existen intersecciones entre N segmentos en el plano con una complejidad temporal de O ( N log N ) . [ 1 ] El algoritmo de Bentley-Ottmann, estrechamente relacionado , utiliza una técnica de línea de barrido para reportar todas las K intersecciones entre cualquier N segmentos en el plano con una complejidad temporal de O(( N + K ) log N ) y una complejidad espacial de O( N ) . [ 2 ]

Desde entonces, este enfoque se ha utilizado para diseñar algoritmos eficientes para una serie de problemas en geometría computacional, como la construcción del diagrama de Voronoi ( algoritmo de Fortune ) y la triangulación de Delaunay o las operaciones booleanas en polígonos .

Generalizaciones y extensiones

El barrido topológico es una forma de barrido plano con un ordenamiento simple de los puntos de procesamiento, lo que evita la necesidad de ordenar completamente los puntos; permite que algunos algoritmos de barrido lineal se realicen de manera más eficiente.

La técnica de calibradores giratorios para el diseño de algoritmos geométricos también puede interpretarse como una forma de barrido de plano, en el dual proyectivo del plano de entrada: una forma de dualidad proyectiva transforma la pendiente de una línea en un plano en la coordenada x de un punto en el plano dual, de modo que la progresión a través de líneas ordenadas por su pendiente, tal como la realiza un algoritmo de calibradores giratorios, es dual a la progresión a través de puntos ordenados por sus coordenadas x en un algoritmo de barrido de plano. [ 3 ]

El enfoque de barrido puede generalizarse a dimensiones superiores. [ 4 ]

Referencias

  1. Shamos, Michael I. ; Hoey, Dan (1976), "Problemas de intersección geométrica", Actas del 17.º Simposio IEEE sobre Fundamentos de la Informática (FOCS '76) , págs. 208–215 , doi : 10.1109/SFCS.1976.16 , S2CID 124804  .
  2. Souvaine, Diane (2008), Intersección de segmentos de línea mediante un algoritmo de barrido de línea (PDF).
  3. Cheung, Yam Ki; Daescu, Ovidiu (2009). "Localización de instalaciones de segmentos de línea en subdivisiones ponderadas". En Goldberg, Andrew V.; Zhou, Yunhong (eds.). Aspectos algorítmicos en información y gestión, 5.ª Conferencia Internacional, AAIM 2009, San Francisco, CA, EE. UU., 15-17 de junio de 2009. Actas . Lecture Notes in Computer Science. Vol. 5564. Springer (1). pp. 100–113 . doi : 10.1007/978-3-642-02158-9_10 . ISBN   978-3-642-02157-2.
  4. Sinclair, David (2016-02-11). "Un algoritmo de barrido 3D para calcular envolventes convexas y triangulación de Delaunay". arXiv : 1602.04707 [ cs.CG ].