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(nlog⁡n)Ω(n2)

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

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.


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:
(∗)(a−b)(a−c)(b−c)(a−t)(b−t)(c−t)(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=−a−b−c<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 −a−b−c<t<a atau b<t<c.◻

Terima kasih, meskipun saya sebenarnya hanya menginginkan petunjuk (tanpa bukti);)
— Tedil
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.