0% encontró este documento útil (0 votos)
106 vistas29 páginas

Algoritmos y Aplicaciones del Diagrama de Voronoi

Este documento presenta el diagrama de Voronoi, incluyendo su definición, propiedades geométricas y varias aplicaciones. Describe cómo el diagrama de Voronoi puede usarse para analizar la ubicación de recursos, planificar nuevas localizaciones, definir vecinos y realizar interpolación natural. Además, explica cómo el diagrama se puede usar con triangulaciones de Delaunay y para encontrar caminos sin obstáculos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
106 vistas29 páginas

Algoritmos y Aplicaciones del Diagrama de Voronoi

Este documento presenta el diagrama de Voronoi, incluyendo su definición, propiedades geométricas y varias aplicaciones. Describe cómo el diagrama de Voronoi puede usarse para analizar la ubicación de recursos, planificar nuevas localizaciones, definir vecinos y realizar interpolación natural. Además, explica cómo el diagrama se puede usar con triangulaciones de Delaunay y para encontrar caminos sin obstáculos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción

Aplicaciones
Primer Algoritmo
Segundo Algoritmo - Algoritmo de Fortune

Diagrama de Voronoi

Jose Luis Bravo Trinidad

1 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Aplicaciones Definición
Primer Algoritmo Propiedades geométricas
Segundo Algoritmo - Algoritmo de Fortune

Índice

1 Introducción Descripción
Definición Implementación
Propiedades geométricas Eficiencia
2 Aplicaciones 4 Segundo Algoritmo -
Análisis de recursos Algoritmo de Fortune
Triangulaciones Descripción
Robótica eventos
Diseño Algoritmo
3 Primer Algoritmo Eficiencia

2 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Aplicaciones Definición
Primer Algoritmo Propiedades geométricas
Segundo Algoritmo - Algoritmo de Fortune

Definición

Dado un conjunto de puntos


{p1 , . . . , pn } en el plano,
denominaremos diagrama de
Voronoi a la subdivisión del
plano en subregiones tales que
la región i es el conjunto de
puntos más cercanos a pi que a
cualquiera de los pj , j 6= i.

3 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Aplicaciones Definición
Primer Algoritmo Propiedades geométricas
Segundo Algoritmo - Algoritmo de Fortune

Propiedades

El conjunto de puntos equidistantes de dos dados es una lı́nea


recta
El conjunto de puntos equidistantes de tres o más dados es un
punto (si existe)
Las componentes conexas del complementario del conjunto de
puntos que equidistan de dos o más pi son las regiones
buscadas.

4 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Aplicaciones Definición
Primer Algoritmo Propiedades geométricas
Segundo Algoritmo - Algoritmo de Fortune

Regiones

Fijado un punto pi , consideremos para cada pj , j 6= i las recta rj


formada por los puntos que equidistan de pi y pj .
La recta rj divide al plano en dos semiplanos, en uno de los cuales
está pi , al que llamaremos πj .

5 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Aplicaciones Definición
Primer Algoritmo Propiedades geométricas
Segundo Algoritmo - Algoritmo de Fortune

Regiones

La región del diagrama de Voronoi que contiene a pi puede


obtenerse como la intersección de todos los semiplanos πj .
\
Vi = πj
Como los semiplanos son convexos y la intersección de convexos es
convexa, entonces cada región del diagrama de Voronoi es convexa.

6 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Índice

1 Introducción Descripción
Definición Implementación
Propiedades geométricas Eficiencia
2 Aplicaciones 4 Segundo Algoritmo -
Análisis de recursos Algoritmo de Fortune
Triangulaciones Descripción
Robótica eventos
Diseño Algoritmo
3 Primer Algoritmo Eficiencia

7 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Áreas de influencia
Supongamos que tenemos un conjunto de recursos geográficos en
un área (hospitales, colegios, antenas, servidores, etc). Podemos
modelar la población que usará cada uno de esos recursos
mediante un diagrama de Voronoi, asumiendo que el acceso se
hará preferentemente al recurso más cercano y que la distancia
euclidea aproxima bien al coste de desplazamiento.

8 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Localizaciones

Un problema relacionado con el anterior es, dada una serie de


recursos, planificar dónde deberı́a colocarse el siguiente.
Si queremos que diste lo más posible de los existentes (o que el
área cubierta sea máxima) entonces los vértices del diagrama de
Voronoi son los puntos óptimos.

