Nesta resposta, assume-se que as máquinas de Turing possuem fitas infinitas nos dois sentidos. As reivindicações não se aplicam a fitas infinitas unidirecionais.
Deixe-me primeiro definir a classe de linguagens como a classe de todas as línguas decidível por uma fita de máquinas de Turing com 3 estados ( C 3 foi definida como a classe de linguagens reconhecíveis por máquinas de Turing de uma fita com 3 estados). Eu introduzi a classe C ' 3 porque, na minha resposta original, inconscientemente troquei as classes C 3 e C ' 3 (eu apenas considerei a classe C ' 3 ).C′3C3C′3C3C′3C′3
Esta resposta é mais um complemento para as respostas do @MarzioDeBiasi. Ele mostrou que as classes e C ′ 3 não estão contidas em CFL e, portanto, contêm idiomas bastante interessantes. No entanto, como mostrarei neste post, cada idioma L em C ′ 3 tem a propriedade que o conjunto { 1 n ; n ∈ N ∖ { 0 } } é ou em L ou em seu complemento G C . Assim, C ′ 3C3C′3LC′3{1n;n∈N∖{0}}LLCC′3também é muito restritivo, por exemplo. ele contém apenas idiomas unários triviais , { ε } , { 1 n ; n ∈ N } e { 1 n ; n ∈ N ∖ { 0 } } . A classe C 3 contém idiomas um pouco mais unários. No entanto, é vantajoso que se L ∈ C 3 e 1 n ∈ G para n ≥ 1 , então 1{}{ε}{1n;n∈N}{1n;n∈N∖{0}}C3L∈C31n∈Ln≥1 para todos os m ≥ n . 1m∈Lm≥nUm corolário simples é que nem todas as linguagens regulares estão em , nem em C ' 3 . Além disso, o idioma{1}não está na C 3 , nem em C ' 3 .C3C′3{1}C3C′3
Para a alegação (em negrito) sobre , basta provar que uma máquina de Turing M de uma fita com 3 estados que sempre interrompe ou aceita ou rejeita todas as seqüências de { 1 n ; n ∈ N ∖ { 0 } } . Suponha-se que uma cadeia da forma 1 n , n ∈ N ∖ { 0 } , é dado a M . Existem três casos:C′3M{1n;n∈N∖{0}}1nn∈N∖{0}M
1) Quando lê 1, ele aceita ou rejeita.M
2) Quando lê 1, move a cabeça para a esquerda. MSe quisermos que pare nessa entrada, ele deve aceitar, rejeitar ou mover para a direita no símbolo em branco. Portanto, nunca visita a célula à direita da célula inicial da fita. Se assim fosse, seria executado para sempre na entrada 1.M
3) Quando lê 1, move a cabeça para a direita. MSegue-se que após passos, o conteúdo da fita é A n em que A é um símbolo do alfabeto da fita ea cabeça de M é no símbolo branco da esquerda para a direita da última A . Se quisermos que M pare nessa entrada, ele deve aceitar, rejeitar ou mover para a esquerda no símbolo em branco. Como no caso 2), o chefe de M agora nunca visitará a célula diretamente à esquerda do A mais à direita . Se assim fosse, M seria executado para sempre na entrada 1.nAnAMAMMAM
É claro que nos três casos aceita todas as cadeias do conjunto { 1 n ; n ∈ N ∖ { 0 } } ou rejeita todos eles.M{1n;n∈N∖{0}}
A prova da reivindicação (em negrito) sobre segue a mesma linha tal como acima. Tomamos uma máquina de Turing M de três estados e fita única que aceita uma string 1 n para alguns n ≥ 1 . Suponha que M receba uma entrada 1 m para m ≥ n . Temos que provar que M aceita essa entrada. Temos 3 casos:C3M1nn≥1M1mm≥nM
1) Quando lê 1, ele aceita.M
2) Quando lê 1, move a cabeça para a esquerda. MComo aceita a entrada 1 n , ela deve aceitar ou mover para a direita no símbolo em branco. Por isso, nunca visitas os n º célula à direita da célula inicial. Se assim fosse, seria executado para sempre na entrada 1 n .M1nn1n
3) Quando lê 1, move a cabeça para a direita. MSegue-se que depois de etapas, o conteúdo da fita é uma m onde A é um símbolo do alfabeto da fita ea cabeça de M é no símbolo branco da esquerda para a direita da última A . Como M aceita a entrada 1 n , ele deve aceitar ou mover para a esquerda no símbolo em branco. Como no caso 2), o chefe de M agora nunca visitará a n- ésima célula à esquerda do A mais à direita . Isso ocorre porque na entrada 1 n , MmAmAMAM1nMnA1nM não visita a célula diretamente à esquerda da célula inicial, porque contém o símbolo em branco e, se o ler, será executado para sempre.
É claro que nos três casos aceita todas as seqüências do conjunto { 1 m ; m ≥ n } .M{1m;m≥n}