Differenza tra NFA e DFA Differenza tra

Anonim

NFA vs DFA

La teoria della computazione è una branca dell'informatica che si occupa di come i problemi vengono risolti usando algoritmi. Ha tre rami, vale a dire; la teoria della complessità computazionale, la teoria della computabilità e la teoria dell'automa.

La teoria degli automi o degli automi è lo studio di macchine o sistemi matematici astratti che possono essere usati per risolvere problemi computazionali. Un automa è costituito da stati e transizioni e, visto che vede un simbolo o una lettera di input, effettua una transizione verso un altro stato prendendo lo stato e il simbolo attuali come input.

La teoria degli automi o degli automi ha diverse classi che includono il Deterministic Finite Automata (DFA) e il Nondeterministic Finite Automata (NFA). Queste due classi sono funzioni di transizione di automi o automi.

In fase di transizione, DFA non può utilizzare n stringhe vuote e può essere compreso come un'unica macchina. Se la stringa termina in uno stato che non è accettabile, DFA lo rifiuterà. Una macchina DFA può essere costruita con ogni input e output.

DFA ha solo una transizione di stato per ogni simbolo dell'alfabeto, e c'è solo uno stato finale per la sua transizione che significa che per ogni carattere letto c'è uno stato corrispondente in DFA. È più facile controllare l'appartenenza a DFA, ma è più difficile da costruire. Il backtracking è consentito in DFA e richiede più spazio di NFA.

Il backtracking non è sempre consentito in NFA. Mentre è possibile in alcuni casi, in altri non lo è. È più semplice costruire NFA e richiede anche meno spazio, ma non è possibile costruire una macchina NFA per ogni input e output.

Si intende che molte macchine minuscole elaborano simultaneamente e l'appartenenza può essere più difficile da controllare. Usa Empty String Transition e ci sono numerosi possibili prossimi stati per ogni coppia di stati e simboli di input. Inizia in uno stato specifico e legge i simboli e l'automa determina lo stato successivo che dipende dall'input corrente e da altri eventi conseguenti. Al suo stato accettante, NFA accetta la stringa e la rifiuta altrimenti.

Riepilogo:

1. "DFA" sta per "Deterministic Finite Automata" mentre "NFA" sta per "Automi finiti non deterministici". “

2. Entrambe sono funzioni di transizione degli automi. In DFA il prossimo stato possibile viene impostato in modo distinto mentre in NFA ogni coppia di stato e simbolo di input può avere molti possibili stati successivi.

3. NFA può utilizzare la transizione stringa vuota mentre DFA non può utilizzare la transizione stringa vuota.

4. L'NFA è più facile da costruire mentre è più difficile costruire DFA.

5. Il backtracking è consentito in DFA mentre in NFA può essere consentito o meno.

6. DFA richiede più spazio mentre NFA richiede meno spazio.

7. Mentre DFA può essere considerato come una macchina e una macchina DFA può essere costruita per ogni input e output, 8. NFA può essere inteso come una serie di piccole macchine che calcolano insieme, e non c'è alcuna possibilità di costruire una macchina NFA per ogni input e output.