Algoritmo de triangulación voraz
método de cálculo geométrico
From Wikipedia, the free encyclopedia
El Algoritmo de Triangulación Voraz es un método para calcular una triangulación de un polígono o de una nube de puntos mediante un método voraz, que consiste en añadir aristas a la solución de una en una uniendo el par de vértices más próximos entre sí, con la condición de que una nueva arista no puede cortar a otra previamente añadida al resultado. [1][2]
| Algoritmo de Triangulación Voraz | ||
|---|---|---|
|
Triangulación del interior de un polígono paso a paso mediante el algoritmo voraz que escoge la diagonal más corta. | ||
| Tipo | Algoritmo voraz | |
| Problema que resuelve | Triangulación de un polígono | |
| Estructura de datos | ||
| Clase de complejidad | P | |
| Tiempo de ejecución | ||
| Peor caso | ||
| Mejor caso | ||
Propiedades
Las triangulaciones calculadas mediante el algoritmo de triangulación voraz tienen las siguientes propiedades:
- Son una buena aproximación de la triangulación de peso mínimo de un polígono o nube de puntos, aunque no siempre coinciden.
- Frecuentemente, aunque no siempre, suelen coincidir con la triangulación de Delaunay de los mismos datos de entrada.
- Si la entrada es una nube de puntos, todas las aristas del cierre convexo pertenecen a la triangulación voraz.
- Si la entrada es un polígono, las aristas de la triangulación son un subconjunto de las diagonales internas del polígono.
- La implementación por fuerza bruta del algoritmo es de orden para un conjunto de entrada de puntos.[3]
- Existen implementaciones capaces de calcular la triangulación voraz en tiempo empleando estructuras adicionales para comprobar los cruces entre aristas.[2]
- La triangulación voraz puede calcularse a partir de la triangulación de Delaunay añadiendo una cantidad de tiempo lineal.[4]
Pseudoalgoritmo
Existen varias posibles estrategias para implementar el algoritmo de triangulación voraz. Tal vez, la más sencilla de todas sea la siguiente:
| Algoritmo triangulación voraz |
|
Sin embargo, existen soluciones alternativas que pueden acelerar mucho la construcción en caso de que la entrada tenga un tamaño considerable.[2] Especialmente si el número de vértices en la entrada es grande, se debería evitar la comparación de todos los vértices de entrada dos a dos, ya que es un problema de orden . Para ello debería emplearse alguna versión eficiente del Problema del par de puntos más cercanos (que puede resolverse en tiempo ),[5][6] o bien emplear una triangulación de Delaunay como paso intermedio.[4]