Redalyc.Algoritmo para solucionar el problema inverso ...en el piano, Vor (P) denota el diagrama de...

11
Revista Cubana de Ciencias Informáticas ISSN: 1994-1536 [email protected] Universidad de las Ciencias Informáticas Cuba Trinchet Almaguer, Dannier; Pérez Rosés, Hebert Algoritmo para solucionar el problema inverso generalizado de Voronoi Revista Cubana de Ciencias Informáticas, vol. 1, núm. 4, 2007, pp. 58-67 Universidad de las Ciencias Informáticas Ciudad de la Habana, Cuba Disponible en: http://www.redalyc.org/articulo.oa?id=378343634005 Cómo citar el artículo Número completo Más información del artículo Página de la revista en redalyc.org Sistema de Información Científica Red de Revistas Científicas de América Latina, el Caribe, España y Portugal Proyecto académico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto

Transcript of Redalyc.Algoritmo para solucionar el problema inverso ...en el piano, Vor (P) denota el diagrama de...

Revista Cubana de Ciencias Informáticas

ISSN: 1994-1536

[email protected]

Universidad de las Ciencias Informáticas

Cuba

Trinchet Almaguer, Dannier; Pérez Rosés, Hebert

Algoritmo para solucionar el problema inverso generalizado de Voronoi

Revista Cubana de Ciencias Informáticas, vol. 1, núm. 4, 2007, pp. 58-67

Universidad de las Ciencias Informáticas

Ciudad de la Habana, Cuba

Disponible en: http://www.redalyc.org/articulo.oa?id=378343634005

Cómo citar el artículo

Número completo

Más información del artículo

Página de la revista en redalyc.org

Sistema de Información Científica

Red de Revistas Científicas de América Latina, el Caribe, España y Portugal

Proyecto académico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto

Algoritmo para solucionar el problema inverso generalizadode VoronoiAn algorithm to solve the generalized inverse Voronoi prob/em

Dannier Trinchet Almaguerl* y Hebert Prez Ros52

lDepartamento de Inteligencia Artificial Universidad de las Ciencias Informaticas Carretera a San Antonide los Banos, km 2 1/2, Boyeros Ciudad de La Habana, Cuba. CP~ 193702 Centro de Estudios de Neurociencias y Procesamiento de Imagenes y Sehales, Facultad de IngenieriaElctrica, Instituto Superior Politcnico "Julio Antonio Mella", Santiago de Cuba, Cuba.

*Autor para la correspondencia: Telfono 837 2726, email: trinchet@{uci.cu,gmail.com}

|i._

|!

\N|

VOL.I No.4 DICIEMBRE 2007 p. 58-71

En el presente trabajo se hace un acercamiento a los diagramas de Voronoi, Una estructurade mucha importancia dentro del campo de la Geometria Computacional que ha alcanzadogran desarrollo en los ultimos aos, no s6lo por Sus peculiares propiedades matematicassino por las amplias y crecientes areas del saber donde encuentra aplicaci6n.

En particular se resuelve uno de los problemas asociados a los diagramas de Voronoi demayor actualidad y menos explorados, es el caso del Problema Inverso Generalizado deVoronoi. Se presentan los fundamentos te6ricos del algoritmo propuesto para este fin,dando detalles de diseo, anlisis e implementaci6n. Se hace un estudio estadistico conel objetivo de verificar los resultados te6ricos esperados haciendo uso de un generadorde entradas aleatorias.

El algoritmo recibe como entrada un grafo planar, y devuelve un conjunto de puntoso generadores de Voronoi (sitios). Estos puntos son generados, arista por arista, hastacompletar el grafo. Se brindan dos variantes del algoritmo para la generaci6n de los sitioscorrespondientes a Una arista y se realiza una comparaci6n entre el|as. La busqueda deestos generadores Esta regida por cierto valor (distancia) dependiente de los angulospresentes en la subdivisi6n y las aristas de esta.

Como resultado del trabajo se obtuvo un algoritmo, correcto y completo, que encuentraun conjunto minimal de puntos. Se proponen posibles aplicaciones y se hace un analisisde los principales parmetros del algoritmo que influyen en el tamaho del conjuntoresultado.

Palabras clave: Diagrama de Voronoi, geometria computacional, grafo planar, teselaci6n,vecino cercano.

The current paper approaches Computational Geometry by means of Voronoi Diagrams,a structure having a huge importance which has also experienced a signiflcantdevelopment during recent years, because of its pecu/iar mathematic properties andthanks to the wide-spreading and growing areas of the human knowledge where itfindsapplication.

