Skillnad mellan NFA och DFA Skillnad mellan

Anonim

NFA vs DFA

Beräkningsteorin är en gren av datavetenskap som behandlar hur problem löses med hjälp av algoritmer. Det har tre grenar, nämligen; beräkningskomplexitetsteorin, beräkningsteori och automatteori.

Automaten eller automatteori är en studie av abstrakta matematiska maskiner eller system som kan användas för att lösa datorproblem. En automat består av tillstånd och övergångar, och eftersom den ser en symbol eller en skrivelse av ingång, övergår den till en annan stat som tar nuvarande tillstånd och symbol som ingång.

Automaten eller automatteori har flera klasser som inkluderar Deterministic Finite Automata (DFA) och Nondeterministic Finite Automata (NFA). Dessa två klasser är övergångsfunktioner av automat eller automat.

I övergången kan DFA inte använda n tom sträng och det kan förstås som en maskin. Om strängen slutar i ett tillstånd som inte är ett acceptabelt tillstånd, kommer DFA att avvisa det. En DFA-maskin kan byggas med varje ingång och utgång.

DFA har endast en tillståndsövergång för varje symbol på alfabetet, och det finns bara ett slutligt tillstånd för övergången vilket innebär att för varje tecken som läses finns det ett motsvarande tillstånd i DFA. Det är lättare att kontrollera medlemskap i DFA men det är svårare att konstruera. Backtracking är tillåten i DFA, och det kräver mer utrymme än NFA.

Backtracking är inte alltid tillåtet i NFA. Medan det är möjligt i vissa fall är det inte i andra. Det är lättare att konstruera NFA, och det kräver också mindre utrymme, men det är inte möjligt att konstruera en NFA-maskin för varje ingång och utgång.

Det är uppfattat som flera små maskiner som beräknar samtidigt, och medlemskapet kan vara svårare att kontrollera. Det använder Empty String Transition, och det finns många möjliga nästa tillstånd för varje par av stat och ingångssymbol. Den startar i en viss stat och läser symbolerna, och automaten bestämmer därefter nästa tillstånd som beror på aktuell ingång och andra följdhändelser. Vid sitt accepterande tillstånd accepterar NFA strängen och avvisar den annars.

Sammanfattning:

1. "DFA" står för "Deterministic Finite Automata" medan "NFA" står för "Nondeterministic Finite Automata. ”

2. Båda är övergångsfunktioner av automata. I DFA är nästa möjliga tillstånd tydligt inställt medan i NFA varje par tillstånd och inmatningssymbol kan ha många möjliga nästa tillstånd.

3. NFA kan använda en tom strängövergång medan DFA inte kan använda en tom strängövergång.

4. NFA är lättare att konstruera medan det är svårare att konstruera DFA.

5. Backtracking är tillåten i DFA medan det i NFA är tillåtet eller inte.

6. DFA kräver mer utrymme medan NFA kräver mindre utrymme.

7. Medan DFA kan förstås som en maskin och en DFA-maskin kan konstrueras för varje ingång och utgång, kan 8. NFA förstås som flera små maskiner som beräknas tillsammans, och det finns ingen möjlighet att bygga en NFA-maskin för varje ingång och utgång.