Web Analytics
Privacy Policy Cookie Policy Terms and Conditions Nemdeterminisztikus véges állapotú gép - Wikipédia

Nemdeterminisztikus véges állapotú gép

A Wikipédiából, a szabad lexikonból.

Ezt a szócikket át kellene olvasni, ellenőrizni a szövegét, tartalmát. További részleteket a cikk vitalapján találhatsz.

A számítógép-tudományban, a nemdeterminisztikus véges állapotú gép vagy a nemdeterminisztikus véges állapotú automata, angol terminológával a nondeterministic finite state machine vagy nondeterministic finite automaton (NFA) egy véges állapotú gép ahol bármelyik állapot - bejövő szimbólum párhoz több következő állapot is tartozhat.

Tartalomjegyzék

[szerkesztés] Általános ismertetés

Az NFA egy bejövő szimbólumokból álló stringgel dolgozik. Minden egyes bejövő szimbólum hatására a gép állapota az adott átmeneti függvény alapján megváltozik (vagy ugyanaz marad).

A gép nem determinisztikus, mivel lehetséges olyan belső állapota, amikor az adott belső állapotból egy bejövő szimbólum hatására több lehetséges állapot következhet, illetve létrejön állapotváltás bemenő szimbólum nélkül is. Például, az automata az 1-es állapotban van, és a követekező bejövő szimbólum az a, de az a beolvasás nélkül a 2-es állapotba kerül, és 3-as állapotba kerül a bejövő a hatására, azaz egy helyes belső állapotból nem determinált egyértelműen a következő állapot.

A bejövő szimbólum nélküli állapotváltozást epszilon átmenetnek nevezik, és általában a görög ε betűvel jelölik.

Az utolsó szimbólum feldolgozása után az NFA akkor, és csak akkor fogadja el a stringet, ha az automata a néhány elfogadó állapot valamelyike kerül, azaz: csak akkor utasítja vissza a stringet, ha nem kerül elfogadó állapotba.

[szerkesztés] Formális meghatározás

Egy NFA a következő 5-össel írható le: (S, Σ, T, s0, A), ahol

  • (S) az állapotok véges halmaza
  • (Σ) az ábécé-nek nevezett véges halmaz
  • (T : S × (Σ ∪{ε}) → P(S)) az átmeneti függvény
  • s0 a kitüntetett kezdeti (vagy indító) állapotok halmaza (s0S)
  • (AS) az elfogadó állapotok halmaza

ahol P(S) S hatványhalmaza, ε az üres string, és Σ a bemenő jelek ábécéje.

Legyen M egy NFA úgy, hogy M = (S, Σ, T, s0, A), és X az Σ ábécéből alkotott string. M elfogadja az X stringet ha létezik X-nek egy x1x2 ... xn formájú megvalósítása, xi ∈ (Σ ∪{ε}), és létezik az állopotoknak az r0,r1, ..., rn, riS sorrendje, valamint teljesülnek a következő feltételek:

  1. r0s0
  2. riT(ri-1, xi ), minden i = 1, ..., n
  3. rnA.

Az automata a kezdő állapotból indulva olvassa a bejövő string szimbólumait, amelyek az adott ábécéhez kell, hogy tartozzanak. Az automata állapotát a T átmenetei szabályok határozzák meg, attól függően, hogy szimbólumot, vagy üres stringet olvasott be. Amikor az autonmata beolvasta az utolsó szimbólumot, és elfogadó állapotban van, akkor mondhatjuk, hogy az NFA elfogadta a stringet, ellenkező esetben pedig visszautasította azt.

Az automata által elfogadott stringek halmaza egy nyelvi forma, az a nyelv, amelyet az NFA felismer. Ez a nyelv egy szabályos nyelv.

Minden NFA-hoz található egy determinisztikus véges állapotú gép (DFA), amely ugyanazt a nyelvet fogadja el. ebből következik, hogy lehetséges egy létező NFA-re olyan átalakítás, amelynek az eredménye egy DFA lesz, így megvalósítható egy (talán) egyszerűbb gépként. Az átalakítás általában a hatványhalmaz konstruálással történik, ami oda vezet, hogy exponenciálisan megnő a belső állapotok száma.

[szerkesztés] Megvalósítása

Egy NFA több módon is megvalósítható:

  • Egy vele ekvivalens DFA-vá alakítjuk át. Néhány esetben ez az automata méretének exponenciális növekedést okozza, de ennek nincs hatása a működésére.
  • Létrehozzuk azonknak a lehetséges állapotoknak a halmazát, egy adat struktúra halmazt, amelyekbe az automata kerülhet. Ha az utolsó szimbólum beolvasása után az automata állapota ezek között az állapotok között van, akkor elfogadta a stringet.
  • Több választási lehetőséget engedünk meg. Minde olyan döntés, amelynek n lehetséges kimenete van, az jelenti, hogy az NFA-ban létre kell hozni a gép legfeljebb n − 1 másolatát. Az automata új állapotként ezek közül mármelyikbe kerülhet.

[szerkesztés] Példa

A következő példában az M FNa működését vizsgáljuk, amely egy bináris ábécével dolgozik, így a bemeneti szimbólumok 0-k és 1-ek lehetnek csak.

M = (S, Σ, T, s0, A) ahol

  • Σ = {0, 1},
  • S = {S0, S1, S2, S3, S4},
  • s0 = {S0},
  • A = {S1, S3}, és
  • A T átmeneti függvényt a következő állapot átmeneti tábla írja le:
0
1
ε
S0
{}
{}
{S1, S3}
S1
{S2}
{S1}
{}
S2
{S1}
{S2}
{}
S3
{S3}
{S4}
{}
S4
{S4}
{S3}
{}

M állapotdiagramja a következő:

kép:NFA.png


A diagramon az S0-ból induló, nem jelölt élek az epszilon átmenetek.

A fenti M gépet tekinthetjük két DFA uniójának: az egyik az {S2, S1} állapotokat, a másik az {S3, S4} állapotokat valósítja meg.

Az M gép nyelvét egy szabályos nyelv szabályos kifejezéseinek használatával a következőképen írhatjuk le:

(1^*(01^*01^*)^*) \cup  (0^*(10^*10^*)^*)

[szerkesztés] Források

  • Michael Sipser. Introduction to the Theory of Computation. PWS, Boston. 1997. ISBN 053494728X. Section 1.2: Nondeterminism, pp.47–63.
  • Bach Iván. Formális Nyelvek. Egyetemi tankönyv, második kiadás, Typotex Kiadó, 2001. 2.2. Fejezet: Determinisztikus és nemdeterminisztikus véges automaták

[szerkesztés] Lásd még

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu