Está en la página 1de 48

TRABAJO SOBRE GEOMETRIA COMPUTACIONAL

PROFESORA: DIANA MABEL DIAZ HERRERA

GINA OSTOS EDWIN PEA DIEGO CARDOZO GABRIEL ARISTIZABAL

ANALISIS Y DISEO DE ALGORITMOS

FACULTAD DE INGENIERIA UNIVERSIDAD PILOTO DE COLOMBIA NOVIEMBRE 2 DE 2010 BOGOTA D.C., COLOMBIA
1

CONTENIDO

1. 2. 3. 4. 5.

Introduccin a la Geometra Computacional Mallas Geomtricas Triangulacin de una nube de puntos Diagrama de Voronoi Triangulacin Delaunay a. Caractersticas de la Triangulacin Delaunay 6. Voronoi versus Delaunay (dualidad). 7. Algoritmos de Triangulacin Delaunay. a. Algoritmo Flipping Incremental b. Algoritmo de Fuerza Bruta c. Algoritmo de Fuerza Bruta Mejorado. 8. Algoritmo del Diagrama de Voronoi 9. Calculo del rea de las regiones de Voronoi a. Aristas de Voronoi infinitas b. Clculo del tamao rea. c. Clculo del estado del rea. 10.Bibliografa

Introduccin a la Geometra Computacional Antes de aplicar el Algoritmo Gentico para la resolucin del problema, necesitaremos obtener toda la informacin necesaria sobre el rea de cobertura de las antenas, para obtener dicha informacin nos basaremos en la Geometra Computacional en 2D. La computacin grfica no es slo representar imgenes a travs del computador, o generar imgenes de objetos reales o imaginarios a travs de modelos computacionales, y tratarlos con algoritmos, sino que podemos por medio de ella, analizar, modelar y representar problemas de tipo real. Aunque los primeros resultados constructivos de la Geometra Computacional (G.C.) datan de la poca de Euclides, existi un nacimiento separado de la Geometra y de los algoritmos. En 1978 se inicia el estudio de problemas geomtricos usando algoritmos con la prestigiosa tesis de Doctorado de. Shamos (1978), aunque antes, con el trabajo de Graham en 1972, se presenta uno de los algoritmos ms conocidos para el clculo de la envolvente convexa en el plano en tiempo ptimo. La Geometra Computacional es una disciplina joven, ya cuenta con ms de 8000 publicaciones relevantes (Ralston 2000). La Geometra Computacional se define como el estudio de problemas algortmicos que involucran geometra (Ralston, 2000).La geometra computacional estudia problemas geomtricos desde el punto de vista de la computacin, y est fuertemente relacionada con la geometra discreta y combinacional. Una parte esencial es el diseo y anlisis de algoritmos para la solucin eficiente de problemas geomtricos. Como consecuencia, una tarea fundamental es identificar conceptos, propiedades y tcnicas, las cuales ayudan al desarrollo de algoritmos eficientes.

Debido a la relacin de la computacin con diversas tecnologas y el auge de sta, se ha aprovechado la Geometra Computacional para introducir sus conceptos en campos tan dispares como el diseo asistido por computador, tratamiento de imgenes, robtica, biologa, geografa, ecologa y localizacin entre otros. (Rincn, 2000). La Geometra Computacional resuelve algortmicamente problemas de naturaleza geomtrica y se ha centrado en problemas dentro del plano y otros espacios eucldeos. El concepto Dimensin se refiere al nmero de valores reales que necesitamos para describir cualquier punto en el espacio. Un espacio es un conjunto de puntos, pero no se debe restringir la nocin de punto y espacio. As, una lnea cualquiera es unidimensional, ya que nos basta un nmero real para identificar cualquier punto. Aunque muchas aplicaciones de esta rea parezcan distintas, todas necesitan discretizar los dominios geomtricos en mallas de elementos simples (Palma, 1996), las cuales pueden llegar a tener millones de polgonos (en dos dimensiones) o poliedros (en tres dimensiones). Normalmente dichas mallas estn construidas a partir de tringulos y rectngulos (en dos dimensiones) y tetraedros (en tres dimensiones). Mallas geomtricas El problema de generacin de mallas en dos dimensiones consiste en aproximar el dominio de simulacin por un polgono, y a este polgono dividirlo en elementos geomtricos sencillos, (cuadrilteros, tringulos), de tal manera que la interseccin de dos elementos cualquiera sea una arista, un vrtice, o el conjunto vaco. Cuando se tiene un dominio rectangular, la solucin al problema es directa, utilizando un arreglo uniforme de tringulos, pero cuando se desea discretizar un
4

