next up previous contents
Next: Técnicas Básicas Up: Problemas Clássicos Previous: Fecho Convexo

Triangulação

 

Outra forma de organizar pontos, é definir sobre eles uma relação de vizinhança, ou seja, ligar pontos segundo algum critério de forma a estabelecer uma subdivisão do espaço que ocupam.

Uma destas organizações é a triangulação, que, embora o nome sugira, não se limita a dividir o plano em triângulos, mas qualquer espaço em simplexos.

Simplexos são extensões de triângulos em outras dimensões, como segmentos de reta, tetraedros, e etc. Chamamos de faces de um simplexo, todos os subsimplexos que o formam, como os vértices e arestas de um triângulo.

Mais uma vez vamos nos limitar ao plano, para não complicar muito, já que o objetivo não é esse.

Uma triangulação tex2html_wrap_inline2055 é um conjunto de simplexosgif tais que:

Assim, a figura 2.8 (a) apresenta uma triangulação, enquanto que na figura 2.8 (b) a segunda propriedade não é satisfeita.

   figure1207
Figure: a) Exemplo de triangulação, b) coleção qualquer

Uma triangulação qualquer nem sempre é adequada para um certo problema. Para a maior parte dos algoritmos que precisam de triangulações, os triângulos precisam ser ``gordinhos'', parecidos com o triângulo equilátero. Essas triângulações especiais usam critérios de ``gordura'' para seus triângulos. Uma destas é a triangulação de Delaunay, que usa o seguinte critério:

Um certo triângulo t faz parte da triangulação de Delaunay tex2html_wrap_inline2055 somente se o cí rculo formado pelos vértices do triângulo não contém nenhum outro vértice de tex2html_wrap_inline2055 em seu interior.

Na verdade este critério é fraco, pois podem existir 4 vértices co-circulares, a, b, c e d, sendo que não existam outros pontos no interior do cí rculo, o que faria com que os 4 triângulos, abc, abd, acd e bcd, satisfizessem o critério, mas somente 2 deles poderiam fazer parte da triângulação. Isso faz com que a triangulação de Delaunay não seja única.

Se assumirmos que o conjunto de pontos não contém 4 pontos na situação acima, podemos garantir que a triangulação é única, e o critério, além de condição\ necessária, passa a ser também uma condição suficiente.

Na figura 2.9 vemos ilustrado o critério acima, e podemos observar que, se uma certa aresta atrapalha o critério, podemos trocá-la por outra.

   figure1240
Figure 2.9: Critério de Delaunay

Podemos reescrever este critério com relação às arestas, e terí amos o seguinte teorema:

teorema584

Prova: necessidade é trivial:

Seja tex2html_wrap_inline2057 um triângulo. Suas 3 arestas estão em tex2html_wrap_inline2055 . O cí rculo que passa pelos seus vértices tem suas arestas como cordas e não possui nenhum vértice em seu interior.

Agora a suficiência:

Suponha que uv seja tal que existe um cí rculo c como no enunciado do teorema. Posso escolher c de forma que seja maximal, ou seja, aumentar o seu raio faria com que algum ponto passasse a fazer parte de seu interior. Existem no máximo 2 e no mí nimo 1 cí rculo nessa situação (veja figura 2.10). Escolha c de forma que o raio seja o menor entre os maximais. Como c é maximal, existe um vértice, w, na fronteira de c. Então c passa por 3 vértices de tex2html_wrap_inline2055 e não contém nenhum outro vértice em seu interior, logo o triângulo uvw faz parte de tex2html_wrap_inline2055 , e consequentemente suas 3 arestas também. tex2html_wrap_inline2141

   figure1258
Figure: 2 cí rculos maximais da aresta uv

Este critério sugere um algoritmo simples, a partir de uma triangulação qualquer, procurar as arestas que atrapalham o critério e trocá-las por suas opostas, como na figura 2.9. Certamente este algoritmo termina, já que ao trocar uma aresta nos aproximamos da triangulação de Delaunay. Mas não é muito eficiente.

Que tal um algoritmo incremental? Partindo de uma triangulação inicial, com 3 vértices não necessariamente no conjunto, mas que formem um triângulo que envolva todos os outros, incluir os vértices um a um, descobrindo em qual triângulo eles estão, subdividindo este triângulo em três, como mostra a figura 2.11, e atualizando a triangulação. As três novas arestas respeitam o critério de Delaunay (veja [GS85]), mas as arestas vizinhas não se sabe. Como elas podem ser trocadas, é preciso que o processo seja expandido até que todos estejam em ordem.

   figure1272
Figure: Divisão de um triângulo em 3

Esta expansão não vai muito longe na prática, pelo seguinte argumento: para as arestas estarem erradas, é preciso que o novo ponto esteja razoavelmente próximo delas para que atrapalhe o critério de Delaunay, já que nenhum outro ponto atrapalhava até o momento. Outro detalhe importante é o fato de que todas as arestas novas são incidentes ao novo ponto (veja [GS85, lema 7.4,]).

No pior caso este algoritmo tem complexidade tex2html_wrap_inline2051 , porém é considerado um bom algoritmo.


next up previous contents
Next: Técnicas Básicas Up: Problemas Clássicos Previous: Fecho Convexo

Andre Luiz Pires Guedes
Fri Jun 14 17:05:55 EST 1996