Verschil tussen NFA en DFA Verschil tussen

Anonim

NFA versus DFA

De theorie van de berekening is een tak van de informatica die zich bezighoudt met hoe problemen worden opgelost met behulp van algoritmen. Het heeft drie takken, namelijk; de computationele complexiteitstheorie, de berekenbaarheidstheorie en de automaattheorie.

De automaat- of automatentheorie is de studie van abstracte wiskundige machines of systemen die kunnen worden gebruikt om computerproblemen op te lossen. Een automaat bestaat uit toestanden en overgangen, en terwijl het een symbool of letter van invoer ziet, maakt het een overgang naar een andere toestand, waarbij de huidige toestand en het symbool als invoer worden genomen.

De automaat- of automatentheorie heeft verschillende klassen die de Deterministic Finite Automata (DFA) en de Nondeterministic Finite Automata (NFA) bevatten. Deze twee klassen zijn overgangsfuncties van automaten of automaten.

In de overgang kan DFA geen n-lege tekenreeks gebruiken en kan deze als één machine worden begrepen. Als de reeks eindigt op een status die geen acceptabele status is, wordt deze door DFA afgewezen. Een DFA-machine kan met elke invoer en uitvoer worden geconstrueerd.

DFA heeft slechts één toestandsovergang voor elk symbool van het alfabet en er is slechts één eindtoestand voor de overgang ervan, wat betekent dat voor elk teken dat wordt gelezen, er een overeenkomstige staat in DFA is. Het is gemakkelijker om het lidmaatschap van DFA te controleren, maar het is moeilijker om te bouwen. Backtracking is toegestaan ​​in DFA en het vereist meer ruimte dan NFA.

Backtracking is niet altijd toegestaan ​​in NFA. Hoewel het in sommige gevallen mogelijk is, is dat in andere gevallen niet het geval. Het is gemakkelijker om NFA te bouwen, en het vereist ook minder ruimte, maar het is niet mogelijk om een ​​NFA-machine te bouwen voor elke invoer en uitvoer.

Het wordt opgevat als verschillende kleine machines die simultaan berekend worden, en lidmaatschap kan moeilijker te controleren zijn. Het gebruikt lege tekenreeksovergang en er zijn talloze mogelijke volgende statussen voor elk paar status- en invoersymbolen. Het begint bij een specifieke status en leest de symbolen, en de automaat bepaalt vervolgens de volgende status die afhankelijk is van de huidige invoer en andere daaropvolgende gebeurtenissen. In de acceptatiestatus accepteert NFA de tekenreeks en wordt deze anderszins afgewezen.

Samenvatting:

1. "DFA" staat voor "Deterministic Finite Automata" terwijl "NFA" staat voor "Nondeterministic Finite Automata. “

2. Beide zijn overgangsfuncties van automaten. In DFA is de volgende mogelijke status duidelijk ingesteld, terwijl in NFA elk paar status- en invoersymbolen vele mogelijke volgende toestanden kan hebben.

3. NFA kan lege tekenreeksovergang gebruiken terwijl DFA geen lege tekenreeksovergang kan gebruiken.

4. NFA is eenvoudiger te construeren, terwijl het moeilijker is om DFA te construeren.

5. Backtracking is toegestaan ​​in DFA, terwijl het in NFA al dan niet is toegestaan.

6. DFA vereist meer ruimte, terwijl NFA minder ruimte vereist.

7. Hoewel DFA kan worden begrepen als één machine en een DFA-machine kan worden geconstrueerd voor elke invoer en uitvoer, 8. NFA kan worden opgevat als verschillende kleine machines die samen worden berekend, en er is geen mogelijkheid om een ​​NFA-machine te bouwen voor elke invoer en uitvoer.