Está en la página 1de 72

Tema 3

Diagrama de
Voronoi

Fundamentos de Georgy Feodosevich Voronoi (1868-1908)


Geometría
Computacional
I.T.I. Gestión
Introducción
Tema 3
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Introducción
Tema 3
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades http://www.pi6.fernuni-hagen.de/GeomLab/VoroGlide/index.html.en

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Historia
Tema 3
Diagrama de Primera aparición en el siglo XVII, en un libro de R.
Voronoi Descartes.
Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Historia
Tema 3 Ha sido redescubierto varias veces en distintos
Diagrama de
Voronoi campos científicos.

Introducción Descartes Astronomy 1644 “Heavens”


Dirichlet Math 1850 Dirichlet tesselation
Historia
Aplicaciones Voronoi Math 1908 Voronoi diagram
Boldyrev Geology 1909 area of influence polygons
Propiedades
Thiessen Meteorology 1911 Thiessen polygons
Allgoritmos
Niggli Crystallography 1927 domains of action
Wigner & Seitz Physics 1933 Wigner-Seitz regions
Incremental
Divide y vencerás Frank & Casper Physics 1958 atom domains
Fortune
Brown Ecology 1965 areas potentially available
Envolvente
Mead Ecology 1966 plant polygons
convexa
Fundamentos de Hoofd et al. Anatomy 1985 capillary domains
Geometría Icke Astronomy 1987 Voronoi diagram
Computacional
I.T.I. Gestión
Historia
Tema 3
Diagrama de
Voronoi
En el siglo XIX John Snow lo utiliza para
determinar la fuente de una epidemia de cólera
Introducción en Londres.
Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3 Cartografía, por ejemplo para construir una
Diagrama de
Voronoi
imagen a partir de varias fotos aéreas o de
satélite.
Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Construcción del medial axis o del esqueleto

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Construcción del medial axis o del esqueleto

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Construcción del medial axis o del esqueleto

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Construcción del medial axis o del esqueleto

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente que puede usarse, entre otras cosas, para


convexa
Fundamentos de reconocer caracteres.
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Ecología.

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Voronoi Art.
Fundamentos de http://www.cgl.uwaterloo.ca/~csk/projects/voronoi/
Geometría http://www.josleys.com/show_gallery.php?galid=284
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Colocar o evitar sensores.

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Diseño de rutas de robots.

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Aplicaciones
Tema 3
Diagrama de
Voronoi
Y otras muchas (meteorología, ecología, geología,
antropología,…) en
Introducción
http://www.ics.uci.edu/~eppstein/gina/scot.drysdale.html
Historia
Aplicaciones
http://www.voronoi.com
Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Propiedades
Tema 3 ¿Qué puntos del plano están más cerca Región de Voronoi del
Diagrama de del punto pi (rojo) que del resto de punto pi
Voronoi puntos de la nube (azules)?
Vor(pi)
Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Propiedades
Tema 3 ¿Qué puntos del plano están más cerca Región de Voronoi del
Diagrama de del punto pi (rojo) que del resto de punto pi
Voronoi puntos de la nube (azules)?
Vor(pi)
Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de El diagrama de Voronoi es la unión de las regiones de
Geometría
Computacional Voronoi de cada uno de los puntos de la nube.
I.T.I. Gestión
Propiedades
Tema 3 ¿Qué puntos del plano están más cerca Región de Voronoi del
Diagrama de del punto pi (rojo) que del resto de punto pi
Voronoi puntos de la nube (azules)?
Vor(pi)
Introducción

Historia Vértices Generadores


Aplicaciones

Propiedades

Allgoritmos Aristas
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de El diagrama de Voronoi es la unión de las regiones de
Geometría
Computacional Voronoi de cada uno de los puntos de la nube.
I.T.I. Gestión
Propiedades
Tema 3 Cada arista está en la
Diagrama de
mediatriz del segmento
Voronoi
pipj que une dos puntos
(vecinos) de la nube.
Introducción

Historia El vecino más cercano a


Aplicaciones cada punto pi define una
arista del polígono de
Propiedades Voronoi de dicho punto
pi.
Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Propiedades
Tema 3 Cada arista está en la
Diagrama de
mediatriz del segmento
Voronoi
pipj que une dos puntos
(vecinos) de la nube.
Introducción

