Diferența dintre NFA și DFA Diferența dintre

Anonim

NFA vs DFA

Teoria calculului este o ramură a informaticii care se ocupă de modul în care problemele sunt rezolvate folosind algoritmi. Are trei ramuri, și anume; teoria computațională de complexitate, teoria computabilității și teoria automată.

Teoria automatelor sau a automatelor este studiul mașinilor sau sistemelor matematice abstracte care pot fi utilizate pentru a rezolva problemele de calcul. Un automat este alcătuit din state și tranziții și, pe măsură ce vede un simbol sau o literă de intrare, face o tranziție către o altă stare, luând starea actuală și simbolul ca intrare.

Teoria automatelor sau a automatelor are mai multe clase care includ Automate finite deterministe (DFA) și automate finite nedeterministe (NFA). Aceste două clase sunt funcții de tranziție ale automatelor sau automatelor.

În tranziție, DFA nu poate folosi n șir gol și poate fi înțeleasă ca o singură mașină. Dacă șirul se termină la o stare care nu este o stare acceptabilă, DFA îl va respinge. O mașină DFA poate fi construită cu fiecare intrare și ieșire.

DFA are doar o tranziție de stat pentru fiecare simbol al alfabetului și există o singură stare finală pentru tranziția sa, ceea ce înseamnă că pentru fiecare caracter citit există o stare corespunzătoare în DFA. Este mai ușor să verificați calitatea de membru în DFA, dar este mai greu de construit. Backtracking este permisă în DFA și necesită mai mult spațiu decât NFA.

Backtracking nu este permisă întotdeauna în NFA. În timp ce este posibil în unele cazuri, în altele nu este. Este mai ușor să se construiască NFA și, de asemenea, necesită mai puțin spațiu, dar nu este posibilă construirea unei mașini NFA pentru fiecare intrare și ieșire.

Se înțelege că mai multe mașini minuscule care se calculează simultan, iar apartenența poate fi mai greu de verificat. Utilizează Transitionul de coarde goale și există numeroase stări posibile pentru fiecare pereche de simbol de stare și de intrare. Începe la o anumită stare și citește simbolurile, iar automat determină următoarea stare care depinde de intrarea curentă și de alte evenimente consecutive. În starea sa de acceptare, NFA acceptă șirul și respinge altfel.

Rezumat:

1. "DFA" înseamnă "Automate finite deterministe", în timp ce "NFA" înseamnă "Automate finite nedeterministe. „

2. Ambele sunt funcțiile de tranziție ale automatelor. În DFA, următoarea stare posibilă este setată distinct în timp ce în NFA fiecare pereche de simbol de stare și de intrare poate avea mai multe stări posibile.

3. NFA poate folosi tranziția de șir gol, în timp ce DFA nu poate folosi tranziția de șir gol.

4. NFA este mai ușor de construit, în timp ce este mai dificil să se construiască DFA.

5. Backtracking este permis în DFA în timp ce în NFA poate sau nu să fie permis.

6. DFA necesită mai mult spațiu în timp ce NFA necesită mai puțin spațiu.

7. În timp ce DFA poate fi înțeleasă ca o mașină și o mașină DFA poate fi construită pentru fiecare intrare și ieșire, 8. NFA poate fi înțeleasă ca mai multe mașini mici care se compun împreună și nu există posibilitatea de a construi o mașină NFA pentru fiecare intrare și ieșire.