Ini mungkin pertanyaan dasar, tapi saya sudah membaca dan mencoba memahami makalah tentang mata pelajaran seperti perhitungan ekuilibrium Nash dan pengujian degenerasi linier dan tidak yakin bagaimana bilangan real ditentukan sebagai input. Misalnya, ketika dinyatakan bahwa LDT memiliki batas polinomial tertentu lebih rendah, bagaimana bilangan real ditentukan ketika mereka diperlakukan sebagai input?
cc.complexity-theory
computability
na.numerical-analysis
computing-over-reals
computable-analysis
Philip White
sumber
sumber
Jawaban:
Saya tidak setuju dengan jawaban Anda yang diterima oleh Kaveh. Untuk pemrograman linier dan Nash equilibria, floating point mungkin dapat diterima. Tetapi angka floating point dan komputasi geometri bercampur sangat buruk: kesalahan pembulatan membatalkan asumsi kombinatorial dari algoritma, sering menyebabkan mereka crash. Lebih khusus, banyak algoritma geometri komputasi bergantung pada tes primitif yang memeriksa apakah nilai yang diberikan positif, negatif, atau nol. Jika nilai itu sangat dekat dengan nol dan pembulatan titik mengambang menyebabkannya memiliki tanda yang salah, hal-hal buruk dapat terjadi.
Sebaliknya, input sering diasumsikan memiliki koordinat bilangan bulat, dan hasil antara sering diwakili dengan tepat, baik sebagai bilangan rasional dengan presisi yang cukup tinggi untuk menghindari overflow atau sebagai bilangan aljabar. Perkiraan titik apung ke angka-angka ini dapat digunakan untuk mempercepat perhitungan, tetapi hanya dalam situasi di mana angka-angka dapat dijamin cukup jauh dari nol sehingga tes tanda akan memberikan jawaban yang tepat.
Dalam sebagian besar makalah algoritma teoritis dalam geometri komputasi, masalah ini dihindari dengan mengasumsikan bahwa input adalah bilangan real dan bahwa primitif adalah tes yang tepat dari tanda-tanda akar polinomial tingkat rendah dalam nilai input. Tetapi jika Anda menerapkan algoritma geometris maka ini semua menjadi sangat penting.
sumber
Anda juga dapat melihat ceramah Andrej Bauer tentang Peran Domain Interval dalam Aritmatika Nyata Exact Modern , yang mensurvei beberapa pendekatan berbeda untuk menentukan perhitungan atas bilangan real baik dalam teori maupun praktik.
sumber
Ini bukan jawaban langsung untuk pertanyaan Anda, lebih merupakan respons terhadap Raphael . Ada beberapa pekerjaan baru-baru ini menentukan perhitungan bilangan real menggunakan coinduction. Berikut adalah beberapa artikel tentang topik ini.
Coinduction for Exact Real Number Computation , Ulrich Berger dan Tie Hou: TEORI SISTEM KOMPUTASI Volume 43, Bilangan 3-4, 394-409, DOI: 10.1007 / s00224-007-9017-6
Penalaran Formal Koinduktif dalam Aritmatika Nyata yang Tepat , Milad Niqui, Metode Logika dalam Ilmu Komputer, 4 (3: 6): 1-40, 2008.
Kalkulus dalam Bentuk Koinduktif oleh Dusko Pavlovic dan Martin Escardo, LICS 1998.
Mereka hampir tidak mencakup spektrum penuh perhitungan bilangan real, tetapi kemajuan sedang dibuat untuk mengatasi berbagai masalah.
sumber
Kompleksitas komputasi perhitungan atas bilangan real dipertimbangkan oleh Blum, Cucker, Shub, dan Smale . Berikut ini sebagian deskripsi buku:
Anda dapat menemukan ulasan buku ini di ACM SIGACT News .
sumber
Diedit / diperbaiki berdasarkan komentar
Ketika penulis berbicara tentang input bilangan real dalam pemrograman linier, perhitungan kesetimbangan Nash, ... di sebagian besar makalah (makalah yang tidak membahas topik komputasi / kompleksitas bilangan real), mereka tidak benar-benar berarti bilangan real. Mereka adalah bilangan rasional dan bilangan yang muncul dari mereka karena manipulasi mereka (bilangan aljabar). Jadi Anda bisa menganggapnya sebagai yang diwakili oleh string yang terbatas.
Di sisi lain, jika makalah ini berkomputasi dan kompleksitas dalam analisis , maka mereka tidak menggunakan model perhitungan yang biasa, dan ada berbagai model perhitungan / kompleksitas yang tidak sesuai dengan bilangan real.
Jika makalah tidak menentukan model perhitungan di atas bilangan real, Anda dapat dengan aman mengasumsikan bahwa ini adalah kasus pertama, yaitu hanya bilangan rasional.
Geometri komputasi berbeda. Dalam sebagian besar makalah di CG, jika penulis tidak menentukan model apa yang berkaitan dengan kebenaran dan kompleksitas algoritma yang sedang dibahas, dapat diasumsikan sebagai model BSS (alias real-RAM).
Model ini tidak realistis dan oleh karena itu implementasinya tidak langsung. (Ini adalah salah satu alasan bahwa beberapa orang di CCA lebih suka model teori Ko-Friedman / TTE / Domain , tetapi masalah dengan model ini adalah bahwa mereka tidak secepat perhitungan floating-point dalam praktek.) Kebenaran dan kompleksitas dari Algoritme dalam model BSS tidak perlu mentransfer ke kebenaran dari algoritma yang diterapkan.
Weihrauch ini buku berisi perbandingan antara model yang berbeda (Bagian 9.8). Hanya tiga halaman dan layak dibaca.
(Ada juga cara ketiga, yang mungkin lebih cocok untuk CG, Anda mungkin ingin melihat makalah ini:
di mana EGC adalah Persis Perhitungan Geometris .)
sumber
Mereka tidak dan mereka tidak bisa, secara umum. Kami hanya dapat memperlakukan sejumlah input (dan output dan fungsi) yang dapat dihitung dengan model perhitungan kami. Khususnya, setiap input harus terbatas tetapi tidak semua bilangan real memiliki representasi terbatas.
Anda bisa, saya kira, mengasumsikan semacam oracle yang menghasilkan digit berikutnya dari nomor nyata tertentu berdasarkan permintaan (sth like a stream). Kalau tidak, Anda harus hidup dengan perkiraan (sewenang-wenang tepat).
sumber