Complessità dell'algoritmo di triangolazione di Delaunay della forza bruta


16

Nel libro "Geometria computazionale: algoritmi e applicazioni" di Mark de Berg et al., Esiste un algoritmo di forza bruta molto semplice per il calcolo delle triangolazioni di Delaunay. L'algoritmo utilizza la nozione di bordi illegali : bordi che potrebbero non apparire in una triangolazione Delaunay valida e devono essere sostituiti da altri bordi. Ad ogni passo, l'algoritmo trova solo questi bordi illegali ed esegue gli spostamenti necessari (chiamati ribaltamenti dei bordi ) fino a quando non ci sono bordi illegali.

Algorithm LegalTriangulation ( )T

Input . Alcuni triangolazione di un set di punti . Uscita . Una triangolazione legale di .TP
P

mentre contiene un bordo illegale do Sia e i due triangoli adiacenti a . Rimuovi da e aggiungi invece . tornare .Tpipj

pipjpkpipjplpipj
pipjTpkpl
T

Ho sentito che questo algoritmo viene eseguito nel tempo nel peggiore dei casi; tuttavia, non mi è chiaro se questa affermazione sia corretta o meno. Se sì, come si può dimostrare questo limite superiore?O(n2)


5
Nella forma che hai indicato sopra ci vuole O(n3) tempo. Tuttavia, usando uno stack può essere fatto in O(n2) tempo. Puoi guardare l'ultima pagina in queste note di lezione . L'argomento di base è che possono esserci al massimo bordo. (n2)
Rizwanhudda,

2
@rizwanhudda: perché non rendere questa una risposta?
Raffaello

Risposte:


8

Una triangolazione Delaunay può essere considerata come lo scafo convesso inferiore del 2d punto impostato sollevato sul paraboloide. Pertanto, se si prende il set point 2d e assegnare ad ogni punto una z -coordinate z i = x 2 i + y 2 1 , allora la proiezione convesso inferiore nella x y -Plane ti dà la triangolazione Delaunay.(xi,yi)zzi=xi2+y12xy

Usando questa prospettiva, cosa significa che un bordo è illegale? Prima di tutto, per ogni triangolazione T possiamo utilizzare la mappa parabolica per ottenere una superficie 3D (triangolata) che i progetti fino a T . Naturalmente, questa superficie non è necessariamente convessa, se fosse convessa, T sarebbe la triangolazione di Delaunay. In parole povere, il bordo ( p i , p j ) è un ostacolo alla convessità della superficie, un bordo concavo . Quando si lancia questo bordo, la situazione viene modificata sulla superficie sollevata solo localmente. Quindi diamo un'occhiata ai 4 punti(pi,pj)TTT(pi,pj) . In 3d formano un tetraedro, che si proietta fino al quadrilatero. Poiché i due triangoli p i p j p k e p i p j p l definiscono il bordo concavo ( p i , p j ) , i triangoli p k p l p i e p k p l p j definiscono il bordo convesso (pi,pj,pk,plpipjpkpipjpl(pi,pj)pkplpipkplpj . Pertanto, capovolgere un bordo illegale corrisponde alla sostituzione di un bordo concavo con un bordo convesso nel sollevamento. Si noti che questo ribaltamento potrebbe trasformare altri bordi convessi in bordi concavi.(pl,pk)

Interpretazione Flip 3D Nota: l'immagine non è geometricamente corretta e deve essere considerata solo come uno schizzo.

Sia la triangolazione dopo il capovolgimento. La superficie sollevato di T ' "contiene" la superficie di T . Con questo intendo che se guardi le due superfici dal piano x y vedi solo triangoli dalla superficie di T (o triangoli che si trovano in entrambe le superfici). Si potrebbe anche dire che la superficie di T ' racchiude più volume. Inoltre, il bordo ( p i , p j ) si trova ora "dietro" la superficie sollevata indotta da T quando si guarda dal piano x y .TTTxyTT(pi,pj)Txy

Durante la sequenza di vibrazione otteniamo una sequenza di superfici con volume strettamente crescente. Pertanto, il bordo trova "dietro" tutte queste superfici. Quindi, non può mai riapparire durante il processo di lancio. Dato che ci sono solo n due possibili bordi, abbiamo al massimo O ( n 2 ) lanci.(pi,pj)nO(n2)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.