1 / 20

Menor Círculo Envolvente

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

xarles
Télécharger la présentation

Menor Círculo Envolvente

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related