Você está na página 1de 6

GEOMETRIA COMPUTACIONAL

CRISTINA GOMES FERNANDES

Departamento de Cincia da Computaao e c Segundo semestre de 2009 1. Introducao A procura por algoritmos para resolver problemas geomtricos vem desde a poca da antiguidade. e e Algumas motivaes prticas para a busca por tais algoritmos foram os impostos sobre o uso da co a terra e construes de edicaes. So bem-conhecidas as construes geomtricas de Euclides, que co co a co e usavam como instrumentos rgua e compasso e consistiam de algumas operaes que podiam ser e co realizadas com esses instrumentos. Um problema clssico de construo geomtrica atravs de rgua a ca e e e e compasso o chamado Problema de Apollonius (cerca de 200 A.C.), no qual trs circunferncias e e e arbitrrias no plano eram dadas e pedia-se uma quarta circunferncia que fosse tangente `s trs a e a e circunferncias dadas. Euclides apresentou um algoritmo que resolve este problema. e Dentre todos os problemas de construo geomtrica usando as operaes de Euclides, um que ca e co atraiu grande ateno foi o problema da construo de um pol ca ca gono regular de n lados. Para n = 3, 4, 5, 6, a soluo conhecida desde a antiguidade. Entretanto, para heptgonos regulares, o ca e a problema no tem soluo: aos 17 anos, Carl Friedrich Gauss (1777-1855) mostrou que no existe a ca a um algoritmo que, usando somente as operaes de Euclides, constri um heptgono regular. Gauss co o a na realidade mostrou que existe um algoritmo para construir um pol gono regular com p lados, para k p primo, se e somente se p um nmero de Fermat, ou seja, da forma 22 + 1 para algum inteiro k e u e no-negativo. a Em 1902, Emile Lemoine introduziu uma medida de simplicidade para os algoritmos que usam as operaes de Euclides [18]. Esta medida baseada no nmero destas operaes realizadas pelo co e u co algoritmo. Para Lemoine, o algoritmo mais simples aquele que faz menos operaes. A soluo de e co ca Euclides para o Problema de Apollonius requer 508 operaes enquanto que um algoritmo proposto co por Lemoine requer menos de duzentas. Estava portanto introduzido em geometria um conceito que , pelo menos em essncia, o que hoje chamamos de complexidade de um algoritmo. e e Em geometria computacional estamos interessados em projetar algoritmos ecientes para resolver problemas geomtricos. Pelo que foi exposto acima, vemos que no algo novo. A diferena que e a e c e as construes usam um instrumento diferente da rgua e do compasso: usam um computador. Um co e pouco mais precisamente, em geometria computacional, estamos interessados em encontrar algoritmos ecientes, ou procedimentos computacionais, para resolver problemas geomtricos. Muitos e desses problemas tm sua origem em outras reas, como computao grca, robtica e processae a ca a o mento de imagens. No projeto de tais algoritmos, so comumente utilizados resultados de geometria a euclidiana, combinatria, teoria dos grafos, estruturas de dados e anlise de algoritmos. o a Geometria computacional um termo usado por diversos grupos. Entretanto, o termo tem sido e mais utilizado para descrever a subrea da teoria de algoritmos que trata do projeto e anlise de a a algoritmos ecientes para problemas envolvendo objetos geomtricos, principalmente, em espaos de e c dimenso 2, 3 ou, de uma maneira mais geral, de dimenso xa. As entradas para os problemas so a a a primordialmente objetos simples: pontos, retas, segmentos de retas, pol gonos, planos e poliedros. E neste sentido que empregamos o termo geometria computacional neste curso. Se a tese de doutorado de Michael Ian Shamos (1978) for aceita como o in cio da geometria computacional, pelo menos da maneira como ela ser tratada aqui, ento a rea tem apenas cerca a a a de 30 anos. Ela desenvolveu-se rapidamente nas dcadas de 80 e 90, e continua a se desenvolver. e Por causa da rea a partir da qual cresceu, algoritmos combinatrios, geometria computacional a o tem sempre enfatizado problemas de natureza matemtica discreta. Na maioria dos problemas a em geometria computacional, as instncias so um conjunto nito de pontos ou de outros objetos a a
1

Geometria Computacional

geomtricos, e a resposta algum tipo de estrutura descrita por um conjunto nito de pontos ou e e segmentos de retas. De acordo com Joseph ORourke, nem todos os problemas em aberto em geometria computacional so necessariamente dif a ceis; alguns esto simplesmente esperando a devida ateno [17]. Este pode a ca ser um bom motivo para investigarmos problemas desta rea. a 2. Objetivos da disciplina O objetivo desta disciplina apresentar tcnicas, algoritmos e estruturas de dados empregados e e no projeto e anlise de algoritmos ecientes para resoluo de problemas geomtricos. Pretena ca e demos mostrar estratgias clssicas de soluo de problemas geomtricos, assim como apresentar e a ca e possivelmente temas de pesquisa. 3. Pr-requisitos e Para esta disciplina, os pr-requisitos so: conhecimento de tcnicas bsicas de projeto de ale a e a goritmos, como diviso-e-consquista, algoritmo guloso, programao dinmica; notao e tcnicas a ca a ca e bsicas de anlise de algoritmos, como notao assinttica, resoluo de somatrios e recorrncias; a a ca o ca o e e conhecimento de estruturas de dados bsicas, como las de prioridades (heaps) e rvores balana a ceadas de busca binria. a 4. Topicos que pretendemos cobrir Alguns dos tpicos que pretendemos cobrir nesta disciplina so: fechos convexos; problemas de o a proximidade; parties convexas; busca geomtrica; e problemas de interseco. co e ca Abaixo encontra-se uma breve descrio de alguns problemas que estudaremos nesta disciplina. ca Problema do par mais prximo (closest pair problem) o Dados n pontos, queremos encontrar dois deles que estejam a distncia m a nima. Uma aplicao prtica deste problema em controle de trfego areo: os ca a e a e dois avies que esto em maior perigo de coliso so aqueles que esto mais o a a a a 2 ), onde d a prximos. Este problema pode ser resolvido facilmente em O(dn o e dimenso do espao. O problema do par mais prximo pode ser resolvido por a c o um algoritmo do tipo diviso-e-conquista em tempo O(dn log n) (cf. Cap a tulo 5 de Preparata e Shamos [18]) . Fecho convexo de um conjunto de pontos Convexidade uma propriedade geomtrica bastante importante. Um conjunto e e de pontos convexo se, para cada par de pontos no conjunto, o segmento de e reta entre eles est inteiramente contido no conjunto. Segundo ORourke (cf. a ORourke [17], pg. 80) talvez o primeiro artigo na rea de geometria coma putacional tenha sido sobre fechos convexos. O Problema do Fecho Convexo consiste em, dados n pontos, encontrar o fecho convexo desses pontos. Uma das aplicaes prticas deste problema se encontra em robtica. Se o fecho convexo co a o de um rob no colide com obstculos ento o rob tambm no colide. o a a a o e a Nos anos 60 uma aplicao da Bell Labs necessitava computar o fecho convexo de aproximadaca mente 10.000 pontos no plano e os algoritmos de complexidade de tempo O(n2 ) foram considerados muito lentos. Tendo essa aplicao como motivao, no comeo do anos 70, Graham [11] projetou ca ca c o primeiro algoritmo de complexidade de tempo O(n log n). O fecho convexo tambm pode ser e constru em O(n log n) por um algoritmo de diviso-e-conquista (cf. Cap do a tulo 3 de Preparata e Shamos [18]).

Geometria Computacional

Triangularizao de pol ca gonos O interesse aqui particionar um certo dom e nio complexo em uma coleo de ca objetos simples. A regio mais simples na qual podemos decompor um objeto a planar um tringulo (um tetraedro em 3-d e um simplex em geral). Dado e a um pol gono P , queremos adicionar a P o maior nmero poss de diagonais u vel que no se cruzem de tal forma que o interior de P que particionado em a tringulos. Chazelle [1] projetou um algoritmo linear para este problema. a Um algoritmo para triangularizar pol gonos pode ser utilizado em problemas do tipo Art Gallery (cf. ORourke [16]). Imagine que as salas de uma galeria de arte formem um pol gono. Considerando que cada guarda ca parado em um local da galeria, qual o menor e nmero de guardas que so necessrios para tomar conta das salas? u a a Partio de pol ca gonos Alm de algoritmos ecientes para particionar um pol e gono em tringulos, a tambm so de interesse algoritmos que particionem um pol e a gono em (digamos) pol gonos montonos, trapezides e pol o o gonos convexos. Uma motivao ca para particionar um pol gono em pol gonos convexos o reconhecimento de cae racteres: um caractere pode ser representado como um pol gono particionado em partes convexas. Intersecoes c Um dos problemas geomtricos mais bsicos o de determinar quando dois e a e objetos se intersectam. A determinao se dois objetos complexos se interca sectam freqentemente reduzida ao problema de determinar quais pares de e u entidades primitivas (e.g., segmentos de retas) se intersectam. Veremos algoritmos ecientes para computar a interseco de um conjunto de segmentos de ca retas.

Diagramas de Voronoi Dado um conjunto S de n pontos no plano, queremos determinar para cada ponto p em S qual a regio V (p) dos pontos do plano que esto mais perto e a a de p do que de qualquer outro ponto em S. As n regies V (p) formam uma o partio do plano chamada de Diagrama de Voronoi. ca Imagine uma vasta oresta contendo vrios pontos de observao de incndio. a ca e O conjunto das rvores que esto mais prximas de um determinado posto p a a o determina a regio V (p) das rvores que so de responsabilidade do ponto p. a a a O diagrama de Voronoi de um conjunto de n pontos pode ser constru em O(n log n) por um do (complicado) algoritmo de diviso-e-conquista (cf. Shamos e Hoey [19]). Em 1985, Fortune [10] a projetou um algoritmo de varredura (plane-sweep algorithm) muito elegante e simples cuja complexidade de tempo O(n log n). e Triangularizao de Delaunay ca O dual geomtrico (usando retas) de um diagrama de Voronoi para um conjunto S de pontos forma e uma triangularizao do conjunto S, chamada de triangularizaao de Delaunay. A triangularizao ca c ca de Delaunay tem vrias propriedades geomtricas interessantes. Por exemplo, ela contm todas as a e e rvores geradoras m a nimas de S (cf. Cap tulo 6 de Preparata e Shamos [18]).

Geometria Computacional

Arranjos e dualidade Talvez uma das estruturas matemticas mais importantes em geometria coma putacional seja um arranjo de retas (e em geral, arranjos de curvas e superf cies). Dadas n retas no plano, um arranjo simplesmente o grafo que e tem como vrtices as interseces das retas e como arestas os segmentos de e co retas ligando estas interseces. Veremos que uma tal estrutura pode ser consco tru em tempo O(n2 ). A razo para est estrutura ser to importante que da a a a e muitos problemas envolvendo pontos podem ser transformados em problemas envolvendo retas atravs do mtodo de dualidade. Por exemplo, suponha que e e desejemos determinar se existem trs pontos colineares entre um conjunto de n pontos no plano. e Isto pode ser determinado por um algoritmo do tipo fora-bruta em tempo O(n3 ). Entretanto, se c os pontos so dualizados em retas, ento (como veremos mais tarde nesta semestre) a questo a a a e reduzida a decidir se existe um vrtice de grau pelo menos 4 neste arranjo de retas. e 5. Geometria computacional na Internet Existe muito material muito bom de Geometria Computacional na Internet. Durante o andamento da disciplina manterei na pgina a http://www.ime.usp.br/~cris/geocomp/, uma lista de alguns s tios de Geometria Computacional. Durante o andamento da disciplina est a pgina dever ser atualizada e expandida. Se voc encontrar algum s de Geometria Computaa a e tio cional (ou de qualquer outra coisa) que voc ache interessante, por favor, no deixe de me avisar. e a 6. Monitor O monitor desta disciplina Alvaro Junio Pereira Franco (alvaro@ime.usp.br). A pgina dele e a e http://www.ime.usp.br/~alvaro/. Ele far um planto semanal no CEC, todas as teras-feiras, a a c das 15 `s 16 horas. Se necessrio, podemos marcar uma segunda hora de planto. a a a 7. Bibliografia Para preparar as aulas desta disciplina usarei as notas de aula do professor Jos Coelho de e Pina [5], o cap tulo Convite a Geometria Computacional de [8], os livros de ORourke [17] e de ` Berg, van Kreveld, Overmars, e Schwarzkopf [4]. O livro de Preparata e Shamos [18] um texto clssico em geometria computacional (foi primeiro e a livro sobre o assunto) que coloca bastante nfase na anlise dos algoritmos apresentados. Este livro e a contm basicamente todos os tpicos que sero tratados nesta disciplina. Outros livros que tambm e o a e podem ser encontrados na biblioteca so: Edelsbrunner [7] (The art of counting and estimating is a at heart of combinatoricsand it is a necessary prerequisite for analyzing algorithms . . . ; copiado da introduo da Parte I deste livro); Figueiredo e Carvalho [9] (um livro muito claro e introdutrio); ca o e Rezende e Stol [6] (descreve varias tcnicas e algoritmos em geometria computacional). Outros e livros sobre geometria computacional so: Laszlo [14] (um livro que descreve vrios algoritmos em a a geometria computacional e apresenta trechos de implementaes em C++); Mulmuley [15] (como o co prprio t o tulo diz, este livro trata de algoritmos aleatrios em geometria computacional). Cormen, o Leiserson, Rivest & Stein [3] um livro enciclopdico sobre anlise de algoritmos que trata de e e a geometria computacional no Cap tulo 33. Na biblioteca tambm podem ser encontrados alguns surveys sobre geometria computacional. e Veja por exemplo: Chazelle [2]; Graham e Yao [12]; Guibas e Stol [13]; e Yao [20]. Artigos em geometria computacional podem ser encontrados em vrias revistas, incluindo ACM a Transactions on Graphics, Algorithmica, Journal of Algorithms, Journal of the ACM, e SIAM Journal on Computing. Uma revista que particularmente dedicada ` rea Discrete and Come aa e putational Geometry e mais recentemente temos International Journal of Computational Geometry & Applications e Computational Geometry, Theory and Applications.

