Classe di lingue riconoscibile dalle TM a 3 stati a nastro singolo


9

Sono stato per un po 'curioso di Turing Machines con esattamente un nastro ed esattamente 3 stati (ovvero lo stato iniziale , lo stato accettazione q a c c e p t e lo stato di rifiuto q r e j e c t ). Si noti che consento alfabeti a nastro arbitrari (finiti) (ovvero, l'alfabeto a nastro non è limitato per uguagliare l'alfabeto di input).q0qacceptqreject

Per comodità, chiama la classe di lingue riconoscibile da tali TM . Ho diverse domande su questa classe:C3

  1. È stato studiato in precedenza?C3
  2. È noto per eguagliare qualsiasi altra classe di complessità / computabilità di interesse?C3
  3. La classe robusta rispetto alle modifiche del modello? Ad esempio, se alle TM utilizzate è consentito rimanere in posizione durante una singola transizione (invece di spostarsi sempre a sinistra oa destra) o se il nastro viene reso infinito in entrambe le direzioni anziché solo a destra, la classe fa delle lingue riconoscibili dalle TM a 1 nastro a 3 stati cambiano?C3
  4. In che modo collega alla classe delle lingue normali, R e g u l a r ? (In particolare, ogni lingua normale è in C 3 ?)C3RegularC3

Una ricerca (piuttosto superficiale) ha sollevato solo questo post di cs.stackexchange che è pertinente ma che non risponde alle mie domande e al presente documento , che non ho letto in modo sufficientemente dettagliato per essere sicuro che riguardi esattamente la classe anziché una classe simile ma diversa (l'articolo afferma di dimostrare che (1) ogni lingua in C 3 è decidibile e (2) che C 3 e R e g u l a rC3C3C3Regularsono classi distinte con intersezione non vuota). Come sottolineato nei commenti sul post di scambio cs.stackex, questi tipi di TM possono essere pensati come automi cellulari molto particolari, quindi forse qualcuno che conosce la letteratura sulla teoria degli automi cellulari potrebbe aiutare.


1
Se si dispone di un solo stato non terminante e di un nastro (nastro di input), la macchina non è in grado di ricordare nulla di ciò che ha letto. Quindi, può accettare o rifiutare esattamente input che contengono simboli definiti dall'alfabeto di input.
David G

4
La macchina non ricorda cosa ha letto, ma può riscrivere ciò che ha letto con qualcos'altro. Quindi non vedo davvero perché la caratterizzazione che dai sia corretta. (cioè riesco a pensare a una macchina semplice che accetta e rifiuta 011 ; qui il comportamento non è interamente determinato da quali simboli sono presenti nell'input). 01011
Mikhail Rudoy,

1
Hai ragione, la mia intuizione era sbagliata.
David G,

Risposte:


7

La bestia è estremamente potente , ad esempio possiamo costruire una TM che accetta ogni stringa del moduloM

LY={r0n1mAmn}

e rifiuta ogni stringa del modulo

LN={r0n1mAm>n}

L'idea è di trasformare la prima in R e quindi lasciare che la testa raggiunga il centro della stringa, quindi eseguire uno zig-zag "apolide"; se raggiunge A prima di R, allora accetta.rRAR

Descrizione informale:

  • su scrivi R e scorri verso destra (preparati per il rifiuto)rR
  • su scrivi c e muoviti a destra (spostandoti verso il centro)0c
  • su scrivi > e sposta a sinistra (segna un 1 , preparati per il successivo incrocio da sinistra a destra e vai a sinistra)1>1
  • su scrivi < e muovi a destra (segna uno 0 , preparati per il successivo incrocio da destra a sinistra e vai a destra)c<0
  • su scrivi > e vai a sinistra (incrocio da sinistra a destra, preparati per il prossimo da destra a sinistra)<>
  • su scrivi < e vai a destra (incrocio da destra a sinistra, preparati per il prossimo da sinistra a destra)><
  • su accetta, su R respingeAR
  • su bianco rifiutab

Esempio:

  :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

Questa tecnica a zig-zag è utilizzata nella più piccola macchina Universal Turing a 2 stati (ha 18 simboli) costruita da Rogozhin (Rogozhin 1996. TCS, 168 (2): 215–240)).

Qualche attenzione dovrebbe essere prestata per dimostrare che ferma su tutti gli input (basta notare che rifiuta su input vuoto e tutti i simboli non-stop "convergono" in < o > che non può portare ad un loop infinito).M<>

Come commentato da DavidG, la lingua riconosciuta da M è un superset di L Y (cioè L YL ( M ) ) ma non contiene alcuna stringa da L N (cioè L ( M ) L N = ) e - come commentato da MikhailRudoy - questo è sufficiente per dimostrare che L ( M ) non è regolare.L(M)MLYLYL(M)LNL(M)LN=L(M)

Infatti se è regolare allora anche L ( M ) { r 0 1 A } = L Y = { r 0 n 1 m A m n } sarebbe regolare (che non è una semplice applicazione del lemma di pompaggio); portando a una contraddizione.L(M)L(M){r01A}=LY={r0n1mAmn}

Quindi non è regolare .L(M)

... Ma come tutti i supereroi ha un tallone d'Achille: non riesce nemmeno a riconoscere il normale:C3

L={12n}

