Está en la página 1de 32

Tema5

ElDiagramadeVoronoi
GeometraComputacional

Curso: Profesora: Departamento: Ubicacin:

1deIngenieraInformtica,Plan2004 LidiaOrtegaAlvarado Informtica


http://wwwdi.ujaen.es/asignaturas/gc/tema5.odp

ndice
Introduccin Definicin Propiedades Algoritmosdeconstrucci n MtodoIncremental DivideyVencers Aplicacionesinmediatas Bibliografa

EldiagramadeVoronoi

Introduccin
Telfonodeemergencias:dndeseencuentra?.....leenvola ambulanciamscercana, Dndeycuantospostesdetelefonamvilhabraquecolocar paraquelarecepcindelasealseacompletaenunaregin? Dndecolocamosunnuevocomercioparaquesea competente? Cualserelgradodepurezadelosmineralesdeuna determinadazona?

EldiagramadeVoronoi

Introduccin
GeorgyFeodosevichVoronoi(18681908)

EldiagramadeVoronoi

Descartes Astronomia Dirichlet Matemticas Voronoi Matemticas Boldyrev Geologia Thiessen Meteorologa Niggli Cristalografa Wigner&Seitz Fsica Frank&Casper Fsica Brown Ecologa Mead Ecologa Hoofdetal. Anatoma Icke Astronoma

1644 1850 1908 1909 1911 1927 1933 1958 1965 1966 1985 1987

Heavens TesselationdeDirichlet Voronoidiagram areadeinfluenciadepolgonos polgonosdeTheissen dominiodeaccin regionesdeWignerSeitz dominiodelostomos

dominioscapilares Voronoidiagram

Definicin
Culeselpuntomscercanoalpuntox?

EldiagramadeVoronoi

Definicin
Elpuntoxestdentrodelaregindepuntosmscercanosal puntopi V(pi)

EldiagramadeVoronoi

pi

LaregindeVoronoidelpuntopiladenominamosV(pi)

Definicin
LaunindetodaslasregionesdeVoronoiesel diagramadeVoronoi

EldiagramadeVoronoi

V(P)={V(p0),V(p1),...,V(p0)} punto generador vrtice

arista

Propiedades
1.Dospuntospiypjsonvecinos sicompartenunaarista.Unaarista eslabisectrizperpendiculardel segmentopipj 2.Unvrticeesunpunto equidistanteatresgeneradores (siloesamsdetreshablamos decasosdegenerados)yes lainterseccindetresaristas 3.UnaregindeVoronoiesun polgonoconvexooesunaregin noacotada 4.UnaregindeVoronoiesno acotadasisupuntogenerador pertenecealaenvolventeconvexa delanubedepuntos 5.Dentrodelcrculoconcentroen unvrticedeVoronoiyquepasapor3 puntosgeneradoresnopuedeexistirningn otropuntogenerador pi pj

EldiagramadeVoronoi

Algoritmosdeconstruccin
MtodoIncremental
PASOi+1 PartiendodeldiagramadeVoronoi paralosipuntos,V(P0P1,...,Pi),se aadeelpuntoi+1,delsiguiente modo: 1.Selocalizaenpuntopi+1en V(p0,p1,...,pi)entiempoO(logn). SeaV(pk)lareginenlaque seencuentra. 2.Encontrarlasbisectricesentrepi+1 ypk,yentrepkyelrestodepuntoscuya fronteraesintersectadaporlassucesivasbisectrices 3.Eliminarlasporcionesdearistaylosvrticesquequedendentrodela nuevaregindeVoronoi

EldiagramadeVoronoi

pk

pi+1

Algoritmosdeconstruccin
MtodoIncremental
Tiempodeejecucin: Insertarelpuntopi+1

EldiagramadeVoronoi

localizacin:O(logn) crearlanuevareginO(1) eliminarvrticesyporciones dearistasO(1)

O(nlogn)

