Ini mungkin pertanyaan konyol. Tampak jelas bahwa FSA, karena terbatas, hanya dapat menghitung jumlah simbol dalam string inputnya hingga sejumlah yang dibatasi oleh jumlah negara bagian. Tapi sekarang anggaplah kita melengkapi FSA dengan kemampuan output (misalnya pencetakan). Maka akan sangat mudah untuk membangun mesin yang mampu mencetak satu simbol untuk setiap simbol yang dibacanya. Apakah itu dihitung sebagai penghitungan? Jika tidak, mengapa tidak?
Untuk menempatkannya dalam bentuk FST sebagai gantinya: Saya menganggap bahwa tidak mungkin untuk membangun FST yang mampu memetakan string yang panjangnya sewenang-wenang ke representasi biner (yaitu angka dalam sistem angka base-2) dari panjangnya. Tapi tentu saja sepele untuk membangun FST yang mampu memetakan string yang panjangnya sewenang-wenang ke string kata nol (atau yang) dengan panjang yang sama. Tapi itu bisa dihitung sebagai penghitungan, tidak bisa, karena apa yang dilakukan FST adalah membangun representasi dari panjang inputnya. Representasi yang agak aneh, tapi tetap representasi, bukan?
sumber
Jawaban:
Pertanyaan ini agak kabur, jadi inilah jawaban yang tidak jelas: Menerjemahkan unary ke unary tidak persis menghitung, karena mesin tidak benar-benar "tahu" berapa ukuran input "pada akhirnya".
Anda menyadari ini, tentu saja, itulah sebabnya Anda mempertanyakan fakta bahwa itu memang berhitung.
Menerjemahkan dari unary ke biner, bagaimanapun, tampak seperti operasi yang jauh lebih maju, karena tidak hanya melibatkan penghitungan, tetapi juga melibatkan aritmatika.
Jadi, mungkin gagasan yang lebih tepat untuk dilihat, alih-alih menghitung, adalah membandingkan . Yaitu, diberi dua angka (dalam unary) dan 1 m , tentukan jika n = m .1n 1m n = m
Kemampuan untuk melakukan perbandingan ini adalah apa yang menimbulkan bahasa terkenal non-reguler . Dan ketidakmampuan seorang NFA untuk menghitung adalah apa yang membuat bahasa ini tidak teratur.{ anbn: n ≥ 0 }
Menariknya, bahasa ini adalah CFL. Dan memang, model automata yang sesuai - PDA, memang memiliki kemampuan untuk melakukan perbandingan terbatas.
Ketika Anda berbicara tentang membandingkan, transduser tidak lagi memberi Anda kekuatan tambahan, jadi pertanyaannya terselesaikan dalam pengertian itu.
Catatan tambahan: sepenuhnya informal, kemampuan untuk membandingkan dua angka sering dapat digunakan untuk mensimulasikan mesin 2-counter Mesin Minsky , yang setara dengan TM.
sumber
Tidak. Automata negara terbatas tidak masuk hitungan. Mereka mungkin melakukan hal-hal yang terlihat seperti itu, tetapi mereka tidak dapat menghitung. Mereka bahkan dapat melakukan sedikit perhitungan (terprogram) (seperti menentukan apakah angka biner dapat dibagi tiga ) tetapi itu tidak termasuk hitungan.
Sebuah cerita kecil Anda berada di sebuah kotak persegi panjang besar di kota yang terkenal. Penduduk setempat memberi tahu Anda bahwa alun-alun sebenarnya adalah kotak. Jika Anda dapat menghitung Anda memeriksa apakah jumlah ubin horisontal dan vertikal cocok dengan menghitung ubin di sepanjang sisi kotak. Jika Anda tidak dapat menghitung, Anda masih dapat memverifikasi klaim: mulai dari sudut dan berjalan secara diagonal. Jika Anda benar-benar mencapai sudut yang berlawanan, Anda memiliki kotak.
sumber
@Shaull: Terima kasih atas jawaban Anda! Saya baru di StackExchange dan tidak tahu bagaimana mengomentari jawaban, jadi saya memilih untuk menulis jawaban, dengan harapan saya dapat dimaafkan.
Hmm, bagi saya kelihatannya seorang shepard menghitung domba-dombanya dengan menuliskan tanda pada selembar kertas untuk setiap domba yang ia lihat, atau seorang tahanan menghitung hari-hari di penjara dengan menuliskan tanda di dinding, sedang menghitung. Mengapa n tidak menandai pada selembar kertas atau di dinding sebagai representasi dari angka n? Bukankah itu yang disebut representasi penghitungan? AFAICS sama sekali tidak kalah dengan (katakanlah) representasi biner, kecuali bahwa ia menggunakan lebih banyak ruang.
Saya kira untuk Anda, "tahu" berarti bahwa ia memiliki representasi internal hitungan pada akhirnya. Maka, tentu saja, jelas bahwa FSA FST tidak dapat menghitung panjang string yang arbitrer. Tetapi jika kita tidak memerlukan pengetahuan dalam pengertian itu, tetapi hanya menuntut agar FSA atau FST harus dapat memberitahukan hasilnya kepada pengamat eksternal, maka bagi saya tampaknya menyajikan hitungan dalam format penghitungan harus ok.
Selain itu, jika FSA dilengkapi dengan input dan output tambahan, maka pada prinsipnya harus dapat menggunakan lingkungan eksternal sebagai memori baca / tulis, dan dengan demikian sekuat mesin Turing. Baik?
Terima kasih telah mengemukakan kasus perbandingan. Sekarang, tampaknya menjadi kasus bahwa jika kita mengangkat persyaratan representasi internal, dan kita hanya mengharuskan mesin mampu menyajikan hasilnya kepada pengamat eksternal, maka kita dapat dengan mudah membangun FSM yang dapat menghasilkan semacam presentasi grafis dari hasilnya. Misalkan FSM, setelah dibaca "aaaaaabbbbbb" aja
000000
000000
kemudian, karena bilah memiliki panjang yang sama, FSM telah menerima string "aaaaaabbbbbb". Dua batang dengan panjang yang sama berarti "ya", panjang yang berbeda berarti "tidak".
Saya kira saya membengkokkan aturan, tapi itulah yang saya inginkan karena saya tertarik pada asumsi yang kurang lebih tersirat yang dibuat di bidang linguistik matematika.
sumber
FSM dapat "menghitung" dalam rentang yang terbatas / sejumlah langkah yang ditandai oleh transisi negara. Namun, mereka tidak dapat menghitung melewati sejumlah langkah yang terbatas.
ada perasaan di mana mesin seperti FSA dapat menghitung. mesin yang berhubungan erat disebut Finite State Transducer . transduser memang bisa dihitung dalam arti input dan output "piped". transduser tunggal dapat mengambil urutan input (katakanlah dalam biner) dan "transduce" ke urutan output yang bertambah. kemudian satu "rantai" transduser count-by-1 (identik), masing-masing menambah inputnya dengan 1 dan mengeluarkannya. ini juga seperti "algoritma streaming" yang belum sempurna .
sumber