O que é Deterministic Finite Automata?
Deterministic Finite Automata (ou DFA) são máquinas de estado finito que aceitam ou rejeitam cadeias de caracteres, analisando-as através de uma sequência que é exclusivamente determinada por cada cadeia de caracteres.
O termo “determinístico” refere-se ao fato de que cada cadeia de caracteres, e portanto cada seqüência de estados, é única. Em um DFA, uma cadeia de símbolos é analisada através de um autômato DFA, e cada símbolo de entrada se moverá para o próximo estado que pode ser determinado.
Estas máquinas são chamadas finitas porque há um número limitado de estados possíveis que podem ser alcançados. Um autômato finito só é chamado de determinístico se ele puder atender a ambas as condições. Os DFAs diferem dos autômatos não determinísticos porque estes últimos são capazes de transitar para mais de um estado de cada vez e estar ativos em vários estados ao mesmo tempo.
Na prática, os DFAs são compostos por cinco componentes (e são frequentemente denotados por um conjunto de cinco símbolos conhecido como 5-tuplo). Estes componentes incluem:
- Um número finito de estados
- Um conjunto de símbolos conhecido como alfabeto, também finito em número
- Uma função que opera a transição entre estados para cada símbolo
- Um estado inicial de início onde a primeira entrada é dada ou processada
- Um estado ou estados finais, conhecidos como estados de aceitação.
Ver Sisense em ação:
Explorar Painel de Controle
Como posso usar automatismos finitos determinísticos?
Embora tenham sido originalmente criados como modelos matemáticos abstratos, os DFAs hoje em dia tornaram-se generalizados tanto na ciência do computador como na ciência dos dados. Autômatos finitos são usados pela maioria dos compiladores de linguagem de computador para auxiliar na análise e preparação de código para uso real. Além disso, eles são amplamente utilizados em sistemas de processamento de linguagem, inclusive no processamento de linguagem natural, para auxiliar programas a entender como responder a toques e inputs variados.
DFAs, devido à sua incapacidade de habitar ativamente vários estados ao mesmo tempo, também são essenciais em tudo, desde algoritmos de reconhecimento de senha (para determinar se a entrada de um usuário está correta ou incorreta) até algoritmos de filtragem e até mesmo em aplicações de processamento de texto. Na ciência dos dados, autômatos finitos determinísticos básicos podem ser usados como ferramentas de ordenação na construção de data warehouses e outros sistemas de armazenamento.
Ao analisar os dados à medida que chegam e determinar a sua localização adequada, um DFA pode automatizar uma grande parte da ordenação e fazê-lo significativamente mais rápido do que executar manualmente a tarefa. Quando combinado com um Automaton Finito não-determinístico (ou NFA), os data warehouses também podem verificar se os dados pertencem a mais de um local. DFA e NFA podem ser usados separadamente para criar uma solução muito mais ampla e eficaz.
Ver Sisense in ActionBack to Glossary