dominio cuya geometra no es trivial, se hace necesario un mtodo de generacin ms elaborado. An cuando la geometra sea sencilla, el tamao de los elementos determinar el error de aproximacin del mtodo numrico, y en ocasiones, es deseable obtener una malla con elementos de distintos tamao en diferentes zonas del dominio (Dari, 1994). Los elementos ms flexibles para discretizar geometras complicadas son los tringulos en dos dimensiones. La triangulacin automtica consiste en la generacin de mallas utilizando este tipo de elementos. Una clasificacin presentada por Dari (1994), consiste en tres grandes grupos: Mtodo frontal o del frente de avance. Consiste en la modificacin del dominio original por la remocin sucesiva de tringulos a partir de su borde. La frontera del dominio evoluciona durante la generacin de tringulos.

Mtodo de frente de avance


5

Triangulacin Delaunay de un conjunto de puntos. Segn Dari (1994), consiste en la generacin de puntos sobre el dominio y luego conectarlos para formar una triangulacin que satisfaga alguna propiedad de optimalidad. Por ejemplo, puede hallarse la triangulacin que maximice el mnimo de los ngulos de cada par de tringulos adyacentes. La condicin del ngulo mnimo es equivalente a la del crculo circunscrito. El crculo que pasa por los tres vrtices de cada tringulo no contiene a otros puntos de la triangulacin. Esta propiedad se utiliza para la construccin de la triangulacin Delaunay. La utilizacin de triangulaciones Delaunay en la generacin de mallas se remonta a los trabajos de Cavedish y puede extenderse al caso tridimensional.

Triangulacin Delaunay de un conjunto de puntos en el plano Subdivisiones sucesivas. Se basa en la utilizacin de la cuadrcula que se superpone al dominio. Las celdas exteriores se descartan, mientras que el resto se puede subdividir sucesivamente
6

de acuerdo al grado de discretizacin deseado en cada regin del dominio. Finalmente se dividen las celdas interiores en tringulos, de modo de mantener la compatibilidad con las celdas vecinas. Las celdas que interceptan a la frontera requieren un tratamiento especial (pueden triangularse por ejemplo utilizando el mtodo frontal). Esta tcnica es conocida como mtodo de rboles cuaternarios (en tres dimensiones: rboles octales), debido a la estructura de datos implcita en la subdivisin sucesiva de cada celda, y ha sido utilizada en generacin de mallas de elementos finitos tanto en dos como en tres dimensiones.

Mtodo de subdivisiones sucesivas Para el desarrollo de nuestra aplicacin utilizaremos la generacin de mallas mediante Triangulaciones de Delaunay por ser el mtodo que mas se ajusta al problema y por su dualidad con los Diagramas de Voronoi. Mediante estos dos mtodos de divisin del plano, obtendremos toda la informacin necesaria sobre las reas de cobertura de las antenas, que ser utilizada por el Algoritmo
7

Gentico. A continuacin veremos las principales caractersticas y los mtodos de resolucin utilizados para su clculo. Triangulacin de una nube de puntos Sea P = {p1, p2, ... ,pn} un conjunto de puntos en el plano. Definiremos una subdivisin maximal en el plano como una subdivisin S, tal que ningn lado conectado a dos vrtices pueda ser aadido a S sin perder su estado plano, es decir, ningn lado de S intersecta con otro lado existente. As, una triangulacin se define como una subdivisin maximal planar cuyo conjunto de vrtices es P.

a) Nube de Puntos Delaunay Diagrama de Voronoi.

b) Triangulacin en Abanico

c) Triangulacin

El Diagrama de Voronoi, es utilizado para fragmentar el espacio en diversos campos. Es una estructura fundamental dentro de la Geometra Computacional, que almacena toda la informacin referente a la proximidad entre puntos. Se puede decir entonces que un Diagrama de Voronoi consiste en:

