Download
menor c rculo envolvente n.
Skip this Video
Loading SlideShow in 5 Seconds..
Menor Círculo Envolvente PowerPoint Presentation
Download Presentation
Menor Círculo Envolvente

Menor Círculo Envolvente

210 Vues Download Presentation
Télécharger la présentation

Menor Círculo Envolvente

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Menor Círculo Envolvente Eraldo Luís Rezende Fernandes (eraldoluis@inf.puc-rio.br) Michel Alain Quintana Truyenque (michel@inf.puc-rio.br)

  2. Menor Círculo Envolvente • Minimal Enclosing Circle (MCE) • Dados n pontos no plano, encontrar o círculo de menor raio que contenha todos os pontos • Pode ser estendido para espaço de dimensão d (Minimal Enclosing Ball)

  3. Aplicações • Planejamento de localização • Rotação de polígonos • Problemas que envolvem testes de proximidade com conjuntos de pontos • Aproximação para a maior distância entre dois pontos de um conjunto de pontos

  4. Algoritmos • Força bruta: O(n3) • Algoritmo iterativo: O(n2) • Algoritmo aleatório baseado em Programação Linear (Welzl, 1991): O(n)

  5. Algoritmo Iterativo Quadrático • Passo 1: Defina um círculo suficientemente grande que envolva todos os pontos (centro arbitrário)

  6. Algoritmo Iterativo Quadrático • Passo 2: Encontre o ponto A que esteja mais distante do centro do círculo anterior e redefina o círculo passando por A

  7. Algoritmo Iterativo Quadrático • Passo 3: Diminua o círculo mantendo o ponto A na sua fronteira e movendo o seu centro em direção ao ponto A até tocar outro ponto B do conjunto

  8. Algoritmo Iterativo Quadrático • Passo 4: • Tem-se agora um círculo passando por dois ou mais pontos • Se estes pontos definem um arco maior do que  então o círculo pode ser diminuído ainda mais (caso contrário, o MEC é o círculo atual) • Sejam D e E os dois pontos que definem o arco maior que . Diminuir o raio do círculo mantendo-o em contato com os pontos D e E até que: • O diâmetro do círculo seja o segmento DE; ou • O círculo toque um terceiro ponto

  9. Algoritmo Iterativo Quadrático • Passo 4:

  10. Algoritmo Iterativo Quadrático • Passo 4: • Se um círculo com diâmetro DE é encontrado então este é o MEC • Se o círculo toca um terceiro ponto então repete-se o passo 4

  11. Algoritmo Iterativo Quadrático • Passo 4: (novamente)

  12. Algoritmo Iterativo Quadrático

  13. Algoritmo Aleatório de Welzl • Proposto em 1991 por Emo Welzl • Inspirado no algoritmo aleatório de programação linear • Também é incremental, porém, Welzl o propos em forma de um procedimento recursivo

  14. Algoritmo Aleatório de Welzl • Calcula o MEC para n pontos de forma incremental. Inicia construindo o MEC para dois (ou três) pontos, e segue incluindo os pontos seguintes um após o outro sempre mantendo o MEC do conjunto considerado • Teoremas necessários: • Seja md(P) o disco definido pelo MEC do conjunto de pontos P • Para qualquer P, md(P) é bem definido (é único) • São necessáriosno máximo 3 pontos para definir md(P), ou seja, existe S  P tal que |S| <= 3 e md(S) = md(P)

  15. Algoritmo Aleatório de Welzl • Seja P = {p1,p2,...,pn} o conjunto de entrada e suponha que Di = md({p1,p2,...,pi}) já foi calculado • Se pi+1 Dientão Di+1 = Di • Se pi+1 Di então Di+1 é o disco definido pelo MEC dos pontos {p1,p2,...,pi} e que passa por pi+1. Neste caso o MEC dos pontos é calculado pelo procedimento b_mce({p1,p2,...,pi}, pi+1)

  16. Algoritmo Aleatório de Welzl função mce(P) se P = Ø então D := Ø; senão escolhe p  P aleatoriamente D := mce(P - {p}); se p  D então D := b_mce(P - {p}, p); retorna D; fim probabilidade 3/n

  17. Algoritmo Aleatório de Welzl • Dados dois conjuntos P e R de pontos no plano, seja b_md(P, R) o menor disco que contenha todos os pontos de P e possua todos os pontos de R na sua fronteira • Se b_md(P, R) existe então ele é bem definido • Se p  b_md(P – {p},R) então p está na fronteira de b_md(P, R), dado que ele existe, ou seja, b_md(P, R) = b_md(P – {p},R  {p}) • Se b_md(P, R) existe então existe um conjunto S de no máximo max{0, |R|} tal que b_md(P, R) = b_md(S, R)

  18. Algoritmo Aleatório de Welzl função b_mce(P, R) se P = Ø ou |R| = 3 então D := b_md(Ø, R); senão escolhe p  P aleatoriamente D := b_mce(P - {p}); se p  D então D := b_mce(P - {p}, R  {p}); retorna D; fim probabilidade 3/n

  19. Algoritmo Aleatório de Welzl função mce(P) b_mce(P, Ø); fim

  20. Menor Círculo Envolvente http://www.inf.puc-rio.br/~eraldoluis/mec