Fuerza bruta Algoritmo de triangulación de Delaunay complejidad

16

En el libro "Geometría computacional: algoritmos y aplicaciones" de Mark de Berg et al., Hay un algoritmo de fuerza bruta muy simple para calcular triangulaciones de Delaunay. El algoritmo utiliza la noción de bordes ilegales : bordes que pueden no aparecer en una triangulación de Delaunay válida y deben ser reemplazados por algunos otros bordes. En cada paso, el algoritmo solo encuentra estos bordes ilegales y realiza los desplazamientos necesarios (llamados cambios de borde ) hasta que no haya bordes ilegales.

Algoritmo Triangulación Legal ( T )

Entrada . Algunos triangulación T de un conjunto de puntos P .
Salida . Una triangulación legal de P .

mientras T contiene un borde ilegal pipj
do
Sean pipjpk y pipjpl los dos triángulos adyacentes a pipj .
Quite pipj de T y agregue pkpl lugar.
volver T .

He oído que este algoritmo se ejecuta en tiempo en el peor de los casos; sin embargo, no me queda claro si esta afirmación es correcta o no. En caso afirmativo, ¿cómo se puede probar este límite superior?O(n2)

Mikhail Dubov
fuente
55
En la forma que ha indicado anteriormente, toma tiempo. Sin embargo, el uso de una pila se puede hacer en tiempo O ( n 2 ) . Puede mirar la última página en estas notas de clase . El argumento básico es que puede haber a lo sumo ( nO(n3)O(n2) vueltas de borde. (n2)
rizwanhudda
2
@rizwanhudda: ¿Por qué no hacer de esto una respuesta?
Raphael

Respuestas:

8

Una triangulación de Delaunay puede considerarse como el casco convexo inferior del conjunto de puntos 2D elevado al paraboloide. Por lo tanto, si se toma su conjunto de puntos 2d y asignar a cada punto un z coordenada z i = x 2 i + y 2 1 , a continuación, la proyección de la envolvente convexa inferior en la x y un plano te da la triangulación de Delaunay.(xi,yi)zzi=xi2+y12xy

Usando esta perspectiva, ¿qué significa que una ventaja sea ​​ilegal? En primer lugar, para cada triangulación T podemos utilizar el mapa parabólica para conseguir una superficie 3d (triangular) que los proyectos a T . Por supuesto, esta superficie no es necesariamente convexa, si fuera convexa, T sería la triangulación de Delaunay. Simplemente hablando, el borde ( p i , p j ) es una obstrucción para la convexidad de la superficie, un borde cóncavo . Al voltear este borde, cambiamos la situación en la superficie elevada solo localmente. Así que echemos un vistazo a los 4 puntos(pi,pj)TTT(pi,pj) . En 3d forman un tetraedro, que se proyecta hasta el cuadrilátero. Como los dos triángulos p i p j p k y p i p j p l definen el borde cóncavo ( p i , p j ) , los triángulos p k p l p i y p k p l p j definen el borde convexo (pi,pj,pk,plpipjpkpipjpl(pi,pj)pkplpipkplpj . Por lo tanto, voltear un borde ilegal corresponde a reemplazar un borde cóncavo por un borde convexo en el levantamiento. Tenga en cuenta que estos volteos pueden convertir otros bordes convexos en bordes cóncavos.(pl,pk)

3D Flip interpretation Observación: la imagen no es geométricamente correcta y solo debe considerarse como un boceto.

Deje ser la triangulación después de la vuelta. La superficie elevada de T ' "contiene" la superficie de T . Con esto quiero decir que si observas las dos superficies desde el plano x y solo ves triángulos desde la superficie de T ' (o triángulos que están en ambas superficies). También se podría decir que la superficie de T ' encierra más volumen. Además, el borde ( p i , p j ) se encuentra ahora "detrás" de la superficie elevada inducida por T ' cuando se observa desde el plano x y .TTTxyTT(pi,pj)Txy

Durante la secuencia de volteo obtenemos una secuencia de superficies con un volumen estrictamente creciente. Por lo tanto, el borde encuentra "detrás" de todas estas superficies. Por lo tanto, nunca puede reaparecer durante el proceso de volteo. Como solo hay n, elija 2 aristas posibles, tenemos como máximo O ( n 2 ) volteretas.(pi,pj)nO(n2)

A.Schulz
fuente