Qual è il caso peggiore dell'algoritmo di triangolazione delaunay incrementale randomizzato?


9

So che il runtime previsto nel caso peggiore dell'algoritmo di triangolazione delaunay incrementale randomizzato (come indicato in Geometria computazionale ) è . C'è un esercizio che implica il runtime nel caso peggiore è . Ho provato a costruire un esempio in cui questo è effettivamente il caso, ma finora non ho avuto successo.O(nlogn)Ω(n2)

Uno di questi tentativi è stato quello di disporre e ordinare il punto impostato in modo tale che, quando si aggiunge un punto nel passaggio , vengano creati circa i bordi .prrr1

Un altro approccio potrebbe coinvolgere la struttura della posizione del punto: provare a disporre i punti in modo tale che il percorso preso nella struttura della posizione del punto per localizzare un punto nella fase sia il più lungo possibile.prr

Tuttavia, non sono sicuro di quale di questi due approcci sia corretto (se non del tutto) e sarei felice per alcuni suggerimenti.


3
Prova a mettere tutti i punti sulla curva per qualche ben scelto . y=xrr
Peter Shor,

Risposte:


9

Il primo approccio può essere formalizzato come segue.

Sia un insieme arbitrario di punti sul ramo positivo della parabola ; cioè per alcuni numeri reali positivi . Senza perdita di generalità, supponiamo che questi punti siano indicizzati in ordine crescente: .Pny=x2

P={(t1,t12),(t2,t22),,(tn,tn2)}
t1,t2,,tn0<t1<t2<<tn

Reclamo: nella triangolazione Delaunay di , il punto più a sinistraP(t1,t12) è un vicino di ogni altro punto .P

Questa affermazione implica che l'aggiunta di un nuovo punto a P con 0 < t 0 < t 1 aggiunge n nuovi bordi alla triangolazione di Delaunay. Pertanto, induttivamente, se contraiamo in modo incrementale la triangolazione di Delaunay di P inserendo i punti nell'ordine da destra a sinistra , il numero totale di bordi di Delaunay creati è Ω ( n 2 ) .(t0,t02)P0<t0<t1nPΩ(n2)


Possiamo provare il reclamo come segue. Per qualsiasi valore reale , sia C ( a , b , c ) che indica il cerchio univoco attraverso i punti ( a , a 2 ) , ( b , b 2 ) , ( c , c 2 ) .0<a<b<cC(a,b,c)(a,a2),(b,b2),(c,c2)

Lemma: non contiene alcun punto ( t , t 2 ) dove a < t < b o c < t .C(a,b,c)(t,t2)a<t<bc<t

Prova: ricorda che quattro punti sono cocircolari se e solo se | 1 a b a 2 + b 2 1 c d c 2 + d 2 1 e f e 2 + f 2 1 g h g 2 +(a,b),(c,d),(e,f),(g,h) Pertanto, un punto(t,t2) sitrova sul cerchioC(a,b,c)se e solo se | 1 a a 2 a 2 + a 4 1 b b 2 b 2 + b 4 1 c c 2 c 2 + c 4 1 t t 2 t 2 + t

|1aba2+b21cdc2+d21efe2+f21ghg2+h2|=0
(t,t2)C(a,b,c) Non è difficile (ad esempio, chiedi a Wolfram Alpha) di espandere e fattorizzare ildeterminante4×4nella seguente forma: (a-b)(a-c)(b-c)(a-t)(b-t)(c-t)(a+b+c+t)=0 Pertanto,(t
|1un'un'2un'2+un'41BB2B2+B41cc2c2+c41tt2t2+t4|=0
4×4
(*)(un'-B)(un'-c)(B-c)(un'-t)(B-t)(c-t)(un'+B+c+t)=0
trova su C ( a , b , c ) se e solo se t = a , t = b , t = c o t = - a - b - c < 0 . Inoltre, poiché 0 < a < b < c , queste quattro radici sono distinte, il che implica che la parabola attraversa effettivamente C ( a , b , c(t,t2)C(un',B,c)t=un't=Bt=ct=-un'-B-c<00<un'<B<c in questi quattro punti. Ne segue che ( t , t 2 ) si trovaall'interno di C ( a , b , c ) se e solo se - a - b - c < t < a oppure b < t < c .C(un',B,c)(t,t2) C(un',B,c)-un'-B-c<t<un'B<t<c

Grazie, anche se in realtà volevo solo un suggerimento (senza la prova);)
Tedil,
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.