Geometria Computacional - Notas de aulas André Guedes 24 de novembro de 2016
Aula 1 Introdução O nome Geometria Computacional é bastante recente, e se refere ao estudo de algoritmos para a solução de problemas geométricos. Esta disciplina tem raízes bem antigas. Começou com a Geometria Euclidiana Clássica, que com seus axiomas, determinava construções geométricas (algoritmos) baseadas em operações simples. Este tipo de estudo ficou parado por algum tempo, enquanto a moda era a prova por contradição, que não gerava nenhum método ou algoritmo de construção. Quando voltaram a aparecer provas construtivas, principalmente por conta dos computadores, os algoritmos reapareceram nos estudos geométricos. Entretanto, só em 1985 foi publicado o primeiro livro sobre o assunto, [PS85], escrito por Preparata e Shamos. Alguns autores atribuem aos estudos geométricos, o nascimento dos estudos de algoritmos e suas complexidades. 1.1 Programa 1. Introdução 2. Problemas clássicos (a) ponto interior a um polígono (b) Triangulação de polígonos (c) intersecção de segmentos (d) Arranjo de hiperplanos (e) fecho convexo 1
AULA 1. INTRODUÇÃO 2 (f) Triangulação de Delaunay (g) Diagrama de Voronoi (h) Localização de pontos (i) Robot motion planning (j) outros 3. Algumas técnicas (a) varredura (b) divisão e conquista (c) projeção (d) dualidade 4. Estruturas de dados espaciais (a) kd-trees (b) árvore BSP (c) quad-tree (d) fractional cascading (e) outras 5. Representação de complexos celulares (a) DCEL (b) Quad-edge (c) Incidence algebra (d) outras 1.2 Questões burocráticas Calendário: 02/08/2016: Início do semestre 08/09/2016: Feriado: padroeira de Curitiba 07 a 21/11/2016: Viagem para congresso na Argentina 15/11/2016: Feriado: Proclamação da República
AULA 1. INTRODUÇÃO 3 08/12/2016: Final do semestre 15/12/2016: Prova final emails página www.inf.ufpr.br/andre/disciplinas/bsc/ci338-ci756-2016-2/ trabalhos
Aula 2 Problemas iniciais 2.1 Entidades geométricas Antes de iniciar é preciso apresentar os elementos com os quais vamos trabalhar, como pontos, retas, polígonos etc e como representá-los. Estas são as entidades e suas representações. pontos: tupla de coordenadas, como (x, y), para o caso de ponto no plano; ou um símbolo, como ponto P ; usaremos a notação x(p ) ou y(p ) para as coordenadas. retas / planos / espaços / hiperplano : equação linear implícita (ax + by + c = 0 para reta ou ax + by + cz + d = 0 para plano); equação paramétrica vetorial (para planos r(t) = au + bv + w, com u, v e w vetores e a e b escalares); ou outras. segmentos / simplexos: conjunto de pontos e/ou combinação linear (P (t) = tb + (1 t)a). polígonos : sequência de pontos. poliedros / complexos: DCEL semi-espaços: inequações. Polígono simples: é o polígono sem auto-intersecção (sem intersecção interna e sem co-incidência de pontos). Define-se um ponto P pertencente ao segmento AB se existe t [0, 1] tal que P (t) = tb + (1 t)a. 4
AULA 2. PROBLEMAS INICIAIS 5 Simplexo de dimensão k é o conjunto de pontos dado por uma combinação linear convexa 1 de k + 1 pontos linearmente independentes. Complexo simplicial é um conjunto de simplexos de várias dimensões. 2.2 Problemas simples Alguns problemas simples: Dados um ponto P e uma sequência de pontos S = {P 1, P 2,..., P n, P 1 } determinar um algoritmo que devolva reposta à: 1. S forma um polígono simples? 2. Sendo S um polígono simples ele é convexo? 3. Sendo S um polígono simples P é um ponto interno? Definido o uso de pontos linearmente independentes. Explicações sobre o Teorema da curva simples e fechada de Jordan e suas aplicações em outros problemas de Geometria Computacional. 1 Uma combinação linear convexa é uma combinação linear a 1 p 1 + a 2 p 2 + + a n p n tal que n i=1 a i = 1 e a 1, a 2,..., a n 0.
Aula 3 Problema da vigilância Tarefa: Dado um polígono simples S = {P 1, P 2,..., P n, P 1 } cujos vértices estão em sentido horário determinar o mínimo de câmeras de vigilância a ser implantada em vértices (pontos) que cubra todo o polígono. Possibilidades na busca de solução do problema das câmeras bem como o problema do mínimo de cortes sobre um polígono de forma que cada parte seja um polígono convexo. Discutido sobre o problema de enumerar diagonais de um polígono. Apresentada a característica de Euler (V A + F = 2) para subdivisões da esfera (ou do plano). Da característica de Euler temos que num polígono simples de n arestas há n 3 diagonais para virar triângulos. O número total de diagonais em um polígono de n lados é n(n 3) 2. 6
Aula 4 Varredura - Intersecção de segmentos Varredura (Span, Line Sweep ou Plane Sweep): Agenda := anotações de eventos, compromissos futuros Jornal := eventos do dia (em cartaz) Eventos := acontecimento que pode gerar outros Intersecção de segmentos [BCKO08]. 7
Aula 5 Representação de complexos celulares [BCKO08] Subdivisão planar DCEL Complexos celular Reticulado de células, Álgebra de arestas, outras. Subdivisão Espacial: Poliedral (Politopo é convexo) Células (faces) Dimensão 0-célula são pontos de dimensão 0. 1-célula são segmentos de reta aberto (sem extremos). 2-célula são as faces (parte interior) de um polígono (ou seja, sem vértices e sem arestas).... k-célula é uma porção aberta poliedral de dimensão k. 8
AULA 5. REPRESENTAÇÃO DE COMPLEXOS CELULARES 9 Uma subdivisão espacial de um espaço M de dimensão d é uma partição de M em células de dimensões variando de 0 a d. Um complexo celular C é um subdivisão espacial de um espaço M se para toda célula Γ de dimensão k > 0, existe uma subdivisão de δ(γ) em um complexo que está contido em C.
Aula 6 Triangulações O que é? Como guardar? Estrutura de dados DCEL ou baseada em triângulos? Face externa deve ser triangular? Triangulações do Plano: complexo celular de dimensão 2 onde as 2-células são triângulos, a menos possivelmente de uma (face externa). 1o trabalho: triangular um polígono e gerar uma estrutura de dados de triângulos ou dada uma triangulação e um ponto P encontrar o triângulo que contem P. 10
Aula 7 Núvens de pontos Uma núvem de pontos é um conjunto de pontos no espaço (plano, espaço etc). Pontos em posição geral não tem casos especiais. Depende do uso dos pontos. Por exemplo, se 3 pontos colineares geram problemas, o termo posição geral signiica que não existem 3 pontos colineares. Em outros casos, como veremos, não queremos que existam 4 pontos em um mesmo círculo. Par de pontos mais próximo. Fecho convexo. Triangulação. Delaunay. Diagrama de Voronoi 11
Aula 8 Fecho Convexo 2D Graham Scan Wrapping Pontes (dividir e conquistar) MergeHull (a junção é o fecho convexo da união de dois fechos convexos) Aplicação: intersecção de dois polígonos convexos Dados dois polígonos convexos, P 1 e P 2, Quick-Hull P 1 P 2 = DUAL(F C(DUAL(P 1 ) DUAL(P 2 ))), onde F C é o fecho convexo (ou apenas a junção do MergeHull) e DUAL é a função... Ideias de trabalho: Intersecção de polígonos usando dualidade e fecho convexo QuickHull 3D 12
Aula 9 Fecho Convexo 3D QuickHull 3D Wrapping 13
Aula 10 Tringulação de Delaunay Conceitos Aplicações Algoritmos Dividir e conquistar; incremental; varredura? 14
Aula 11 Diagrama de Voronoi Conceitos Aplicações Algoritmos Problema de localização de ponto mais próximo de ponto dado. Problema de localização de região de subdivisão planar que contém ponto dado. 15
Aula 12 Diagrama de Voronoi - Algoritmo de Fortune Varredura Detalhes 16
Aula 13 Estruturas de dados espaciais KD-tree BSP Quad-tree Range-tree Fractional Cascading Priority tree 17
Aula 14 Robot motion planning Molde 2D e 3D Movimentação de objetos: Espaço de configurações Robô pontual 2D Robô poligonal sem rotação 2D: soma de Minkowski Robô poligonal com rotação 2D... Robô poliedral com rotação 3D Braço articulado Encaixe de peças... 18
Aula 15 Dualidade Revisitando intersecção de polígonos convexos: A B = Dual(F C(Dual(A) Dual(B)), onde, para cada ponto p, Dual(p) é o semi-espaço que contém p delimitado por hiper-plano perpendicular a reta que passa por p e pela origem, oposto ao ponto p e a distância 1/ p da origem. Fecho convexo como intersecção de semi-espaços: F C(S) = p S Dual(p). Esta mesma dualidade no R 3. Outras dualidades: Delaunay Voronoy ordenação fecho convexo em com pontos projetados em uma parábola. Triangulaçãpo de Delaunay fecho convexo em com pontos projetados em um parabolóide de revolução. Dualidade em um complexo celular = inversão do reticulado. 19
Referências Bibliográficas [BCKO08] Mark de Berg, Otfried Cheong, Marc van Kreveld, and Mark Overmars. Computational Geometry: Algorithms and Applications. Springer-Verlag TELOS, Santa Clara, CA, USA, 3rd ed. edition, 2008. [PS85] F. P. Preparata and M. I. Shamos. Computational Geometry: An Introdution. Springer-Verlag, New York, USA, 1985. 20