Problemas de proximidad

Slides:



Advertisements
Presentaciones similares
ALGORITMOS DE KRUSKAL Y PRIM
Advertisements

Diseño y análisis de algoritmos
TRANSFORMACIONES GEOMETRICAS
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
GRAFOS: ALGORITMOS FUNDAMENTALES
MATEMÁTICAS DISCRETAS.
Búsqueda Informada Heurísticas.
TEMA 9 PROPORCIÓN Y ESTRUCTURAS MODULARES
Grafos dualmente cordales y sus relaciones con otros tipos de grafos

Geometría Computacional
Vectores en el plano. Producto escalar.
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Problemes de Viatjants
GRAFOS HUGO ARAYA CARRASCO.
Programación entera y grafos
Estructura de Datos Lineales
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Ejemplos de Grafos: Red de tráfico con caminos y cruces.
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
Teoria de grafos.-clase 4
Guías Modulares de Estudio MATEMATICAS III Parte A
Universidad de los Andes-CODENSA
E.T.S. DE INGENIEROS DE MINAS
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Árbol recubridor mínimo Distancias
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Introducción a las imágenes digitales
Matemáticas Discretas
Parte 2: Aplicaciones (anchura y diámetro)

Diseño y análisis de algoritmos
Diagramas de Voronoi.

Diseño y análisis de algoritmos
Lenguajes regulares Teoría del Autómata.
MÉTODO DE PIXELES DE BORDE
Matemática Aplicada I Alberto Márquez Geometría Computacional Localización Planteamiento del problema Casos simples.
Matemáticas Discretas
Matemática Aplicada I José Ramón Gómez Envolvente convexa Tema 5.
Programación lineal La programación lineal es una técnica matemática relativamente reciente, del siglo XX, que consiste en una serie de métodos y procedimientos.
Matemática Aplicada I Alberto Márquez Tema 4: Triangulaciones TEMA 4: TRIANGULACIONES.
VECTORES EN EL PLANO.
Sesión 3: Teoría de Grafos
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
EXAMENES PAU JUNIO Fase General
EXAMENES PAU JUNIO Fase Especifica
1 Condiciones de extremo Proceso para derivar las condiciones De problema más simple a más complejo Progresión de problemas: Problema sin restricciones.
Apuntes de Matemáticas 3º ESO
Aplicaciones de la derivada a la economía
TEMA 5: El problema del flujo con costo mínimo
Flujo en redes Def: una red N es un grafo orientado conexo que tiene dos nodos distinguidos una fuente s con grado de salida positivo y un sumidero t con.
Diagramas de Voronoi.
Luciano Reyes Itzel Elvira
OVALOS, OVOIDES Y ESPIRALES
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
DIBUJO GEOMETRICO Tangencias.
Matemática Aplicada I Alberto Márquez Envolvente convexa Tema 5.
ARBOLES GENERALIZADOS
GEOMETRIA PLANA.
GRAFOS.
EXAMENES PAU JUNIO Fase general
Envolvente convexa Parte 1: Algoritmos
Matemáticas Discretas MISTI
EXAMENES PAU JULIO Fase general
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
Recuerda. La circunferencia
Los triángulos María Macarena Vaccarezza. Las figuras La figura es la parte de un plano formado por un conjunto de puntos que están limitado por una línea.
Polígono de 7 lados Heptágono
 Un triángulo es un polígono determinado por tres rectas que se intersectan en tres puntos no alineados; los puntos de intersección son los vértices.
Transcripción de la presentación:

Problemas de proximidad

P1: Tráfico aéreo Aeronáutica Entre muchos aviones en una pantalla encontrar los dos más cercanos

P2: Ecología Entre muchos linces en un terreno encontrar el más cercano a cada cual

P3: Trazado de redes Conectar n puntos de tal forma que la longitud de la red sea mínima