Algoritmosdeconstruccin
MtodoDivideyVencers
PartimosdelconjuntodepuntosS 1.DividirSendos subconjuntosS1yS2de aproximadamenteel mismotamao. 2.Calcularrecursivamente Vor(S1)yVor(S2). 3.UnirVor(S1)yVor(S2) paraobtenerVor(S). S1 S2

EldiagramadeVoronoi

Algoritmosdeconstruccin
MtodoDivideyVencers
PartimosdelconjuntodepuntosS 1.DividirSendos subconjuntosS1yS2de aproximadamenteel mismotamao. 2.Calcularrecursivamente Vor(S1)yVor(S2). 3.UnirVor(S1)yVor(S2) paraobtenerVor(S).

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
PartimosdelconjuntodepuntosS 1.DividirSendos subconjuntosS1yS2de aproximadamenteel mismotamao. 2.Calcularrecursivamente Vor(S1)yVor(S2). 3.UnirVor(S1)yVor(S2) paraobtenerVor(S).

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.UnirVor(S1)yVor(S2)
SiS1yS2estnseparadosporuna lneavertical(S1alaizquierdayS2a laderecha),existeunalneapoligonal montonacrecientetalquetodo puntoqsituadoalaizquierda (derecha)dedichapoligonalestenla regindeVoronoideunpuntodeS1 (S2).

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.1.Encontrarlacadena divisoria
1.Partirdeunalneaquellega desdeinfinitoyalcanzaala primeraregindeS1(ladel puntop)ylaprimeradeS2 (ladelpuntoq). 2.Calcularlabisectrizentre pyqhastaalcanzarunaarista deVoronoi,deS1odeS2

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.1.Encontrarlacadena divisoria
SisealcanzaunejedeS2se actualizaelpuntoqconelpunto vecino;sesealcanza unaaristadeS1seactualiza elpuntop

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.1.Encontrarlacadena divisoria
SisealcanzaunejedeS2se actualizaelpuntoqconelpunto vecino;sesealcanza unaaristadeS1seactualiza elpuntop

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.1.Encontrarlacadena divisoria
SisealcanzaunejedeS2se actualizaelpuntoqconelpunto vecino;sesealcanza unaaristadeS1seactualiza elpuntop

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.1.Encontrarlacadena divisoria
SisealcanzaunejedeS2se actualizaelpuntoqconelpunto vecino;sesealcanza unaaristadeS1seactualiza elpuntop

EldiagramadeVoronoi

p q

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.1.Encontrarlacadena divisoria
SisealcanzaunejedeS2se actualizaelpuntoqconelpunto vecino;sesealcanza unaaristadeS1seactualiza elpuntop

EldiagramadeVoronoi

q p Vor(S1) Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.1.Encontrarlacadena divisoria
SisealcanzaunejedeS2se actualizaelpuntoqconelpunto vecino;sesealcanza unaaristadeS1seactualiza elpuntop

EldiagramadeVoronoi

p Vor(S1) Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.2.Eliminararistasy vrticessobrantes
a)EliminarlaslneasdeVor(S1) quequedenaladerechade b)EliminarlaslneasdeVor(S2) quequedenalaizquierdade

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Paso3.2.Eliminararistasy vrticessobrantes
a)EliminarlaslneasdeVor(S1) quequedenaladerechade b)EliminarlaslneasdeVor(S2) quequedenalaizquierdade

EldiagramadeVoronoi

Vor(S1)

Vor(S2)

Algoritmosdeconstruccin
MtodoDivideyVencers
Tiempodeejecucin: T(n)=2T(n/2)+cnsin>1 T(n)=dsin<=1 Procesodeunin: Construir:O(n) Eliminararistasy vrticessobrantesO(n)

EldiagramadeVoronoi

O(n)

EstructuradeDatos
wingededgedatastructure
Paracadaejek
h.sucesor[k]:elordinaldelsiguiente ejeakensentidohorarioalrededor delvrticefinal h.predecesor[k]:elordinaldel siguienteejeakensentidohorario alrededordelvrticecomienzo ah.sucesor[k]:elordinaldelsiguiente ejeakensentidoantihorario alrededordelvrticefinal
final.vertice[k] izda.poligono[k] comienzo.vertice[k] h.sucesor[k] ah.sucesor[k]