Dado un conjunto de objetos de varias clases y un conjunto de puntos desconocidos, deseamos determinar en que regin o zona cae nuestro punto. Para ello se trazan las regiones de Voronoi en el plano y se determina cual de estas regiones es la ms cercana a un objeto determinado ubicado en el. (Cofre, 2003)

Diagrama de Voronoi Denotamos la distancia Eucldea entre dos puntos del plano como

dist(p,q).siendo:

Sea P = {p1,p2,...,pn} un conjunto de n puntos distintos en el plano. Definimos el diagrama de Voronoi de P como la subdivisin del plano en n regiones, cada una correspondiente a un punto de P, cumpliendo, que un punto q pertenece a la regin correspondiente al punto pi si y solamente si dist(q,pi) < dist(q,pj) para cada
9

punto pj P, con j distinto de i. Denotamos el diagrama de Voronoi de P como Vor(P). La regin correspondiente al punto pi es llamada V(pi). Observemos por un momento la estructura de una nica regin de Voronoi. Para dos puntos p y q en el plano definimos el bisector de p y q como el bisector perpendicular del segmento pq. Este bisector divide el plano en dos semiplanos. Denotamos el semiplano que contiene a p como h(p,q) y al semiplano que contiene a q como h(q,p). Se puede observar que r pertenece a h(p,q) si y solamente si dist(r,p) < dist(r,q). Podemos obtener de aqu las siguientes observaciones: Observaciones Veamos algunas observaciones sobre los Diagramas de Voronoi. Observacin 1

Esto es, V(pi) es la interseccin de n-1 semiplanos y por tanto una regin poligonal convexa con como mximo n-1 vrtices y n-1 lados. Es decir, que la regin de Voronoi de un determinado punto, consistir en la interseccin de todos los semiplanos h(pi,pj). Obviamente ste no sera un algoritmo eficiente para el clculo del Diagrama de Voronoi de la nube de puntos completa ya que habra que repetir el proceso para los n puntos de la nube.

10

Observacin 2 Si todos los puntos de P son colineales, entonces Vor(P) (Diagrama de Voronoi de P) estar formada por n-1 lneas paralelas y n regiones.

Se observa claramente en el grfico anterior. Observacin 3 Un Diagrama de Voronoi de una nube de puntos en el plano tiene a lo sumo 2n-5 vrtices y 3n-6 lados. Observacin 4 Para un conjunto de puntos P del plano, un punto q es vrtice del Diagrama de Voronoi de P si y solamente si el crculo vaco de mayor tamao con centro en q contiene tres o ms puntos de P sobre su circunferencia.
11

En el siguiente grfico se muestra el Diagrama de Voronoi de los puntos p1, p2 y p3, se puede observar que el punto q es vrtice del Diagrama de Voronoi ya que la circunferencia mayor vaca contiene precisamente a los tres puntos.

Triangulacin Delaunay La triangulacin Delaunay es un mtodo de triangulacin ampliamente usada en la generacin de mallas no estructuradas. Este es uno de los mtodos de Triangulacin ms rpidos y relativamente fciles de implementar, dando excelentes resultados para la mayora de las aplicaciones. Al igual que los diagramas de Voronoi, este tipo de estructura es usada para fragmentar el espacio. Dada una nube de puntos en el plano, hallar una triangulacin en la que los puntos ms prximos entre s estn conectados por una arista, o dicho de otra forma, en la que los tringulos resultantes sean lo ms regulares posibles. Una Triangulacin de una nube de puntos del plano es una familia maximal de tringulos de interiores disjuntos, cuyos vrtices son puntos de la nube. La Triangulacin de Delaunay es utilizada para la generacin de mallas, definiendo un mtodo para conectar un conjunto arbitrario de puntos de manera
12

que forman un conjunto topolgicamente vlido de tringulos que no se interceptan. Caractersticas de la Triangulacin Delaunay. Sea P= {p1, p2, ...,pn} un conjunto de puntos en el plano, una triangulacin de Delaunay de P cumplir las siguientes propiedades: Tres puntos pi, pj, pk, pertenecientes a P son vrtices de la misma Triangulacin de Delaunay de P si y solo si el crculo que pasa por estos tres puntos, no contiene a ningn otro punto de P en su interior.

