Divide & Conquer: problema del par más cercano

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

Diseño y análisis de algoritmos
SISTEMA DIÉDRICO El punto.
Estructura de Datos Hugo Araya Carrasco Hugo Araya Carrasco.
Curso de Programación I Parte I
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
Resolución de problemas
Ingeniería de sw.
CONFORMACIÓN AUTOMATIZADA DE ÁREAS DE RESPONSABILIDAD
GEOMETRIA Alumnos: Leonardo Aquino tapia
Profesores: Danilo Bassi y Arturo Alvarez
Sistemas Evolutivos Introduccion.
Profesor: Carlos Alvarado de la Portilla
INTRODUCCIÓN A LA COMPUTACIÓN 12va Semana – 19va Sesión Miércoles 18 de Mayo del 2005 Juan José Montero Román
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Temas importantes para el desarrollo de la segunda parte del TPE
Problemas de proximidad
División de un segmento en una razón dada
Programación Modular (Pseudocódigo)
ALGORITMOS, CONCEPTOS BASICOS.
Cálculo vectorial El curso debería ser de un año
Introducción al análisis de algoritmos
Algoritmos.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.

Algoritmos de búsqueda
CC3001 Algoritmos y Estructuras de Datos
Diagramas de Voronoi.
Sesión 6: Campos de Markov
Gráfica de una ecuación y lugares geométricos
¿Optimización por Simualción u Optimización para la Simulación? Universidad Central de Venezuela Escuela de Ingeniería Eléctrica Dr. Ebert Brea Profesor.
complejidad de un problema.
Guías Modulares de Estudio Matemáticas IV – Parte B
SISTEMAS DE ECUACIONES Y GEOMETRÍA Prof. José Mardones Cuevas
Vectores Lic. Sujey Herrera Ramos. Sistemas Coordenados  Muchos aspectos de la física incluyen una descripción de una ubicación en el espacio.  En dos.
División de un segmento en una razón dada Sean P 1 (x 1,y 1 ) y P 2 (x 2,y 2 ) los extremos de un segmento, entonces la razón en que el punto P(x,y) divide.
1 Introducción a la Computación para Biólogos, Bioquímicos, Médicos, etc.
Matemática Aplicada I José Ramón Gómez Envolvente convexa Tema 5.
UNIDAD 3 (3ra parte) UNIDAD 4
Ecuación general del círculo
Escalamiento Multidimensional No-Métrico Capítulo 16 de McCune y Grace 2002.
Análisis y Diseño de Algoritmos
Trabajo PID Análisis de imágenes de biopsias de músculo humano. Segmentación de células para construir un grafo a partir de las adyacencias entre ellas.
DISTRITACIÓN ELECTORAL y OPTIMIZACIÓN COMBINATORIA David Romero Instituto de Matemáticas - UNAM Cuernavaca, Morelos COLOQUIO INTERNACIONAL DE DISTRITACIÓN.
ELABORACIÓN DE PÁGINAS WEB
Oscar F. Bedoya L. Fundamentos de análisis y diseño de algoritmos.
Fundamentos de Programación
Coordenadas cartesianas
La sombra que proyecta un vector sobre otro
Diagramas de Voronoi.
Entendiendo las partes
DATA MINING KAROL PARDO MIGUEL VALCERO CORPORACION UNIVERSITARIA MINUTO DE DIOS.
Un algoritmo es un método en el que se define paso a paso la solución de un problema que termina en un número infinito de pasos. Un algoritmo es otro tipo.
Elaboración de algoritmos usando lógica de programación
Escalamiento Multidimensional No-Métrico. Rasgos generales Busca las mejores posiciones de n objetos en un espacio de k dimensiones que se asemejen más.
SENA CENTRO INDUSTRIAL DE ENERGIAS ALTERNATIVAS
Introducción a los TADs
Asignatura: Trabajo de Titulación Ingenierías (PIESC-PIECII).
28 Agosto del 2006 Repaso: examen Tema para hoy:
Análisis y Diseño de Algoritmos Programa #1 Samuel Garrido Daniel.
Por: Yasiri M. Ortiz Soto ESTÁNDARES DE CONTENIDO DEL PROGRAMA DE MATEMATICAS.
DESCOMPOSICIÓN DE FIGURAS
EVALUACIÓN DE EXPRESIONES ALGEBRAICAS
LÍMITES Y SUS PROPIEDADES
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.

