Tek bantlı 3 durumlu TM'ler tarafından tanınan dil sınıfı


9

Bir süredir Turing Machines'i tam olarak bir bant ve tam 3 durumla (başlangıç ​​durumu) merak ettim q0q0, kabul etme durumu qbircceptqa c c e p tve reddetme durumu qrejectqr e j e c t). Rasgele (sonlu) teyp alfabelerine izin verdiğimi unutmayın (örn., Teyp alfabesi giriş alfabesine eşit değildir).

Kolaylık sağlamak için, bu tür TM'ler tarafından tanınan dil sınıfını arayın C3C3. Bu sınıfla ilgili birkaç sorum var:

  1. Vardır C3C3 daha önce çalışılmış mı?
  2. Dır-dir C3C3 ilgi diğer karmaşıklık / hesaplanabilirlik sınıflarına eşit olduğu bilinen?
  3. Sınıf mı C3C3model değişikliklerine dayanıklıdır. Örneğin, kullanılan TM'lerin tek bir geçiş sırasında yerinde kalmasına izin verilirse (her zaman sağa veya sola hareket etmekten farklı olarak) veya kaset sadece sağa değil her iki yönde de sonsuz olarak yapılmışsa, sınıf durumlu 1 kasetli TM'ler tarafından tanınan dillerin listesi değişiyor mu?
  4. Nasıl C3C3 normal dil sınıfıyla ilgili, R,egulbirrR e gu l , bir r? (Özellikle, her normal dilC3C3?)

(Oldukça cursory ) bir arama, yalnızca ilgili cs.stackexchange yayınını getirdi , ancak sorularımı ve bu makaleyi cevaplamadı , tam olarak sınıfı ilgilendirdiğinden emin olmak için yeterince ayrıntılı olarak okumadım.C3C3 benzer ama farklı bir sınıftan ziyade (makale, (1) C3C3 karar verilebilir ve (2) C3C3 ve R,egulbirrRegularboş olmayan kavşaklı ayrı sınıflardır). Cs.stackexchange yazısının yorumlarında belirtildiği gibi, bu tür TM'ler çok özel hücresel otomatlar olarak düşünülebilir, bu yüzden belki de hücresel otomat teorisi hakkındaki literatürü bilen biri yardımcı olabilir.


1
Yalnızca bir sonlandırılmayan durumunuz ve bir bandınız (giriş bandı) varsa, makineniz okuduğu hiçbir şeyi hatırlayamaz. Böylece, giriş alfabesinden kesin sembol (ler) içeren girişleri kabul edebilir veya reddedebilir.
David G

4
Makine ne okuduğunu hatırlayamaz, ancak okuduğunu başka bir şeyle yeniden yazabilir. Bu yüzden, verdiğiniz karakterizasyonun neden doğru olacağını anlamıyorum. (yani kabul eden basit bir makine düşünebilirim0101 ve reddediyor 011011; burada davranış tamamen hangi sembollerin girdi ile belirlenmediği).
Mikhail Rudoy

1
Haklısın, sezgim yanlıştı.
David G

Yanıtlar:


7

Canavar son derece güçlü , örneğin bir TM inşa edebilirizMM Formun her dizesini kabul eden

LY={r0n1mbir|mn}LY= { r0n1mA m n }

ve formun her dizesini reddeder

LN-={r0n1mbir|m>n}LN-= { r0n1mA m > n }

Fikir ilkini dönüştürmek rr içine R,R,ve sonra kafanın ipin ortasına ulaşmasına izin verin ve sonra "vatansız" bir zig-zag yapın; eğer ulaşırsabirbir önce R,R, kabul eder.

Gayri resmi açıklama:

  • üzerinde rr yazmak R,R, ve sağa hareket et (reddetmeye hazırlan)
  • üzerinde 00 yazmak cc ve sağa hareket et (merkeze doğru hareket ederek)
  • üzerinde 11 yazmak >> ve sola hareket et (a 11, bir sonraki soldan sağa geçişe hazırlanın ve sola gidin)
  • üzerinde cc yazmak << ve sağa hareket et 00, bir sonraki sağdan sola geçişe hazırlanın ve sağa gidin)
  • üzerinde << yazmak >> ve sola git (soldan sağa geçiş, bir sonraki sağdan sola hazırlanın)
  • üzerinde >> yazmak << ve sağa git (sağdan sola geçiş, bir sonraki soldan sağa hazırlanın)
  • üzerinde birbir kabul et, tarihinde R,R, reddetmek
  • boşta bb reddetmek