Propiedad del Crculo formado por tres puntos. Dos puntos pi, pj pertenecientes a P forman un lado de la triangulacin de Delaunay s y solo s existe un crculo que contiene a pi y pj en su circunferencia y no contiene en su interior a ningn otro punto de P.

13

Propiedad del Crculo formado por dos puntos. Las dos propiedades anteriormente descritas son resumidas por una tercera, llamada Propiedad de Crculo Vaco. Si se dibuja un crculo utilizando los vrtices de cualquier tringulo de la triangulacin de Delaunay, este crculo no debe contener a ningn otro punto de la nube (vrtice de otro tringulo). Esta propiedad es tambin llamada Criterio de Delaunay, el cual veremos en detalle ms adelante. Grficamente lo podemos ver de la siguiente forma:

a) No se cumple criterio de Delaunay

b) Si se cumple criterio de Delaunay.

14

Podra definirse una triangulacin de Delaunay como aquella que posee el vector de ngulos mayor de entre todas las posibles triangulaciones, la palabra vector se refiere para esta propiedad como los ngulos formados por las aristas de la triangulacin (ordenados de menor a mayor). En una triangulacin de Delaunay seran aquellos ngulos mayores o iguales que los de cualquier otra triangulacin.

Triangulacin de Delaunay de una nube de puntos. Voronoi versus Delaunay (dualidad). Una vez conocido el Diagrama de Voronoi, existen una serie de propiedades que permiten calcular a partir de l la Triangulacin de Delaunay de forma directa e inequvoca y viceversa, pudiendo realizarse este proceso en tiempo lineal. Habitualmente se resuelve la Triangulacin de Delaunay para luego llegar al Diagrama de Voronoi, aunque en realidad el primero es el dual del segundo.

15

Para realizar la conversin de Diagrama de Voronoi a Triangulacin de Delaunay, es necesario aplicar las propiedades de ambos diagramas. La Triangulacin de Delaunay es un grafo de lneas rectas dual al Diagrama de Voronoi. Cada tringulo de la Triangulacin se corresponde con un vrtice del diagrama, que adems se corresponde con el circuncentro del tringulo. Cada arista de la triangulacin puede calcularse a partir de una arista de Voronoi, ya que son perpendiculares entre s y viceversa, ya que, si en cada circuncentro de cada tringulo de la Triangulacin de Delaunay se coloca un vrtice entre cada par de nuevos vrtices que estuvieran entre tringulos vecinos, se trazan aristas coincidentes con la mediatriz, entonces tendramos el diagrama de Voronoi del conjunto inicial de puntos. La Triangulacin de Delaunay y el Diagrama de Voronoi tienen el mismo nmero de aristas y se corresponden entre s. Cada nodo de la Triangulacin se corresponde con una nica regin del diagrama. El contorno de la triangulacin es equivalente al cierre convexo de la nube de punto. No es posible encontrar ningn punto de la nube en el interior de los tringulos formados por la triangulacin. Como se puede apreciar en la figura, el Diagrama de Voronoi es bastante fcil de encontrar a travs de la Triangulacin de Delaunay, en tiempo lineal.

16

Diagrama Dual Voronoi / Delaunay. Como se ha dicho, para obtener el diagrama de Voronoi a partir de una triangulacin de Delaunay y viceversa, es necesario recordar y aplicar las propiedades de cada una de ellas. Una forma sencilla de llegar de una triangulacin de Delaunay a un diagrama de Voronoi, consiste en cambiar en la triangulacin de Delaunay las caras por vrtices y los vrtices por caras del siguiente modo: Para cada tringulo consideremos el centro de la circunferencia circunscrita y unamos dos de estos centros siempre que sus tringulos correspondientes compartan una arista. Luego las aristas exteriores, que slo pertenecen a un tringulo se sustituirn por semirrectas con origen en el centro correspondiente al tringulo y direccin perpendicular a la arista. De esta forma obtenemos otra divisin del plano conocida como diagrama de Voronoi, subdivisin de Dirichlet o subdivisin en regiones de Thiessen. Cada una de las regiones resulta ser un lugar geomtrico de los puntos ms prximos a cada uno de los puntos del
17

