NFA at DFA

Anonim

NFA vs DFA

Ang teorya ng pagtutuos ay isang sangay ng agham sa kompyuter na tumutukoy sa kung paano nalutas ang mga problema gamit ang mga algorithm. Mayroon itong tatlong sangay, katulad; ang computational complexity theory, ang computability theory, at ang automaton theory.

Ang automaton o teorya ng automata ay ang pag-aaral ng abstract mathematical machine o mga sistema na maaaring magamit upang malutas ang mga problema sa computational. Ang isang automatiko ay binubuo ng mga estado at mga paglilipat, at dahil nakikita nito ang isang simbolo o titik ng input, ito ay gumagawa ng isang paglipat sa isa pang estado na kumukuha ng kasalukuyang estado at simbolo bilang input.

Ang automatikong teorya ng automata ay may ilang mga klase na kasama ang Deterministic Finite Automata (DFA) at ang Nondeterministic Finite Automata (NFA). Ang dalawang klase ay mga pag-andar ng paglipat ng automata o automat.

Sa paglipat, hindi maaaring gamitin ng DFA ang walang laman na string, at maaari itong maunawaan bilang isang makina. Kung ang string ay nagtatapos sa isang estado na hindi isang katanggap-tanggap na estado, tanggihan ito ng DFA. Ang isang DFA machine ay maaaring constructed sa bawat input at output.

Ang DFA ay mayroon lamang isang paglipat ng estado para sa bawat simbolo ng alpabeto, at mayroon lamang isang pangwakas na estado para sa paglipat nito na nangangahulugan na para sa bawat karakter na nabasa, mayroong isang kaukulang estado sa DFA. Mas madaling suriin ang pagiging kasapi sa DFA ngunit mas mahirap itong gawin. Pinapayagan ang Backtracking sa DFA, at nangangailangan ito ng mas maraming espasyo kaysa sa NFA.

Hindi laging pinapayagan ang Backtracking sa NFA. Habang ito ay posible sa ilang mga kaso, sa iba ito ay hindi. Mas madali ang pagtatayo ng NFA, at nangangailangan din ito ng mas kaunting espasyo, ngunit hindi posible na bumuo ng isang makina ng NFA para sa bawat input at output.

Ito ay naiintindihan bilang ilang mga maliliit na makina na kumikilos nang sabay-sabay, at maaaring mas mahirap masuri ang pagiging kasapi. Gumagamit ito ng Empty String Transition, at mayroong maraming posibleng susunod na mga estado para sa bawat pares ng simbolo ng estado at input. Nagsisimula ito sa isang partikular na estado at binabasa ang mga simbolo, at ang automaton ay nagpasiya na ang susunod na estado na nakasalalay sa kasalukuyang input at iba pang mga kaganapan sa kaganapan. Sa pagtanggap nito ng estado, tinatanggap ng NFA ang string at tinatanggihan ito kung hindi man.

Buod:

1. "DFA" ang ibig sabihin ng "Deterministic Finite Automata" habang ang "NFA" ay kumakatawan sa "Nondeterministic Finite Automata." 2.Ang mga transaksyong function ng automata. Sa DFA ang susunod na posibleng estado ay malinaw na naka-set habang sa NFA ang bawat pares ng estado at simbolong input ay maaaring magkaroon ng maraming posibleng susunod na mga estado. 3.NFA maaaring gumamit ng walang laman na paglipat ng string habang hindi maaaring gamitin ng DFA ang walang laman na paglipat ng string. 4.NFA ay mas madali upang bumuo habang mas mahirap na bumuo ng DFA. 5.Backtracking ay pinapayagan sa DFA habang nasa NFA ito ay maaaring o hindi maaaring pahintulutan. 6.DFA nangangailangan ng mas maraming puwang habang ang NFA ay nangangailangan ng mas kaunting espasyo. 7.Kung ang DFA ay maaaring maunawaan bilang isang makina at isang DFA machine ay maaaring constructed para sa bawat input at output, 8.NFA ay maaaring maunawaan bilang ilang maliit na machine na compute magkasama, at walang posibilidad ng paggawa ng isang NFA machine para sa bawat input at output.