Misal:

  :r 0 0 0 1 1 A
   R:0 0 0 1 1 A
   R c:0 0 1 1 A
   R c c:0 1 1 A
   R c c c:1 1 A
   R c c:c > 1 A
   R c c <:> 1 A
   R c c < <:1 A
   R c c <:< > A
   R c c:< > > A
   R c:c > > > A
   R c <:> > > A
   ...
   R c < < < <:A ACCEPT

Bu zig-zag tekniği, Rogozhin (Rogozhin 1996. TCS, 168 (2): 215-240)) tarafından inşa edilen en küçük 2 durumlu Evrensel Turing makinesinde (18 simgeye sahiptir) kullanılır.

Bunu kanıtlamak için biraz dikkat edilmelidir. MM tüm girişlerde durur (boş girişte reddedildiğini ve durmayan tüm sembollerin << veya >> sonsuz döngüye yol açamaz).

DavidG tarafından yorumlandığı gibi, dil L(M)L ( E) tarafından tanınan MM bir süper set LYLY (yani LYL(M)LYL ( M)), ancak herhangi bir dize içermiyor LN-LN- (yani L(M)LN-=L(M)LN=) ve - MikhailRudoy tarafından yorumlandığı gibi - bu kanıtlamak için yeterlidir L(M)L(M) düzenli değil.

Gerçekten de L(M)L(M) o zaman da düzenli L(M){r0*1*bir}=LY={r0n1mbir|mn}L(M){r01A}=LY={r0n1mAmn}düzenli olurdu (pompalama lemmasının basit bir uygulamasıyla değil); bir çelişkiye yol açıyor.

Yani L(M)L(M) düzenli değil .

... Ama bütün süper kahramanlar gibi C3C3 bir Achille topuğu vardır: düzenli olanı bile tanıyamaz:

L={12n}L={12n}

Gayri resmi olarak yalnızca en soldaki b1...b1... (bb boş semboldür) veya sağdaki 1b...1b...kanca olarak ve diğer yönde "genişler"; ancak son Kabul Etme veya Reddetme karşı tarafın boş sembolünde olamaz, bu nedenle yalnızca11s ve yeterince uzun bir girişten başlayarak "sahte" olabilir.

Son olarak - makaleyi okuduktan sonra - içinde açıklanan tek durumlu TM C3C3 sınıf ... (burada yeni bir şey yok :-) ... ve yazar tarafından normal olmayan diller içerdiğini kanıtlamak için kullanılan dil benimkine çok benziyor.


1
Cevabı çok beğendim (+1). Ancak açıklanan TM farklı bir dili kabul eder. Örneğin, rrrrr00011AAAA, r000000r0000r0000r00011A, r00011A11111111 (A'dan sonra olanlar yerine herhangi bir şey olabilir) dizelerini de kabul eder ...
David G

@DavidG: Haklısın! Çok fazla düşünmedim ... Düzeltmeye çalıştım.
Marzio De Biasi

4
Aslında, hatta LL tarif edilen TM tarafından tanınan dil değildir, bu dil kesinlikle düzenli değildir: eğer TM MM, sonra L(M)r0*1*bir=LL(M)r01A=L yani çelişkinin kısa bir kanıtı (eğer L(M)L(M) o zaman düzenli L(M)r0*1*bir=LL(M)r01A=Layrıca düzenli olacak; (çelişki) bunu gösterebilirL(M)L(M)düzenli değil.
Mikhail Rudoy

3
@MikhailRudoy: evet! Aynı fikrim vardı. Cevabı düzenlemek için cstheory'yi açtım ve yorumunuzu gördüm.
Yorumunuzu

5

Gücünü küçümsedim C3C3 ... actually it is not too far from Hypercomputation!

(I post this as a separate answer for better clarity)

We can build a single state Turing machine MM that accepts the strings of the form:

LY={a0n1mRm2n}LY={a0n1mRm2n}

and rejects strings of the form:

LN={a0n1mRm<2n}LN={a0n1mRm<2n}

The idea and construction is similar to the one in the previous answer: transform the first aa into AA, let the head reach the middle of the string then do a "stateless" zig-zag, but the transitions "implement"a "binary counter" on the first half in this way: on ZZ (Zero) bounce the head back to the right, and convert the ZZ into a SS (One) the next time the head reaches the SS, transform it to a )) and let the head move left; when the head reaches the )) transform it to a ZZ. The second half of the string behaves like a unary counter.

