Mengingat minat pada pertanyaan ini, saya pikir mungkin akan membantu untuk menunjukkan secara lebih eksplisit alasan mengapa kita tidak perlu terkejut sama sekali dengan jawaban itu dan mencoba memberikan arahan untuk penyempurnaan pertanyaan. Ini mengumpulkan dan memperluas beberapa komentar. Saya minta maaf jika ini "jelas"!
Pertimbangkan sekumpulan string kompleksitas Kolmogorov :
Paling banyak ada string seperti itu, karena ada deskripsi panjang . Tetapi perhatikan bahwa set ini tidak dapat ditentukan untuk umum (jika tidak, kita dapat menghitung hanya dengan mengulangi dari ke dan memeriksa keanggotaan dalam ). Selanjutnya, fungsi
tumbuh sangat cepat. Ini adalah varian dari fungsi sibuk-berang-berang: apa output terpanjang oleh Mesin Turing dengan panjang deskripsin
JK( n ) = { w : K( w ) = n } .
2n2nnnK( w )n = 1| w |JK( n )gK( n ) = maksw ∈ JK( n )| w |
n? Jika ini tumbuh lebih lambat dari beberapa fungsi yang dapat dihitung, kita dapat memutuskan masalah penghentian: Diberikan TM , bangun yang mensimulasikan dan mencetak pada setiap langkah. Jika panjang deskripsi adalah , maka: berhenti paling banyak pada langkah ; atau tidak berhenti.
M.M.′M.1M.′nM.gK( n )M.
Sekarang, untuk pertanyaan Andrew, kita memiliki , di mana adalah bahasa aslinya. Jadi satu-satunya cara untuk menghindari mengandung input sangat besar dalam adalah jika hanya berisi string yang sangat tidak dapat dikompresi. (Perhatikan bahwa, jika tidak, kita dapat sepenuhnya mengabaikan perbedaan antara kasus terburuk dan analisis kasus rata-rata di sini, karena kita rata-rata lebih dari string, tetapi ukuran string terbesar tumbuh lebih cepat daripada fungsi komputabel . )sayaK( n ) = S∩ JK( n )SsayaK( n )nS2nn
Saya merasa bahwa ada kemungkinan tidak mungkin untuk membangun setiap trivial (yaitu tak terbatas) yang hanya berisi string uncompressible, namun adalah decidable. Tapi saya tidak tahu. Namun, mudah-mudahan ini memberikan intuisi mengapa kita tidak harus berharap untuk kebanyakan bahasa memiliki tumbuh lebih lambat dari fungsi komputasi.SfKn
Untuk mundur sedikit, pertanyaannya adalah membandingkan kinerja pada input panjang ke kinerja pada input yang dapat dikompresi dengan panjang . Tetapi kami memiliki gagasan kompresi yang jauh lebih mudah ditelusuri (dan kurang kuat) daripada Kompleksitas Kolmogorov. Sebuah cara sederhana adalah dengan memberikan rangkaian ukuran , yang pada input nomor biner menghasilkan th sedikit . Perhatikan bahwa di sini blowup dalam ukuran input paling banyak bersifat eksponensial (rangkaian ukuran memiliki paling banyak input yang mungkin).nnnbbwn2n
Jadi kita dapat mengulangi pertanyaan dengan membiarkan
Dan mendefinisikan analog. Alasan untuk harapan di sini adalah bahwa sebagian besar string memerlukan rangkaian yang hampir sebesar string itu sendiri, dan tidak ada string yang lebih besar daripada rangkaian yang dibutuhkan secara eksponensial. Mungkin dalam kasus ini kita bisa menemukan bahasa di mana dan mirip tanpa .
sayaC( n ) = { w ∈ S: sirkuit terkecil yang secara implisit menentukan w memiliki ukuran n } .
fCnfnfCn
Pertanyaan yang cukup dekat hubungannya adalah kompleksitas bahasa implisit seperti
IMPLICIT_SAT adalah lengkap-NEXP, dan biasanya versi implisit masalah NP-lengkap adalah NEXP-lengkap. Memutuskan IMPLICIT_SAT setidaknya semudah hanya menggunakan sirkuit untuk menuliskan semua , lalu menjalankan algoritme untuk SAT pada . Jadi jika untuk SAT, maka ini sepertinya dekat dengan memberikan bukti bahwa IMPLICIT_SAT dalam kasus rata-rata hampir secepat dapat ditentukan seperti SAT dalam kasus terburuk. Tapi saya tidak tahu bagaimana orang akan secara langsung membandingkan gagasan Anda dengan bahasa implisit karena gagasan "sirkuit terkecil untukw w f C n = Θ ( f n ) w
IMPLICIT_SAT={circuits C:C implicitly specifies w,w∈SAT}.
wwfCn=Θ(fn)w"tidak ikut bermain untuk bahasa implisit.
Semoga ini bermanfaat / menarik!
Saya tidak yakin dengan buku teks yang menyebutkan masalah implisit, tetapi di sini ada beberapa catatan kuliah: http://people.seas.harvard.edu/~salil/cs221/spring10/lec8.pdf