NFA a DFA

Anonim

NFA vs DFA

Teorie výpočtů je odvětví informatiky, které se zabývá tím, jak jsou problémy řešeny pomocí algoritmů. Má tři větve, jmenovitě; teorie výpočetní složitosti, teorie výpočtu a teorie automatu.

Automatické nebo automata teorie je studium abstraktních matematických strojů nebo systémů, které mohou být použity k řešení výpočetních problémů. Automat je tvořen stavy a přechody a když vidí symbol nebo písmeno vstupu, provede přechod na jiný stav, ve kterém se stává současným stavem a symbolem jako vstupem.

Automatika nebo automata teorie má několik tříd, které zahrnují deterministické konečné automaty (DFA) a nondeterministic konečné automaty (NFA). Tyto dvě třídy jsou přechodové funkce automatu nebo automatu.

V přechodu nemůže služba DFA používat n prázdný řetězec a lze jej chápat jako jeden stroj. Pokud řetězec skončí ve stavu, který není přijatelný, DFA jej odmítne. Stroj DFA může být konstruován s každým vstupem a výstupem.

DFA má pouze jeden přechod pro každý symbol abecedy a pro jeho přechod existuje pouze jeden konečný stav, což znamená, že pro každý čtený znak je v DFA jeden odpovídající stav. Je snadnější kontrolovat členství v systému DFA, ale je těžší sestavit. Backtracking je povolen v DFA a vyžaduje více místa než NFA.

Backtracking není v NFA vždy povolen. I když je to možné v některých případech, v jiných to není. NFA je jednodušší a vyžaduje méně místa, ale pro každý vstup a výstup není možné vytvořit stroj NFA.

Rozumí se tomu jako několik drobných strojů, které se počítají současně a členství je těžší kontrolovat. Využívá přechod prázdných řetězců a pro každý pár symbolů stavu a vstupu existuje řada možných dalších stavů. Začíná v určitém stavu a čte symboly a automat určuje další stav, který závisí na aktuálním vstupu a dalších následných událostech. Ve svém akceptačním stavu NFA přijme řetězec a jinak jej odmítne.

Souhrn:

1. "DFA" znamená "Deterministické konečné automaty", zatímco "NFA" znamená "Nedeterministická konečná automata". 2.But jsou přechodové funkce automatů. V DFA je další možný stav zřetelně nastaven, zatímco v NFA může každý pár stavu a vstupního symbolu mít mnoho dalších možných stavů. 3.NFA může používat prázdný přechod na řetězec, zatímco služba DFA nemůže použít prázdný přechod na řetězec. 4.NFA je jednodušší při konstrukci DFA. 5.Bakracing je povolen v DFA, zatímco v NFA může nebo nemusí být povolen. 6.DFA vyžaduje více místa, zatímco NFA vyžaduje méně místa. 7. Zatímco DFA může být chápán jako jeden stroj a DFA stroj může být konstruován pro každý vstup a výstup, 8.NFA může být chápán jako několik málo strojů, které se počítá dohromady, a není zde možnost konstrukce stroje NFA pro každý vstup a výstupu.