Tunjukkan bahwa ada masalah yang jauh lebih banyak daripada yang dapat kita hitung

8

Saya melihat ini pembacaan MIT pada kompleksitas komputasi dan sebentar 15:00 embarks Erik Demaine pada demonstrasi untuk menunjukkan apa yang dinyatakan dalam judul pertanyaan ini. Namun saya tidak dapat mengikuti alasannya, dalam praktiknya apa yang dia katakan adalah ini:
kita dapat menyatakan masalah keputusan sebagai string dan yang dalam praktiknya adalah tabel kebenaran fungsi. Dia melanjutkan dengan mengatakan bahwa masalah keputusan adalah string bit tanpa batas sementara program adalah string bit terbatas dan hingga di sini tidak ada masalah. Apa yang saya tidak mengerti adalah kelanjutan dari bukti dari titik ini pada: Masalah keputusan ada di01
R karena Anda dapat menempatkan titik desimal sebelum string yang mewakili masalah, sehingga mendapatkan bagian desimal dari yang nyata

 for example if you have 0111011010101010101... it could become x.0111011010101010101... 

Suatu program "hanya" bilangan bulat di karena itu adalah rangkaian bit yang terbatas. Poin yang saya gagal pahami adalah bagaimana mungkin bahwa masalah keputusan sebanding dengan bilangan real, bukan bilangan bulat ... Maksud saya, jika kita menggunakan argumen "meletakkan titik di depan angka" tidak bisa alasan yang sama juga diterapkan pada jumlah kemungkinan algoritma yang dapat dihasilkan?N

Yamar69
sumber
11
Intinya adalah bahwa jumlah algoritma dapat dihitung, sedangkan jumlah masalah keputusan tidak terhitung. Saya sarankan mencari istilah-istilah ini dalam buku teks tentang teori himpunan dasar.
Yuval Filmus
1
@Yuval Filmus Saya sangat menyadari arti dari istilah-istilah ini, apa yang saya perjuangkan untuk berasimilasi adalah alasan untuk kardinalitas yang berbeda ini (algoritme / masalah keputusan).
Yamar69
1
@ JimmyB pernyataan yang sama berlaku untuk bilangan rasional, tetapi bilangan rasional masih dapat dihitung (memiliki "ukuran" yang sama dengan bilangan bulat) sedangkan bilangan real tidak.
Gregory J. Puleo
1
Lebih menarik lagi, ada banyak masalah keputusan yang ditentukan tak terbatas yang tidak dapat diputuskan oleh mesin Turing. Anda tidak perlu naik banding ke set yang tidak terhitung untuk mendapatkan kesimpulan bahwa ada banyak masalah algoritmik yang tidak dapat dipecahkan. Anda tidak perlu perhitungan yang tak terhitung dari bilangan real untuk menyimpulkan bahwa himpunan bilangan real yang dapat dihitung memiliki komplemen yang tak terbatas.
John Coleman
1
"... daripada yang dapat kita hitung" menunjukkan bahwa masalah apa yang dapat kita hitung bervariasi dengan waktu. Definisi "computable" tidak tergantung waktu.
David Richerby

Jawaban:

9

Jika saya memahami Anda dengan benar, pertanyaan Anda adalah - mengapa solusi dapat dikodekan oleh bilangan alami dan masalah dengan bilangan real. (Saya berasumsi bahwa Anda memahami tahap selanjutnya dari bukti yang didasarkan pada perbedaan antara set kardinalitas dan .)c0

Alasannya terletak pada teori himpunan, lebih khusus dalam kardinalitas set yang berbeda. Hitung jumlah program - ini adalah ukuran string yang berbeda dari bahasa tertentu atau serangkaian karakter (ASCII misalnya). Ukuran ini setara dengan ukuran set (angka alami). (Setiap string dapat direpresentasikan sebagai nilainya yang dihitung oleh representasi binernya.)N

Tetapi, menghitung jumlah fungsi dari bilangan asli (atau string yang mewakili mereka) ke , yah itu adalah cerita yang sama sekali berbeda, dan di sini kita berurusan dengan perbedaan ukuran antara dua himpunan tak terbatas; ukuran set ini lebih besar. Ada bukti bagus yang didasarkan pada fakta bahwa fungsi dari untuk semua set yang disebutkan di atas tidak dapat "ke", yang mengarah pada kesimpulan perbedaan kardinalitas. Anda bisa membaca buktinya di sini .{0,1}N

royashcenazi
sumber
11

Merumuskan kembali dengan cara yang lebih tepat secara matematis, apa yang dosen coba katakan adalah ini: Setiap algoritma dapat (secara unik) dikodekan sebagai string bit terbatas, dan string bit terbatas (unik) mengkodekan suatu program; oleh karena itu, ada penautan antara dan himpunan algoritma, sehingga keduanya merupakan himpunan yang dapat dihitung. Sebaliknya, setelah memperbaiki urutan string, setiap masalah keputusan dapat (secara unik) dikodekan sebagai string bit tanpa batas, di mana bit ke- menunjukkan apakah string ke- ada di atau tidak, dan string tanpa batas dari bits (unik) mengkodekan masalah keputusan (dengan cara yang sama); karenanya,NPiiPR dan himpunan masalah keputusan merupakan himpunan yang tidak terhitung.

dkaeae
sumber
6

Setiap algoritma dapat dideskripsikan dengan string yang terbatas, sehingga hanya ada banyak algoritma. Sebaliknya, kita dapat menggambarkan setiap masalah keputusan sebagai desimal tak terbatas dalam basis 2, dan terlebih lagi ini adalah pemetaan surjektif : setiap angka dalam[0,1]dapat "diterjemahkan" menjadi masalah keputusan. Karena itu ada banyak masalah keputusan yang tak terhitung jumlahnya.

Argumen decoding tidak bekerja untuk algoritma - sementara setiap algoritma sesuai dengan desimal terbatas, ini tidak mencakup semuanya [0,1], tetapi hanya sebagian yang dapat dihitung dari itu.

Yuval Filmus
sumber