An algorithm to solve the Generalized Inverse Voronoi Problem is presented, by givingdesign, analysis and implementation details. A set of statistical tests is made, withrandom inputs, in order to verify the theoretical results.

We achieved, as main result, a correct and completed algorithm that gives a minimalset of points; we a/so proposed some analysis and possible application of it.

Key words: Computational geometry, near neighbour, planar graph, tessellation,Voronoi Diagram.

Los diagramas de Voronoi y los problemas relacionados con estos han Ilamado muchola atenci6n en el transcurso del tiempo (Descartes, 1644; Fortune, 1994; Forrest, 1971;Toussaint, 1992). Ya desde el siglo XVII estudiosos descubrieron la amplia aplicabilidadde estas estructuras, que de hecho fueron descubiertas y estudiadas independientementeen las ciencias naturales, las matemticas y mas recientemente en la Ciencia de laComputaci6n (Descartes, 1644; Forrest, 1974; Fortune, 1994).Para un conjunto de puntos en el piano (sitios), el diagrama de Voronoi es Una subdivisi6nde este en regiones, tal que todo punto pertenece a la regi6n definida por su sitio mascercano.

El prop6sito de satisfacer necesidades practicas obliga, por un |ado, a que el conceptode diagrama de Voronoi sea modificado y generalizado de muchas maneras, y por otro,motiva la aparici6n y busqueda de soluciones de diferentes problemas relacionados conesta estructura geometrica.

Fig, . Diagrama de Voronoi clsico o euclidiano en 2

El problema primario de la busqueda del diagrama de Voronoi esta hoy en dia bien

estudiado y existen algoritmos que lo resuelven en un tiempo 0(nlog n ) e incluso entiempo lineal en el caso promedio (Martinez, 2004).

Pero, podria ser util la busqueda de los generadores a partir del diagrama? Quesignificado podria tener?, preguntas como esta dieron origen al Problema Inverso deVoronoi (PIV), el que demanda precisamente la bOsqueda de los generadores de Voronoi(si existen) para Una subdivisi6n dada.

En general para los problemas tratados por la Geometria Computacional, parece bastantedificil lograr Una descomposici6n del piano que pueda interpretarse como un diagramade Voronoi. Resultaria entonces mucho mas interesante debido a la gran aplicabilidad(aunque resultaria ms complejo), generalizar este problema, dando origen aI ProblemaInverso de Voronoi Generalizado (PIVG), en el cual no se limita a uno el numero degeneradores necesarios para caracterizar cada regi6n de la subdivisi6n dada.

Veamos formalmente estos problemas: Dado un grafo planar (GP) que define unasubdivisi6n del piano en celdas, el cual puede ser considerado, sin perdida de generalidad,acotado y convexo. El PIV consiste en decidir si la subdivision dada coincide con eldiagrama de Voronoi asociado a algun conjunto de puntos S en el piano, y de ser asf,encontrar S.

En el PIV, el conjunto S Esta limitado a tener un punto por celda; la versi6n generalizadade este problema (PIVG) permite la existencia de mas de un punto por celda~ En estecaso nuevos vertices y aristas son anadidos al GP, siempre conservandose los originales.Con esta libertad el conjunto S siempre existe (Aloupis et a/., 2004), de donde el interesfundamental radica en la busqueda de un conjunto S minimal tal que cumpla con laspropiedades deseadas. El algoritmo que se muestra en el presente trabajo resuelve el

PIVG en 2

Primero Se estableceran algunas notaciones y definiciones para un mayor acercamiento aI

planteamiento del algoritmo. Sean P y q puntos en el plano; P q el segmento que une

a P y q , y | | denota su longitud, BA denota el bisector de P y q , y HM es la

mitad del piano determinado por BM que contiene a P Para un conjunto P de puntos

en el piano, Vor (P) denota el diagrama de Voronoi generado por P Si P E P , V(p)denota la celda de Vor (P) correspondiente al sitio P Para cualquier punto q , Cp(q)es el mayor cfrculo vacfo centrado en q , con respecto a P ,

C cit). TS '.-,,,,opa ` ,

4 q

Iii q ', * ?

