geometria computacional - notas de aulas · linear convexa1 de k+ 1 pontos linearmente...
TRANSCRIPT
Aula 1
Introducao
O nome Geometria Computacional e bastante recente, e se refere ao estudode algoritmos para a solucao de problemas geometricos. Esta disciplina temraızes bem antigas. Comecou com a Geometria Euclidiana Classica, que comseus axiomas, determinava construcoes geometricas (algoritmos) baseadas emoperacoes simples.
Este tipo de estudo ficou parado por algum tempo, enquanto a “moda”era a prova por contradicao, que nao gerava nenhum metodo ou algoritmode construcao. Quando voltaram a aparecer provas construtivas, principal-mente por conta dos computadores, os algoritmos reapareceram nos estudosgeometricos. Entretanto, so em 1985 foi publicado o primeiro livro sobre oassunto, [PS85], escrito por Preparata e Shamos.
Alguns autores atribuem aos estudos geometricos, o nascimento dos es-tudos de algoritmos e suas complexidades.
1.1 Programa
1. Introducao
2. Problemas classicos
(a) ponto interior a um polıgono
(b) Triangulacao de polıgonos
(c) interseccao de segmentos
(d) Arranjo de hiperplanos
(e) fecho convexo
1
AULA 1. INTRODUCAO 2
(f) Triangulacao de Delaunay
(g) Diagrama de Voronoi
(h) Localizacao de pontos
(i) Robot motion planning
(j) outros
3. Algumas tecnicas
(a) varredura
(b) divisao e conquista
(c) projecao
(d) dualidade
4. Estruturas de dados espaciais
(a) kd-trees
(b) arvore BSP
(c) quad-tree
(d) fractional cascading
(e) outras
5. Representacao de complexos celulares
(a) DCEL
(b) Quad-edge
(c) Incidence algebra
(d) outras
1.2 Questoes burocraticas
• Calendario:
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: Proclamacao da Republica
AULA 1. INTRODUCAO 3
08/12/2016: Final do semestre
15/12/2016: Prova final
• emails
• pagina www.inf.ufpr.br/andre/Disciplinas/BSc/CI338-CI756-2016-2/
• trabalhos
Aula 2
Problemas iniciais
2.1 Entidades geometricas
Antes de iniciar e preciso apresentar os elementos com os quais vamos traba-lhar, como pontos, retas, polıgonos etc e como representa-los. Estas sao asentidades e suas representacoes.
• pontos: tupla de coordenadas, como (x, y), para o caso de ponto noplano; ou um sımbolo, como “ponto P”; usaremos a notacao x(P ) ouy(P ) para as coordenadas.
• retas / planos / espacos / hiperplano : equacao linear implıcita (ax +by + c = 0 para reta ou ax + by + cz + d = 0 para plano); equacaoparametrica vetorial (para planos r(t) = au + bv + w, com u, v e wvetores e a e b escalares); ou outras.
• segmentos / simplexos: conjunto de pontos e/ou combinacao linear(P (t) = tB + (1− t)A).
• polıgonos : sequencia de pontos.
• poliedros / complexos: DCEL
• semi-espacos: inequacoes.
Polıgono simples: e o polıgono sem auto-interseccao (sem interseccao in-terna e sem co-incidencia de pontos).
Define-se um ponto P pertencente ao segmento AB se existe t ∈ [0, 1] talque P (t) = tB + (1− t)A.
4
AULA 2. PROBLEMAS INICIAIS 5
Simplexo de dimensao k e o conjunto de pontos dado por uma combinacaolinear convexa1 de k + 1 pontos linearmente independentes.
Complexo simplicial e um conjunto de simplexos de varias dimensoes.
2.2 Problemas simples
Alguns problemas simples:
Dados um ponto P e uma sequencia de pontos S = {P1, P2, . . . , Pn, P1}determinar um algoritmo que devolva reposta a:
1. S forma um polıgono simples?
2. Sendo S um polıgono simples ele e convexo?
3. Sendo S um polıgono simples P e um ponto interno?
Definido o uso de pontos linearmente independentes.
Explicacoes sobre o Teorema da curva simples e fechada de Jordan esuas aplicacoes em outros problemas de Geometria Computacional.
1Uma combinacao linear convexa e uma combinacao linear a1p1 +a2p2 + · · ·+anpn talque
∑ni=1 ai = 1 e a1, a2, . . . , an ≥ 0.
Aula 3
Problema da vigilancia
Tarefa: Dado um polıgono simples S = {P1, P2, . . . , Pn, P1} cujos verticesestao em sentido horario determinar o mınimo de cameras de vigilancia a serimplantada em vertices (pontos) que cubra todo o polıgono.
Possibilidades na busca de solucao do problema das cameras bem comoo problema do mınimo de cortes sobre um polıgono de forma que cada parteseja um polıgono convexo.
Discutido sobre o problema de enumerar diagonais de um polıgono. Apre-sentada a caracterıstica de Euler (V −A+F = 2) para subdivisoes da esfera(ou do plano).
Da caracterıstica de Euler temos que num polıgono simples de n arestasha n− 3 diagonais para virar triangulos.
O numero total de diagonais em um polıgono de n lados e n(n−3)2
.
6
Aula 4
Varredura - Interseccao desegmentos
Varredura (Span, Line Sweep ou Plane Sweep):
• Agenda := anotacoes de eventos, compromissos futuros
• Jornal := eventos do dia (em cartaz)
• Eventos := acontecimento que pode gerar outros
Interseccao de segmentos [BCKO08].
7
Aula 5
Representacao de complexoscelulares
[BCKO08]
• Subdivisao planar
• DCEL
• Complexos celular
• Reticulado de celulas, Algebra de arestas, outras.
Subdivisao Espacial:
• Poliedral (Politopo e convexo)
• Celulas (faces)
• Dimensao
• 0-celula sao pontos de dimensao 0.
• 1-celula sao segmentos de reta aberto (sem extremos).
• 2-celula sao as faces (parte interior) de um polıgono (ou seja, semvertices e sem arestas).
• . . .
• k-celula e uma porcao aberta poliedral de dimensao k.
8
AULA 5. REPRESENTACAO DE COMPLEXOS CELULARES 9
Uma subdivisao espacial de um espaco M de dimensao d e uma particaode M em celulas de dimensoes variando de 0 a d.
Um complexo celular C e um subdivisao espacial de um espaco M separa toda celula Γ de dimensao k > 0, existe uma subdivisao de δ(Γ) em umcomplexo que esta contido em C.
Aula 6
Triangulacoes
O que e?
Como guardar?
Estrutura de dados DCEL ou baseada em triangulos?
Face externa deve ser triangular?
Triangulacoes do Plano: complexo celular de dimensao 2 onde as 2-celulassao triangulos, a menos possivelmente de uma (face externa).
1o trabalho: triangular um polıgono e gerar uma estrutura de dados detriangulos ou dada uma triangulacao e um ponto P encontrar o trianguloque contem P .
10
Aula 7
Nuvens de pontos
Uma nuvem de pontos e um conjunto de pontos no espaco (plano, espacoetc). Pontos em posicao geral nao tem “casos especiais”. Depende do usodos pontos. Por exemplo, se 3 pontos colineares geram problemas, o termoposicao geral signiica que nao existem 3 pontos colineares. Em outros casos,como veremos, nao queremos que existam 4 pontos em um mesmo cırculo.
Par de pontos mais proximo.
Fecho convexo.
Triangulacao. Delaunay.
Diagrama de Voronoi
11
Aula 8
Fecho Convexo 2D
• Graham Scan
• Wrapping
• Pontes (dividir e conquistar)
• MergeHull (a juncao e o fecho convexo da uniao de dois fechos convexos)
– Aplicacao: interseccao de dois polıgonos convexos
– Dados dois polıgonos convexos, P1 e P2,
P1 ∩ P2 = DUAL(FC(DUAL(P1) ∪DUAL(P2))),
onde FC e o fecho convexo (ou apenas a juncao do MergeHull) eDUAL e a funcao ...
• Quick-Hull
Ideias de trabalho:
• Interseccao de polıgonos usando dualidade e fecho convexo
• QuickHull 3D
12
Aula 10
Tringulacao de Delaunay
• Conceitos
• Aplicacoes
• Algoritmos
• Dividir e conquistar; incremental; varredura?
14
Aula 11
Diagrama de Voronoi
• Conceitos
• Aplicacoes
• Algoritmos
Problema de localizacao de ponto mais proximo de ponto dado.
Problema de localizacao de regiao de subdivisao planar que contem pontodado.
15
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
• Movimentacao de objetos:
– Espaco de configuracoes
– Robo pontual 2D
– Robo poligonal sem rotacao 2D: soma de Minkowski
– Robo poligonal com rotacao 2D
– ...
– Robo poliedral com rotacao 3D
– Braco articulado
– Encaixe de pecas
• ...
18
Aula 15
Dualidade
• Revisitando interseccao de polıgonos convexos: A∩B = Dual(FC(Dual(A)∪Dual(B)), onde, para cada ponto p, Dual(p) e o semi-espaco quecontem p delimitado por hiper-plano perpendicular a reta que passapor p e pela origem, oposto ao ponto p e a distancia 1/|p| da origem.
• Fecho convexo como interseccao de semi-espacos: FC(S) =⋂
p∈S Dual(p).
• Esta mesma dualidade no R3.
• Outras dualidades:
– Delaunay × Voronoy
– ordenacao × fecho convexo em com pontos projetados em umaparabola.
– Triangulacapo de Delaunay × fecho convexo em com pontos pro-jetados em um paraboloide de revolucao.
– Dualidade em um complexo celular = inversao do reticulado.
19
Referencias Bibliograficas
[BCKO08] Mark de Berg, Otfried Cheong, Marc van Kreveld, and MarkOvermars. Computational Geometry: Algorithms and Applica-tions. Springer-Verlag TELOS, Santa Clara, CA, USA, 3rd ed.edition, 2008.
[PS85] F. P. Preparata and M. I. Shamos. Computational Geometry: AnIntrodution. Springer-Verlag, New York, USA, 1985.
20