conjunto inicial. Esta estructura dual de la triangulacin de Delaunay, contiene tambin informacin sobre la proximidad entre puntos del conjunto inicial de puntos. Por lo tanto y considerando las caractersticas anteriores, podemos concluir que: - Cada vrtice de Delaunay tiene una regin de Voronoi dual. - Cada arista de Delaunay tiene una arista de Voronoi dual (perpendiculares). - Cada tringulo de Delaunay tiene un vrtice de Voronoi dual, que coincide con el circuncentro del tringulo. - Con estas observaciones, los dos problemas a resolver son el mismo, obteniendo uno de los dos diagramas su dual tambin est resuelto. Algoritmo Flipping Incremental Este algoritmo se basa en la comprobacin de una de las propiedades de la triangulacin de Delaunay, la propiedad del crculo vaco, la que dice que una circunferencia circunscrita a un tringulo no contiene en su interior a ningn otro punto de la nube. Comienza con una triangulacin arbitraria y la convierte en una triangulacin de Delaunay por cambio de la diagonal de dos tringulos vecinos. Estos tringulos comparten una arista llamada ilegal, al no cumplir con la propiedad anteriormente mencionada, sobre ella se realiza una operacin denominada flip o legalizado de arista o intercambio de arista, la cual consiste en hacer de esta arista ilegal, una arista legal, es decir que cumpla con la propiedad de la circunferencia circunscrita.

18

Algoritmo Flipping (Cambio de aristas) Si se observa la figura anterior, en el ejemplo (a), al dibujar el crculo sobre los vrtices de uno de los tringulos, existe un punto interior al crculo y que no pertenece al tringulo, por lo que en este caso tendramos una arista ilegal. Entonces, para corregir este problema bastar con cambiar dicha arista, de modo que cumpla con la propiedad convirtindose en una arista legal, tal como lo muestra el ejemplo (b) de la figura. (Cofre, 2003)

19

Esquema Grfico del Algoritmo Flipping.

Para realizar esta Triangulacin de Delaunay, partimos de un tringulo p-1 p-2 p-3, el cual ha de ser de un tamao lo bastante grande como para que contenga toda la nube de puntos P, utilizaremos este triangulo como triangulo inicial y auxiliar, y al final descartaremos las aristas que partan de p-1, p-2 p-3 Pasos del algoritmo: Paso 1: Sean p-1 p-2 p-3 tres puntos, tales que la nube de puntos P que representan las antenas de telefona, est contenida en el tringulo que forman. Inicializamos T como una triangulacin de un nico tringulo p-1 p-2 p-3 Grficamente:

20

Paso 2: Los puntos de la nube P sern insertados en el mismo orden en el que han sido introducidos por el usuario, como el Triangulo inicial de T engloba toda la nube de puntos, solo pueden dar dos casos. Caso 1: El punto introducido cae dentro de un triangulo ya existente.

En este caso se aaden tres aristas desde pr a los tres vrtices de pi pj pk, partiendo el antiguo tringulo en tres. Solo nos queda legalizar las nuevas aristas. LEGALIZA_LADO (pr, pi pj,T)
21

LEGALIZA_LADO (pr, pj pk,T) LEGALIZA_LADO (pr, pk pi,T) Caso 2: El nuevo punto cae encima de una de las aristas que forma uno de los lados de un tringulo ya existente.

En este caso dividiremos en dos cada uno de los tringulos que comparten la arista sobre la que ha cado el punto, aadiremos las aristas desde pr a pk al tercer vrtice pl del otro tringulo que comparte la arista pi pj. En este caso como en el anterior tendremos que legalizar las nuevas aristas creadas, LEGALIZA_LADO (pr, pi pl,T) LEGALIZA_LADO (pr, pl pj,T) LEGALIZA_LADO (pr, pj pk,T) LEGALIZA_LADO (pr, pk pi,T)
22

Paso 3: Cuando no nos queden ms puntos por insertar, Descartaremos p-1, p-2 y p-3 y todas las aristas que parten de ellos. Veamos ahora el procedimiento LEGALIZA_LADO: LEGALIZA_LADO (pr, pi pj, T) 1. El punto que se est insertando es pr, y pi pj es la arista de T a la que puede ser necesario hacer un flip 2. Se comprueba por las propiedades de las Triangulaciones de Delaunay anteriormente vista si pi pj es ilegal 3. Si es ilegal Sea pi pj pk el tringulo adyacente a pr pi pj compartiendo la arista pi pj 4. 5. 6. Se reemplaza pi pj por pr pk LEGALIZA_LADO (pr,pi pk, T) LEGALIZA_LADO (pr,pk pj, T)

