NFA ja DFA

Anonim

NFA vs. DFA

Tietojenkäsittelyn teoria on laskennan teoria, joka käsittelee ongelmien ratkaisua algoritmien avulla. Siinä on kolme sivuliikettä, nimittäin; laskennallisen monimutkaisuusteorian, laskennan teorian ja automaatti-teorian.

Automaatti- tai automaatioteoria on abstraktien matemaattisten koneiden tai järjestelmien tutkimus, jota voidaan käyttää laskennallisten ongelmien ratkaisemiseen. Automaatti muodostuu tilastoista ja siirtymistä, ja koska se näkee symbolin tai kirjaimen, se siirtyy toiseen valtioon ottaen nykyisen tilan ja symbolin syötteeksi.

Automaatti- tai automaatioteoriassa on useita luokkia, joihin kuuluvat Deterministinen Finite Automata (DFA) ja Nondeterministic Finite Automata (NFA). Nämä kaksi luokkaa ovat automatiikan tai automaatin siirtymätoimintoja.

Siirtymävaiheessa DFA ei voi käyttää n tyhjää merkkijonoa, ja sitä voidaan ymmärtää yhtenä koneena. Jos merkkijono päättyy tilaan, joka ei ole hyväksyttävä tila, DFA hylkää sen. DFA-kone voidaan rakentaa jokaisella tulolla ja lähdöllä.

DFA: lla on vain yksi tilasiirtymä jokaiselle aakkosymbolille, ja sen siirtymiselle on vain yksi lopullinen tila, mikä tarkoittaa, että kullekin luettavalle merkille DFA: ssa on yksi vastaava tila. DFA: n jäsenyyden tarkistamista on helpompaa, mutta sitä on vaikeampi rakentaa. Backtracking on sallittu DFA: ssa, ja se vaatii enemmän tilaa kuin NFA.

Backtrackingia ei aina sallita NFA: ssa. Vaikka se on mahdollista joissakin tapauksissa, toisissa se ei ole. NFA: n rakentamista on helpompaa, ja se vaatii myös vähemmän tilaa, mutta ei ole mahdollista muodostaa NFA-konetta jokaiselle tulolle ja tulostukselle.

Ymmärretään useita pieniä koneita, jotka laskevat samanaikaisesti, ja jäsenyys voi olla vaikeampi tarkistaa. Se käyttää Tyhjä merkkijono-siirtymää, ja on olemassa lukuisia mahdollisia seuraavia tiloja kullekin valtion ja syöttösymbolin parille. Se alkaa tietyssä tilassa ja lukee symbolit, ja automaatti määrittää sitten seuraavan tilan, joka riippuu nykyisestä syötteestä ja muista seuraamuksista. Hyväksymistilassaan NFA hyväksyy merkkijonon ja hylkää sen muuten.

Yhteenveto:

1. "DFA" tarkoittaa "Deterministic Finite Automata", kun taas "NFA" tarkoittaa "Nondeterministic Finite Automata". 2.Vaikka ovat automatiikan siirtymätoimintoja. DFA: ssa seuraava mahdollinen tila on selkeästi määritetty, kun taas NFA: ssa jokainen valtion ja syöttösymbolin pari voi sisältää monia mahdollisia seuraavia tiloja. 3.NFA voi käyttää tyhjää merkkijonoa, kun taas DFA ei voi käyttää tyhjää merkkijonoa. 4.NFA: ta on helpompi rakentaa, kun taas DFA: n rakentamista on vaikeampi rakentaa. 5.Backtracking on sallittu DFA: ssa, kun taas NFA: ssa se voi olla sallittua tai ei. 6.DFA vaatii enemmän tilaa, kun taas NFA vaatii vähemmän tilaa. 7. Vaikka DFA voidaan ymmärtää yhdeksi koneeksi ja DFA-kone voidaan rakentaa jokaiselle tulolle ja lähdölle, 8.NFA voidaan ymmärtää useiksi pieniksi koneiksi, jotka laskevat yhdessä, eikä ole mahdollista rakentaa NFA-konetta jokaiselle syötteelle ja tuotos.