La programación se puede definir como...
24 Agosto del 2006 Repaso: Pitágoras Distancia entre 2 puntos Aplicaciones de la tarea Tema para hoy: Colineales Puntos Equidistantes Act 2-3.
1 C OMPUTACIÓN A VANZADA PARA M ÚSICA POR O RDENADOR ALGORITHMS FOR COMPUTING GEOMETRIC MEASURES OF MELODIC SIMILARITY 1.
TRABAJO PRACTICO Nº 1 Espacio: Taller I “aplicaciones de la integral definida” Integrantes: Dapozo,Marcelo Fabián, Gamarra,
Transcripción de la presentación:

Divide & Conquer: problema del par más cercano Geometría Computacional. Lic. Yessika Labrador

Contenido Introducción. El Problema. Solución por Fuerza Bruta. Solución Divide & Conquer. Conclusión

Introducción La geometría computacional se encarga del diseño y análisis de algoritmos para resolver problemas geométricos. Son útiles en campos como la graficación por computadora, estadística, procesamiento de imágenes, etc.

El problema del par más cercano Dado un conjunto Q de n puntos en el plano, con n≥2, determinar un par de puntos más cercanos. La unidad de medida de distancia es la distancia euclidiana:

Algoritmo de fuerza bruta ParMásCercanoFB minDist  ∞ para cada p in P: para cada q in P: si p ≠ q y dist(p,q) < minDist: minDist  dist(p,q) parCercano  (p,q) retornar parCercano Tiempo del algoritmo: O(n2)

Algoritmo Divide & Conquer. Toma como entrada las matrices X e Y, X,Y Q. X está ordenada monótonamente creciente por la coordenada x. Y está ordenada por la coordenada y. Si |P|≤3 se realiza la invocación del método de fuerza. Si |P|>3 la invocación recursiva se lleva a cabo.

Algoritmo Divide & Conquer. Se encuentra una línea vertical l que divide a P en dos: PL y PR, |PL| = (|P|/2) , |PR| = (|P|/2) X se divide en XL y XR. Y se divide en YL y YR.

Algoritmo Divide & Conquer. Se hacen dos llamadas recursivas: para encontrar el par más cercano de puntos en el PL y para encontrar el par más cercano de puntos en PR. Dado δL y δR δ = min(δL, δR).

Algoritmo Divide & Conquer. Composición de soluciones: El par más cercano es el par con la distancia δ encontrada por las llamadas recursivas. Es un par de puntos con un punto en el PL y el otro en PR.

Algoritmo Divide & Conquer. Los puntos deben estar en la franja vertical de ancho 2δ con centro en l. Se crea Y', con los puntos de Y que están en la franja. Para cada punto p en Y', buscamos la distancia entre p y los próximos 7 puntos en Y'. Si δ'<δ retorna δ', en caso contrario retorna δ.

Algoritmo Divide & Conquer. Correctitud del Algoritmo: |P|≤3 nos aseguramos de que no tratamos de resolver un subproblema consiste en un solo punto. Sólo tenemos que comprobar los 7 puntos posteriores a cada punto P de Y'.

Algoritmo Divide & Conquer. parMásCercano (XP, YP) Si N ≤ 3 entonces retornar par más cercano con algoritmo de fuerza bruta Sino xL  puntos de XP hasta (N/2) xR  puntos de XP desde (N/2) xm  xP(techo(N/2)) yL  { p ∈ yP : px ≤ xm } yR  { p ∈ yP : px > xm } (dmin, parMin)  menorPar(parMásCercano (xL, yL), parMásCercano (xR, yR)) Y’  { p YP : |xm - px| < dmin } para cada p Y’ para los 7 sucesores de p Y’ si |p - q| < dmin entonces (dmin, parMin)  (|p - q|, {p, q}) retornar (dmin, parMin)

Algoritmo Divide & Conquer. Tiempo de Ejecución Preordenar el arreglo O(n logn) T(n), tiempo de ejecución de cada etapa recursiva. T'(n), tiempo de ejecución del algoritmo total. T'(n) = T(n) + O(n lgn) T(n) = 2T(n/2)+O(n) si n>3 O(1) si n≤3 Entonces, T(n)=O(n lgn) y T'(n)=O(n lgn).

Conclusión El algoritmo Divide & Conquer O(n lgn) es mucho más eficiente que un algoritmo de fuerza bruta O(n2).

Al considerar las posibles posiciones de los puntos en el rectángulo, Lerner y Johnsonbaugh demostraron que basta comparar cada punto de la franja con los siguientes tres puntos. Existen otros enfoques (triangulación de Delaunay, diagrama de Voronoi) que toman O(n lgn) para el problema en el plano. Sin embargo no son eficaces para dimensiones >2. El algoritmo Divide&Conquer puede ser generalizado para tomar O(n lgn).

Divide & Conquer: problema del par más cercano