Historia El vecino más cercano a


Aplicaciones cada punto pi define una
arista del polígono de
Propiedades Voronoi de dicho punto
pi.
Allgoritmos
Incremental Cada vértice es un punto
Divide y vencerás equidistante a tres
Fortune generadores (o más si
es un caso degenerado)
Envolvente
convexa y es la intersección de
Fundamentos de
tres aristas.
Geometría
Computacional
I.T.I. Gestión
Propiedades
Tema 3
Diagrama de Una región de Voronoi
Voronoi es un polígino convexo o
una región no acotada.
Introducción
Una región de Voronoi
Historia es no acotada si su
Aplicaciones
punto generador
Propiedades
pertenece a la
envolvente convexa de
la nube de puntos.
Allgoritmos
Incremental
Una región de Voronoi
Divide y vencerás
Fortune
es un polígono convexo
si su punto generador es
Envolvente interior a la envolvente
convexa convexa de la nube de
Fundamentos de puntos.
Geometría
Computacional
I.T.I. Gestión
Propiedades
Tema 3 Dado un punto q
Diagrama de llamaremos círculo
Voronoi máximo vacío, C(q), al
mayor círculo centrado en
Introducción q que no contiene a ningún
generador del diagrama en
Historia su interior.
Aplicaciones

Propiedades

q
Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Propiedades
Tema 3 Dado un punto q
Diagrama de llamaremos círculo
Voronoi máximo vacío, C(q), al
mayor círculo centrado en q
Introducción q que no contiene a ningún
generador del diagrama en
Historia su interior.
Aplicaciones

Propiedades

Allgoritmos La mediatriz entre dos


Incremental generadores define una arista
Divide y vencerás de Vor(S) si (y sólo si) existe
Fortune un punto q sobre dicha
mediatriz tal que C(q)
Envolvente
convexa contiene solamente a estos
Fundamentos de
dos generadores en su
Geometría frontera.
Computacional
I.T.I. Gestión
Propiedades
Tema 3 Dado un punto q
Diagrama de llamaremos círculo
Voronoi máximo vacío, C(q), al
mayor círculo centrado en
Introducción q que no contiene a ningún
generador del diagrama en
Historia su interior.
Aplicaciones

Propiedades
q

Allgoritmos
Un punto q es vértice de Vor(S)
Incremental
si (y sólo si) C(q) contiene tres o
Divide y vencerás
Fortune
(en el caso de tratarse de un
diagrama degenerado) más
Envolvente generadores en su frontera
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Cálculo del diagrama
Tema 3 ¿Cómo calcular la región de Voronoi, Vor(pi), de un punto (rojo)?
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Cálculo del diagrama
Tema 3 ¿Cómo calcular la región de Voronoi, Vor(pi), de un punto (rojo)?
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional Los puntos de V(pi) están más cerca del punto rojo que del amarillo
I.T.I. Gestión
Cálculo del diagrama
Tema 3 ¿Cómo calcular la región de Voronoi, Vor(pi), de un punto (rojo)?
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional Los puntos de V(pi) están más cerca del punto rojo que del marrón
I.T.I. Gestión
Cálculo del diagrama
Tema 3 ¿Cómo calcular la región de Voronoi, Vor(pi), de un punto (rojo)?
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Cálculo del diagrama
Tema 3 ¿Cómo calcular la región de Voronoi, Vor(pi), de un punto (rojo)?
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Cálculo del diagrama
Tema 3 ¿Cómo calcular la región de Voronoi, Vor(pi), de un punto (rojo)?
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Cálculo del diagrama
Tema 3 ¿Cómo calcular la región de Voronoi, Vor(pi), de un punto (rojo)?
Diagrama de
Voronoi Lema: La intersección de los semiplanos h(pi,pk) (i≠k) es Vor(pi).

Corolario: Vor(pi) es un convexo.


Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos pi

Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Cálculo del diagrama
Tema 3
Diagrama de
Voronoi Lema: La intersección de los semiplanos h(pi,pk) (i≠k) es Vor(pi).

Introducción

Historia Teorema: La intersección de n semiplanos se puede


Aplicaciones
calcular en tiempo óptimo O(n log n).
Propiedades

Allgoritmos Corolario: Vor(pi) se puede calcular en tiempo óptimo


