Apa kasus terburuk dari algoritma triangulasi delaunay inkremental acak?

9

Saya tahu bahwa runtime kasus terburuk yang diharapkan dari algoritma triangulasi delaunay inkremental acak (seperti yang diberikan dalam Computational Geometry ) adalah . Ada latihan yang menyiratkan runtime kasus terburuk adalah . Saya sudah mencoba membangun contoh di mana ini sebenarnya terjadi tetapi belum berhasil sejauh ini.O(nlogn)Ω(n2)

Salah satu dari percobaan tersebut adalah mengatur dan memesan titik yang diatur sedemikian rupa sehingga, saat menambahkan titik pada langkah , tentang tepi dibuat.prrr1

Pendekatan lain mungkin melibatkan struktur titik-lokasi: Cobalah untuk mengatur titik-titik sehingga jalur yang diambil dalam struktur titik-lokasi untuk menemukan titik dalam langkah adalah selama mungkin.prr

Namun, saya tidak yakin yang mana dari dua pendekatan ini yang benar (jika sama sekali) dan akan senang untuk beberapa petunjuk.

Tedil
sumber
3
Coba letakkan semua poin di kurva y=xr untuk beberapa yang dipilih dengan baik r.
Peter Shor

Jawaban:

9

Pendekatan pertama dapat diformalkan sebagai berikut.

Membiarkan P menjadi set sewenang-wenang n poin pada cabang positif parabola y=x2; itu adalah,

P={(t1,t12),(t2,t22),,(tn,tn2)}
untuk beberapa bilangan real positif t1,t2,,tn. Tanpa kehilangan sifat umum, anggap poin-poin ini diindeks dalam urutan yang meningkat:0<t1<t2<<tn.

Klaim: Dalam triangulasi DelaunayP, titik paling kiri (t1,t12) adalah tetangga dari setiap titik lain di P.

Klaim ini menyiratkan bahwa menambahkan titik baru (t0,t02) untuk P dengan 0<t0<t1 menambahkan ntepi baru untuk triangulasi Delaunay. Jadi, secara induktif, jika kita secara bertahap mengontrak triangulasi DelaunayPdengan memasukkan titik-titik dalam urutan kanan-ke-kiri , jumlah total tepi Delaunay dibuat adalahΩ(n2).


Kami dapat membuktikan klaim sebagai berikut. Untuk nilai nyata apa pun0<Sebuah<b<cbiarkan C(Sebuah,b,c) menunjukkan lingkaran unik melalui titik-titik (Sebuah,Sebuah2),(b,b2),(c,c2).

Kata pengantar singkat: C(Sebuah,b,c) tidak mengandung poin apa pun (t,t2) dimana Sebuah<t<b atau c<t.

Bukti: Ingat bahwa empat poin(a,b),(c,d),(e,f),(g,h) adalah cocircular jika dan hanya jika

|1aba2+b21cdc2+d21efe2+f21ghg2+h2|=0
Jadi, sebuah poin (t,t2) terletak di lingkaran C(a,b,c) jika dan hanya jika
|1aa2a2+a41bb2b2+b41cc2c2+c41tt2t2+t4|=0
Tidak sulit (misalnya, minta Wolfram Alpha) untuk memperluas dan memfaktorkannya 4×4 penentu ke dalam formulir berikut:
()(ab)(ac)(bc)(at)(bt)(ct)(a+b+c+t)=0
Jadi, (t,t2) terletak pada C(a,b,c) jika dan hanya jika t=a, t=b, t=c, atau t=abc<0. Apalagi karena0<a<b<c, keempat akar ini berbeda, yang menyiratkan bahwa parabola sebenarnya bersilangan C(a,b,c)di empat titik. Karena itu(t,t2)terletak di dalam C(a,b,c) jika dan hanya jika abc<t<a atau b<t<c.
Jeffε
sumber
Terima kasih, meskipun saya sebenarnya hanya menginginkan petunjuk (tanpa bukti);)
Tedil