É obrigatório definir transições em cada alfabeto possível nos autômatos finitos determinísticos?

13

Amanhã é a minha apresentação e quero esclarecer meus conceitos ...

Eu li no DFA: "Para cada estado, a transição em todos os símbolos possíveis (alfabeto) deve ser definida".

Para cada estado, a transição de todos os símbolos possíveis é obrigatória no DFA? Se não, por favor, dê alguns exemplos?

HQuser
fonte
1
Bem-vindo ao CS.SE! Preferimos que você faça apenas uma pergunta por postagem. Parece duas perguntas separadas. Seria melhor publicar o segundo (sobre os NFA) separadamente. Além disso, você pesquisou minuciosamente neste site e verificou a definição formal em seu livro? Caso contrário, você deve fazer isso antes de perguntar; e você deve nos mostrar na pergunta o que encontrou quando fez isso.
DW
Obrigado por recepção calorosa, eu realmente procurou neste site e no Google, bem como, mas estou recebendo opiniões contrárias que é realmente me confundindo ..
HQuser
A segunda pergunta foi removida, mas você pode encontrá-la no histórico de edições e publicá-la separadamente como uma pergunta separada, usando o botão 'Fazer pergunta' no canto superior direito. No entanto, antes de perguntar, certifique-se de fazer a pesquisa sugerida e informe-nos na pergunta que pesquisa você fez, inclusive nos dizendo quais livros que você leu. Quanto a essa pergunta, você ainda pode editá-la para abordar o feedback que eu dei aqui, pesquisando a definição formal em seu livro, incluindo-a na pergunta e mostrando sua interpretação dessa definição.
DW
9
De qualquer forma, isso parece coberto por cs.stackexchange.com/q/12587/755 . Votos da comunidade, por favor: isso é uma duplicata?
DW
1
Eu realmente não entendo sua pergunta. Parece ser "Eu li que a definição é X. A definição é X?"
David Richerby

Respostas:

12

Um DFA é especificado pelos seguintes dados:

  • Um alfabeto .Σ
  • Um conjunto de estados .Q
  • Um estado inicial .q0 0Q
  • Um conjunto de final, afirma .FQ
  • A função de transição .δ:Q×ΣQ

Como você pode ver na assinatura de , ele especifica uma transição em cada estado para cada símbolo.δ

Yuval Filmus
fonte
7
Exceto que os DFAs às vezes são definidos com uma função de transição parcial.
Gilles 'SO- stop be evil'
6
Você está certo, não há uma definição "oficial" de um DFA. Mas a leitura do OP revela a influência dessa definição específica.
Yuval Filmus
Deveria dizer explicitamente que a função de transição é total.
24916 Ryan
24

Suponha que um DFA tenha transições ausentes. O que acontece se você encontrar um símbolo que não possui uma transição definida para ele? O resultado é indefinido. Isso parece violar a característica "determinística" de um DFA.

No entanto, é trivial transformar um DFA incompleto em um DFA completo. Basta adicionar um novo estado illegale mapear quaisquer transições indefinidas para o illegalestado. Por fim, adicione transições para cada símbolo do illegalestado de volta para si mesmo. Esse illegalestado geralmente é chamado de estado de coletor , porque quando os dados caem no coletor, não há como sair.

Portanto, de uma perspectiva prática, é meio discutível, desde que você tenha uma maneira bem definida de lidar com as transições ausentes.

Nathan Davis
fonte
10
Cuidado: uma transição indefinida não torna o autômato não determinístico, apenas incompleto. Existem algumas definições de DFA que permitem tais transições indefinidas precisamente porque é trivial concluí-las sistematicamente.
Darkhogg
1
@ Darkhogg, eu não discordo necessariamente, mas o determinismo de um DFA incompleto não dependeria de como uma implementação específica lida com essas transições indefinidas / ausentes? E essa implementação não completaria implicitamente o DFA?
Nathan Davis
1
Não, não depende da implementação, depende da definição. Se você definir DFAs como tendo uma função de transição total e, em seguida, usar uma função parcial com certeza, terá um comportamento indefinido e poderá acabar com não-determinismo, mas isso não é um dado. No entanto, os DFAs às vezes são explicitamente definidos para usar uma função parcial e, ao encontrar uma transição indefinida, o comportamento é "não aceito", ponto final. Não há determinismo ou algo descolado, para qualquer implementação, porque o resultado é definido mesmo que a transição não seja.
precisa saber é o seguinte
BTW: você também pode fazer a transformação inversa. Pegue um "autômato total" e remova um estado coletor para obter um "autômato incompleto". No final, a única diferença é que um autômato total é sempre capaz de ler uma palavra até o fim e, depois disso, decide se aceita ou não a palavra, enquanto um autômato parcial é capaz de rejeitar algumas palavras antes de ler todas as suas palavras. personagens.
Bakuriu
5

ΣQρQ×Σ×Qδ:(Q×Σ)2Q|δ(q,σ)|1qQσΣδ(q,σ)qQσΣ

Uma palavra é aceita por um NFA se ele tiver uma execução de aceitação. Um autômato determinístico tem no máximo uma execução. Um autômato completo possui pelo menos uma execução.

Alguns autores definem autômatos de aparar como aqueles em que cada estado está em algum caminho de um estado inicial para um estado final. Para determinados idiomas, você não pode ter autômatos que são aparados e completos. Nesses casos, é conveniente manter o requisito de completude fora da definição de autômato determinístico.

Fabio Somenzi
fonte