Kompleksitas algoritma triangulasi Delaunay brute force

16

Dalam buku "Komputasi Geometri: Algoritma dan Aplikasi" oleh Mark de Berg et al., Ada algoritma brute force yang sangat sederhana untuk menghitung triangulasi Delaunay. Algoritme menggunakan gagasan tepi ilegal - tepi yang mungkin tidak muncul dalam triangulasi Delaunay yang valid dan harus diganti oleh beberapa tepi lainnya. Pada setiap langkah, algoritma hanya menemukan tepi ilegal ini dan melakukan perpindahan yang diperlukan (disebut edge flips ) hingga tidak ada tepi ilegal.

Algoritma LegalTriangulation ( )T

Masukan . Beberapa triangulasi dari set point . Keluaran . Sebuah triangulasi hukum .PTP
P

sementara berisi tepi ilegal do Biarkan dan menjadi dua segitiga yang berdekatan dengan . Hapus dari , dan tambahkan sebagai gantinya. kembali .p i p jThalsayahalj

p saya p j p l p i p jhalsayahaljhalkhalsayahaljhallhalsayahalj
T p k p lhalsayahaljThalkhall
T

Saya pernah mendengar bahwa algoritma ini berjalan dalam waktu dalam kasus terburuk; Namun, tidak jelas bagi saya apakah pernyataan ini benar atau tidak. Jika ya, bagaimana seseorang dapat membuktikan batas atas ini?HAI(n2)

Mikhail Dubov
sumber
5
Dalam formulir yang telah Anda nyatakan di atas, dibutuhkan waktu. Namun, menggunakan tumpukan itu dapat dilakukan dalam waktu O ( n 2 ) . Anda dapat melihat halaman terakhir dalam catatan kuliah ini . Argumen dasarnya adalah paling tidak ada edge flips. O(n3)O(n2)(n2)
rizwanhudda
2
@rizwanhudda: Mengapa tidak membuat ini jawaban?
Raphael

Jawaban:

8

Triangulasi Delaunay dapat dianggap sebagai lambung cembung lebih rendah dari titik 2d yang diangkat ke parabola. Jadi, jika Anda mengambil titik 2d yang Anda tetapkan dan menetapkan untuk setiap titik a -koordinasikan , maka proyeksi hull cembung bawah ke dalam -plane memberi Anda Delaunay triangulasi.z z i = x 2 i + y 2 1 x y(xi,yi)zzi=xi2+y12xy

Menggunakan perspektif ini, apa artinya sebuah edge menjadi ilegal? Pertama-tama, untuk setiap triangulasi kita dapat menggunakan peta parabola untuk mendapatkan 3d (Triangulasi) permukaan bahwa proyek-proyek ke . Tentu saja, permukaan ini tidak harus cembung, jika itu cembung, T akan menjadi triangulasi Delaunay. Sederhananya, tepi ( p i , p j ) adalah halangan untuk cembungnya permukaan, tepi cekung . Saat membalik tepi ini, kami mengubah situasi pada permukaan yang terangkat hanya secara lokal. Jadi mari kita lihat 4 poin(pi,pj)TTT(pi,pj)pi,pj,pk,pl. Dalam 3d mereka membentuk tetrahedron, yang memproyeksikan ke segiempat. Karena dua segitiga dan menentukan tepi cekung , segitiga dan menentukan tepi cembung . Oleh karena itu, membalik tepi ilegal sesuai dengan mengganti tepi cekung dengan tepi cembung pada pengangkatan. Perhatikan bahwa membalik ini dapat mengubah tepi cembung lainnya menjadi tepi cekung.pipjpkpipjpl(pi,pj)pkplpipkplpj(pl,pk)

Interpretasi Flip 3D Catatan: Gambar tidak benar secara geometris dan hanya dianggap sebagai sketsa.

Biarkan menjadi triangulasi setelah flip. Permukaan mengangkat dari 'berisi' permukaan . Maksud saya, jika Anda melihat dua permukaan dari bidang Anda hanya melihat segitiga dari permukaan (atau segitiga yang berada di kedua permukaan). Anda juga bisa mengatakan bahwa permukaan membungkus lebih banyak volume. Juga, tepi terletak sekarang "di belakang" permukaan yang terangkat yang disebabkan oleh ketika menonton dari bidang .TTTxyTT(pi,pj)Txy

Selama urutan flip kita mendapatkan urutan permukaan dengan volume yang meningkat secara ketat. Dengan demikian, ujung terletak "di belakang" semua permukaan ini. Oleh karena itu, ia tidak pernah dapat muncul kembali selama proses flipping. Karena hanya ada n memilih 2 kemungkinan tepi, kami memiliki paling banyak O ( n 2 ) membalik.(pi,pj)nO(n2)

A.Schulz
sumber