Es decir, comprobamos la legalidad de la nueva arista, si es ilegal se hace el flip correspondiente y se chequea de nuevo la legalidad de las nuevas aristas. Anteriormente ya comentamos cuando un lado es ilegal, pero por la construccin del algoritmo, existen tres puntos (los del tringulo externo) que insertamos al comienzo y no deben afectar a la triangulacin de la nube de puntos, por esto hay que realizar una modificacin al test de comprobacin de la legalidad de la arista cuando uno de los puntos del tringulo externo est implicado. Partimos de la nube inicial de puntos P = {p1, p2,...,pn} a la que le aadimos los puntos que forman el triangulo externo que contiene a P, es decir, p-1, p-2 y p-3. Queremos comprobar si la arista pi pj es o no ilegal. Nos encontramos con cinco casos posibles: i y j pertenecen al triangulo exterior.
23

En este caso decidimos que la arista pi pj es legal, ya que tenemos que preservar las aristas del tringulo externo p-1 p-2 p-3. Para el resto de los casos asumimos que pk y pl son los otros dos vrtices de los tringulos que comparten la arista pi pj. i, j, k, l no pertenecen al triangulo exterior. Este es el caso normal comentado anteriormente, la arista pi pj es ilegal, si y solamente si, pl cae dentro del crculo definido por pi pj y pk (propiedad de la Triangulacin de Delaunay) Solamente uno de los ndices i, j, k, l pertenece al triangulo exterior. No queremos que este punto especial destruya alguna arista de Delaunay entre puntos de P. Para ello, si pi o pj son puntos del tringulo externo, decidimos que la arista pi pj es ilegal y ser reemplazada por la arista pk pl, en caso contrario la arista pi pj es legal. Dos de los puntos i, j, k, l pertenecen al triangulo exterior. En este caso uno de los puntos i, j y otro de los puntos k, l deben pertenecer al triangulo exterior; no podemos tener k y l pertenecientes al triangulo exterior y si i y j lo fueran estaramos en el primer caso. Si el ndice negativo del punto exterior de i, j es menor que el ndice negativo del punto exterior de k, l entonces decidimos que la arista pi pj es legal, en caso contrario, ilegal. Tres de los puntos i, j, k, l son negativos. Este caso nunca puede ocurrir: si i y j pertenecen a la triangulacin exterior estaramos en el primer caso, adems k y l no pueden pertenecer a la vez al
24

triangulo exterior ya que uno de los dos debe ser el punto pr que acabamos de insertar. Como resumen grafico del procedimiento:

25

Complejidad del Algoritmo Incremental. Se puede obtener basado en los siguientes antecedentes: - Tomar un punto de la nube an no triangulada. Los puntos sern elegidos en el mismo orden en el que han sido introducidos por el usuario, por lo que para una nube de puntos de n elementos esto demorara un tiempo O(n). - Una vez elegido el punto hay que averiguar el triangulo o la arista sobre la que cae el punto introducido, por lo que habr que recorrer toda la lista de tringulos existentes. Esto supone un tiempo de O(n log n). - Trazar una arista desde el punto a triangular a cada uno de los tres vrtices del tringulo que lo contiene. Trazar una arista requiere un tiempo de O(1), para n puntos el tiempo sera de O(n). - Averiguar si las nuevas aristas son legales. Hay que comprobar a la propiedad del crculo vaco, por lo que el tiempo en realizar esta comprobacin para n puntos es de O(n).

26

- Si alguna de las nuevas aristas es ilegal hay que hacer un flip. Esto requiere borrar la arista ilegal y se crear una legal, esta operacin se puede hacer en un tiempo constante de O(1), pero quien definir el tiempo ser el nmero de flips que se debern realizar. Por ello, aplicar esta operacin a todos los puntos de la nube equivaldra a una complejidad de O(n). Por lo tanto T(n) = O(n) + O(n log n) + O(n) + O(n) + O(n) T(n) = O(n log n)

