Ngôn ngữ này có thể được nhận dạng bởi 3 ký hiệu TM trong O (n log n) không?


10

Tôi đã chơi với câu hỏi rất thú vị và vẫn còn mở " Bảng chữ cái của máy Turing băng đơn " (của Emanuele Viola) và đưa ra ngôn ngữ sau:

L= ={x{0,1}n thứ |x|= =n= =2m và cobạnnt1(x)= =k*m;n,m,k1}

trong đó là số s trong chuỗi x.cobạnnt1(x)1

Ví dụ: nếu x = 01101111 thì n = 8, m = 3, k = 2; vậyxL

L có thể được nhận ra bởi Máy Turing với một băng đơn và bảng chữ cái 3 ký hiệu trong các bước không? {ε,0,1}Ôi(nđăng nhậpn)

Nếu chúng ta sử dụng 4 ký hiệu thì câu trả lời là có:

  • kiểm tra xem thay 0 s bằng ϵ1 s bằng 2 và đồng thời lưu m 1 s bên phải;|x|= =2m0ε12m 1
  • sau đó đếm số s modulo m trong O ( n log n ) .2mÔi(nđăng nhậpn)

Ví dụ:

....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

Nếu là số tự nhiên được biểu thị bằng x so với c o u n t 1 ( x ) luôn bằng 1 và vì vậy L = { 10 } ? |x|= =n= =2mxcobạnnt1(x)1L= ={10}
Marc Bury

Xin lỗi | x | nghĩa là độ dài của chuỗi x. Một ví dụ: x = 01101111, n = 8, m = 3, k = 2, và do đó xL
Marzio De Biasi

1
Nhân tiện, đây là một ứng cử viên tuyệt vời cho câu hỏi của Emanuele, vì nó nằm trong : nó không thường xuyên bởi bổ đề bơm, vì vậy không thể là o ( n log n ) , nhưng đó là O ( n log n ) . Θ(nđăng nhậpn)o(nđăng nhậpn)Ôi(nđăng nhậpn)
Joshua Grochow

Câu trả lời:


10

Bạn không thể sử dụng cùng một ý tưởng như những gì bạn có trong trường hợp 4 biểu tượng , với các sửa đổi sau:

  • Luôn luôn xử lý một cặp biểu tượng cùng một lúc.
  • Trong "div 2" quét của bạn, đánh dấu một khối hai biểu tượng là "xử lý" bằng cách lập bản đồ . Bạn vẫn có ε ε sẵn như là một "tách" mà bạn có thể sử dụng ở cả hai đầu, và bạn có thể phục hồi dữ liệu gốc một cách dễ dàng.(00,01,10,11)(ε0,ε1,0ε,1ε)εε
  • Sử dụng một mẹo tương tự cho các bước "mod 2".

Ôi(1)


Bạn đúng! ... bây giờ tôi nghi ngờ rằng câu trả lời cho câu hỏi của Emanuele là có ... nhưng nó vẫn còn mở nên có lẽ không quá dễ để chứng minh nó chính thức :-( Cảm ơn!
Marzio De Biasi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.