Apa alasan para peneliti dalam komputasi geometri lebih memilih model BSS / real-RAM?


40

Latar Belakang

Perhitungan atas bilangan real lebih rumit daripada perhitungan atas bilangan alami, karena bilangan real adalah objek tak terhingga dan ada banyak bilangan real, oleh karena itu bilangan real tidak dapat dengan setia diwakili oleh string berhingga pada alfabet terbatas.

Berbeda dengan komputasi klasik atas string hingga di mana model perhitungan yang berbeda seperti: kalkulus lambda, mesin Turing, fungsi rekursif, ... ternyata setara (setidaknya untuk komputasi dibandingkan fungsi pada string), ada berbagai model yang diusulkan untuk komputasi lebih dari bilangan real yang tidak kompatibel. Misalnya, dalam model TTE (lihat juga [Wei00]) yang merupakan yang paling dekat dengan model mesin Turing klasik, bilangan real direpresentasikan menggunakan kaset input tak terbatas (seperti ramalan Turing) dan tidak mungkin untuk memutuskan perbandingan dan hubungan kesetaraan antara dua bilangan real yang diberikan (dalam jumlah waktu terbatas). Di sisi lain dalam model BBS / real-RAM yang mirip dengan model mesin RAM, kami memiliki variabel yang dapat menyimpan bilangan real sewenang-wenang, dan perbandingan dan kesetaraan adalah di antara operasi atom model. Untuk alasan ini dan alasan serupa banyak ahli mengatakan bahwa model BSS / real-RAM tidak realistis (tidak dapat diimplementasikan, setidaknya tidak pada komputer digital saat ini), dan mereka lebih suka TTE atau model lain yang setara dengan TTE seperti model teori domain efektif, Model Ko-Friedman, dll.

Jika saya mengerti dengan benar , model standar perhitungan yang digunakan dalam Computational Geometry adalah model BSS (alias real-RAM , lihat [BCSS98]).

Di sisi lain, bagi saya tampaknya dalam implementasi algoritma dalam Computational Geometry (misalnya LEDA ), kita hanya berurusan dengan angka aljabar dan tidak ada objek tak terbatas yang lebih tinggi atau perhitungan yang terlibat (apakah ini benar?). Jadi nampak bagi saya (mungkin secara naif) bahwa seseorang juga dapat menggunakan model klasik perhitungan atas string terbatas untuk menangani angka-angka ini dan menggunakan model perhitungan yang biasa (yang juga digunakan untuk implementasi algoritma) untuk membahas kebenaran dan kompleksitas algoritma.


Pertanyaan:

Apa alasan mengapa para peneliti di bidang Computational Geometry lebih suka menggunakan model BSS / real-RAM? (Alasan Komputasi Geometri spesifik untuk menggunakan model BSS / real-RAM)

Apa masalah dengan gagasan (mungkin naif) yang telah saya sebutkan di paragraf sebelumnya? (menggunakan model klasik perhitungan dan membatasi input ke nomor aljabar dalam Komputasi Geometri)


Tambahan:

Ada juga kerumitan masalah algoritma, sangat mudah untuk memutuskan masalah berikut dalam model BSS / real-RAM:

ST
sSs>tTt

Meskipun tidak ada algoritma integer-RAM yang efisien diketahui untuk menyelesaikannya. Terima kasih kepada JeffE untuk contohnya.


Referensi:

  1. Lenore Blum, Felipe Cucker, Michael Shub, dan Stephen Smale, "Complexity and Real Computation", 1998
  2. Klaus Weihrauch, " Analisis Komputasi, Suatu Pengantar ", 2000

3
By the way, jika itu tidak jelas, jumlah akar kuadrat masalah memiliki interpretasi geometris yang sangat alami: itu adalah apa yang perlu Anda pecahkan jika Anda ingin membandingkan panjang dua jalur poligon dengan simpul bilangan bulat koordinat.
David Eppstein

Jawaban:


42

Pertama-tama, geometer komputasi tidak menganggapnya sebagai model BSS. Model RAM nyata didefinisikan oleh Michael Shamos dalam tesis PhD 1978-nya ( Komputasi Geometri ), yang bisa dibilang meluncurkan lapangan. Franco Preparata merevisi dan memperluas tesis Shamoos ke dalam buku teks geometri komputasi pertama, yang diterbitkan pada tahun 1985. RAM sebenarnya juga setara ( kecuali untuk keseragaman; lihat jawaban Pascal! ) Untuk model pohon perhitungan aljabar yang ditentukan oleh Ben-Atau pada tahun 1983. Blum , Upaya Shub, dan Smale diterbitkan pada tahun 1989, jauh setelah RAM-nyata telah dibuat, dan hampir sepenuhnya diabaikan oleh komunitas geometri komputasi.

Sebagian besar (klasik) hasil dalam geometri komputasi sangat terkait dengan masalah dalam geometri kombinatorial , di mana asumsi tentang koordinat yang integral atau aljabar adalah (paling baik) gangguan yang tidak relevan. Berbicara sebagai asli, tampaknya benar-benar alami untuk mempertimbangkan sewenang-wenang titik, garis, lingkaran, dan sejenisnya sebagai kelas pertama objek ketika membuktikan hal tentang mereka, dan karena itu sama-sama alami ketika merancang dan menganalisis algoritma untuk menghitung dengan mereka.

