Ini mirip dengan bagaimana kami mendefinisikan komputabilitas dalam hal mesin Turing dan kemudian segera melupakan mesin Turing. Karena ternyata mesin Turing adalah definisi yang sama baiknya dengan yang lain, kami menggunakannya sebagai jangkar untuk seluruh kelas model ekuivalensi, dan kami berakhir dengan kelas yang sama tidak peduli dari mana elemen yang kami hasilkan. Pada dasarnya ini adalah tesis Church-Turing dan mendefinisikan serangkaian string bit yang dapat dihitung.
Demikian pula, untuk menentukan computability pada set yang berbeda , kami jangkar dengan fungsi parsial tertentu dari bit string untuk . Sebenarnya tidak masalah jika fungsi ini adalah penambangan atau injeksi atau jenis fungsi lainnya (untuk kasus di mana kita tidak benar-benar ingin itu menjadi suntikan, pertimbangkan grup yang ditentukan oleh presentasinya di mana kita tidak memiliki representasi unik untuk elemen-elemennya). Bahkan tidak harus menjadi kejutan jika kami mengizinkan bahwa set singleton dapat dihitung. Dengan menyusun fungsi ini dengan sembarang penghitungan yang dapat dihitung dari string bit ke string bit (sebuah konsep yang sudah didefinisikan), kita mendapatkan definisi kemampuan komputasi untukSSSitu tidak tetap sehubungan dengan fungsi yang awalnya kami pilih (selama kami memilih sesuatu yang masuk akal). Artinya, CT tesis untuk kami set . Tetapi jika kita tidak memilih fungsi yang masuk akal, kita mendapatkan definisi komputabilitas yang berbeda.S
Fungsi ini juga berfungsi untuk menentukan computability fungsi lainnya dengan domain atau kisaran sama untuk . Dengan mengubah rentang , menjaga domain sebagai , kami juga mendapatkan definisi -invariant kompleksitas Kolmogorov untuk . Dan akhirnya kita dapat mengatakan bahwa fungsi yang kita pilih sendiri dapat dihitung.SS{0,1}∗O(1)S
Jadi saya pikir jawaban untuk pertanyaan Anda adalah TIDAK. Kita harus mendefinisikan komputabilitas untuk setiap set yang ingin kita bicarakan, karena ada definisi yang tidak setara. Selain dari diskusi yang sangat teknis atau pedagogis itu tidak perlu, karena orang yang masuk akal dapat membayangkan definisi yang masuk akal secara mandiri.
Tapi tunggu, biar jadi set yang tak terhingga jumlahnya, dan hanya itu. Apa definisi masuk akal kami tentang komputasi untuk ? Mengetahui bahwa rangkaian bijections antara dan tidak kosong tidak memberi tahu kita mana yang masuk akal. Kami kurang beruntung tanpa rincian lebih lanjut.SSS{0,1}∗
Dan kita mungkin menemukan beberapa alternatif yang tidak setara tetapi sama-sama masuk akal. Misalkan setiap pohon memiliki sejumlah daun merah dan sejumlah daun hijau, dan untuk setiap ada persis satu pohon dengan daun merah, dan untuk setiap ada persis satu pohon dengan daun hijau. Kedua bijections masuk akal dalam arti bahwa kita dapat menghitung daun dan membedakan warna, dan kita dapat berjalan tanpa tujuan di sekitar hutan menghitung daun di pohon sampai kita menemukan pohon dengan tepat daun hijau, atau satu denganr∈Nrg∈Ng2323daun merah. Tidak jelas apakah akan mengidentifikasi pohon menggunakan jumlah daun merah atau jumlah daun hijau karena pilihan ini mengarah pada definisi yang tidak setara dari kemampuan komputasi untuk set pohon. Jika sebaliknya kita membuat definisi dengan menggabungkan penghitungan dengan fungsi pasangan berpasangan yang dapat dihitung dari ke (memiliki kemampuan komputasi yang didefinisikan dengan tepat pada ), yang juga secara unik mengidentifikasi masing-masing pohon, tetapi situasinya bahkan lebih buruk karena ini bukan penambangan antara pohon dan , sekarang mungkin semua set pohon yang dapat dihitung terbatas!N2NN2N
Jadi untuk menghindari seluruh diskusi harus dipahami tidak hanya bahwa ada definisi yang masuk akal dari komputabilitas pada set yang dipertanyakan, tetapi juga bahwa ada satu kelas definisi yang masuk akal.
Saya pikir situasinya menjadi jauh lebih menarik jika kita membawa kompleksitas waktu ke dalam gambar. Bahkan ketika hanya mempertimbangkan bilangan bulat, pilihan kita lebih penting. Sebagai contoh, bagaimana jika kita ingin mewakili setiap angka sebagai jumlah empat kotak? Kita dapat menemukan representasi seperti itu, mulai dari representasi basis, dalam waktu kuadratik yang diharapkan dengan akses ke keacakan. Atau sebagai gantinya, sebagai daftar faktor prima, yang mungkin atau tidak mungkin dihitung dalam waktu polinomial. Sejauh kami mengizinkan representasi keras, kami kehilangan presisi dalam kompleksitas waktu. Sebagai contoh, kita tidak dapat mengatakan secara bermakna bahwa beberapa fungsi dapat dihitung dalam waktu kuadratik jika kita memiliki representasi dariF:N→NNyang mungkin memerlukan lebih dari waktu kuadrat untuk mengkonversi ke atau dari representasi basis. Saya pikir perspektif ini mengungkapkan bahwa representasi basis adalah standar yang agak arbitrer. (Standar dalam arti bahwa representasi dasar adalah apa yang ada dalam pikiran setiap orang ketika mereka mengatakan sesuatu seperti " dapat dihitung dalam waktu kuadratik", jika model yang mendasarinya adalah yang menghitung bit string dari bit string dan kita seharusnya menyimpulkan artinya.)F:N→N