�* ,,`,,*.w-

Fig. 2. Mayor circulo vacfo de q respecto a P

Lema 1. El bisector B pq define Una arista en el diagrama de Voronoi Si, y solo Si, existe un

punto x perteneciente al bisector tal que Cp (x) contiene a P y q en su circunferencia,y no a otro sitio.

Definici6n 1. Sea P un conjunto de puntos en el piano, p, q e P son vecinos cercanos(respecto a P) Si las regiones definidas por cada uno de ellos en Vor (P) comparten la

arista E pq definida por el bisector B/q

o=O-

:gw

oooQN

Q603QQJD)

Q

Cb>c:QEo~QO~̂

QLCQ

0E~a~QCa

-<(

tna

._v`ll..,`a

Ea~at+C:tn

Definici6n 2. Sea G un GP, y e Una arista de G. Sea P un conjunto de puntos, y

p, q E P El par de puntos p,q se dice que son un par de centinelas de e si ellos son

vecinos cercanos con respecto a P , y E pq es un subsegmento de e . En este caso, e (o

mas precisamente, el segmento E pq ) se dice que Esta protegido por P y q ,

Fig. 3. Vecinos cercanos centinelas y segmento protegido.

La idea seguida por el algoritmo consiste en plantar pares de puntos (centinelas) a travesde cada arista del GP (un centinela por cada sitio) con el objetivo de "garantizar" la arista.El numero de centinelas requeridos para proteger una arista depende de su longitud y dela posici6n relativa respecto a Sus aristas vecinas, pues son situados a lo largo de la aristaa proteger, siempre a cierta distancia fijada por Sus vecinas. Cada par de centinelas sonsituados sobre la circunferencia de algun circulo, cuyo centro yace en la arista y este notoca a ninguna otra arista. Veamos esto formalmente.

Sup6ngase se tiene un grafo planar G - al que Se le desea aplicar el algoritmoeste trabaja en dos fases fundamentales: primeramente se construyen cfrculos iniciales

centrados en cada vertice de G, y luego se procede a cubrir cada arista e e E por circulosinteriores no solapados, cuyos centros yacen en e

Sea u un vertice de G, y I la longitud de la menor arista de G incidente en u .

Den6tese como XG (/H) al circulo inicial centrado en e , cuyo radio sera po 2 si este

no intercepta alguna de las aristas de G no incidentes en u Una vez construido SG ,

se sitOan par de centinelas P y q sobre XG (Ll) a ambos |ados de cada arista incidentes

en u , uno por cada lado de e (a Una distancia adecuada e ) .

En la secci6n lmplementaci6n se discute como escoger apropiadamente; por el mo-

mento solo n6tese que debe ser lo suficientemente pequeho para que la construcci6n

pueda ser Ilevada a cabo, ademas de que siempre existira un valor positivo para , comosera mostrado.

Sea w el punto de intersecci6n entre XG (Ll) y e , ahora P y q protegen el segmento de e , lo cual significa que u aparecera en el diagrama de Voronoi que sera con-

struido, siempre y cuando no Sean incluidos en un futuro, nuevos puntos dentro de XG(u).

|)w e _.

Fig. 4. Cfrculo inicial para el vrtice u

Sea e - uw- Una arista de G, y Wl , W2 los puntos de intersecci6n de XG (u) y XG (v) Cone respectivamente, Los segmentos u/ y v estan ahora garantizados, mientras el seg-mento W/2 (quizas vacio) permanece desprotegido, Con el prop6sito de proteger W/W2--

ES necesario cubrirlo con circulos (interiores) centrados en el, siempre y cuando estos nointercepten alguna otra arista distinta de e y no incluyan algun centinela pertenecientea otro circulo. Entonces podemos escoger pares de centinelas en cada circulo a una dis-

tancia e de e

oc:O-

:gw

a

oo

QB>

Fig. 5. Arista e - uw-cubierta por cfrculos.

Como consecuencia del Lema 1 el segmento e queda protegido en toda su longitudsiempre y cuando luego no se incluya algun punto dentro de alguno de los circuloscentrados en e A fin de prevenir esta situaci6n, no debe permitirse que los circulos

interiores de e se acerquen a Una distancia de otra arista f , pues los centinelas de

f pueden caer, dentro de algun circulo perteneciente a e . Teniendo en cuenta esto sepuede garantizar que los centinelas de e no interfieran con otras aristas, ya que estos noestaran incluido en ningun otro circulo perteneciente a otra arista.El algoritmo puede describirse como sigue:Entrada: Teselaci6nl del piano definida por un grafo planar G - (V, E)Salida: Conjunto de generadores de Voronoi S

1 Teselaci6n hispanismo del ingls Tessellation subdivision del plano en regiones.

1.

2.

3.

4.

5.

6.

S ̀ - FPara cada vrtice u e G

- construir el circulo XG (u) centrado en u

Escoger un valor adecuado para e.

Para cada vrtice u e V y cada arista e e E incidente en u

- situar un par ,q ) de centinelas en XG (u), simetricos cada uno a e , a una

distancia e

S - S U ,q }Para cada arista e E

Mientras exista un subsegmento f desprotegido en e

- cubrir f mediante circulos interiores centrados en e (se situan los centinelascorrespondientes a cada circulo y se agregan a S ).Devolver S y Terminar .

Este algoritmo, en efecto muestra Una estrategia general que brinda una gama de

posibilidades a la hora de ejecutar los pasos 3 y 5, mas adelante se mostraran con masdetalle dos formas de implementarlo. Con el objetivo de probar Que el algoritmo trabajadebemos demostrar que:

1. El algoritmo termina.2. Una vez ejecutado, toda arista de la teselaci6n queda protegida.

Para mostrar que el algoritmo termina se deben dejar claro algunos hechos, Sea po el radio,

el menor circulo inicial; es claro (por definici6n de circulo inicial) que po > O. Sea a el menor

de los ngulos formados por dos aristas incidentes de G, digamos e y f , Tomando a e

posen (al2) se puede estar seguro que dos pares de centinelas, pertenecientes, uno a e

y el otro a f , no Se mezclaran, lo Que quiere decir, que los pertenecientes a e no estaran

a una distancia menor que de f , lo que garantiza la no interferencia de los centinelasde Una arista en otras. Esto es valido para todos los circulos iniciales~

Luego de que los circulos iniciales han sido construidos, y Sus correspondientes conjuntosde centinelas encontrados, permanece sin proteger, un segmento intermedio de cadaarista. Dicho segmento debe ser cubierto por un numero finito de circulos interiores.

T6mese Una arista, digase e , con un segmento intermedio sin cubrir de longitud d,

tomando circulos de radio e para cubrirlo podemos estar seguro que ninguno de ellos se

interceptara con alg0n otro perteneciente a otra arista Exactamente [d/2 e]+1 circulosseran suficientes para cubrir completamente el segmento desprotegido, donde quizas, el

ultimo de estos tendra un radio p I< e Para este ultimo circulo los centinelas pueden ser

situados a una distancia < e de e

~= ,

Fig. 6. Arista cubierta par cfrculas de radio e.

Usar cfrculos de radio e es, entre las var|antes a considerar, la que produce mayor cantidadde circulos y como consecuencia, de centinelas (generadores del diagrama de Voronoi).

Suponiendo que todos los circulos interiores tendrian un radio igual a la e- vecindadescogida, Si d es la longitud de e ( mayor arista de G -` (V, E)) y Do el radio del menorcirculo inicial construido en G, S el conjunto de puntos (sitios) generados y F el conjuntode regiones de G , entonces e puede cubrirse con [(d/2 po )/2e]+ I circulos no solapados de

