1 / 59

Geometria Computacional

Geometria Computacional. Triangulação e conceitos afins . Exemplo: Caminho mais curto. Pode ser reduzido ao problema de encontrar o caminho mais curto em um grafo (grafo de visibilidade) Resolve-se com algoritmos não geométricos Ex.: Algoritmo de Dijkstra

nikita
Télécharger la présentation

Geometria Computacional

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. Geometria Computacional Triangulação e conceitos afins

  2. Exemplo: Caminho mais curto • Pode ser reduzido ao problema de encontrar o caminho mais curto em um grafo (grafo de visibilidade) • Resolve-se com algoritmos não geométricos • Ex.: Algoritmo de Dijkstra • Algoritmos geométricos podem dar uma solução mais eficiente

  3. Eficiência dos Algoritmos • Complexidade assintótica de pior caso • Problema do Caminho mais curto • Algoritmo simples O (n2 log n) • Algoritmo complexo O (n log n) • Casos médios • Difíceis de se caracterizar • Requerem que se estipule uma distribuição “típica” • Muitas estruturas de dados e algoritmos que se conjectura serem eficientes para casos típicos • Quadtrees em geral • BSP trees

  4. Limitações da Geometria Computacional • Dados discretos • Aproximações de fenômenos contínuos • Funções quantizadas ao invés de funções contínuas (e.g. imagens) • Objetos geométricos “planos” • Aproximações de geometrias “curvas” • Dimensionalidade • Normalmente, 2D e um pouco de 3D • Problemas n-dimensionais são pouco abordados

  5. Técnicas usadas em GC • Técnicas convencionais de desenho de algoritmos • Dividir para conquistar • Programação dinâmica • Técnicas próprias para algoritmos geométricos • Varredura (plane sweep) • Construções randomizadas incrementais • Transformações duais • Fractional Cascading

  6. Tendências • Muitas soluções “ótimas” foram obtidas mas as implementações ... • Muito complicadas • Muito sensíveis a casos degenerados • Problemas de precisão • Complexidade inaceitável para problemas pequenos • Foco em obter soluções práticas • Algoritmos simples • Freqüentemente randomizados • Tratamento de casos degenerados • Engenharia de software

  7. Problemas – Fecho Convexo • Menor polígono (poliedro) convexo que contém uma coleção de objetos (pontos)

  8. Problemas - Interseções • Determinar interseções entre coleções de objetos

  9. Problemas – Triangulações • Dividir domínios complexos em coleções de objetos simples (simplexes)

  10. Problemas – Prog. Linear em 2d e 3d • Problemas de otimização • Ex.: menor disco que contém um conjunto de pontos

  11. Problemas – Arranjos de Retas • Dada uma coleção de retas, é o grafo formado pelos pontos de interseção e segmentos de reta entre eles • Problemas sobre pontos podem ser transformados em problemas sobre retas (dualidade)

  12. Problemas – Diagramas de Voronoi e Triangulações de Delaunay • Dada uma coleção de pontos S • Diagrama de Voronoi delimita as regiões de pontos mais próximos • Triangulação de Delaunay é o dual do D. V.

  13. Problemas – Busca Geométrica • Algoritmos e estruturas de dados para responder consultas geométricas. Ex.: • Todos os objetos que interceptam uma região • Polígono • Disco • Par de pontos mais próximos • Vizinho mais próximo • Caminho mais curto

  14. Geometria Afim • Composta dos elementos básicos • escalares • pontos - denotam posição • vetores - denotam deslocamento (direção e magnitude) • Operações • escalar · vetor = vetor • vetor + vetor ou vetor – vetor = vetor • ponto – ponto = vetor • ponto + vetor ou ponto – vetor = ponto

  15. Combinações Afim • Maneira especial de combinar pontos • Para 2 pontos P e Q poderíamos ter uma combinação afim R = (1– )P +Q = P +(P – Q) P P  < 0 R= P+(P – Q) Q 0 <  < 1 Q  > 1

  16. Combinações Convexas • Combinações afim onde se garante que todos os coeficientes i são positivos (ou zero) • Usa-se esse nome porque qualquer ponto que é uma combinação convexa de n outros pontos pertence à envoltória convexa desses pontos P2 P1 P3 Q P5 P4

  17. Geometria Euclidiana • Extensão da geometria afim pela adição de um operador chamado produto interno • Produto interno é um operador que mapeia um par de vetores em um escalar. Tem as seguintes propriedades: • Positividade : (u,u) 0 e (u,u)= 0 sse u=0 • Simetria: (u,v)= (v,u) • Bilinearidade: (u,v+w)= (u,v)+ (u,w) e (u,v)= (u,v)

  18. Geometria Euclidiana • Normalmente usamos o produto escalar como operador de produto interno: • Comprimento de um vetor é definido como: • Vetor unitário (normalizado):

  19. Geometria Euclidiana • Distância entre dois pontos P e Q =|P – Q | • O ângulo entre dois vetores pode ser determinado por • Projeção ortogonal: dados dois vetores u e v, deseja-se decompor u na soma de dois vetores u1 e u2 tais que u1 é paralelo a v e u2 é perpendicular a v u u2 v u1

  20. Produto Vetorial (3D) • Permite achar um vetor perpendicular a outros dois dados • Útil na construção de sistemas de coordenadas v u×v u . • Propriedades (assume-se u, v linearmente independentes): • Antisimetria: u × v = – v × u • Bilinearidade: u × (v)=  (u × v) e u × (v + w)= (u × v) + (u × w) • u × v é perpendicular tanto a u quanto a v • O comprimento de u × v é igual a área do paralelogramo definido por u e v, isto é, | u × v | = | u | |v | sin 

  21. Sistemas de coordenadas • Um sistema de coordenadas para Rn é definido por um ponto (origem) e n vetores • Ex. Seja um sistema de coordenadas para R2 definido pelo ponto O e os vetores X e Y. Então, • Um ponto P é dado por coordenadas xP e yP tais que • Um vetor V é dado por coordenadas xV e yV tais que

  22. Coordenadas Homogêneas • Coordenadas homogêneas permitem unificar o tratamento de pontos e vetores • Problema é levado para uma dimensão superior: • Coordenada extra w= 0 para vetores e =1 p/ pontos • O significado da coordenada extra é levar ou não em consideração a origem do sistema • Coordenadas homogêneas têm diversas propriedades algébricas interessantes • Ex. Subtração de dois pontos naturalmente resulta em um vetor

  23. Orientação • Orientação de 2 pontos em 1D • P1 < P2 , P1 = P2 ou P1 > P2 • Orientação de 3 pontos em 2D • O percurso P1 , P2 , P3 é feito no sentido dos ponteiros do relógio, no sentido contrário ou são colineares Or (P1, P2, P3) = 0 Or (P1, P2, P3) = +1 Or (P1, P2, P3) = -1 P3 P1 P3 P2 P1 P2 P1 P2 P3

  24. Or (P1, P2, P3, P4) = +1 P3 P1 P2 P4 Orientação • Orientação de 4 pontos em 3D • O percurso P1 , P2 , P3 , P4 define um parafuso segundo a regra da mão direita, mão esquerda ou são coplanares • O conceito pode ser estendido a qualquer número de dimensões ...

  25. Computando Orientação • A orientação de n+1 pontos em um espaço n-dimensional é dado pelo sinal do determinante da matriz cujas colunas são as coordenadas homogêneas dos pontos com o 1 vindo primeiro

  26. Geometria ComputacionalTriangulações

  27. Problema • Dado um conjunto P de pontos do Rn, decompor o seu fecho convexo conv(P ) num complexo simplicial cuja união seja conv(P ) e cujo conjunto de vértices contenha P. • Não existe uma solução única para esse problema. • No plano, toda triangulação de conv(P) possui exatamente (2n – v – 2) triângulos e (3n – v – 3) arestas, onde v é o número de pontos de P na fronteira de conv(P), n a cardinalidade de P e a o número de arestas. • Use a fórmula de Euler para esfera: V – A + F = 2.

  28. Problemas – Triangulações • Dividir domínios complexos em coleções de objetos simples (simplexes)

  29. Exemplo: Lago Superior

  30. Dedução • O número de faces F é igual ao número de triângulos T + 1, pois tem-se de considerar a face externa ilimitada no plano. n – a + (T + 1) = 2 • Cada triângulo possui 3 arestas. Como cada aresta aparece em 2 triângulos, arestas são contadas duas vezes. O Tamanho da solução para o problema de triangulação é linear com o número de pontos

  31. Algoritmo Força Bruta • Obtenha conv(P ) e triangule-o por diagonais. Cada ponto que não esteja na fronteira de conv(P ) é inserido em conv(P ) e o triângulo que o contém é subdividido. • Algoritmo O(n log n) para achar conv(P ). • Inclusão de cada ponto é O(n). • Algoritmo completo é O(n2).

  32. Problema Resolvido? • Embora todas as triangulações de conv(P ) tenham o mesmo número de triângulos, a forma dos triângulos é muito importante em aplicações numéricas. • Triangulação de Delaunay tem a importante propriedade de, entre todas as triangulações de conv(P ), maximizar o menor de todos os ângulos internos dos triângulos. • Isso só é verdade no R2.

  33. Como Triangular? • Uma triangulação fornece uma estrutura combinatória a um conjunto de pontos. • Na realidade, um algoritmo de triangulação fornece regras para conectar pontos “próximos”. • A triangulação de Delaunay conecta os pontos baseado em um único critério: círculos vazios. • Conceitualmente simples e fácil de implementar. • O critério de proximidade vem do Diagrama de Voronoi.

  34. Triangulação de Delaunay

  35. Triangulação de Delaunay FLIP

  36. Diagrama de Voronoi • É uma partição do Rnem polígonos convexos associados a um conjunto de sítios (tesselação de Dirichlet). • O conceito foi discutido em 1850 por Dirichlet e em 1908 num artigo do matemático russo Georges Voronoi. • É a segunda estrutura mais importante em Geometria Computacional perdendo apenas para o fecho convexo. • Possui todas as informações necessárias sobre a proximidade de um conjunto de pontos. • É a estrutura dual da triangulação de Delaunay.

  37. Diagrama de Voronoi

  38. Definições • Seja P = {p1,p2,...,pn} um conjunto de pontos do plano euclidiano, chamados de sítios. Particione o plano atribuindo a cada ponto do plano o sítio mais próximo. • Todos os pontos associados a pi formam um polígono de Voronoi V(pi): • O conjunto de todos os pontos associados a mais de um sítio forma o diagrama de Voronoi Vor(P ).

  39. x p2 p1 B12 Dois Sítios • Sejam p1 e p2doissítios e B(p1, p2) = B12 a mediatriz do segmento p1p2. • Cada ponto x B12 é eqüidistante de p1 e p2(congruência lado-ângulo-lado).

  40. B23 p2 p3 B12 p1 B31 Três Sítios • A menos do triângulo (p1, p1, p3), o diagrama contém as mediatrizes B12, B23, B31. • As mediatrizes dos lados de um triângulo se encontram no circuncentro do círculo único que passa pelos três vértices (Euclides).

  41. Semi-planos • A generalização para mais de três pontos corresponde ao local geométrico da interseção dos semi-planos fechados H(pi, pj), dos pontos mais próximos de pi do que de pj.

  42. 7 pontos definem o mesmo número de polígonos de Voronoi. Um dos polígonos é limitado porque o sítio correspondente está completamente cercado por outros sítios. Cada ponto do R2 possui pelo menos um vizinho mais próximo. Logo, ele pertence a pelo menos um polígono de Voronoi. Assim, o diagrama de Voronoi cobre completamente o plano. Voronoi de 7 pontos

  43. Teoremas • Os polígonos de Voronoi correspondentes a um par de pontos xi e xj possuem uma aresta comum, se e somente se existem pontos (aqueles da aresta comum) que são eqüidistantes dos pontos xi e xj que estão mais próximos deles do que de qualquer outro ponto de P. • Um polígono de Voronoi é ilimitado se somente se o ponto correspondente xipertencer à fronteira de conv(P ).

  44. B23 p2 p3 B12 p1 B31 Círculos Vazios • Todo vértice v de Vor(P ) é comum a pelo menos três polígonos de Voronoi e é centro de um círculo C (v) definido pelos pontos de P correspondentes aos polígonos que se encontram em v. Além disso, C (v) não contém nenhum outro ponto de P. • Os pontos de P estão em posição geral se nenhum sub-conjunto de P contém 4 pontos co-circulares.

  45. Algoritmo para Voronoi • Pode-se determinar os conjuntos T1,T2,...,Tt de P que determinam círculos vazios para construir Vor(P ). • Cada Tk é formado por três ou mais pontos co-circulares de P. • Se os pontos de P estão em posição geral, todo Tkcontém exatamente 3 sítios de P. • As arestas de Vor(P ) são os segmentos mediatrizes correspondentes a pontos consecutivos dos Tk. • Uma vez conhecidos todos os Tk, Vor(P ) pode ser determinado em tempo linear.

  46. Ligação entre Voronoi e Delaunay • No diagrama de Voronoi cada sítio está associado a um polígono (face) de Vor(P ). • O grafo dual tem por vértices os sítios de Vor(P ), e por arestas os pares de sítios cujos polígonos são vizinhos. • O grafo dual é Chamado de triangulação de DelaunayDel(P ). • Dois sítios xi e xj determinam uma aresta de Del(P ) se e somente se existe um círculo C contendo xi e xjtal que todos os outros sítios sejam exteriores a C.

  47. Triangulação de Delaunay • Em 1934, o matemático russo Boris Delaunay provou que quando o grafo dual é desenhado com linhas retas ele produz uma triangulação dos sítios do diagrama de Voronoi (supostos estarem em posição geral). • Não é óbvio que as arestas de Del(P ) não se cruzam, já que uma aresta entre dois sítios não cruza, necessariamente, a aresta de Voronoi correspondente.

  48. Propriedades de Delaunay D1. Del(P ) é o dual com arestas retilíneas de Vor(P ). D2. Del(P ) é uma triangulação se nenhum grupo de 4 pontos forem co-circulares. Cada face é um triângulo (teorema de Delaunay). D3. Cada triângulo de Del(P ) corresponde a um vértice deVor(P ). D4. Cada aresta de Del(P ) corresponde a uma aresta de Vor(P ). D5. Cada vértice de Del(P ) corresponde a um polígono (face) de Vor(P ). D6. A fronteira de Del(P ) é o fecho convexo dos sítios. D7. O interior de cada triângulo (face) de Del(P ) não contém sítios.

More Related