9 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Thiessen neighbors

Una manera de definir los vecinos de un punto dado, es considerar


las regiones adyacentes a la región en la que se encuentra el punto.

10 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Interpolación natural
Dado un conjunto de datos obtenidos en ciertas localizaciones, se
asigna a cada punto un valor en función del área que ocuparı́a su
región (de Voronoi) sobre las regiones determinadas en el conjunto
de puntos donde hay datos.

11 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Triangulaciones

Supongamos que tenemos una superficie dada por una serie de


puntos y sus alturas. Uno de los modos de reconstruir la superficie
es hacer una triangulación. De todas las posibles, la triangulación
de Delaunay es la que tiene los ángulos menos agudos, por lo que
es la que se utiliza para el modelado.

12 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Caminos sin obstáculos

Supongamos que tenemos una región con obstáculos. Si


calculamos su diagrama de Voronoi (se puede hacer también
cuando sustituimos los puntos por cualquier otra figura
geométrica), las aristas del diagrama serán los caminos que pasan
más lejos de los obstáculos.

13 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Análisis de recursos
Aplicaciones Triangulaciones
Primer Algoritmo Robótica
Segundo Algoritmo - Algoritmo de Fortune Diseño

Voronoi en la naturaleza/diseño

Los diagramas de Voronoi están presentes en multitud de


fenómenos naturales cuando muchas cosas crecen en un mismo
espacio (cristales, células, etc).
También el diseño actual lo toma como elemento de creación (ver
más en, por ejemplo, theverymany.net).

14 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Descripción
Aplicaciones
Implementación
Primer Algoritmo
Eficiencia
Segundo Algoritmo - Algoritmo de Fortune

Índice

1 Introducción Descripción
Definición Implementación
Propiedades geométricas Eficiencia
2 Aplicaciones 4 Segundo Algoritmo -
Análisis de recursos Algoritmo de Fortune
Triangulaciones Descripción
Robótica eventos
Diseño Algoritmo
3 Primer Algoritmo Eficiencia

15 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Descripción
Aplicaciones
Implementación
Primer Algoritmo
Eficiencia
Segundo Algoritmo - Algoritmo de Fortune

Descripción

Por simplificar, tanto en este algoritmo como en el siguiente nos


centraremos sólo en calcular los vértices del diagrama de Voronoi,
aunque se pueden completar para calcular el grafo completo.
La manera más simple de calcular los vértices es:
Considerar todas las combinaciones de tres vértices posibles.
Para cada tres vértices, calcular el centro de la única
circunferencia que pasa por ellos.
Comprobar que dicha circunferencia no contiene a ningún otro
vértice.
Para no repetir combinaciones de tres vértices, podemos suponer
que están ordenados, es decir, son pi , pj , pk con i < j < k.

16 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Descripción
Aplicaciones
Implementación
Primer Algoritmo
Eficiencia
Segundo Algoritmo - Algoritmo de Fortune

