No livro "Geometria Computacional: Algoritmos e Aplicações", de Mark de Berg et al., Existe um algoritmo de força bruta muito simples para calcular as triangulações de Delaunay. O algoritmo usa a noção de arestas ilegais - arestas que podem não aparecer em uma triangulação válida do Delaunay e precisam ser substituídas por outras arestas. Em cada etapa, o algoritmo encontra essas arestas ilegais e executa os deslocamentos necessários (chamados movimentos de arestas ) até que não haja arestas ilegais.
Algoritmo LegalTriangulation ( )
Entrada . Alguns triangulação de um ponto de regulação . Saída . A triangulação legal de .P P
enquanto contém uma aresta ilegal do Seja e os dois triângulos adjacentes a . Remova de e adicione . retornar .p i p j
p i p j p l p i p j
T p k p l
Ouvi dizer que esse algoritmo é executado no tempo no pior dos casos; no entanto, não está claro para mim se esta afirmação está correta ou não. Se sim, como alguém pode provar esse limite superior?
fonte
Respostas:
Uma triangulação de Delaunay pode ser considerada como o casco inferior convexo do 2º ponto levantado para o parabolóide. Assim, se levar o seu conjunto de pontos 2D e atribuir a cada ponto um coordenada x , em seguida, a projecção inferior do casco convexo para o -Plane lhe dá a Delaunay triangulação.z z i = x 2 i + y 2 1 x y(xi,yi) z zi=x2i+y21 xy
Usando essa perspectiva, o que significa que uma aresta é ilegal? Primeiro de tudo, para cada triangulação podemos usar o mapa parabólica para obter uma superfície 3d (triangular) que os projetos até a . Obviamente, essa superfície não é necessariamente convexa, se for convexa, seria a triangulação de Delaunay. Simplesmente falando, a aresta é uma obstrução para a convexidade da superfície, uma aresta côncava . Ao virar essa borda, mudamos a situação na superfície elevada apenas localmente. Então, vamos olhar para os 4 pontos . Em 3d, eles formam um tetraedro, que se projeta para o quadrilátero. Desde os dois triângulosT T T ( p i , p j ) p i , p j , p k , p l p i p j p k p i p j p l ( p i , p j ) p k p l p i p k p l p j ( p(pi,pj) T T T (pi,pj) pi,pj,pk,pl pipjpk e definem a aresta côncava , os triângulos e definem a aresta . Portanto, inverter uma borda ilegal corresponde à substituição de uma borda côncava por uma borda convexa no levantamento. Observe que esse movimento pode transformar outras arestas convexas em arestas côncavas.pipjpl (pi,pj) pkplpi pkplpj (pl,pk)
Observação: a imagem não é geometricamente correta e deve ser considerada apenas como um esboço.
Seja a triangulação após o flip. A superfície elevada de "contém" a superfície de T' . Com isso, quero dizer que, se você observar as duas superfícies do plano verá apenas triângulos da superfície de (ou triângulos que estão nas duas superfícies). Você também pode dizer que a superfície de contém mais volume. Além disso, a aresta está agora "atrás" da superfície elevada induzida por ao observar a partir do plano .T′ T′ T xy T′ T′ (pi,pj) T′ xy
Durante a sequência de inversão, obtemos uma sequência de superfícies com volume estritamente crescente. Assim, a aresta está "por trás" de todas essas superfícies. Portanto, ele nunca pode reaparecer durante o processo de inversão. Como apenas escolhe duas arestas possíveis, temos no máximo flips.(pi,pj) n O(n2)
fonte