Algoritmo de Fuerza Bruta Es la forma ms fcil de calcular la Triangulacin de Delaunay de una nube de puntos. Paso 1: El ncleo del algoritmo, consiste en un bucle que va calculando todas las posibles triangulaciones, descartando las que no cumplen los criterios de la triangulacin de Delaunay y quedndose con los que la cumplen. for (i=0;i<numero_puntos;i++) for (j=0;j<numero_puntos;j++) for (z=0;z<numero_puntos;z++) si triangulo(i,j,z) cumple Delaunay y no repetido insertar (triangulo(i,j,z)) en lista_triangulos

Paso 2: Se ordenan los tringulos resultantes en el sentido de las agujas del reloj para facilitar el clculo de las regiones de Voronoi.
27

Al terminar tendremos una lista que contendr todos los tringulos que componen la triangulacin de Delaunay, mediante estos tringulos calcularemos las reas de Voronoi.

Su complejidad sera: T(n) = O(n) * O(n) * O(n) * O(n) T(n) = O(n ^ 4) Algoritmo de Fuerza Bruta Mejorado. Este algoritmo es una mejora del anterior usando Computacin Cientfica para la optimizacin de los bucles y el filtrado de posibles soluciones. Paso 1: Se ordenan los puntos en un array, el criterio de ordenacin es de izquierda a derecha y de arriba a abajo, esta ordenacin facilita enormemente el posterior clculo de la triangulacin.

28

Paso 2: El ncleo del algoritmo, consiste en un bucle que va calculando todas las posibles triangulaciones, descartando las que no cumplen los criterios de la triangulacin de Delaunay y quedndose con los que la cumplen. Al tener los puntos ordenados, el algoritmo calcular de forma ms eficiente las aristas de la Triangulacin de Delaunay ya que filtrar muchas de las repetidas. for (i=0;i<numero_puntos;i++) for (j=i;j<numero_puntos;j++) for (z=j;z<numero_puntos;z++) si triangulo(i,j,z) cumple Delaunay insertar (triangulo(i,j,z)) en lista_triangulos

29

Paso 3: Se ordenan los tringulos resultantes en el sentido de las agujas del reloj para facilitar el clculo de las regiones de Voronoi. Al terminar tendremos una lista que contendr todos los tringulos que componen la triangulacin de Delaunay, mediante estos tringulos calcularemos las reas de Voronoi.

Algoritmo del Diagrama de Voronoi Como ya hemos dicho anteriormente una vez conocido el Diagrama de Voronoi, existen una serie de propiedades que permiten calcular a partir de l la Triangulacin de Delaunay de forma directa e inequvoca, y viceversa pudiendo realizarse este proceso en tiempo lineal. En nuestro caso hemos decidido resolver primero la Triangulacin de Delaunay para luego obtener el Diagrama de Voronoi. Pasos para resolver el algoritmo:
30

Paso 1: Partimos de la Triangulacin de Delaunay previamente calculada.

Paso 2: Obtenemos el circuncentro de las circunferencias circunscritas a los tringulos que forman la Triangulacin de Delaunay.

Paso 3: Unimos los circuncentros de los tringulos que comparten una arista. Estas uniones formaran los lados del Diagrama de Voronoi. En el caso de que la arista de Delaunay forme parte del cierre convexo de la Triangulacin, trazaremos una perpendicular a la arista, desde el circuncentro del triangulo que contiene a la misma.
31

De esta forma obtendremos el Diagrama de Voronoi.

Aristas de Voronoi infinitas El primer problema al que nos enfrentamos en el clculo del rea de las regiones de Voronoi, es el de las aristas que se extienden al infinito, estas se corresponden con las aristas duales de Delaunay que forman parte del cierre convexo. El problema reside en que estas reas seran infinitas y en nuestro caso necesitamos limitarlas a una regin del plano finita.

32

Para resolver esto, debemos calcular los puntos de corte de las aristas del Diagrama de Voronoi con el rea dibujable.

33

Pasos para el clculo: Paso 1: for (i=0;i<numero_alistas_voronoi;i++) si la arista(i) se extiende al infinito nueva_arista = calcular el punto de corte con el rea dibujable de la arista(i) arista(i) = nueva_arista Al final de este bucle tendremos una lista de las aristas de Voronoi limitadas dentro del rea dibujable.