pqqrq,r,sqrst? Masing-masing primitif ini diimplementasikan dengan mengevaluasi tanda polinomial derajat rendah dalam koordinat input. (Jadi algoritma ini dapat dijelaskan dalam model pohon keputusan aljabar yang lebih lemah .) Jika koordinat input kebetulan bilangan bulat, primitif ini dapat dievaluasi dengan tepat dengan hanya peningkatan faktor konstan dalam presisi, dan dengan demikian waktu berjalan pada RAM nyata dan RAM integer adalah sama.

Untuk alasan yang sama, ketika kebanyakan orang berpikir tentang pengurutan algoritma, mereka tidak peduli apa yang mereka sortir, asalkan datanya berasal dari alam semesta yang terurut total dan dua nilai dapat dibandingkan dalam waktu yang konstan.

Jadi masyarakat mengembangkan pemisahan kekhawatiran antara desain algoritma geometris "nyata" dan implementasi praktisnya; maka pengembangan paket seperti LPEL dan LPAL. Bahkan untuk orang yang bekerja pada perhitungan yang tepat, ada perbedaan antara algoritma nyata , yang menggunakan aritmatika nyata yang tepat sebagai bagian dari model yang mendasarinya, dan implementasinya , yang dipaksakan oleh keterbatasan yang tidak relevan dari perangkat komputasi fisik untuk menggunakan perhitungan diskrit.

×

Ada beberapa algoritma geometris yang benar-benar sangat bergantung pada model pohon perhitungan aljabar , dan oleh karena itu tidak dapat diimplementasikan secara tepat dan efisien pada komputer fisik. Salah satu contoh yang baik adalah jalur tautan minimum dalam poligon sederhana, yang dapat dihitung dalam waktu linier pada RAM nyata, tetapi membutuhkan jumlah kuadrat bit dalam kasus terburuk untuk mewakili secara tepat. Contoh bagus lainnya adalah stek hierarki Chazelle , yang digunakan dalam algoritma paling efisien yang dikenal untuk pencarian rentang simpleks. Stek ini menggunakan hirarki set segitiga, di mana simpul segitiga di setiap tingkat adalah titik persimpangan garis melalui tepi segitiga di tingkat sebelumnya. Jadi, bahkan jika koordinat input bilangan bulat, koordinat verteks untuk segitiga ini adalah bilangan aljabar dengan derajat tidak terikat; Namun demikian, algoritma untuk membangun dan menggunakan stek mengasumsikan bahwa koordinat dapat dimanipulasi tepat dalam waktu yang konstan.

Jadi, jawaban singkat saya yang bias secara pribadi adalah ini: TTE, teori domain, Ko-Friedman, dan model lain dari perhitungan real-number "realistis" semua mengatasi masalah yang komunitas geometri komputasi, secara keseluruhan, hanya tidak peduli tentang .


9
Mungkin harus ditambahkan bahwa, sementara secara keseluruhan berhasil, sudut pandang ini telah menyebabkan beberapa distorsi aneh di mana misalnya algoritma pencarian parametrik multi-polylog (n) lebih disukai daripada algoritma pencarian biner log (presisi numerik) yang lebih sederhana.
David Eppstein

Ω(nlogn)

4
Joshua: ya, lihat misalnya arxiv.org/abs/1010.1948
David Eppstein

1
@ David Eppstein: sangat menarik! Apakah Anda ingin mempostingnya sebagai jawaban untuk pertanyaan saya yang lain: cstheory.stackexchange.com/questions/608/…
Joshua Grochow

15

Tidak sepenuhnya benar bahwa model RAM / BSS nyata setara dengan model pohon perhitungan aljabar. Yang terakhir ini lebih kuat karena pohon kedalaman polinom dapat berukuran eksponensial. Ini memberi banyak ruang untuk penyandian informasi yang tidak seragam. Sebagai contoh, Meyer auf der Heide telah menunjukkan bahwa pohon keputusan aljabar (bahkan linier) dapat memecahkan masalah-masalah sulit secara efisien seperti jumlah subset, tetapi ini (secara dugaan) tidak mungkin dalam model RAM / BSS yang sebenarnya.


1
Poin luar biasa !!
Jeffε

4

Inilah komentar tentang jawaban Jeff yang luar biasa:

Pengertian tentang kondisi, perkiraan dan pembulatan diusulkan untuk mengatasi kesenjangan kompleksitas (kombinatorial vs kontinu) dari algoritma pemrograman linier. Kondisi instance masalah memperkirakan efek gangguan kecil input pada akurasi output. Gagasan kondisi pertama kali diperkenalkan oleh Alan Turing. Jim Renegar memperkenalkan gagasan tentang kondisi program linier.

L. BLUM, Komputasi atas Real: Di mana Turing Bertemu Newton ,, PEMBERITAHUAN AMS, VOLUME 51, NUMBER 9, (2004), 1024-1034

A. TURING, Kesalahan pembulatan dalam proses matriks, Quart. J. Mech. Appl. Matematika 1 (1948), 287–308

J. RENEGAR, Memasukkan angka kondisi ke dalam teori kompleksitas pemrograman linier, SIAM J. Optim. 5 (1995), 506-524

F. CUCKER, dan J. PEÑA, Algoritma primal-dual untuk menyelesaikan sistem kerucut polihedral dengan mesin presisi-terbatas, Jurnal SIAM tentang Pengoptimalan 12 (2002), 522-555.

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.