Complexidade do algoritmo de triangulação de força bruta Delaunay

16

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 ( )T

Entrada . Alguns triangulação de um ponto de regulação . Saída . A triangulação legal de .P PTP
P

enquanto contém uma aresta ilegal do Seja e os dois triângulos adjacentes a . Remova de e adicione . retornar .p i p jTpipj

p i p j p l p i p jpipjpkpipjplpipj
T p k p lpipjTpkpl
T

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?O(n2)

Mikhail Dubov
fonte
5
Na forma que você declarou acima, leva tempo. No entanto, usando uma pilha, isso pode ser feito em . Você pode ver a última página nestas notas de aula . O argumento básico é que pode haver no máximo \ binom {n} {2} flips de borda. O ( n 2 )O(n3)O(n2)(n2)
rizwanhudda
2
@rizwanhudda: Por que não fazer disso uma resposta?
Raphael

Respostas:

8

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)zzi=xi2+y12xy

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)TTT(pi,pj)pi,pj,pk,plpipjpk 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)pkplpipkplpj(pl,pk)

Interpretação Flip 3D 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 .TTTxyTT(pi,pj)Txy

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)nO(n2)

A.Schulz
fonte