e radio, generandose 2([ (d-2 po )/2e]+ I )+4 puntos, Si generalizamos este analisis entonces

|S||E(2([ (d-2 po )/2e]+ I )+4) pero se puede encontrar una cota aun inferior Si hacemos elanalisis arista por arista: IS| 2 S e c E [(de - po - pl )| 2e]+6 |E| donde de es la longitud de e ypo y pl el radio de los cfrculos iniciales centrados en los vertices que definen e. Podemosasegurar ahora que |F| IS 2 S e C E [(de - po - pl )| 2e]+6 |E|.

En el paso 5 del algoritmo dado en la anterior secci6n, el m6todo de construcci6n de loscirculos interiores no fue especificado. Tomando circulos con radio, como fue sugeridoen el anlisis de terminaci6n, no es Una buena idea, ya que Se generarian muchos puntos.En esta secci6n se discutiran dos mtodos para la construcci6n de los circulos interioreslo que Ilevaria a dos variantes diferentes del algoritmo.

N6tese que puede permitirse, con la idea de reducir la cantidad de centinelas, elsolapamiento de circulos adyacentes en Una misma arista, por lo que estos compartiranun par de centinelas. Esta observaci6n es Valida para todas las variantes del algoritmo.

Fig. 7. Circulas adyacentes compartiendo pares de centinelas.

La primera de las variantes para la construcci6n de los cfrculos interiores consiste en

dejarlos crecer lo mas posible, previendo que estos no entren en la e-vecindad "area deseguridad" de otra arista. Obviamente, esta heuristica avara produce un menor numerode generadores de Voronoi que el sencillo mtodo de tomar todos los circulos con radio

e. Sup6ngase que se quiere construir un circulo interior para la arista e, adyacente aotro circulo de e, donde ya hemos situado dos centinelas: a - ( Xa, ya ) y b - ( Xb, yb ),

