Deterministički konačni automat
From Wikipedia, the free encyclopedia
From Wikipedia, the free encyclopedia
U teoriji računanja, deterministički konačni automat (DKA) je konačni automat u kojem za svaki par stanja i ulaznog znaka postoji jedan i samo jedan prijelaz u sljedeće stanje. DKAi prepoznaju skup regularnih jezika.
Ovaj članak ili neki od njegovih odlomaka nije dovoljno potkrijepljen izvorima (literatura, veb-sajtovi ili drugi izvori). |
DKA prima niz ulaznih znakova, i za svaki ulazni znak obavlja prijelaz u stanje koje određuje funkcija prijelaza. Kada je pročitan cijeli ulazni niz, prihvatit će ili odbiti niz znakova zavisno od toga da li je DKA u prihvatljivom ili neprihvatljivom stanju.
DKA se formalno definira uređenom petorkom, (S, Σ, T, s, A), koja se sastoji od
Neka je M DKA takav da M = (S, Σ, T, s, A), i X = x0x1 ... xn niz znakova nad abecedom Σ. M prihvaća niz znakova X ako niz stanja r0,r1, ..., rn, postoji u S uz sljedeće uslove:
Kao što je pokazano u prvom uslovu, stroj započinje rad u početnom stanju s. Drugi uslov kaže da će za svaki znak ulaznog niza X stroj preći iz trenutnog stanja u stanje upravljano funkcijom prijelaza T.
Posljednji uslov kaže da stroj prihvata ulazni niz ako posljednji znak ulaznog niza X uzrokuje prijelaz u jedno od prihvatljivih stanja. Inače kažemo da stroj ne prihvata (odbija) ulazni niz. Skup nizova znakova koje DKA prihvaća je oblik formalnog jezika, i predstavlja oblik jezika kojeg DKA prepoznaje.
Slijedi primjer DKA M nad binarnom abecedom koji određuje sadrži li ulazni niz paran broj znamenki 0.
M = (S, Σ, T, s, A) gdje je
S1 | S2 | S1 |
S2 | S1 | S2 |
Kratko rečeno, stanje S1 predstavlja događaj da se u ulaznom nizu dosad pojavio paran broj cifri 0, dok stanje S2 predstavlja događaj da se pojavio neparan broj. Cifra 1 u ulaznom nizu ne mijenja stanje automata. Kada se završi čitanje ulaznog niza, trenutno stanje će pokazati da li je ulazni niz sadržavao paran broj cifri 0 ili ne.
Jezik DKA M je regularni jezik opisan sljedećim regularnim izrazom:
DKAi su jedni od najpraktičnijih modela računanja, s obzirom da postoji trivijalan online algoritam koji ih simulira u linearnom vremenu i konstantnom prostoru nad tokom ulaznih simbola. Za dva data DKAa postoje djelotvorni algoritmi za pronalaženje DKA koji prepoznaje uniju, presjek te komplement jezika koje oni prepoznaju. Također postoje djelotvorni algoritmi za određivanje da li DKA prihvata bilo koji niz znakova, da li DKA prihvata sve nizove znakova, da li dva DKA prihvataju isti jezik, te za pronalaženje DKA sa minimalnim brojem stanja za zadani jezik.
DKAi su modeli računanja jednake moći kao NKAi (nedeterministički konačni automati).
U drugu ruku, DKAi su strogo ograničene moći nad jezicima koje mogu prepoznati — mnogi jednostavni jezici, uključujući bilo koji problem čije rješenje zahtijeva više nego konstantan prostor, ne mogu biti prepoznati od strane DKA. Kanonski primjer jezika kojeg nijedan DKA ne može prepoznati jest jezik koji se sastoji od nizova znakova oblika anbn — konačan broj znakova a nakon kojeg slijedi jednaki broj znakova b. Može se pokazati da nijedan DKA ne može imati dovoljan broj stanja da prepozna takav jezik.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.