Geometria Computacional

Existe uma conferncia anual em geometria computacional, a ACM Annual Conference on Come putational Geometry (alguns dos proceedings podem ser encontrados na biblioteca; veja QA758.C S989). Alm desta, vrias outras conferncias apresentam trabalhos em geometria computacional: e a e por exemplo, STOC (QA800.C S989), FOCS (QA800.C S989), SODA (QA758.C S989), e ICALP. 8. Implementacoes de algoritmos Algumas das animaes dos algoritmos que vocs vero durante as aulas foram feitas pelos alunos co e a Alexis Sakurai Landgraf Carvalho, Caetano Jimenez Carezzato, Lucas Piva Rocha Corra, Natan e Costa Lima, Roberto Carvalho, e Rodrigo Souza de Castro. Algumas destas animaes foram um dos trabalhos destes alunos em um oferecimento passado co da disciplina Geometria Computacional. Se voc tiver interesse em fazer a animao de algum dos e ca algoritmos vistos em aula, venha conversar comigo. 9. Critrio de avaliacao e A nota nal na disciplina ser baseada em trs componentes: a e Listas de exerc cios: Pretendo disponibilizar vrias listas de exerc a cios durante o semestre e alguns dos exerc cios devero ser entregues para correo. a ca Provas: Teremos trs provas nesta disciplina. A primeira prova ser no dia 24 de setembro, e a a segunda prova no dia 5 de novembro e a terceira prova no dia 10 de dezembro. Tarefas: Teremos algumas tarefas de implementao atribu ca das durante o decorrer da disciplina, geralmente tiradas do site UVA. Projetos: Dependendo do seu interesse, voc dever fazer um projeto de programao ou um e a ca survey da literatura sobre algum tpico. o Um projeto de programao consistir na implementao de (pelo menos) dois algoritmos ca a ca para um problema e a comparao dos desempenhos. Junto com o programa, esperado ca e A que voc entregue um reltorio, em L TEX ou HTML, de no mximo duas pginas, sobre os e a a a resultados obtidos. Existem vrios problemas que so candidatos para este exerc a a cio. Alguns exemplos so: fecho convexo em trs dimenses, diagrama de Voronoi, triangularizao de a e o ca Delaunay, etc. A O survey consistir em escrever cerca de 10 pginas, em L TEX ou HTML, dando um a a histrico claro sobre a pesquisa em algum tpico em geometria computacional. Seria bao o cana se o tpico escolhido no fosse algo j coberto por livros. Alguns exemplos para tpicos o a a o podem ser: algoritmos aleatrios em geometria computacional, algoritmos paralelos em geo ometria computacional, algoritmos para problemas dinmicos em geometria computacional, a etc. 10. Outras informacoes A minha sala a 107-C, o nmero do meu telefone 3091-5709 e meu endereo eletrnico e u e c o e cris@ime.usp.br. Manterei uma pgina de MAC0331/MAC5747 no URL a http://www.ime.usp.br/~cris/geocomp/. Nessa pgina eu colocarei o material da disciplina (como, por exemplo, listas de exerc a cios, notas de aula, programao das aulas, etc). Por favor, d uma olhada nesta pgina regularmente. ca e a H uma lista de discusso que tem como objetivo servir de suporte para a disciplina. Recoa a menda-se que voc mande para esta lista suas dvidas, sugestes, cr e u o ticas ou observaes sobre co o andamento da disciplina. Assim, se voc pretende cursar geometria computacional, por favor, e inscreva-se na lista, que estar acess a partir da pgina da disciplina. Sinta-se a vontade para a vel a me escrever e fazer perguntas ou comentrios sobre a disciplina. a

