I têm durante algum tempo sido curioso sobre máquinas de Turing com exactamente uma fita e exactamente três estados (ou seja, o estado inicial , o estado aceitar , e o estado rejeitar ). Observe que eu permito alfabetos de fita arbitrários (finitos) (ou seja, o alfabeto da fita não está restrito a igual ao alfabeto de entrada).
Por conveniência, chame a classe de idiomas reconhecíveis por essas TMs . Eu tenho várias perguntas sobre esta classe:
- Tem sido previamente estudada?
- É conhecido para igualar quaisquer outras classes complexidade / computabilidade de interesse?
- A classe robusta às mudanças no modelo. Por exemplo, se as TMs usadas podem permanecer no local durante uma única transição (em vez de sempre se mover para a esquerda ou direita) ou se a fita é feita para ser infinita nas duas direções, em vez de apenas para a direita, a classe de idiomas reconhecíveis pela alteração de TMs com 1 fita e 3 estados?
- Como é que referem-se à classe de linguagens regulares, ? (Em particular, é toda linguagem regular em ?)
Uma pesquisa (bastante superficial) trouxe apenas essa postagem cs.stackexchange que é relevante, mas não responde minhas perguntas e este artigo , que não li em detalhes o suficiente para garantir que se refere exatamente à classe vez de uma classe semelhante mas diferente (as reivindicações de papel para provar que (1) cada idioma em C 3 é determinável e (2) que C 3 e R e g u l a rsão classes distintas com interseção não vazia). Conforme apontado nos comentários da publicação cs.stackexchange, esses tipos de TMs podem ser considerados autômatos celulares muito específicos, então talvez alguém que conheça a literatura sobre a teoria dos autômatos celulares possa ajudar.
fonte
Respostas:
A fera é extremamente poderosa , por exemplo, podemos construir uma TM que aceita todas as sequências do formulárioM
e rejeita todas as strings do formulário
A idéia é transformar o primeiro em R e, em seguida, deixar a cabeça chegar ao meio da corda e fazer um zig-zag "sem estado"; se atingir A antes de R , aceita.r R A R
Descrição informal:
Exemplo:
Essa técnica de zig-zag é usada na menor máquina de Turing Universal de dois estados (possui 18 símbolos) construída por Rogozhin (Rogozhin 1996. TCS, 168 (2): 215-240).
Alguma atenção deve ser prestada para provar que pára em todas as entradas (observe que ele rejeita na entrada em branco e todos os símbolos sem interrupção "convergem" para < ou > que não podem levar a um loop infinito).M < >
Como comentado por DavidG, a linguagem reconhecidos por M é um subconjunto de G Y (isto é, L Y ⊂ G ( M ) ), mas que não contém qualquer cadeia de L N (ou seja, G ( M ) ∩ L N = ∅ ) e - como comentado por MikhailRudoy - isso é suficiente para provar que L ( M ) não é regular.L(M) M LY LY⊂L(M) LN L(M)∩LN=∅ L(M)
De fato, se é regular, também L ( M ) ∩ { r 0 ∗ 1 ∗ A } = L Y = { r 0 n 1 m A ∣ m ≤ n } seria regular (o que não é uma aplicação simples do lema de bombeamento); levando a uma contradição.L(M) L(M)∩{r0∗1∗A}=LY={r0n1mA∣m≤n}
Então não é regular .L(M)
... Mas como todos os super-heróis tem calcanhar de um Achille: ela não pode sequer reconhecem o normal:C3
Informalmente, ele pode usar apenas o mais à esquerda . . . ( b é o símbolo em branco) ou a névoa direita 1 b . . . como um gancho e "expandir" na outra direção; mas o último aceitar ou rejeitar não pode ser sobre o símbolo em branco do lado da frente, de modo que pode ser feita apenas na parte interna das 1 s e a partir de uma entrada de tempo suficiente que pode ser "fingiu" esticá-lo por um.b1... b 1b... 1
Finalmente - depois de ler o jornal - Posso confirmar que o TM um estado descrito no que corresponde ao seu class ... (assim nada de novo aqui :-) ... eo langauge utilizado pelo autor para provar que ele contém idiomas não regulares é muito parecido com o meu.C3
fonte
Subestimei o poder do ... na verdade, não está muito longe da hipercomputação !C3
(Postei isso como uma resposta separada para melhor clareza)
Podemos construir uma máquina de Turing de estado único que aceite as cadeias de caracteres da forma:M
e rejeita cadeias de caracteres do formulário:
A idéia e a construção são semelhantes às da resposta anterior: transforme o primeiro em A , deixe a cabeça chegar ao meio da corda e faça um zig-zag "sem estado", mas as transições "implementam" um "contador binário "na primeira metade desta maneira: em Z (Zero), gire a cabeça de volta para a direita e converta o Z em S (Um) na próxima vez que a cabeça alcançar o S , transforme-o em a ) e deixe a cabeça Mova para a esquerda; quando os alcances cabeça as ) transformá-lo em um Z . A segunda metade da corda se comporta como um contador unário.a A Z Z S S ) ) Z
As transições são:
Exemplo:
Alguma atenção deve ser prestada para provar que em todas as entradas (observe que ela rejeita na entrada em branco e todos os símbolos sem interrupção "circulam" por ( , S , Z ou < , > que não podem levar a um loop infinito )M (,S,Z <,>
A linguagem é um subconjunto de G Y ( L Y ⊂ G ( M ) ) e que não contêm cadeias de L N ( G ( M ) ∩ L N = ∅ ).L(M) LY LY⊂L(M) LN L(M)∩LN=∅
Suponha que seja livre de contexto e , ao fechar as propriedades das CFLs, cruze-a com a linguagem regular { r 0 ∗ 1 ∗ A } produza uma linguagem CF:L(M) {r0∗1∗A}
Mas por uma simples aplicação do Lema de Ogden para CFL podemos provar que : basta escolher um tempo suficiente s ∈ L Y e marcar todos os 0 s; pelo menos um zero pode ser bombeado e qualquer que seja o número de 1 s na coluna de bombeamento, o crescimento exponencial de 2 n leva a uma cadeia ∉ L Y ).LY∉CFL s∈LY 0 1s 2n ∉LY
Então não é livre de contexto .L(M)
... agora estou me perguntando se essa é outra resposta "reinventando a roda" ou se é um novo (pequeno) resultado.
fonte
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′3 C3 C′3 C3 C′3 C′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 ′ 3C3 C′3 L C′3 {1n;n∈N∖{0}} L LC C′3 també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}} C3 L∈C3 1n∈L n≥1 para todos os m ≥ n . 1m∈L m≥n Um 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 .C3 C′3 {1} C3 C′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′3 M {1n;n∈N∖{0}} 1n n∈N∖{0} M
1) Quando lê 1, ele aceita ou rejeita.M
2) Quando lê 1, move a cabeça para a esquerda.M Se 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.M Segue-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.n An A M A M M A M
É 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:C3 M 1n n≥1 M 1m m≥n M
1) Quando lê 1, ele aceita.M
2) Quando lê 1, move a cabeça para a esquerda.M Como 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 .M 1n n 1n
3) Quando lê 1, move a cabeça para a direita.M Segue-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 , Mm Am A M A M 1n M n A 1n M 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}
fonte