Saya bermain dengan pertanyaan yang sangat menarik dan masih terbuka " Alfabet mesin Turing single-tape " (oleh Emanuele Viola) dan muncul dengan bahasa berikut:
di mana adalah jumlah s dalam string x.
Misalnya, jika x = 01101111 maka n = 8, m = 3, k = 2; jadi
Bisakah L dikenali oleh Mesin Turing dengan satu pita dan 3 simbol alfabet dalam langkah ?
Jika kita menggunakan 4 simbol jawabannya adalah ya:
- periksa apakah mengganti s dengan dan s dengan dan sekaligus simpan s di sebelah kanan;
- kemudian menghitung jumlah s modulo di .
Sebagai contoh:
....01101111....... input x (|x| = 8 = 2^3)
000.021.1212.0001.. div 2, first sweep (000. can safely be used as a delimiter)
000.022.1222.00011. div 2, second sweep
000.022.2222.000111 div 2, third sweep --> m = 3 (= log(n) )
000..22.2222....111 cleanup (original 1s are preserved as 2)
000..22.2221102.... start modulo m=3 calculation
000..22.2210022.... mod 3 = 2
000..22.2000222.... mod 3 = 0
000..22.0012222.... mod 3 = 1
000..20112.2222.... mod 3 = 2
000..11122.2222.... ACCEPT
cc.complexity-theory
turing-machines
time-complexity
Marzio De Biasi
sumber
sumber
Jawaban:
Tidak bisakah Anda menggunakan ide yang sama dengan yang Anda miliki untuk case 4 simbol , dengan modifikasi berikut:
Secara umum, Anda dapat memeras informasi pembukuan dalam jumlah besar secara sewenang-wenang dengan bantuan simbol ketiga dengan memroses simbol sekaligus.O(1)
sumber