You are on page 1of 9

14/09/2016

nl
y

Ing. Jorge Bravo

U
se

Geometra Computacional
Problema del Par Mas Prximo

https://sites.google.com/site/jorgedavidbravoe/docencia

In

te

rn

al

Contenidos

1.

Problema

2.

Motivacin

3.

Por Fuerza Bruta

4.

Por Divisin y Conquista

14/09/2016

nl
y

Ing. Jorge Bravo

U
se

Problema

GEOMETRIA COMPUTACIONAL

al

Problema

In

te

rn

vDado n puntos en
un espacio de
dimensin d, se
desea encontrar
dos puntos cuya
distancia entre
ellos sea mnima.

14/09/2016

nl
y

Ing. Jorge Bravo

U
se

Motivacin

GEOMETRIA COMPUTACIONAL

al

Motivacin

rn

v Una aplicacin practica de


este problema esta en el
control de trafico areo.

In

te

En un sistema de control de
trfico areo auxiliado por
computador, es de vital
importancia que la
informacin de dos aviones
que estn ms cerca sea
determinada de la forma ms
eficiente posible, ya que
stos tendran ms
probabilidades de colisionar.

14/09/2016

nl
y

Ing. Jorge Bravo

U
se

Algoritmo por Fuerza Bruta

GEOMETRIA COMPUTACIONAL

al

Algoritmo por Fuerza Bruta

In

te

rn

vLa primera idea para resolver este problema es


aplicar una bsqueda exhaustiva de todos los
pares de puntos de la coleccin dada, buscando
la distancia mnima (o un par de puntos cuya
distancia es mnima).
Calcularemos la distancia entre cada par de
puntos, mientras mantendremos el par mas
prximo encontrado hasta el momento.

vEsto lleva a la siguiente algoritmo ingenuo (o


por la fuerza bruta).

14/09/2016

Algoritmo por Fuerza Bruta

nl
y

vEntrada: Conjunto de Puntos P={p1,,pn} en d.


vSalida: Un par de Puntos { pi, pj }, i j , cuya
distancia es mnima.
v +
vPara i=1n-1 hacer

vRetornar {p,q}

U
se

Si distancia(pi,pj) < entonces


distancia(pi,pj)
ppi
qpj

Para j=i+1 n hacer

al

Algoritmo por Fuerza Bruta d=1

rn

vEntrada: Conjunto de Puntos P={p1,,pn} en d=1.


vSalida: Un par de Puntos { pi, pj }, i j , cuya distancia

te

es mnima.
v Ordenar P, suponer p1p2 . pn

In

v +
vPara i=1n-1 hacer
Si distancia(pi,pi+1) < entonces
distancia(pi,pi+1)
ppi
qpj

vRetornar {p,q}

14/09/2016

nl
y

Ing. Jorge Bravo

U
se

Algoritmo por Divisin y Conquista

GEOMETRIA COMPUTACIONAL

al

Algoritmo por Divisin y Conquista d=1

te

rn

vConsideremos entonces la siguiente idea para


un algoritmo basado en el paradigma de divide y
vencers:

In

vSi dividimos el conjunto P de n puntos de la


recta por su mediana, tendremos dos
subconjuntos disjuntos, digamos PL y PR, con
todos los puntos de PL a la izquierda de la
mediana y los puntos de PR a la derecha.

14/09/2016

Algoritmo por Divisin y Conquista d=1


vEl par de puntos mas prximos en P, ser:

nl
y

Un par contenido en PL o
Un par contenido en PR o
un par de puntos muy especial en PLxPR

U
se

vAtencin: Este ultimo par necesariamente


tendra que ser compuesto por el punto mas a
la derecha de la PL y de el mas a la izquierda
de PR, es decir, los dos puntos vecinos de la
mediana - los puntos de separacin de PL y PR.

al

Algoritmo por Divisin y Conquista d=1

rn

v Entrada: Conjunto de Puntos P={p1,,pn} en d.


v Salida: Un par de Puntos { pi, pj }, i j , cuya distancia
es mnima.
v Dividir:

te

Calcule la mediana m de P. particione P en PL y PR tal


que p m <q para cada punto p en PL y q en PR.

In

v Conquistar:
Resolver por separado, el problema del par mas proximo
para PL y PR. Sea {p1, p2} PMP en PL y {q1, q2} PMP
en PR.

v Combinar:
Sea = min {| p1-p2 |, | q1-q2 |}. El PMP de P es {p1, p2}
o {q1, q2} o {p3, q3}, donde p3 PL y q3 PR.
En este ltimo caso, la distancia entre p3 y q3 debe ser menor
de .
Cuntos pares de puntos son candidatos {p3, q3}?
Resp: Maximo 1. A saber p3 = m y q3 = min {q | q PR}

14/09/2016

Ejemplo

In

te

rn

Ing. Jorge Bravo

al

U
se

nl
y

v1 2 3 4
5 6 8 9
v1 3 7 12 13 23 43 73

https://sites.google.com/site/jorgedavidbravoe/docencia

14/09/2016

Trabajo Siguiente Semana

U
se

nl
y

1. INVESTIGAR LA EXTENSION DEL ALGORITMO POR


DIVISIN Y CONQUISTA EN D=2.

al

TG # 01

In

te

rn

1. PROPONER UN EJEMPLO DONDE APLIQUE PASO


A PASO EL ALGORITMO POR FUERZA BRUTA
GENERAL.
2. PROPONER UN EJEMPLO DONDE APLIQUE PASO
A PASO LA MEJORA DEL ALGORITMO POR
FUERZA BRUTA EN D=1.
3. PROPONER UN EJEMPLO DONDE APLIQUE PASO
A PASO LA MEJORA DEL ALGORITMO POR
DIVISIN Y CONQUISTA EN D=1.
4. APLICANDO LAS REGLAS DE LA O GRANDE,
PASO A PASO, COMPROBAR LA COMPLEJIDAD DE
CADA ALGORITMO VISTO EN CLASE.

You might also like