Clculo del tamao rea. El siguiente paso para el clculo del rea de las regiones de Voronoi, ser su triangulacin y el posterior clculo del rea de cada uno de estos tringulos. El clculo del rea de las regiones de Voronoi cuyos lados son adyacentes a otra
34

regin de Voronoi es relativamente sencillo, solo hay que generar tantos tringulos como aristas de Voronoi tenga el rea, tomando como uno de los lados la arista de Voronoi y como vrtice el punto al que corresponde esa rea.

Una vez triangulada, su rea ser la suma del rea de todos los tringulos que la forman.

35

En este punto nos encontramos con otro problema, como calcular el rea de las regiones que tienen lados que no son adyacentes con otra regin de Voronoi.

36

Lo primero que vamos a hacer va a ser asignar las cuatro esquinas de la zona dibujable, a las regiones de Voronoi en las que se encuentren, para ello lo ms sencillo es calcular la distancia de los puntos a las esquinas de la zona dibujable. Las esquinas pertenecern a la regin cuya distancia al punto al que pertenece sea menor.

37

Por lo que la esquina superior izquierda pertenecera a ese punto.

38

Repitiendo el paso para el resto de las esquinas.

Con esta informacin el clculo se resuelve normalmente, generando tantos tringulos como aristas de Voronoi tenga el rea, tomando como uno de los lados la arista de Voronoi y como vrtice el punto al que corresponde esa rea y aadiendo las esquinas.

39

Una vez trianguladas, sus reas sern la suma del rea de todos los tringulos que la forman.

40

Adems de esto, tenemos que tener en cuenta dos casos que difieren con el clculo normal de las reas, esto ocurre cuando las aristas de Voronoi de una regin cortan dos veces al mismo borde, o dos veces a bordes opuestos, en este caso el clculo del rea se realiza de forma distinta. En caso de que las aristas de Voronoi corten dos veces al mismo borde de la zona dibujable, su rea ser la suma de las reas de los tringulos formados por las aristas de Voronoi y como vrtice el punto al que corresponde esa regin, ms el triangulo entre ese punto y la arista que forma con el borde.

41

En caso de que las aristas de Voronoi corten dos veces a los bordes de la zona dibujable en bordes opuestos, su rea ser la suma de las reas de los tringulos formados por las aristas de Voronoi y como vrtice el punto al que corresponde esa regin, ms los tringulos entre ese punto y las aristas que forma con los bordes.

42

43

Uniendo todos los casos en un mismo ejemplo:

Caso Normal: aristas con sus vecinos. Caso 1: aristas en el mismo borde. Caso 2: aristas en bordes contiguos. Caso 3: aristas en bordes opuestos.

44

Con estos cuatro casos podemos calcular las triangulaciones de las regiones de Voronoi para cualquier nube de puntos.

Y sumado sus reas, obtenemos el tamao de las regiones de Voronoi.

45

Clculo del estado del rea. Una vez calculado el tamao de las reas de las regiones de Voronoi debemos conocer su estado, es decir si el tamao del rea es correcto, es demasiado grande o demasiado pequeo. Para este clculo tenemos un margen de error que llamaremos %area. Pasos para el clculo del estado de las reas: area_total = alto * ancho area = area_total / numero_puntos minima_area = area - %area maxima_area = area + %area for (i=0;i<numero_puntos;i++) if (area_punto(i) < minima_area) estado_punto(i) = menor if (area_punto(i) > maxima_area) estado_punto(i) = mayor else estado_punto(i) = solucion

Una vez calculado el estado de los puntos, ya tendramos toda la informacin necesaria para aplicar el Algoritmo Gentico.

46

Verde: solucin. Amarillo: rea menor que la solucin. Azul: rea mayor que la solucin.

47

BIBLIOGRAFIA

http://www.dma.fi.upm.es/mabellanas/antenas/aratm/memoria/TriangulaciN Delaunay.html http://www.escet.urjc.es/~matemati/tg/voronoi.pdf http://wwwdi.ujaen.es/asignaturas/gc/tema5.pdf

48

También podría gustarte