EldiagramadeVoronoi

ejek

decha.poligono[k]

h.predecesor[k] ah.predecesor[k]

ah.predecesor[k]:elordinaldelsiguiente ejeakensentidoantihorarioalrededor delvrticecomienzo decha.poligono[k]:elordinaldelpolgonoqueestala derechadelejek izda.poligono[k]:elordinaldelpolgonoqueestalaizquierdadelejek

Paracadapolgonoi
eje.alrededor.poligono[i]ordinaldealgnejeenlafronteradelpolgonoi

EstructuradeDatos
6

EjemplodeEEDD
7

6 3

p2
1 1 2 2

EldiagramadeVoronoi

k(eje) decha.poligono[k] izda.poligono[k] comienzo.vertice[k] final.vertice[k] h.predecesor[k] ah.predecesor[k] h.sucesor[k] ah.sucesor[k] i(polgono) eje.alrededor.poligono[i] j(v rtice) eje.alrededor.vertice[j]

1 2 3 4 5 6 7 8 9 1 1 2 4 3 i i i i 3 2 3 1 4 2 3 4 1 2 1 1 2 2 3 6 5 4 1 3 6 4 5 6 5 4 3 4 1 2 5 1 9 6 7 8 5 3 1 1 4 2 3 5 4 3 6 7 9 8 3 5 4 2 2 9 6 8 7 7 8 9 6 1 2 3 4 i 1 2 1 4 6 1 2 3 4 5 6 1 1 2 4 5 3

p3
5 5

p1
4
9

p4
8

Aplicacionesinmediatas
Elvecinomscercano

EldiagramadeVoronoi

BsquedaexhaustivaO(n)

UsandodiagramadeVoronoi Localizarunpuntodentrode unaregindeVoronoiusando elmtododelacadena O(logn)

Aplicacionesinmediatas
Todoslosvecinosmscercanos
BsquedasexhaustivasO(n2) UsandodiagramadeVoronoi Cadapuntolocalizasuvecino mscercano(esunodelos vecinosdeVoronoi)en O(1)obteniendoelgrafode vecinosmscercanosNNG

EldiagramadeVoronoi

O(n)

Encontrarlos2puntosmscercanos

Aplicacionesinmediatas
Envolventeconvexa

EldiagramadeVoronoi

Noesunmtodoeficazsiel nicoobjetoesconstruirla envolventeconvexa,perosi setienecomopre_procesamiento basta enlazarlosgeneradorescon regionesinfinitas

O(n)

Aplicacionesinmediatas
Elmayorcrculoposible
Setratadeencontrarelmayorcrculo vacocuyocentroestdentrodela envolventeconvexa. Ejemplo:dndecolocomi nuevocomercio? Elcentrodelcrculodebe serunvrticedeVoronoio lospuntosdeinterseccin entrelaenvolventeconvexa ylosejesdeVoronoi

EldiagramadeVoronoi

O(nlogn)

Aplicacionesinmediatas
Triangulacindelanubedepuntos

EldiagramadeVoronoi

Existenmuydiversosmtodosperoel diagramadeVoronoiproporcionala mejordelasposiblestriangulaciones

Tiangulacionde Delaunay

msenelprximotema

Bibliografa
OROURKEJoseph.ComputationalGeometryinC.CambridgeUniversity Press.1998(captulo5)

EldiagramadeVoronoi

PREPARATAF.P.,SHAMOSM.I. ComputationalGeometry.AnIntroduction. SpringerVerlag.1985(captulo2) BERG, KREVELD, OVERMARS, SCHWARZKOPF. Computational Geometry,AlgorithmsandApplications.Springer.1997(captulo7) OKABE A., BOOTS B., SUGIHARA K. Spatial Tessellations: Concepts and ApplicaionsofVoronoiDiagrams.JohnWileyandSons.1992(captulos2y 4)