Apakah ada gagasan tentang komputabilitas pada set selain bilangan asli?


10

Apakah ada gagasan tentang komputabilitas pada set selain bilangan asli? Demi argumen, katakanlah pada set S yang biject dengan N .

Sangat menggoda untuk mengatakan "ya, mereka adalah fungsi-fungsi dari bentuk gfg1 mana g adalah setiap penambangan NS dan f adalah setiap fungsi yang dapat dihitung NN ". Saya berhati-hati dengan definisi ini karena dua alasan.

  1. Ini hak istimewa N atas set dihitung lainnya. Mengapa N istimewa dalam mendefinisikan komputasi? Saya ingin definisi komputabilitas yang "bebas koordinat" tanpa referensi ke set privileged dengan cara yang sama saya mungkin ingin definisi "bebas koordinat" dari konsep aljabar linier tanpa referensi ke dasar istimewa.

  2. Ini menimbulkan pertanyaan tentang pilihan g . Saya curiga ada kemungkinan untuk menemukan kontradiksi dengan pilihan patologis S dan g . Sebagai contoh jika saya memilih S=N dan g beberapa non-computable bijection itu benar-benar terjadi bahwa gfg1 adalah computable untuk semua computable f ?

    Sangat menggoda untuk meminta dalam definisi bahwa g dapat dihitung tetapi sayangnya itu menimbulkan pertanyaan.

Apakah ada cara umum untuk menggambarkan komputabilitas pada set yang dapat dihitung selain N ?


1
Nah, selain dari , computability juga sering didefinisikan pada Σ * , di mana Σ merupakan alfabet terbatas ... Tapi sekali lagi, mereka definisi berbeda oleh komputasi bijection NΣ * (yaitu, dalam satu arah itu dihitung menggunakan N definisi, dan kebalikannya dapat dihitung menggunakan definisi Σ ). Jadi Anda pasti bisa melakukannya, di mana g dan g - 1 Anda sama-sama dapat dihitung, tapi saya setuju itu mengajukan pertanyaan yang lebih umum ...NΣΣNΣNΣgg1
Joshua Grochow

1
Bagaimana dengan model perhitungan seperti sistem ubin, automata seluler, sistem tag, dan sebagainya?
Marzio De Biasi

2
Mengapa kita tidak mengistimewakan daripada set yang dapat dihitung lainnya? Kami memiliki alasan yang sangat kuat untuk melakukannya: CPU, yaitu hal yang melakukan komputasi, bekerja pada N (atau string terbatas di atas B yang pada dasarnya adalah hal yang sama). Tentu Anda dapat memilih set lain, tetapi mengapa orang harus menerima definisi Anda? Bagaimana Anda membenarkan klaim bahwa apa yang Anda sebut komputabilitas sebenarnya, kecuali dengan menghubungkannya dengan komputasi pada N , yaitu CPU? NNBN
Martin Berger

1
@ Martin, saya memberikan argumen dalam jawaban saya bahwa kami privilege lebih dari N setidaknya sampai batas tertentu sehubungan dengan kompleksitas waktu. Alasan ini salah tanpa introspeksi adalah bahwa kita dapat menganggap hasil tertentu adalah wajar ketika mereka sebenarnya hanya artefak dari model. {0,1}N
Dan Brumleve

1
Apakah ada alasan Anda membatasi perhatian hanya pada set yang dapat dihitung?
Andrej Bauer

Jawaban:


12

Pertanyaan ini bukan tingkat penelitian, tetapi karena menerima jawaban, saya ingin menawarkan jawaban yang mungkin sedikit memperjelas, dan memberikan referensi.

Ada seluruh bidang ilmu komputer teoretis yang mempelajari kemampuan komputasi dalam analisis, aljabar dan topologi. Yang paling penting adalah gagasan kemampuan komputasi untuk bilangan real. Sebenarnya kertas asli Turing pada mesin Turing dimulai dengan kalimat berikut:

Angka "yang dapat dihitung" dapat digambarkan secara singkat sebagai bilangan real yang ekspresinya sebagai desimal dapat dihitung dengan cara terbatas.

Terkadang membayar untuk kembali ke sumber.

Ada beberapa cara untuk mengatur komputasi pada set umum, yang salah satu yang paling umum adalah teori realizability . Gagasan teori realizability kembali ke makalah Kleene Pada Interpretation of Intuitionistic Number Theory dari 1945, tetapi sejak itu digeneralisasi dan dikembangkan menjadi mini-cabang komputabilitas, dengan campuran yang baik dari teori kategori, lihat misalnya buku Jaap van Oosten "Realisasi: pengantar sisi kategorikal" (Studi Logika dan Yayasan Matematika, vol. 152, Elsevier, 2008).

λNλ

XXNXxXnNnXxnxX