O(n log n).
Incremental
Divide y vencerás
Fortune

Envolvente
convexa Corolario: El diagrama de Voronoi de una nube de n
Fundamentos de puntos se puede calcular en tiempo óptimo O(n2log n).
Geometría
Computacional
I.T.I. Gestión
Algoritmo incremental
Tema 3 Construimos el diagrama de S = {p1,...,pn} punto a punto.
Diagrama de
Voronoi
Suponemos que tenemos el diagrama de Sj = {p1,...,pj}
y añadimos un nuevo punto pj+1.
Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
pj+1
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Algoritmo incremental
Tema 3 Construimos el diagrama de S = {p1,...,pn} punto a punto.
Diagrama de
Voronoi
Suponemos que tenemos el diagrama de Sj = {p1,...,pj}
y añadimos un nuevo punto pj+1.
Introducción
Encontramos la región
Historia Vor(pk) donde se
Aplicaciones encuentra el punto pj+1.
Propiedades
Trazamos la mediatriz del
segmento pj+1pk.
Allgoritmos
Incremental Trazamos la mediatriz del
pj+1
Divide y vencerás segmento pj+1pi, siendo pi
Fortune “vecino” del vértice pk
Envolvente pk
convexa Eliminar las porciones de
Fundamentos de arista y los vértices que
Geometría queden dentro de la
Computacional
I.T.I. Gestión nueva región.
Algoritmo incremental
Tema 3 Construimos el diagrama de S = {p1,...,pn} punto a punto.
Diagrama de
Voronoi
Suponemos que tenemos el diagrama de Sj = {p1,...,pj}
y añadimos un nuevo punto pj+1.
Introducción
Encontramos la región
Historia Vor(pk) donde se
Aplicaciones encuentra el punto pj+1.
Propiedades
Trazamos la mediatriz del
segmento pj+1pk.
Allgoritmos
Incremental Trazamos la mediatriz del
Divide y vencerás segmento pj+1pi, siendo pi
Fortune “vecino” del vértice pk
Envolvente
convexa Eliminar las porciones de
Fundamentos de arista y los vértices que
Geometría queden dentro de la
Computacional
I.T.I. Gestión nueva región.
Algoritmo incremental
Tema 3 Construimos el diagrama de S = {p1,...,pn} punto a punto.
Diagrama de
Voronoi
Suponemos que tenemos el diagrama de Sj = {p1,...,pj}
y añadimos un nuevo punto pj+1.
Introducción
Encontramos la región
Historia Vor(pk) donde se Lema: Insertar cada punto
Aplicaciones encuentra el punto pj+1. cuesta O(n)

Propiedades
Trazamos la mediatriz del
segmento pj+1pk.
Allgoritmos
Incremental Trazamos la mediatriz del
Divide y vencerás segmento pj+1pi, siendo pi
Fortune “vecino” del vértice pk Teorema: El algoritmo incremental
Envolvente obtiene el diagrama de Voronoi de
convexa Eliminar las porciones de una nube de n puntos en un tiempo
Fundamentos de arista y los vértices que O(n2).
Geometría queden dentro de la
Computacional
I.T.I. Gestión nueva región.
Algoritmo incremental
Tema 3 ¡Ojo! El algoritmo falla si la región del nuevo punto es no
Diagrama de acotada.
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Algoritmo incremental
Tema 3 ¡Ojo! El algoritmo falla si la región del nuevo punto es no
Diagrama de acotada.
Voronoi

Esto puede arreglarse añadiendo tres puntos auxiliares.


Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Algoritmo Divide y Vencerás
Tema 3 1) Dividir S en dos
Diagrama de
subconjuntos S1 y S2
Voronoi
de aproximadamente
el mismo tamaño.
Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Algoritmo Divide y Vencerás
Tema 3 1) Dividir S en dos
Diagrama de
subconjuntos S1 y S2
Voronoi
de aproximadamente
el mismo tamaño.
Introducción

Historia
Aplicaciones 2) Calcular recursiva-
mente los diagramas
Propiedades Vor(S1) y Vor(S2)

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Algoritmo Divide y Vencerás
Tema 3 1) Dividir S en dos
Diagrama de
subconjuntos S1 y S2
Voronoi
de aproximadamente
el mismo tamaño.
Introducción