Implementación
Podemos generar todas sus combinaciones del siguiente modo:
1 Recorremos todas las posibilidades para el pi con un bucle (i
tendrá que ir desde 1 hasta n − 2.
2 Dentro del bucle anterior, recorremos todas las posibilidades
para pj (j tendrá que ir desde i + 1 -j es mayor que i- hasta
n − 1).
3 Dentro del bucle anterior, recorremos pk (k desde j + 1 hasta
n).
Dentro de todos esos bucles, tenemos que calcular el circuncentro.
Se puede buscar la fórmula o calcular la intersección de las dos
mediatrices: entre pi y pj y entre pj y pk . Dentro del mismo bucle,
habrá que recorrer todos los puntos para ver si algún otro punto
queda dentro.
17 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción
Descripción
Aplicaciones
Implementación
Primer Algoritmo
Eficiencia
Segundo Algoritmo - Algoritmo de Fortune

Eficiencia

Como tenemos cuatro bucles anidados y cada uno recorre


aproximadamente n valores, tendremos que el algoritmo tarda un
tiempo del orden de n4 .

18 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Índice

1 Introducción Descripción
Definición Implementación
Propiedades geométricas Eficiencia
2 Aplicaciones 4 Segundo Algoritmo -
Análisis de recursos Algoritmo de Fortune
Triangulaciones Descripción
Robótica eventos
Diseño Algoritmo
3 Primer Algoritmo Eficiencia

19 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Beach line

El algoritmo de Fortune es una equidistan de la “sweep line” y


variación de los algoritmos tipo algún pi por encima de la
“sweep line” aplicado al cálculo “sweep line”.
del diagrama de Voronoi.
El problema al barrer el plano
con una lı́nea es que la parte del
diagrama que cae por encima de
la lı́nea puede modificarse por
puntos que están debajo.
Para evitar este problema se
construye la “beach line”, el
conjunto de puntos que
20 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Estructura de la “beach line”

Para cada punto pi por encima Por tanto, estará formada por
de la “sweep line”, el conjunto arcos de parábola.
de puntos que equidistan de pi y
de la “sweep line” es una
parábola. Si construimos todas
las parábolas correspondientes a
puntos pi por encima de la
“sweep line” y tomamo el
ı́nfimo de la coordenada y ,
obtendremos la “beach line”.

21 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Estructura de la “beach line”

Cada dos arcos de parábola se


cortan en un punto que
equidista de dos pi (y de la
“sweep line”), luego será parte
de una arista del diagrama de
Voronoi.
Los vértices del diagrama se
corresponden con puntos donde
coinciden las distancias de tres
puntos. Cuando la “beach line”
llegua a un punto de este tipo,
lo que ocurre es que un arco de
parábola desaparece.
22 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Eventos

Igual que en el algoritmo de intersección de segmentos, no


guardaremos la “beach line” sino que sólo miraremos cuando
cambia su topologı́a (cuándo aparece o desaparece un arco de
parábola).
A los puntos en los que cambia la topologı́a los denominaremos
eventos. Los eventos se guardarán en una lista de eventos,
ordenada por la coordenada y de la posición de la “sweep line” que
hace que ocurra el evento.
Existen únicamente dos tipos de eventos: la aparición de un nuevo
arco o la desaparición de un arco.

23 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Aparición de arcos

Un nuevo arco únicamente puede aparecer cuando un nuevo vértice


toca la “sweep line”. Cada arco lo marcaremos con el ı́ndice del
vértice que lo ha generado.

24 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Desaparición de arcos

Como vimos anteriormente, un arco sólo desaparece en los vértices


del diagrama de Voronoi. Es decir, en un punto q que equidista de
tres pi cuyos arcos son consecutivos en la “beach line”.

25 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Descripción global

El esquema del algoritmo de Fortune es similar al de los algoritmos


de “sweep line”:
Generamos una lista con todos los eventos que se conocen en
el instante inicial. En este caso todos los puntos pi . Se
ordenan según la ordenada y .
Se genera una estructura para guardar la “beach line”. En
este caso generaremos una matriz, aunque la estructura más
eficiente es un árbol de búsqueda binario.
Se elige el primer evento de la lista. Se elimina de la lista y se
procesa.
Repetimos el paso anterior hasta que no queden eventos.

26 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Manejo de eventos

Para terminar el algoritmo anterior sólo nos falta decidir cómo se


procesa cada uno de los eventos.
Evento de creación: Se coloca un nuevo arco en la “beach line”.
Para ello miramos qué arco cae en la vertical del punto que provocó
el evento. Se marca el arco con el ı́ndice del punto que lo crea.
Se miran las dos nuevas ternas que se han generado en la “beach
line” para ver si se produce algún evento circular (es decir, se
calcula el centro de la circunferencia que pasa por los tres puntos).
En dicho caso se almacena el evento.
Para los eventos circulares, hay que almacenar a qué altura de la
“sweep line” se producirán. La altura es la coordenada y del centro
de la circunverencia menos su radio.
27 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Manejo de eventos

Evento circular. Se elimina el arco correspondiente. Se comprueba


si las nuevas ternas de puntos de la “beach line” producen algún
evento circular.
Se elimina cualquier evento circula que estuviese en alguna de las
aristas que se han cortado (y en la dirección adecuada).
Se añade el punto de intersección al diagrama de Voronoi.

28 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi


Introducción Descripción
Aplicaciones eventos
Primer Algoritmo Algoritmo
Segundo Algoritmo - Algoritmo de Fortune Eficiencia

Eficiencia

El número de eventos es proporcional al número de puntos, n, (se


puede probar que el número de intersecciones del diagrama es
proporcional a n). En cada evento el coste de procesarlo (si se
emplea un árbol de búsqueda binario) es log(n), dando un tiempo
total de n log(n).

29 / 29

Jose Luis Bravo Trinidad Diagrama de Voronoi

También podría gustarte