Bahasa unary dikenali oleh counter automata deterministik dua arah

17

2dca (dua arah deterministik one-counter automata) (Petersen, 1994) dapat mengenali bahasa unary berikut:

POWER={02nn0}.

Apakah ada bahasa unary nontrivial lain yang dikenali oleh 2dca?

Perhatikan bahwa masih belum diketahui apakah 2dca dapat mengenali ?SQUARE={0n2n0}


DEFINISI: 2dca adalah otomat terbatas deterministik dua arah dengan penghitung. 2dca dapat menguji apakah nilai penghitung adalah nol atau tidak, dan menambah atau mengurangi nilai penghitung sebesar 1 di setiap langkah.

Abuzer Yakaryilmaz
sumber
3
Bisakah Anda menambahkan tautan ke definisi 2DCA?
Suresh Venkat
3
@ SureshVenkat: Saya menambahkan referensi dan juga definisi.
Abuzer Yakaryilmaz
1
@AbuzerYakaryilmaz: untuk setiap tetap dapat dikenali { 0 k n : n 0 }k{0kn:n0}
Marzio De Biasi
@MarzioDeBiasi: Algoritma untuk dapat dengan mudah digeneralisasikan ke P O W E R k = { 0 k nn 0 } , di mana k 3 . Oleh karena itu, bahasa-bahasa ini cukup sepele bagi saya. POWERPOWERk={0knn0}k3
Abuzer Yakaryilmaz
1
Hm, sebenarnya saya pikir dengan cara ini saya hanya berakhir pada pengamatan yang sama dengan apa yang telah dibuat Marzio, jadi tidak ada yang baru dalam apa yang saya katakan. Saya masih tertarik pada apakah kita perlu membaca endmarker lebih dari beberapa kali.
domotorp

Jawaban:

6

Ini hanya sebuah ide yang muncul di benak saya ketika membaca Marvin L. Minsky, "Kekuraman Rekursif atas Masalah Tag dan Topik-Topik Lain dalam Teori Mesin Turing"; khususnya teorema Ia yang terkenal:

Teorema Ia: Kita dapat merepresentasikan fungsi rekursif parsial oleh program yang beroperasi pada dua bilangan bulat S 1 dan S 2 menggunakan instruksi I j dari formulir: (i) ADD 1 ke S j , dan pergi ke I j 1 ( ii) SUBTRACT 1 dari S j , jika S j0 dan pergi ke I j 1 , jika tidak pergi ke I j 2 Artinya, kita dapat membangun program seperti itu yang dimulai dengan S 1f(n)S1S2Ij
SjIj1
SjSj0Ij1Ij2
dan S 2 = 0 dan akhirnya berhenti dengan S 1 = 2 f ( n ) dan S 2 = 0S1=2nS2=0S1=2f(n)S2=0

Jika Anda memiliki DFA dua arah dengan satu penghitung di atas pita tak terbatas (semi) di mana input diberikan secara unary: maka DFA dapat:$12n000...

  1. baca input unary (dan simpan di konter);
  2. kerjakan bagian dari pita dan gunakan jarak dari 1 sebagai penghitung kedua.01

sehingga dapat mensimulasikan mesin dua counter Turing lengkap.

Sekarang, jika Anda memiliki fungsi rekursif yang berjalan dalam waktu T ( n ) pada mesin Turing standar, DFA dua arah dengan satu penghitung yang dimulai pada pita hingga $ 1 m $f(n)T(n) $1m$(di mana dan T ( n ) T ( n ) ) dapat:m=2n3T(n)T(n)T(n)

  1. baca input unary (dan simpan di konter);
  2. kembali ke simbol paling kiri;
  3. bagi penghitung dengan 3 sampai penghitung berisi dengan cara ini: belok ke kanan dari status q z 0 , q z 1 , q z 2 dan kurangi 1; jika penghitung mencapai 0 dalam keadaan q z 0 pergi ke simbol paling kiri menambahkan +1 dan melanjutkan loop pembagian, jika tidak tambahkan 1 (jika dalam keadaan q z 1 ) atau 2 (jika dalam keadaan q z 2 ) dan pergi ke simbol paling kiri menambahkan + 3 (mis. Pulihkan nilai sebelumnya dari penghitung yang tidak habis dibagi 3) dan lanjutkan dengan langkah 4 .;2nqz0,qz1,qz2qz0qz1qz2
  4. pada titik ini penghitung berisi ;2n
  5. hitung menggunakan ruang T ( n ) yang tersedia di sebelah kanan sebagai penghitung kedua (nilai penghitung kedua adalah jarak dari simbol paling kiri $ ).2f(n)T(n)$

Jadi dengan pengkodean input khusus yang dijelaskan di atas yang memberikan ruang yang cukup pada rekaman terbatas, DFA dua arah dengan satu counter dan alfabet unary dapat menghitung setiap fungsi rekursif.

Jika pendekatannya benar, akan menarik untuk mempertimbangkan bagaimana memilih atau ketika itu cukup untuk memilih k aneh besar 2 dan menyandikan input sebagai 1 m , m = 2 n k nT(n)T(n)k21mm=2nkn

Marzio De Biasi
sumber
-1

Dengan non-sepele, saya menganggap Anda maksud bahasa L yang tidak dapat diterima oleh 1dca. Di sini tampaknya bahasa seperti itu:

CENTER = {w | w lebih dari {0,1} * dan w = x1y untuk beberapa x, y sedemikian sehingga | x | = | y |}

Bahasa ini tidak dapat diterima oleh 1dca, tetapi BISA diterima oleh 1nca. Itu bisa diterima oleh 2dca. Detail dibiarkan sebagai latihan.

pengguna14004
sumber
2
OP meminta unary bahasa (input diberikan sebagai )$1n$
Marzio De Biasi