Geometria Computacional

Outros professores do departamento que estudam geometria computacional so Carlos Eduardo a Ferreira (sala 108-C, cef@ime.usp.br, http://www.ime.usp.br/~cef/), Jos Augusto Ramos Soe ares (sala 102-C, jose@ime.usp.br, http://www.ime.usp.br/~jose/), e Jos Coelho de Pina e (sala 4-C, jose@ime.usp.br, http://www.ime.usp.br /~coelho/). Se seu interesse Computao Grca, converse com o professor Antonio Elias Fabris (e-mail e ca a aef@ime.usp.br, http://www.ime.usp.br/~aef/). Se voc quer saber o que Processamento de e e Imagens, Viso Computacional, etc, ento converse com os professores Carlos Hitoshi Morimoto a a (sala 209-C, hitoshi@ime.usp.br, http://www.ime.usp.br/~hitoshi/), Nina S. T. Hirata (sala 6-C, nina@ime.usp.br, http://www.ime.usp.br/~nina/), Marcel Parolin Jackowski (sala 10-C, mjack@ime.usp.br, http://www.ime.usp.br/~mjack/), e Roberto Marcondes Cesar Jnior (sala u 297-A, cesar@ime.usp.br, http://www .ime.usp.br/~cesar/). Referncias e
1. B. Chazelle, Triangulating a simple polygon in linear time, Discrete and Computational Geometry 6 (1991), 485524. , Computational geometry: A retrospective, Proceedings of the Twenty-Sixth Annual ACM Symposium 2. on Theory of Computing (Montral, Qubec, Canada), The ACM Special Interest Group for Algorithms and e e Computation Theory, May 1994, pp. 7594. 3. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to algorithms, 2. ed., MIT Press, 2001. 4. M. de Berg, M. van Kreveld, M. Overmars, and O. Schwarzkopf, Computational geometry, algorithms and applications, Springer Verlag, 1997, second edition, 2000. 5. J.C. de Pina, Geometria computacional, Notas de aula, 2000. 6. P.J. de Rezende and J. Stol, Fundamentos de geometria computacional, IX Escola de Computao, 1994. ca 7. H. Edelsbrunner, Algorithms in combinatorial geometry, EATCS Monographs on Theoretical Computer Science, no. 10, Springer-Verlag, Berlin, 1987, QA758 E21a. 8. C.G. Fernandes and J.C. de Pina, Convite ` geometria computacional, Jornadas de Atualizao em Informtica a ca a da SBC, ch. 7, Ed. PUC-Rio, 2009, acess vel em http://www.ime.usp.br/~cris/jai2009/. 9. L.H. Figueiredo and P.C.P. Carvalho, Introduo ` geometria computacional, 18o Colquio Brasileiro de Maca a o temtica, IMPA, 1991, QA758 F475i. a 10. S. Fortune, A sweepline algorithm for Voronoi diagrams, Algorithmica 2 (1987), 153174. 11. R.L. Graham, An ecient algorithm for determining the convex hull of a nite planar set, Information Processing Letters 1 (1972), 132133. 12. R.L. Graham and F. Yao, A whirlwind tour of computational geometry, The American Mathematical Monthly 97 (1990), no. 8, 687701. 13. L.J. Guibas and J. Stol, Ruler, compass and computer: The design and analysis of geometric algorithms, Theoretical Foundations of Computer Graphics and CAD (R.A. Earnshaw, ed.), NATO ASI Series, vol. F40, SpringerVerlag, 1988, pp. 111165. 14. M.J. Laszlo, Computational geometry and computer graphics in C++, Prentice Hall, Upper Saddle River, NJ, 1996. 15. K. Mulmuley, Computational geometry: An introduction through randomized algorithms, Prentice Hall, Englewood Clis, NJ, 1994. 16. J. ORourke, Art gallery theorems and algorithms, The International Series of Monographs on Computer Science, Oxford University Press, New York, 1987, QA830 O74a. 17. , Computational geometry in C, Cambridge University Press, Cambridge, 1993, Second Edition, 1998. 18. F.P. Preparata and M.I. Shamos, Computational geometry: An introduction, Texts and Monographs in Computer Science, Springer-Verlag, New York, 1985, QA758 P927c. 19. M.I. Shamos and D. Hoey, Closest point problems, Proc. 16th Annual IEEE Symposium in Foundations of Computer Science, 1975, pp. 151162. 20. F.F. Yao, Computational geometry, Handbook of Theoretical Computer Science (J. van Leeuwen, ed.), vol. A, The MIT Press/Elsevier, Amsterdam, 1990, QA810.C3 V259h v.1A, pp. 343389.

Você também pode gostar