İki yönlü deterministik sayaç otomatları tarafından tanınan tekli diller


17

2dca'lar (iki yönlü deterministik tek sayaç otomata) (Petersen, 1994) aşağıdaki tek dili tanıyabilir:

POWER={02nn0}.

2dca's tarafından tanınan başka önemsiz tek dil var mı?

2dca'ların tanıyıp tanımadığı hala bilinmemektedir ?SQUARE={0n2n0}


TANIM: 2dca, sayaçlı iki yönlü deterministik bir sonlu otomattır. 2dca, sayaç değerinin sıfır olup olmadığını test edebilir ve her adımda sayacın değerini 1 artırır veya azaltır.


3
2DCA tanımına bir bağlantı ekleyebilir misiniz?
Suresh Venkat

3
@SureshVenkat: Bir referans ve bir tanım ekledim.
Abuzer Yakaryilmaz

1
@AbuzerYakaryilmaz: her sabit için { 0 k n : n 0 }k{0kn:n0}
Marzio De Biasi

@MarzioDeBiasi: algoritması kolayca P O W E R k = { 0 k nn 0 } şeklinde genelleştirilebilir , burada k 3 . Bu nedenle, bu diller benim için oldukça önemsiz. POWERPOWERk={0knn0}k3
Abuzer Yakaryilmaz

1
Hm, aslında bu şekilde sanırım Marzio'nun zaten yaptığı aynı gözlemle sonuçlandım, bu yüzden söylediğimde yeni bir şey yok. Yine de endmarkeri sınırlı sayıda okumamız gerekip gerekmediği ile ilgileniyorum.
domotorp

Yanıtlar:


6

Bu sadece Marvin L. Minsky, "Post'un Etiket Sorununun ve Turing Teorisi Teorisindeki diğer Konuların Özyineli Çözülemezliği" ni okurken aklıma gelen bir fikirdi; özellikle ünlü teorem Ia:

Teorem Ia: Formların I j talimatlarını kullanarak S 1 ve S 2 iki tamsayı üzerinde çalışan bir program tarafından herhangi bir kısmi özyinelemeli işlev temsil edebiliriz : (i) 1 ila S j EKLEME ve I j 1'e gitme ( ii) S j'den SUBTRACT 1 , S j0 ise ve I j 1'e giderseniz, aksi takdirde I j 2'ye gidin Yani, S 1 ile başlayan böyle bir program oluşturabilirizf(n)S1S2Ij
SjIj1
SjSj0Ij1Ij2
ve S 2 = 0'a gidinS1=2nS2=0 ve sonunda ve S 2 = 0 ile dururS1=2f(n)S2=0

Girişin tekli olarak verildiği (yarı) bir sonsuz bant üzerinde bir sayaçlı iki yönlü bir DFA'nız varsa: sonra DFA şunları yapabilir:$12n000...

  1. tekli girişi okuyun (ve sayaçta saklayın);
  2. bandın kısmı üzerinde çalışın ve 1 saniye ile 1 arasındaki mesafeyi ikinci sayaç olarak kullanın.01

Böylece bir Turing tam iki sayaç makinesini simüle edebilir.

Şimdi, standart bir Turing makinesinde T ( n ) zamanında çalışan bir yinelenen işlev varsa , sonlu bantta başlayan bir sayaçlı iki yönlü bir DFAf(n)T(n) $1m$(burada ve T ( n ) T ( n ) ) şunları yapabilir:m=2n3T(n)T(n)T(n)

  1. tekli girişi okuyun (ve sayaçta saklayın);
  2. en soldaki sembole dönüş;
  3. sayaç bu şekilde içerene kadar sayacı 3'e bölün : q z 0 , q z 1 , q z 2 durumlarından sağa dönüp 1 çıkarma; Sayaç durumu 0 ulaşırsa q z 0 soldaki sembolü + 1 ve bölme döngü devam ekleyerek gitmek, aksi eklemek 1 (eğer durum içinde k z 1 ) veya 2'de (durum eğer q z2nqz0,qz1,qz2qz0qz1qz2 ve + 3 (yani 3 ile bölünemeyen sayacın önceki değerini geri kazan) ve 4. adıma geçin;
  4. bu noktada sayaç 2 n içerir2n ;
  5. hesaplamak 2f(n) using the T(n) space available on the right as the second counter (the value of the second counter is the distance from the leftmost symbol $).

So with the special input encoding described above that gives it enough space on the finite tape, a two-way DFA with one counter and unary alphabet can compute every recursive function.

Yaklaşım doğruysa, nasıl seçileceği konusunda ilginç olabilir.T(n)T(n)k2 and encode the input as 1m, m=2nkn


-1

By non-trivial, I assume you mean a language L that can't be accepted by a 1dca. Here seems to be such a language:

MERKEZ = {w | w, {0,1} * 'nin üzerindedir ve bazı x için y = x1y, y | = | y |}

Bu dil 1dca tarafından kabul edilemez, ancak 1nca tarafından kabul edilebilir. 2dca ile kabul edilebilir. Detaylar alıştırma olarak bırakılmıştır.


2
OP tek dilli sorular sorar (giriş şu şekilde verilir:$1n$)
Marzio De Biasi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.