Sea f la primera de las aristas que sera tocada por durante su crecimiento, y f' Una

linea paralela a f , a una distancia e de f y mas cercana a que f . Sea e definida por la' - , - - 2 - ' - '

ecuacl6n y - mx+n, y f � por la ecuaclon Ax+By +C-0 � La dlstancla de cualquler punto

y) a f ' Esta dada por C El radio de debe ser igual a esta distancia,

ademas que los centinelas a y b deben yacer sobre la circunferencia de ; por lo que lacoordenada del centro de debe satisfacer la siguiente ecuaci6n cuadratica:

(A2+B)(xa-x)2 + (ya+(mx+n))2)- (Ax+B(mx+n)+C2 (1)

O -(A2+2ABm+B2m2-D(m2+1))x2

-2(A(B+C)+B2m + BCm+D(xa-m(n-ya)))x

-B2n2-2BCn-C2+D(n2-2nya+x2a+y2a)-0

donde D-A2+B2.

(2)

La otra variante para construcci6n de los circulos interiores, Esta basada en elmismo principio de dejar crecer los circulos lo mas posible. Pero, en lugar de hacerlo

secuencialmente a lo largo de la arista e, con longitud por cubrir lo, hasta que e estecubierta, se toma el punto medio del segmento no cubierto de la arista como centro

del primer circulo interior . Lo que producira como resultado dos nuevos segmentos

disjuntos desprotegidos, a ambos |ados del circulo, pero de longitud lo /2-'ro, donde ro

es el radio de , en este momento el algoritmo puede ser aplicado recursivamente,

La ventaja de este metodo es que las coordenadas del centro del circulo a construirpueden ser determinadas con mucho menos c6mputo, lo que nos reduce el tamao delos errores. Ademas esta variante es mas adecuada para implementaciones en paraleloque la anterior, pero por otro !ado se necesita de Una estructura de datos adicional parala manipulaci6n de los segmentos desprotegidos.

Una vez construido los circulos, los centinelas pueden obtenerse de la siguiente forma: Sise esta protegiendo Una arista e representable mediante la ecuaci6n y -mx+n, al construir

un circulo inicial o interior representado por la ecuaci6n (x-b)2 + (y-k)2 - p2 X, en ambos

metodos los centinelas quedan situados a una distancia e, simetricamente a ambos !ados

de e sobre la circunferencia y el limite def area de seguridad e'( y=mx+(n+De)) y

e"(y-mx+(n-De)), lo que permite la busqueda haciendo: mx+(n+De)= p2x-h)2+k,

donde De- e/cos, siendo a el angulo de e'(e") respecto a la horizontal, vease que lapendiente de la recta est dada.

2 La ecuaci6n de f ' puede obtenerse fCi|mente despus de haber construido |OS circu|Os iniciales.

Un aspecto importante a destacar dentro def algoritmo es el valor de fa distancia e. Por un

fado, e debe ser lo suficientemente pequeha como para permitir que la construcci6n puedaser ffevada a cabo, y por el otro, para asegurar la robustez def metodo, es convenienteque esta sea lo mas grande posible. Como puede notarse este valor no debe escogerseantes de la construcci6n de los circufos iniciafes ya que, precisamente estos, son quienes

nos permiten verificar fa correcci6n def algoritmo para un valor fijo e.

Como propuesta puede tomarse inicialmente c- min{pu sen(a/2)uCV}, donde pu es elradio def circulo inicial centrado en el vertice u y a el menor de los angulos entre fas aristas

incidentes en u. Se propone este valor para e, pues es el mayor valor que puede tener lazona de seguridad sin que se mezclen fos centinefas. Debemos sehalar que, a la hora deimplementar el afgoritmo se debe tener muy en cuenta la precisi6n de este valor, ya quelos errores cometidos por las operaciones de punto ffotante en Una maquina de c6mputopodrian comprometer fa correcci6n de fa implementaci6n def afgoritmo, sugerimos por

tanto que, en ese caso se tome a e= e- donde es un valor (quizs dependiente de pu ya) que nos garantice la robustez def metodo.

Fig. 8. Ejemplo de corrida del algoritmo en su variante secuencial.

Es interesante destacar la idea de usar Una e- vecindad variable, es decir, utilizar Una porarista, lo que complicaria la impfementaci6n, pero haria mucho ms robusto el metodo.Acerca de los circulos iniciafes debemos resaltar que no siempre estos tendran un radioiguaf a la mitad de fa longitud de fa menor de fas aristas incidentes en el vertice af que sele est buscando el circulo.