A resposta acima está correta, mas há um pouco mais a ser dito sobre alfabetos infinitos e computabilidade.
Uma Máquina de Turing é descrita no WP como na qual todos os conjuntos são finitos. Portanto, a função de transição
é necessariamente finita.M=(Q,Γ,b,Σ,δ,q0,qf)
δ:Q/F×Γ→Q×Γ×{L,R}
Em uma máquina de alfabeto infinito, substituiríamos o alfabeto de entrada por e, portanto, o alfabeto de fita por e a função de transição por obedecendo:ΣΣinfΓinfδinf
δinf:Q/F×Γinf→Q×Γinf×{L,R}
Então é necessariamente uma função infinita. Conforme observado, se essa função não puder ser computada, o acima não é representável finitamente. Vamos assumir que manteremos (parcial) recursivo, se possível. A questão é se o alfabeto sempre permitirá isso.δinfδinf
A questão básica é que um alfabeto finito é apresentado em sua totalidade (para que possamos escolher definir nossas funções recursivamente), mas um alfabeto infinito nunca pode ser apresentado em sua totalidade. Então, qual mecanismo está gerando o alfabeto?
A maneira mais simples de considerar isso é imaginar que exista um alfabeto finito de "núcleo", digamos . Em seguida, gere um idioma . Suponha que corda abaab . Em seguida, defina . Portanto, o alfabeto infinito consiste em conjuntos de strings de concatenados em um único símbolo como .A={a,b}L⊂A∗ ∈Lα=<abaab>∈ΓinfL<abaab>
O alfabeto mais simples é basicamente <1 *> , o idioma regular no qual dois símbolos são distinguidos contando o número de traços verticais em cada símbolo. Isso será computável com um analisador de estado finito (como um LBA, não como um autômato finito). Turing defendeu um alfabeto finito para evitar a aparência de uma operação não finita em uma operação de TM. No entanto, vale a pena notar que as 26 letras do alfabeto inglês não seguem esse padrão de contagem: a letra z não contém 26 pinceladas, pontos ou qualquer outra coisa. Portanto, outros padrões são possíveis com o padrão computacional mais geral que é baseado em uma (re) linguagem recursivamente enumerável .L
O problema aqui é que a construção de não será possível, a menos que a definição de seja explicitamente fornecida. Isso ocorre em parte porque a equivalência de redefinições é indecidível e em parte porque, de outro modo, só temos uma amostra finita para trabalhar e não podemos inferir disso. Se tivermos a definição de (e, portanto, ), se for recursivo emδinfLLLΓinffΓinfffδinf
L
<n>∈Γinfϕn(n)ΓinffΓinfΔ02δinf não pode ser recursivo.
S∈ΓinfSfΓinf