P5: Clasificador de objetos Dado un conjunto de modelos y un nuevo elemento q, encontrar el modelo más cercano a q.

P6: Propiedades físicas de materiales Dado una serie de compuestos tratar de determinar cuál serán las propiedades físicas de sus mezclas.

P6: El círculo máximo vacío.

P1: Tráfico aereo Aeronáutica El par más cercano Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano

Todos los pares más cercanos P2: Ecología Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano

Árbol recubridor (generador) mínimo P3: Trazado de redes Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima

Árbol recubridor (generador) mínimo P3: Trazado de redes Árbol de Steiner Algoritmos genéticos Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima

Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera posible

P5: Clasificador de objetos Vecino más cercano Dado un conjunto de modelos y un nuevo elemento q, encontrar el modelo más cercano a q. Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q.

P6: Propiedades físicas de materiales Dado una serie de compuestos tratar de determinar cuál serán las propiedades físicas de sus mezclas.

Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene

P6: El círculo máximo vacío.

Fuerza bruta O(n2) O(2n) ? O(n) O(n3) El par más cercano Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera Vecino más cercano Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q. Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene Círculo máximo vacío. Dados N puntos en plano, hallar máximo círculo sin puntos en interior

Problemas de proximidad Problemas de proximidad La solución Diagramas de Voronoi

El problema del par más cercano (Closest pair) Planteamiento                              Figura 2.- El par de puntos más cercanos

Para dimensión 1 sería O(NlogN). Solución inmediata: todos con todos  algoritmo O(N2) Para dimensión 1 sería O(NlogN). Más cercanos=consecutivos Ordenación previa O(NlogN) + Comparación consecutivos (lineal)

Solución 1: (Usando el diagrama de Voronoi) Teorema 1: El diagrama de Voronoi de una nube de N puntos en el plano puede construirse en tiempo óptimo O(NlogN).

Solución 2: (Usando técnica divide y vencerás) Buscamos algoritmo O(NlogN). Se divide el problema en dos cuyas soluciones se combinen en tiempo lineal. Si par más cercano uno S1 y otro S2  N2/2 comparaciones tiempo cuadrático. Divide y vencerás O(NlogN)