The transitions are:

  • on rr write RR and move right (prepare for rejecting)
  • on 00 write ZZ and move right (moving toward the center, set the binary counter to 0 ..)
  • on 11 write >> and move left (mark a 11 and decrement the unary counter, prepare for next left-to-right crossing, and bounce back to the binary counter)
  • on >> write << and go right (right-to-left crossing of the second half of the string, prepare for next left-to-right)
  • on << write >> and go left (left-to-right crossing of the second half of the string, prepare for next right-to-left)
  • on ZZ write SS and move right (transform the digit to one and bounce back to the right towards the unary counter)
  • on SS write )) and move left (clear the digit, and let the head move to the left like a "carry", prepare for the next left-to-right of the first part)
  • on )) write ZZ and move right (set the zero that will cause the bounce, and let the head move to the right)
  • on AA accept, on RR reject
  • on blank bb reject

Example:

 :a 0 0 0 1 1 1 1 1 1 1 1 R
  A:0 0 0 1 1 1 1 1 1 1 1 R
  A Z:0 0 1 1 1 1 1 1 1 1 R
  ...
  A Z Z Z:1 1 1 1 1 1 1 1 R
  A Z Z:Z > 1 1 1 1 1 1 1 R
  A Z Z S:> 1 1 1 1 1 1 1 R
  A Z Z S <:1 1 1 1 1 1 1 R
  A Z Z S:< > 1 1 1 1 1 1 R
  A Z Z:S > > 1 1 1 1 1 1 R
  A Z:Z ) > > 1 1 1 1 1 1 R
  A Z S:) > > 1 1 1 1 1 1 R
  A Z S Z:> > 1 1 1 1 1 1 R
  ...
  A Z S:Z > > > 1 1 1 1 1 R
  ...
  A Z S S < < <:1 1 1 1 1 R
  ...
  A S:) ) > > > > 1 1 1 1 R
  ...
 :A ) ) ) > > > > > > > > R ---> ACCEPT

Some attention should be paid in order to prove that MM halts on all inputs (just note that it rejects on blank input and all non-halting symbols "cycle" through (,S,Z(,S,Z or <,><,> which cannot lead to an infinite loop).

The language L(M)L(M) is a superset of LYLY (LYL(M)LYL(M)) and it doesn't contain strings from LNLN (L(M)LN=L(M)LN=).

Suppose that L(M)L(M) is Context Free, then - by closure properties of CFLs, intersecting it with the regular language {r01A}{r01A} produce a CF language:

L(M){r01A}={a0n1mRm2n}=LYL(M){r01A}={a0n1mRm2n}=LY

But by a simple application of the Ogden's Lemma for CFL we can prove that LYCFLLYCFL: just pick a long enough sLYsLY and mark all the 00s; at least one zero can be pumped and whatever is the number of 1s1s in the pumping string the exponential growth of 2n2n leads to a string LYLY).

So L(M)L(M) is not Context Free.

... now I'm wondering if this is another "reinventing the wheel" answer, or it is a new (small) result.


Well, the language here is computable in as low a class as coNLOGTIME, so it does not exactly require hypercomputation. (In fact, LYLY and LNLN can be separated even in DLOGTIME.)
Emil Jeřábek

@EmilJeřábek: I said "not too far" ... don't stifle the ambitions of that tiny class ... :-)
Marzio De Biasi

2

In this answer it is assumed that Turing machines have both-way infinite tapes. The claims do not hold for one-way infinite tapes.

Let me first define the class of languages C3C3 as the class of all languages decidable by one-tape Turing machines with 3 states (C3C3 was defined as the class of languages recognizable by one-tape Turing machines with 3 states). I introduced the class C3C3 because in my original answer, I unconsciously swaped the classes C3C3 and C3C3 (I only considered the class C3C3).

This answer is more a complement to @MarzioDeBiasi answers. He showed that the classes C3C3 and C3C3 are not contained in CFL and thus contain quite interesting languages. However, as I will show in this post, each language LL in C3C3 has the property that the set {1n;nN{0}}{1n;nN{0}} is either in LL or in its complement LCLC. Thus C3C3 is also very restrictive, eg. it contains only trivial unary languages {}{}, {ε}{ε}, {1n;nN}{1n;nN} and {1n;nN{0}}{1n;nN{0}}. The class C3C3 contains a bit more unary languages. However, it holds that if LC3LC3 and 1nL1nL for n1n1, then 1mL1mL for all mnmn. A simple corollary is that not all regular languages are in C3C3 nor in C3C3. Also the language {1}{1} is not in C3C3 nor in C3C3.


For the claim (in bold) about C3C3, it is enough to prove that a one-tape Turing machine MM with 3 states that always halts either accepts or rejects all strings from {1n;nN{0}}{1n;nN{0}}. Suppose that a string of the form 1n1n, nN{0}nN{0}, is given to MM. There are three cases:

1) When MM reads 1, it accepts or rejects.

2) When MM reads 1, it moves the head to the left. If we want MM to halt on this input, it must accept, reject or move to the right on the blank symbol. Hence, it never visits the cell to the right of the initial cell of the tape. If it would, it would run forever on input 1.

