Dans cette réponse, on suppose que les machines Turing ont des bandes infinies bidirectionnelles. Les revendications ne s'appliquent pas aux bandes infinies unidirectionnelles.
Permettez-moi de définir d'abord la classe de langages comme la classe de tous les langages décidables par les machines de Turing à une bande à 3 états ( C 3 a été définie comme la classe de langages reconnaissables par les machines de Turing à une bande à 3 états). J'ai introduit la classe C ′ 3 parce que dans ma réponse originale, j'ai échangé inconsciemment les classes C 3 et C ′ 3 (je n'ai considéré que la classe C ′ 3 ).C′3C3C′3C3C′3C′3
Cette réponse est davantage un complément aux réponses @MarzioDeBiasi. Il a montré que les classes et C ′ 3 ne sont pas contenues dans CFL et contiennent donc des langages assez intéressants. Cependant, comme je le montrerai dans ce post, chaque langue L en C ' 3 a la propriété que l'ensemble { 1 n ; n ∈ N ∖ { 0 } } est soit en L ou en son complément L C . Ainsi C ′ 3C3C′3LC′3{1n;n∈N∖{0}}LLCC′3est également très restrictif, par exemple. il ne contient que des langues unaires triviales , { ε } , { 1 n ; n ∈ N } et { 1 n ; n ∈ N ∖ { 0 } } . La classe C 3 contient un peu plus de langues unaires. Cependant, il considère que si L ∈ C 3 et 1 n ∈ L pour n ≥ 1 , alors 1{}{ε}{1n;n∈N}{1n;n∈N∖{0}}C3L∈C31n∈Ln≥1 pour tout m ≥ n . 1m∈Lm≥nUn corollaire simple est que toutes les langues régulières ne sont pas en ni en C ′ 3 . Le langage{1}n'est pas non plus en C 3 ni en C ′ 3 .C3C′3{1}C3C′3
Pour la revendication (en gras) sur , il suffit de prouver qu'une machine de Turing M à une bande avec 3 états qui arrête toujours accepte ou rejette toutes les chaînes de { 1 n ; n ∈ N ∖ { 0 } } . Supposons qu'une chaîne de la forme 1 n , n ∈ N ∖ { 0 } , est donnée à M . Il y a trois cas:C′3M{1n;n∈N∖{0}}1nn∈N∖{0}M
1) Lorsque lit 1, il accepte ou rejette.M
2) Lorsque lit 1, il déplace la tête vers la gauche. MSi nous voulons que s'arrête sur cette entrée, il doit accepter, rejeter ou se déplacer vers la droite sur le symbole vierge. Par conséquent, il ne visite jamais la cellule à droite de la cellule initiale de la bande. Si tel était le cas, il s'exécuterait indéfiniment sur l'entrée 1.M
3) Lorsque lit 1, il déplace la tête vers la droite. MIl en résulte que , après étapes, le contenu de la bande est un n où A est un symbole de l'alphabet de bande et la tête de M est le symbole de gauche vide à droite du dernier A . Si nous voulons que M s'arrête sur cette entrée, il doit accepter, rejeter ou se déplacer vers la gauche sur le symbole vierge. Comme dans le cas 2), la tête de M se rendra maintenant jamais la cellule directement à la gauche de la droite A . Si c'est le cas, alors M s'exécutera indéfiniment sur l'entrée 1.nAnAMAMMAM
Il est clair que dans les trois cas, accepte toutes les chaînes de l'ensemble { 1 n ; n ∈ N ∖ { 0 } } ou il les rejette tous.M{1n;n∈N∖{0}}
La preuve de la réclamation (en gras) concernant suit la même ligne que ci-dessus. On prend une machine de Turing M à 3 bandes mono-bande qui accepte une chaîne 1 n pour certains n ≥ 1 . Supposons que M reçoive une entrée de 1 m pour m ≥ n . Nous devons prouver que M accepte cette entrée. Nous avons 3 cas:C3M1nn≥1M1mm≥nM
M
MM1nn1n
MmAmAMAM1nMnA1nM ne visite pas la cellule directement à gauche de la cellule initiale, car elle contient le symbole vide et si elle le lisait, elle s'exécuterait pour toujours.
M{1m;m≥n}