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:
Meskipun tidak ada algoritma integer-RAM yang efisien diketahui untuk menyelesaikannya. Terima kasih kepada JeffE untuk contohnya.
Referensi:
- Lenore Blum, Felipe Cucker, Michael Shub, dan Stephen Smale, "Complexity and Real Computation", 1998
- Klaus Weihrauch, " Analisis Komputasi, Suatu Pengantar ", 2000
Jawaban:
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.
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 .
sumber
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.
sumber
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.
sumber