Diferença entre NFA e DFA Diferença entre

Anonim

NFA vs DFA

A teoria da computação é um ramo da ciência da computação que trata de como os problemas são resolvidos usando algoritmos. Tem três ramos, nomeadamente; a teoria da complexidade computacional, a teoria da computabilidade e a teoria do autômato.

A autômata ou a teoria dos autômatos é o estudo de máquinas ou sistemas matemáticos abstratos que podem ser usados ​​para resolver problemas computacionais. Um autômato é composto de estados e transições, e como ele vê um símbolo ou letra de entrada, faz uma transição para outro estado, levando o estado atual e o símbolo como entrada.

A autômata ou a teoria dos autômatos possui várias classes que incluem os Automatáveis ​​finitos determinísticos (DFA) e os Autômatos finitos não determinísticos (NFA). Essas duas classes são funções de transição de autômatos ou autômatos.

Em transição, o DFA não pode usar n cadeia vazia, e pode ser entendido como uma máquina. Se a string terminar em um estado que não é aceitável, o DFA irá rejeitar. Uma máquina DFA pode ser construída com cada entrada e saída.

O DFA tem apenas uma transição de estado para cada símbolo do alfabeto, e existe apenas um estado final para sua transição, o que significa que, para cada caractere lido, há um estado correspondente no DFA. É mais fácil verificar a adesão ao DFA, mas é mais difícil de construir. O Backtracking é permitido no DFA, e requer mais espaço do que o NFA.

Backpatching nem sempre é permitido no NFA. Embora seja possível em alguns casos, em outros não é. É mais fácil construir NFA, e também requer menos espaço, mas não é possível construir uma máquina NFA para cada entrada e saída.

É entendido como várias pequenas máquinas que computam simultaneamente, e a adesão pode ser mais difícil de verificar. Ele usa a Transição de Cadeia vazia, e existem vários possíveis estados possíveis para cada par de símbolo de estado e de entrada. Começa em um estado específico e lê os símbolos, e o autômato determina o próximo estado que depende da entrada atual e de outros eventos conseqüentes. Em seu estado de aceitação, a NFA aceita a string e a rejeita de outra forma.

Resumo:

1. "DFA" significa "Deterministic Finite Automata" enquanto "NFA" significa "Autômatos finitos não determinísticos". "

2. Ambas são funções de transição de autômatos. No DFA, o próximo estado possível é definido de forma distinta enquanto no NFA cada par de estado e símbolo de entrada pode ter muitos possíveis estados possíveis.

3. O NFA pode usar a transição de seqüência vazia enquanto o DFA não pode usar a transição de seqüência vazia.

4. O NFA é mais fácil de construir, enquanto é mais difícil construir o DFA.

5. O Backtracking é permitido no DFA enquanto estiver no NFA pode ou não ser permitido.

6. O DFA requer mais espaço enquanto o NFA requer menos espaço.

7. Enquanto o DFA pode ser entendido como uma máquina e uma máquina DFA pode ser construída para cada entrada e saída, 8. A NFA pode ser entendida como várias pequenas máquinas que compõem juntas e não há possibilidade de construir uma máquina NFA para cada entrada e saída.