geometria computacional - notas de aulas · linear convexa1 de k+ 1 pontos linearmente...

21
Geometria Computacional - Notas de aulas Andr´ e Guedes 24 de novembro de 2016

Upload: vuongkien

Post on 12-Jan-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Geometria Computacional - Notas de aulas

Andre Guedes

24 de novembro de 2016

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 9

Fecho Convexo 3D

• QuickHull 3D

• Wrapping

13

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 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

• 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