Historia
Aplicaciones 2) Calcular recursiva-
mente los diagramas
Propiedades Vor(S1) y Vor(S2)

Allgoritmos
3) Calcular Vos(S), a
Incremental partir de los diagra-
Divide y vencerás mas Vor(S1) y Vor(S2),
Fortune obtenidos en 2.
Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Algoritmo Divide y Vencerás
Tema 3 1) Dividir S en dos
Diagrama de
subconjuntos S1 y S2
Voronoi
de aproximadamente
el mismo tamaño.
Introducción

Historia
Aplicaciones 2) Calcular recursiva-
mente los diagramas
Propiedades Vor(S1) y Vor(S2)

Allgoritmos
Lema: Si dos subconjuntos están 3) Calcular Vos(S), a
Incremental separados por una línea vertical (S1 partir de los diagra-
Divide y vencerás a la izquierda y S2 a la derecha), mas Vor(S1) y Vor(S2),
Fortune existe una línea poligonal monótona obtenidos en 2.
Envolvente creciente c tal que todo punto q
convexa situado a la izquierda (derecha) de
Fundamentos de dicha poligonal está en la región de
Geometría Voronoi de un punto de S1 (S2).
Computacional
I.T.I. Gestión
Algoritmo Divide y Vencerás
Tema 3
Diagrama de
Voronoi

Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente Lema: Si dos subconjuntos están separados por una línea vertical
convexa (S1 a la izquierda y S2 a la derecha), existe una línea poligonal
Fundamentos de monótona creciente c tal que todo punto q situado a la izquierda
Geometría (derecha) de dicha poligonal está en la región de Voronoi de un
Computacional punto de S1 (S2).
I.T.I. Gestión
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
Introducción

Historia
Aplicaciones

Propiedades

Allgoritmos
Lema: Si dos subconjuntos están
Incremental separados por una línea vertical (S1
Divide y vencerás a la izquierda y S2 a la derecha),
Fortune existe una línea poligonal monótona
Envolvente creciente c tal que todo punto q
convexa situado a la izquierda (derecha) de
Fundamentos de dicha poligonal está en la región de ii) Eliminar las lineas de
Geometría Voronoi de un punto de S1 (S2). Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia
Aplicaciones

Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
q
i) Calcular la poligonal c.
Introducción
p 1) Encontrar un punto muy
alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
q
i) Calcular la poligonal c.
Introducción
p 1) Encontrar un punto muy
alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
q
i) Calcular la poligonal c.
Introducción
p 1) Encontrar un punto muy
alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune

Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
Introducción
p 1) Encontrar un punto muy
alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones
q de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune

Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
Introducción
p 1) Encontrar un punto muy
alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones
q de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
Introducción
p 1) Encontrar un punto muy
alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones
q de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
Introducción
p 1) Encontrar un punto muy
alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones
q de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones
q de un punto p de S1 y en la
region de un punto q de S2.
Propiedades
p
3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones
q de un punto p de S1 y en la
region de un punto q de S2.
Propiedades
p
3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones
q de un punto p de S1 y en la
region de un punto q de S2.
Propiedades
p
3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades
p
3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos q Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades
p
3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos q Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
Allgoritmos
p las dos regiones Vor(p) o
q Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
Allgoritmos
p las dos regiones Vor(p) o
q Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos q Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
p 5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos q Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
p 5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
Divide y vencerás
q 4) Si toca a Vor(p), actualizar p.
Si toca a Vor(q), actualizar q.
Fortune
p 5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 3) Calcular Vor(S), a partir
Diagrama de de Vor(S1) y Vor(S2).
Voronoi
i) Calcular la poligonal c.
1) Encontrar un punto muy
Introducción alto sobre la línea divisoria.

Historia 2) Este punto está en la región


Aplicaciones de un punto p de S1 y en la
region de un punto q de S2.
Propiedades 3) Trazar la mediatriz de pq
hasta que toque a alguna de
las dos regiones Vor(p) o
Allgoritmos Vor(q)
Incremental
4) Si toca a Vor(p), actualizar p.
Divide y vencerás
Si toca a Vor(q), actualizar q.
Fortune
5) Volver al paso 3
Envolvente
convexa
Fundamentos de ii) Eliminar las lineas de
Geometría Vos(S1) (Vor(S2)) a la derecha
Computacional
I.T.I. Gestión (izquierda) de c.
Algoritmo Divide y Vencerás
Tema 3 1) Dividir S en dos
Diagrama de
subconjuntos S1 y S2
Voronoi
T(n) de aproximadamente
el mismo tamaño.
Introducción =