Informalmente può usare solo il più a sinistra . . . ( b è il simbolo vuoto) o la nebbia destra 1 b . . . come un gancio ed "espandere" nella direzione opposta; ma l'ultimo Accetta o Rifiuta non può trovarsi sul simbolo in bianco del lato opposto, quindi può essere fatto solo sulla parte interna degli 1 se partendo da un input abbastanza lungo può essere "simulato" allungandolo di uno.b1...b1b...1

Finalmente - dopo aver letto il documento - posso confermare che la TM a uno stato descritta in esso corrisponde alla tua classe ... (quindi niente di nuovo qui :-) ... e la lingua usata dall'autore per dimostrare che contiene le lingue non regolari sono molto simili alle mie.C3


1
Mi piace molto la risposta (+1). Tuttavia, la TM descritta descrive una lingua diversa. Ad esempio, accetta anche stringhe rrrrr00011AAAA, r000000r0000r0000r00011A, r00011A11111111 (dopo A potrebbe essere qualsiasi cosa anziché una) ...
David G

@DavidG: hai ragione! Non ci ho pensato troppo ... Provo a risolverlo.
Marzio De Biasi,

4
In realtà, anche attraverso non è la lingua riconosciuta dalla TM descritta, quella lingua non è assolutamente regolare: se quella TM è M , allora L ( M ) r 0 1 A = L quindi una breve prova per contraddizione (se L ( M ) è regolare quindi L ( M ) r 0 1 A = L sarà anche regolare; la contraddizione) può mostrare che L ( M ) non è regolare.LML(M)r01A=LL(M)L(M)r01A=LL(M)
Mikhail Rudoy,

3
@MikhailRudoy: si! Ho avuto la stessa idea. Ho aperto cstheory per modificare la risposta e ho visto il tuo commento. Vediamo se riesco a riscrivere la risposta tenendo conto del tuo commento ...
Marzio De Biasi

5

Ho sottovalutato la potenza di ... in realtà non è troppo lontano dall'ipercomputazione !C3

(Pubblico questa come risposta separata per una migliore chiarezza)

Possiamo costruire una macchina Turing a singolo stato che accetta le stringhe del modulo:M

LY={a0n1mRm2n}

e rifiuta le stringhe del modulo:

LN={a0n1mRm<2n}

aAZZSS))Z

Le transizioni sono:

  • su r scrivi RrR
  • 0Z
  • 1>1
  • ><
  • <>
  • ZS
  • S)
  • )Z
  • su A accetta, su RAR
  • su bianco bb

Esempio:

 :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

M(,S,Z<,>

L(M)LYLYL(M)LNL(M)LN=

L(M){r01A}

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

LYCFLsLY01s2nLY

L(M)

... ora mi chiedo se questa è un'altra risposta "reinventare la ruota" o se si tratta di un nuovo (piccolo) risultato.


LYLN

@EmilJeřábek: ho detto "non troppo lontano" ... non soffocare le ambizioni di quella piccola classe ... :-)
Marzio De Biasi,

2

In questa risposta si presume che le macchine di Turing abbiano nastri infiniti a entrambe le direzioni. Le affermazioni non valgono per nastri infiniti unidirezionali.

C3C3C3C3C3C3

C3C3LC3{1n;nN{0}}LLCC3{}{ε}{1n;nN}{1n;nN{0}}C3LC31nLn11mLmnC3C3{1}C3C3


C3M{1n;nN{0}}1nnN{0}M

M

MM

MnAnAMAMMAM

M{1n;nN{0}}


C3M1nn1M1mmnM

M

MM1nn1n

MmAmAMAM1nMnA1nM non visita la cella direttamente a sinistra della cella iniziale, perché contiene il simbolo vuoto e se lo leggesse, funzionerebbe per sempre.

M{1m;mn}


Prima di tutto, da nessuna parte nella domanda si dice che M deve fermarsi su tutti gli input, in modo da rovinare un po 'della logica in questa risposta. Oltre a ciò, la logica in molti casi non ha senso per me. Ad esempio, nel caso 3, se M si sposta sia a sinistra sia in bianco e A, allora M visiterà la cella direttamente a sinistra della A più a destra (in contrasto diretto con l'affermazione della risposta.)
Mikhail Rudoy

Σ={1}k s.t. 1kL(M)L(M)={1nn>0}

@MikhailRudoy, ​​per chiarire prima il caso 3: se la testa si sposta a sinistra sia sul simbolo A che su quello vuoto, si sposterà a sinistra per sempre e non si fermerà. Se mai (diciamo dopo 100 passaggi) visita la cella direttamente a sinistra dell'estrema destra A, quindi nel caso dell'ingresso 1 non si ferma mai (in questo caso la cella direttamente a sinistra dell'estrema destra A conterrà il simbolo vuoto).
David G,

@MikhailRudoy, ​​è vero che ho pensato che una macchina di Turing dovesse fermarsi. Modificherò la risposta per includere anche la possibilità che funzioni per sempre. Il risultato è simile
David G,

3
@MikhailRudoy: A proposito, il problema della schiusa è decidibile per le macchine Turing a 1 stato; vedi Gabor T. Herman, Il problema dell'arresto uniforme per le macchine da turismo a uno stato generalizzate . Il modello descritto è un po 'diverso dal tuo: la TM accetta se termina in una configurazione mortale (non c'è Accetta / Rifiuta); ma il risultato si applica anche al tuo modello (basta fermare la TM sui simboli che portano ai tuoi stati aggiuntivi di Accetta / Rifiuta).
Marzio De Biasi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.