Mengingat dua majelis dan , peta adalah menyadari (atau "dihitung") jika ada Turing mesin , sehingga, setiap kali maka berakhir dan . Sekali lagi, ini adalah transliterasi langsung dari apa artinya secara informal untuk "memprogram" fungsi abstrak : mesin Turing yang sesuai melakukan untuk merepresentasikan data apa pun yang dilakukan terhadap elemen yang sesuai.(X,X)(Y,Y)f:XYTnXxT(n)T(n)Yf(x)ff

Majelis dapat diperluas ke topos realisasi . Topos adalah model matematika intuitionistic tingkat tinggi. Ini memberitahu kita bahwa setiap topos realisasi (ada satu untuk setiap model perhitungan) berisi banyak objek menarik. Misalnya, ini berisi objek bilangan real, yang dengan demikian memberi kita kemampuan untuk menghitung pada real. Tapi itu juga mengandung banyak objek lain, seperti ruang Hilbert, ruang Banach, ruang peta halus, dll. Anda meminta beberapa struktur yang dapat dihitung, tetapi Anda mendapatkan sesuatu yang lebih baik: seluruh dunia komputabilitas matematika.

Karena teori kategori dan toposa bisa menakutkan dan memerlukan sejumlah kecakapan teknis dalam teori komputabilitas, teori kategori, dan logika, kita juga bisa bekerja hanya dalam satu topos beton, tetapi kami mengekspresikan semuanya dengan cara konkret non-abstrak. Dunia komputasi yang sangat baik muncul dari realisasi fungsi Kleene , dan menggunakan analisis komputabel .

Izinkan saya mengomentari persyaratan "bebas berkoordinasi":

  • Beralih di antara model komputasi memberikan berbagai jenis dunia yang dapat dihitung. Ini agak seperti beralih antara bidang yang berbeda memberikan berbagai jenis aljabar linier.

  • Himpunan dapat dilengkapi dengan banyak struktur komputabilitas , sama seperti seperangkat vektor memiliki banyak basis. Namun, meskipun semua pangkalan adalah setara, tidak semua struktur komputabilitas pada setara secara komputatif.XXX

  • Jika kita bekerja secara konkret dengan struktur komputabilitas , itu seperti bekerja dengan matriks dalam aljabar linier. Ini bisa sangat berguna, tetapi tidak abstrak.(X,X)

  • Untuk bekerja dengan cara "bebas koordinat", kami bekerja dalam topos yang dapat diwujudkan dan memanfaatkan kekuatan teori kategori (ya, itu klise tetapi berhasil).

  • Kita bahkan dapat bekerja dengan cara "bebas-dunia": mengembangkan matematika dalam logika intuitionistic, dan kemudian menginterpretasikan hasil dalam topos yang dapat diwujudkan.


Saya tidak melihat pilihan sini sebagai analog dengan pilihan sebagai bidang di mana kita dapat mempertimbangkan ruang vektor. Alih-alih gagasan "relasi keterandalan" ini bagi saya seperti mendefinisikan apa artinya dapat diukur dengan mendefinisikan ukuran Borel pada dan kemudian menyatakan "ruang terukur adalah apa pun yang bijects dengan dan terukur function adalah apa saja yang menginduksi peta yang dapat diukur .NRRRRR
Tom Ellis

Ruang terukur muncul secara alami dari (beberapa) ruang topologi dan itu umumnya dianggap sebagai teorema bahwa yang non-diskrit diukur isomorfik ke . Idealnya saya ingin menemukan analog teori perhitungan dari konstruksi sebelumnya. Apa struktur dasar yang memunculkan sesuatu yang dapat Anda hitung? Korespondensi dengan , dipaksakan oleh fiat, tidak terlalu memuaskan. RN
Tom Ellis

Tidak ada "pilihan ", hanya ada pilihan model perhitungan. Jika dengan "pilihan " yang Anda maksudkan "mari kita gunakan mesin Turing (dikodekan oleh angka)", maka poin saya adalah ini: untuk setiap pilihan struktur komputasi Anda mendapatkan topos realisasi . Hal ini analog dengan: untuk setiap pilihan lapangan Anda mendapatkan kategori ruang vektor atas . NNSRT(S)FVectFF
Andrej Bauer

Menerapkan tindakan pada set memang sedikit seperti memaksakan struktur komputabilitas pada set. Dan dalam kedua kasus beberapa set memiliki struktur alami yang terkait dengannya.
Andrej Bauer

2
Andrej yang terhormat, izinkan saya berterima kasih atas tanggapan Anda yang telah dipertimbangkan. Saya senang bahwa veteran 20 tahun di lapangan akan membutuhkan waktu untuk mencerahkan orang baru seperti saya daripada memilih untuk menutup pertanyaan saya sebagai sia-sia. Saya juga senang menyimpulkan bahwa teori topos dan halaman pada nLab sekarang dianggap dapat diakses oleh mereka yang berada di tingkat pra-penelitian.
Tom Ellis



-1

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 denganrNrgNg2323daun 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:NNNyang 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:NN

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.