Máquinas de turing e linguagens formais são o mesmo objeto matemático?


7

O objetivo de Turing ao construir seu conceito era formalizar como os humanos fazem o raciocínio abstrato.

Agora me corrija se eu estiver errado, mas esse raciocínio parece apenas um exercício em que você manipula um conjunto de declarações formais, ou seja, strings sem nenhuma semântica associada a ele.

Portanto, se as máquinas de Turing são iguais ao raciocínio, existe um isomorfismo (ou algo parecido) entre linguagens formais e máquinas de Turing?


TMs são de fato "equivalentes" aos recursivamente enumeráveis línguas (aka Turing reconhecível abaixo)
vzn

Respostas:


3

Não é bem assim. Uma máquina de Turing é descrita por este objeto matemático:

(Q,Σ,δ,H,q0,b)

Onde

  • Q é um conjunto finito de estados
  • Σé um alfabeto , um conjunto finito de símbolos
  • δ:Q×ΣQ×Σ×{,} é uma função de transição
  • HQé o conjunto de estados de parada
  • q0Q é o estado inicial
  • bΣ é o símbolo "em branco"

A máquina usa alguma sequência de entrada, xΣe usa a função de transição para atualizar iterativamente símbolos individuais nessa sequência até δ retorna um estado pertencente a H. Nesse ponto, dizemos que a máquina parou - o que pode ou não fazer.

Comparado a tudo isso, linguagens formais são objetos muito mais simples. Um idioma é apenas um subconjunto do conjunto de todas as strings sobre algum alfabeto. Em outras palavras,LΣ, Onde é o operador estrela Kleene .

A conexão é que as máquinas de Turing podem ser usadas para definir linguagens formais. Por exemplo:

L={xΣ|M halts when given x as input }

Define a linguagem formal L em termos da máquina de Turing M. Para um idioma,L, se existir uma máquina de Turing que interrompa se e somente se sua entrada pertencer a L, o idioma será chamado de reconhecível por Turing . Algumas linguagens não podem ser definidas por nenhuma máquina de Turing, o que significa que elas não são computáveis - nenhum processo finito pode decidir se uma sequência arbitrária pertence ou não à linguagem.

Linguagens formais não são iguais às máquinas de Turing, mas o reconhecimento de Turing tem um lugar interessante no estudo das linguagens formais. Na hierarquia de Chomsky, uma linguagem Tipo 0 é uma linguagem que pode ser enumerada por qualquer gramática formal, e isso equivale a ser reconhecível por uma máquina de Turing! Gramáticas formais e máquinas de Turing são apenas dois dos muitos modelos de computação que são igualmente poderosos!

Geralmente, acredita-se que todo modelo de computação faz a mesma distinção entre linguagens computáveis ​​e não computáveis ​​- essa noção é chamada de tese de Church-Turing .

Edição: Minha terminologia estava desligada quando eu escrevi isso inicialmente. Uma linguagem decidível de Turing pode ser decidida por uma máquina que sempre pára e fornece um sim ou não definitivo para determinar se sua entrada pertence à linguagem. Quando exigimos apenas que a máquina aceite membros, mas não pode necessariamente rejeitar não membros, o idioma associado é chamado de Turing reconhecível ou, mais comumente, recursivamente enumerável. Os idiomas reconhecíveis de Turing são equivalentes aos idiomas que podem ser gerados por gramáticas irrestritas.

Algumas linguagens nem são recursivamente enumeráveis ​​- por exemplo, o conjunto de todas as máquinas de Turing que não param é totalmente irreconhecível. Há um idioma correspondente a esse conjunto que não pôde ser gerado por nenhuma gramática, mas que ainda pode ser chamado de "linguagem formal". Por essa definição, não há mapeamento completo das máquinas de Turing para linguagens formais e, definitivamente, não há isomorfismo entre as duas.


@ kebertx Então, podemos dizer que existe um isomorfismo entre linguagens decidíveis e máquinas de Turing?
Jerome

Definitivamente, há uma exceção das máquinas de Turing para linguagens decidíveis, mas o inverso não é verdadeiro. Toda linguagem decidível realmente corresponde a um número infinito de máquinas de Turing, o que significa que não pode haver um isomorfismo lá. - Prova: digamos que você tenha um programa que decida se uma sequência arbitrária pertence a um idioma. Em seguida, você pode escrever outro programa que primeiro faça qualquer cálculo aleatório, descarte o resultado e tome a mesma decisão que o primeiro programa. Isso nos diz que todo problema tem zero ou infinitamente muitas soluções!
Kebertx

11

Não, eles não são a mesma coisa. Um idioma é um conjunto de palavras sobre algum alfabeto finito. Uma máquina de Turing é uma tupla de 7, conforme definido na Wikipedia .

Para alguns idiomas, é conveniente caracterizá-los por uma TM que os reconheça. Para cada idioma que pode ser reconhecido por uma TM, há um número infinito de TMs que reconhecem o mesmo idioma; portanto, você precisa impor alguns critérios adicionais se quiser torná-lo único.

Isso pode parecer um bom começo para um isomorfismo, mas infelizmente existem infinitas linguagens que não podem ser reconhecidas pelas TMs. Isso pode ser visto por um simples argumento de contagem. O conjunto de todas as palavras possíveis sobre um alfabeto fixo é isomórfico para os números naturais. Portanto, o conjunto de todos os idiomas nesse alfabeto (= o conjunto de todos os subconjuntos de palavras) é incontável. Por outro lado, existem apenas muitas máquinas de Turing. Portanto, não apenas o "reconhecimento" não pode ser transformado em um isomorfismo, como também não pode haver nenhum isomorfismo, pois isso implicaria que o conjunto de TMs tenha a mesma cardinalidade que o conjunto de idiomas.


Não podemos dizer que uma linguagem formal é necessariamente reconhecida por pelo menos uma MT?
21416 Jerome

2
@ Jerome No. Existem infinitas linguagens que nem são semi-decidíveis, portanto não são decididas ou aceitas por nenhuma máquina Turing.
David Richerby

@ adrianN. Certo e o contrário? Ou seja, uma vez que você tenha uma MT, ela pode gerar algo além de uma linguagem formal?
21416 Jerome

@ Jerome Para cada máquina de Turing, existe um idioma (possivelmente vazio) que ele aceita, definido como o conjunto de palavras que a TM para no estado YES. Há um idioma para cada TM, mas não um TM para cada idioma.
Jmite 17/08

Ok, estou certo em dizer que, por exemplo, que nenhuma TM aceita a linguagem formal definida pelo ZFC? (como há alguma declaração verdadeira em ZFC, onde há paradas TM diante)
Jerome
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.