Historia
Aplicaciones 2 T(n/2) 2) Calcular recursiva-
mente los diagramas
Propiedades Vor(S1) y Vor(S2)
+
Allgoritmos
3) Calcular Vos(S), a
Incremental partir de los diagra-
Divide y vencerás
O(n)
mas Vor(S1) y Vor(S2),
Fortune obtenidos en 2.
Envolvente
convexa
Fundamentos de
Geometría
T(n) = 2 T(n/2)+O(n) T(n) ∈ O(n lg n)
Computacional
I.T.I. Gestión
Algoritmo Divide y Vencerás
Tema 3 1) Dividir S en dos
Diagrama de
subconjuntos S1 y S2
Voronoi
de aproximadamente
Teorema: El método de divide el mismo tamaño.
Introducción y vencerás calcula el diagrama
de Voronoi de n puntos en el
Historia
Aplicaciones
plano en tiempo O(n log n).
2) Calcular recursiva-
mente los diagramas
Propiedades (este tiempo es óptimo) Vor(S1) y Vor(S2)

Allgoritmos
3) Calcular Vos(S), a
Incremental partir de los diagra-
Divide y vencerás mas Vor(S1) y Vor(S2),
Fortune obtenidos en 2.
Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Algoritmo de Fortune
Tema 3
Diagrama de
Voronoi

Introducción
http://www.ams.org/featurecolumn/archive/voronoi.html
Historia
Aplicaciones
http://www.dma.fi.upm.es/mabellanas/voronoi/applet/voronoi-jar.html
Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Voronoi y la envolvente convexa
Tema 3 A partir del diagrama de Voronoi podemos
Diagrama de calcular la envolvente convexa.
Voronoi

Introducción
Los vértices de la
envolvente son los
Historia generadores con
Aplicaciones región de Voronoi no
acotada.
Propiedades

Allgoritmos
Incremental
Divide y vencerás
Fortune

Envolvente
convexa
Fundamentos de
Geometría
Computacional
I.T.I. Gestión
Voronoi y la envolvente convexa
Tema 3 A partir del diagrama de Voronoi podemos
Diagrama de calcular la envolvente convexa.
Voronoi

Introducción
Los vértices de la
envolvente son los
Historia generadores con
Aplicaciones región de Voronoi no
acotada.
Propiedades

Allgoritmos Construir la envolvente


a partir del diagrama
Incremental
Divide y vencerás
de Voronoi cuesta
Fortune O(n).
Envolvente
convexa El diagrama de Voronoi puede
Fundamentos de
Geometría
construirse en tiempo óptimo
Computacional O(n log n).
I.T.I. Gestión
Ejercicios
Tema 3 1.- Describir las mediatrices (el conjunto de puntos que equidistan) de:
Diagrama de Un punto y una recta
Voronoi Dos rectas
Un punto y un segmento
Dos segmentos
Introducción
2.-Dados dos conjuntos de puntos A y B, cada uno de ellos con N puntos,
Historia encontrar el mínimo de la distancia de un punto de A a uno de B.
Aplicaciones
3.- Algunas de las métricas más usuales, además de la euclídea son las
Propiedades siguientes:
d1((x1,y1),(x2,y2))= |x1-x2|+|y1-y2| y dw((x1,y1),(x2,y2))= max{|x1-
Allgoritmos x2|,|y1-y2|}
Construir el diagrama de Voronoi de tres puntos con estas métricas.
Incremental
Divide y vencerás 4.- Dado un conjunto S de puntos en el plano, para cada punto p de S
Fortune definimos su región de Voronoi de los puntos más alejados como el lugar
Envolvente geométrico de los puntos del plano que están más alejados de p que de
convexa ningún otro punto de S. Diseñar un algoritmo que calcule el diagrama de
Voronoi de los puntos más alejados de S.
Fundamentos de
http://www.dma.fi.upm.es/mabellanas/tfcs/fvd/home.html
Geometría
Computacional
I.T.I. Gestión

También podría gustarte