función ClosestPair1 ( S : conjunto de [1 función ClosestPair1 ( S : conjunto de [1...N] puntos en una dimensión) dev (l : distancia entre los dos más cercanos)     si ( numeroElementos(S) = 2 ):         l := S(2) – S(1)     | si ( numeroElementos(S) = 1 ):         l := INFINITO     | otras:         m = mediaValores(S)         Construye(S, S1, S2) // S1 = {p: m³ p}, S2 = {p: m<p} donde pÎ S         l1 = ClosestPair1 ( S1 )         l2 = ClosestPair1 ( S2 )         p = max ( S1 )         q = min ( S2 )         l = min ( l1, l2, q-p )     fsi

Algoritmo anterior: válido para dimensión 1 Buscamos algoritmo O(NlogN) para dimensión 2. Se divide el problema en dos cuyas soluciones se combinen en tiempo lineal.

procedure CPAIR2 (S: conjunto [1..N] de puntos) 1. Dividir S en dos subconjuntos S1 y S2 por una línea vertical l por la mediana. 2. Encontrar la separación entre el par más cercano en S1 y S2 recursivamente, 1, 2. 3. = min(1, 2) 4. Sea P1 un subconjunto de puntos de S1 que no distan más de  de l y sea igualmente P2 para S2. Proyéctense los puntos de P1 y P2 en l y ordénense por la coordenada y. Sean P1* y P2* las dos secuencias anteriores después de la ordenación. 5. Para cada punto p de P1* examinar los puntos q de P2* a distancia menor que  de p (nunca serán más de 6 para cada punto). Sea  la distancia mínima encontrada entre estos pares de puntos. 6. s = min (,) 7. Devolver s

Coste del algoritmo: Pasos 1 y 5 tiempo O(N). Pasos 3 y 6 tiempo constante. Paso 2 tiempo 2T(N/2), si T(N) tiempo algoritmo N puntos. Paso 4 es ordenación tiempo O(NlogN) si ordenásemos en cada iteración Si usamos preprocesamiento T(N) = 2T(N/2) + O(N) = O(NlogN) Teorema: La distancia más corta determinada por N puntos en el plano se puede encontrar en O(NlogN) y este tiempo es óptimo.

NEAREST-NEIGHBOR SEARCH (Búsqueda del vecino más cercano) Planteamiento Dados N puntos en el plano, con preprocesamiento, encontrar el vecino más cercano de un nuevo punto dado q.

para acelerar búsqueda: problema de la clasificación Método más importante para acelerar búsqueda: problema de la clasificación Todo objeto será clasificado como perteneciente a un sólo individuo de una población conocida: población al que pertenece su vecino más cercano.

debe ser clasificado como "B". En la figura el punto U debe ser clasificado como "B". . B

Tratamiento La búsqueda del vecino más cercano se hará sobre una estructura ordenada. Así, encontrar el vecino más cercano se reduce a hacer una búsqueda binaria. Dados N números reales x1,x2,...xN la búsqueda binaria (con preprocesamiento) identifica a xi como el vecino más cercano al número q. Esto es válido para varias dimensiones.

Teorema: En el peor caso se necesitan (log N) comparaciones para hallar al vecino más cercano a un punto en cualquier dimensión.  Teorema: El problema del vecino más cercano puede ser resuelto en tiempo (logN) con preprocesamiento (NlogN). El preprocesamiento sobre nube de puntos es construir el diagrama de Voronoi. Este se construye en tiempo óptimo (NlogN).

El problema de los vecinos más cercanos (All Nearest-Neighbor Search) Planteamiento "Dados N puntos en el plano, encontrar el vecino más cercano a cada punto." B es el vecino más cercano de un punto A dentro de un conjunto de puntos S si y sólo si la distancia entre dichos puntos es la mínima distancia entre A y cualquier punto de S: dist (A,B) = min dist(A,C).       C S – A

Representación plana: grafo dirigido donde si A y B son nodos del grafo y B es el más cercano a A los unimos con un arco de A a B.

Si B es el vecino más cercano a A A NO tiene que ser vecino más cercano a B. Si A es vecino más cercano a B y B es el vecino mas cercano a A el par (A, B) es un par recíproco. Un punto puede ser el vecino más cercano de varios puntos de la nube.

SOLUCIÓN: Construir Diagrama de Voronoi de la nube de puntos. PROPIEDAD: Cada vecino más cercano al punto define una arista de su región de Voronoi. Construido Diagrama Voronoi Tiempo lineal: cada arista se visita como máximo dos veces

Lema 3. Dado una partición de S en dos subconjuntos disjuntos S1 y S2 la arista más corta que une un vértice de S1 con uno de S2 es entre dos vecinos de Vor(S). Nota: El número de vecinos de Vor(S) es lineal.

Lema 3. Dado una partición de S en dos subconjuntos disjuntos S1 y S2 la arista más corta que une un vértice de S1 con uno de S2 es entre dos vecinos de Vor(S). Teorema. Todos los vecinos más cercanos de S puede ser resuelto en tiempo óptimo lineal conociendo Vor(S). Nota: El número de vecinos de Vor(S) es lineal. Corolario. El par más cercanos de S puede ser resuelto en tiempo óptimo lineal conociendo Vor(S).

Árbol recubridor euclídeo mínimo (Euclidean Minimum Spanning Tree) Planteamiento. Dados N puntos en el plano, construir árbol de longitud total mínima y cuyos vértices sean los puntos dados. Solución: lista de N-1 pares puntos (aristas árbol)

Se presenta en aplicaciones relacionadas con trabajos de redes. Ejemplo: Se quiere instalar un sistema de comunicaciones conectando los N nodos de la red con cables, utilizando el EMST (Euclidean Minimun Spanning Tree) el coste de la instalación será el mínimo.

El problema del árbol recubridor (Minimum Spanning Tree) es un problema clásico teoría de grafos Dado grafo G: N nodos y E aristas ponderadas, hallar menor subárbol de G con todos los vértices de G. Soluciones independientes: Dijkstra (1959), Kruskal (1956), Prim (1957) Algoritmos polinomiales Un grafo con N vértices puede llegar a tener hasta N^(N-2) subárboles.

Tratamiento Previa ordenación, el problema EMST es transformable a tiempo lineal. Luego  (N log N), es límite inferior del problema para N puntos. Lema 1: [Prim (1957)] Sea G = (V,E) grafo ponderado y {V1,V2} partición de V. Existe árbol recubridor de G que contiene la arista más corta con extremos uno en V1 y el otro en V2.

Vértices V, los puntos de la nube. Peso aristas la distancia entre extremos. El algoritmo EMST trata en cada paso un bosque de árboles. Bosque inicial la nube de puntos. Algoritmo: Seleccionar un árbol T del bosque. Encontrar una arista (u’,v’) tal que d(u’,v’)=min{d(u,v): u  T, v  S-T} Si T’ es árbol que contiene a v’, combinar T y T’ enlazándolos por la arista (u’,v’). Algoritmo finaliza cuando bosque se convierte en un árbol, nos podemos apoyar en el diagrama de Voronoi basta examinar aristas triangulación Delaunay, es decir, basta hallar MST de un grafo plano.

proc EMST alg   1    F:= 2    desde i:=1 hasta N 3    etapa(pi):=0       encola(F,pi)     fdesde (* cola inicializada *) 4    j:=1 (* valor de etapa se inicializa al valor siguiente *) 5    mientras ( F contenga más de un número) 6    T:= cabeza(F)      si (etapa(T)=j) 7    clean-up 8    j=j+1      fsi 9    (u,v):=arista más corta incidente a T (con u en T) 10    T’:= árbol en F que contiene a v 11    T’’:= unir(T,T’) 12    borra T’ de F 13    etapa(T’’):= min(etapa(T),etapa(T’))+1 14    encola(F,T’’)      fmientras   fin

Teorema 1. EMST de nube S de N puntos en el plano puede ser computado en un tiempo óptimo O(N) a partir de la triangulación de Delaunay de S. Como el cálculo de la triangulación de Delaunay es O(N log N) sigue: Corolario. EMST de nube de N puntos en el plano computada en un tiempo óptimo O(N log N).

MST S1={p,q} donde pq es el par más cercano, S2=S-S1 S1=S1v donde v es el vértice de S2 más cercano a S1

Fuerza bruta Diagrama de Voronoi O(n2) O(2n) ? O(n) O(n3) O(n) ? El par más cercano O(n2) Fuerza bruta O(2n) ? O(n) O(n3) O(n) Diagrama de Voronoi ? O(log n) Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera Vecino más cercano Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q. Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene Círculo máximo vacío. Dados N puntos en plano, hallar máximo círculo sin puntos en interior

MST S1={p,q} donde pq es el par más cercano, S2=S-S1 S1=S1v donde v es el vértice de S2 más cercano a S1

MST S1={p,q} donde pq es el par más cercano, S2=S-S1 S1=S1v donde v es el vértice de S2 más cercano a S1

MST S1={p,q} donde pq es el par más cercano, S2=S-S1 S1=S1v donde v es el vértice de S2 más cercano a S1

MST S1={p,q} donde pq es el par más cercano, S2=S-S1 S1=S1v donde v es el vértice de S2 más cercano a S1 Lema 3. Dado una partición de S en dos subconjuntos disjuntos S1 y S2 la arista más corta que une un vértice de S1 con uno de S2 es entre dos vecinos de Vor(S). Nota: El número de vecinos de Vor(S) es lineal. Teorema. El MST puede construirse en tiempo lineal óptimo a partir de Vor(S).

Fuerza bruta Diagrama de Voronoi O(n2) O(2n) ? O(n) O(n3) O(n) ? El par más cercano O(n2) Fuerza bruta O(2n) ? O(n) O(n3) O(n) Diagrama de Voronoi ? O(log n) Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera Vecino más cercano Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q. Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene Círculo máximo vacío. Dados N puntos en plano, hallar máximo círculo sin puntos en interior

Fuerza bruta Diagrama de Voronoi O(n2) O(2n) ? O(n) O(n) ? O(log n) El par más cercano O(n2) Fuerza bruta O(2n) ? O(n) O(n) Diagrama de Voronoi ? O(log n) Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera posible Vecino más cercano Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q. Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene

Fuerza bruta Diagrama de Voronoi O(n2) O(2n) ? O(n) O(n3) O(n) ? El par más cercano O(n2) Fuerza bruta O(2n) ? O(n) O(n3) O(n) Diagrama de Voronoi ? O(log n) Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera Vecino más cercano Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q. Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene Círculo máximo vacío. Dados N puntos en plano, hallar máximo círculo sin puntos en interior

LARGEST EMPTY CIRCLE (El círculo vacío mas grande) Planteamiento Planteamiento "Dados N puntos en el plano, encontrar el círculo más grande que no contenga ningún punto del conjunto cuyo centro está dentro del polígono convexo que engloba todos los puntos, es decir, dentro del cierre convexo"

max (min ( Xi – Xo )^2+(Yi – Yo )^2), El punto p0 se halla a partir de max (min ( Xi – Xo )^2+(Yi – Yo )^2),       con  p0 en la envolvente convexa de la nube Problema círculo vacío es problema de localización que busca un punto lo más lejos posible de los N existentes.

Teorema: El centro del círculo máximo vacío es vértice del diagrama de Voronoi correspondiente a la nube de puntos. Teorema: El círculo vacío más grande de una nube de N puntos en el plano puede ser construido en tiempo O(NlogN).

Propiedad 1: Cada borde de Voronoi intersecta, máximo con dos lados de la envolvente convexa. Por la convexidad, la intersección de cualquier otra línea con la envolvente es un (posiblemente vacío) segmento. Propiedad 2: Cada lado de la envolvente convexa intersecta, al menos, un borde de Voronoi. Cualquier lado de la envolvente convexa junta dos partes distintas de la nube que pertenecen a distintas regiones Voronoi.

Fuerza bruta Diagrama de Voronoi O(n2) O(2n) ? O(n) O(n3) O(n) El par más cercano O(n2) Fuerza bruta O(2n) ? O(n) O(n3) O(n) Diagrama de Voronoi O(log n) ? Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera Vecino más cercano Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q. Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene Círculo máximo vacío. Dados N puntos en plano, hallar máximo círculo sin puntos en interior

Fuerza bruta Diagrama de Voronoi O(n2) O(2n) ? O(n) O(n3) O(n) El par más cercano O(n2) Fuerza bruta O(2n) ? O(n) O(n3) O(n) Diagrama de Voronoi O(log n) Entre muchos aviones en una pantalla encontrar los dos más cercanos puntos en el plano Todos los pares más cercanos Entre muchos linces en un terreno encontrar el más cercano a cada cual puntos en el plano Árbol recubridor (generador) mínimo Conectar n puntos de tal forma que la longitud de la red sea mínima Triangulación equilátera Entre todas las triangulaciones encontrar la más equilátera Vecino más cercano Dado un conjunto de puntos S y un nuevo punto q, encontrar el elemento de S más cercano a q. Envolvente convexa Dada una serie de puntos encontrar el menor convexo que los contiene Círculo máximo vacío. Dados N puntos en plano, hallar máximo círculo sin puntos en interior