3) When MM reads 1, it moves the head to the right. It follows that after nn steps, the content of the tape is AnAn where AA is some symbol from the tape alphabet and the head of MM is on the leftmost blank symbol to the right of the last AA. If we want MM to halt on this input, it must accept, reject or move to the left on the blank symbol. As in case 2), the head of MM will now never visit the cell directly to the left of the rightmost AA. If it would, then MM would run forever on input 1.

It is clear that in all three cases MM accepts all strings from the set {1n;nN{0}}{1n;nN{0}} or it rejects them all.


The proof of the claim (in bold) about C3C3 follows the same line as above. We take a one-tape 3-state Turing machine MM that accepts a string 1n1n for some n1n1. Suppose MM is given an input 1m1m for mnmn. We have to prove that MM accepts this input. We have 3 cases:

1) When MM reads 1, it accepts.

2) When MM reads 1, it moves the head to the left. Because MM accepts the input 1n1n, it has to accept or move to the right on the blank symbol. Hence, it never visits the nnth cell to the right of the initial cell. If it would, it would run forever on input 1n1n.

3) When MM reads 1, it moves the head to the right. It follows that after mm steps, the content of the tape is AmAm where AA is some symbol from the tape alphabet and the head of MM is on the leftmost blank symbol to the right of the last AA. Because MM accepts the input 1n1n, it must accept or move to the left on the blank symbol. As in case 2), the head of MM will now never visit the nnth cell to the left of the rightmost AA. This is because on the input 1n1n, MM does not visit the cell directly left of the initial cell, because it contains the blank symbol and if it would read it, it would run forever.

It is clear that in all three cases MM accepts all strings from the set {1m;mn}{1m;mn}.


First of all, nowhere in the question does it say that M must halt on all inputs, so that screws up some of the logic in this answer. Beyond that, the logic in several of the cases doesn't make sense to me. For example, in case 3, if M moves left on both blank and A, then M will visit the cell directly left of the rightmost A (in direct contrast to the claim from the answer.)
Mikhail Rudoy

Nice; another way to state it is: if Σ={1} (unary languages) then k s.t. 1kL(M)L(M)={1nn>0} ...
Marzio De Biasi

@MikhailRudoy, to first clarify the case 3: if the head moves left on both A and blank symbol, then it will move left forever and will not halt. If it ever (say after 100 steps) visits the cell directly left of the rightmost A, then in the case of input 1 it never halts (in this case the cell directly left of the rightmost A will contain the blank symbol).
David G

@MikhailRudoy, it is true that I assumed that a Turing machine has to halt. I will edit the answer to include also the possibility that it runs forever. The result is similar.
David G

3
@MikhailRudoy: BTW the hatling problem is decidable for 1 state Turing machines; see Gabor T. Herman, The uniform halting problem for generalized one-state turing machines. The model described there is a little bit different from yours: the TM accepts if it ends in a mortal configuration (there is no Accept/Reject); but the result also applies to your model (just Halt the TM on the symbols that lead to your extra Accept/Reject states).
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.