Um DFA ou NFA lê uma sequência de entrada com uma única cabeça, movendo-se da esquerda para a direita. Parece natural pensar em máquinas de estado finito que possuem várias cabeças , cada uma das quais se move pela entrada da esquerda para a direita, mas não necessariamente no mesmo local da entrada que as outras.
Vamos definir uma máquina de estados finitos com cabeças da seguinte maneira:
Um NFA de cabeça k é uma tupla , em que:
Como de costume, é um conjunto finito de estados, é um alfabeto finito, é um estado inicial e é um conjunto de estados aceitantes. Deixe denotar o conjunto de caracteres, incluindo a sequência vazia.
é a relação de transição: uma transição significa que, se a máquina está no estado de , pode ler em modo que seja o próximo caractere para a cabeça (ou se essa cabeça não se mover) e depois vá para o estado .
Uma execução desse tipo de máquina (qualquer caminho que começa no estado inicial e termina no estado de aceitação) resulta em não uma sequência, mas em strings diferentes (formadas pela concatenação dos caracteres ao longo da execução). Então dizemos que a execução é válida se as strings forem idênticas.
O idioma da máquina é o conjunto de cadeias modo que exista uma execução válida da máquina, onde as cadeias produzidas ao longo dessa execução são iguais a .
Pergunta: Qual é a classe de idiomas reconhecida por essas máquinas? Foi estudado?
Respostas:
Este modelo é um dos modelos padrão na teoria dos autômatos e foi examinado por alguns pesquisadores.
As referências dadas no primeiro comentário são muito bons pontos de partida.
Quando a cabeça é bidirecional, as classes de idiomas reconhecidas por esses modelos são idênticas às classes de espaço logarítmico. No entanto, quando o cabeçalho é unidirecional, pelo que sei, não temos uma caracterização exata semelhante, mas temos certos resultados incomparáveis e algumas hierarquias baseadas no número de cabeçotes.
Se você estiver interessado, recomendo que você verifique também versões alternadas, probabilísticas e quânticas de autômatos de múltiplas cabeças. Esses modelos podem ser bastante interessantes, mesmo quando se usa um único cabeçote, pois o cálculo é dividido em caminhos diferentes e, em cada caminho, o cabeçote pode acessar diferentes partes das entradas.
Algumas referências genéricas:
Alternação
Computação probabilística
Computação probabilística e quântica
Modelos relacionados: autômatos com vários contadores e autômatos usando seixo.
fonte