• Nem Talált Eredményt

k-szalagos, determinisztikus Turing-g´ ep

In document Nyelvek ´e sautomat ´a k (Pldal 94-97)

9. Turing-g´ epek 89

9.2. k-szalagos, determinisztikus Turing-g´ ep

eppen a megsz´aml´alhat´oan v´egtelen Σ halmaz hatv´anyhalmaza. Mivel a kontinuum nagyobb sz´amoss´ag, mint a megsz´aml´alhat´oan v´egtelen, ez´ert biztosan van olyan nyelv, amely nem ismerhet˝o fel Turing-g´eppel.

9.8. Megjegyz´es Vegy¨uk ´eszre, hogy a Turing-g´ep ´altal´anos´ıt´asa mind a v´eges automa-t´anak, mind a veremautomat´anak: mindk´et automat´at k¨onnyen lehet szimul´alni Turing-g´eppel, az ´allapotokat a Turing-g´ep ´allapotaiban ˝orizz¨uk, a veremautomata verm´et pedig a szalagon t´aroljuk.

A v´eges automat´an´al annyival van t¨obb lehet˝os´ege a Turing-g´epnek, hogy a fej mindk´et ir´anyba mozoghat a szalagon ´es a fej ´ırni is tud. Meg lehet mutatni, hogy ebb˝ol a k´et k¨ul¨onbs´egb˝ol az ut´obbi a l´enyeges, mert egy olyan v´eges automata is csak a regul´aris nyelveket tudja elfogadni, ami mindk´et ir´anyban tud mozogni a szalagon.

9.2. k-szalagos, determinisztikus Turing-g´ ep

Az el˝oz˝o r´eszben a rekurz´ıv ´es rekurz´ıvan felsorolhat´o nyelveket az egyszalagos, deter-minisztikusan m˝uk¨od˝o Turing-g´ep seg´ıts´eg´evel defini´altuk. A fejezet h´atralev˝o r´esz´eben azt mutatjuk meg, hogy a Turing-g´epnek sz´amos olyan v´altozata l´etezik, mely a 9.1.

defin´ıci´oban adott g´eppel egyen´ert´ek˝u.

Miel˝ott megvizsg´aln´ank r´eszletesen az els˝o v´altozatot, gondoljuk meg, hogy mennyivel k¨onnyebb dolgunk lenne a palindrom nyelv felismer´es´evel, ha g´ep¨unknek k´et szalagja lenne, mindk´et szalagon egy-egy olvas´o ´es ´ır´o fejjel. Ekkor megtehetn´enk azt, hogy az els˝o szalagot el¨olr˝ol, a m´asodikat pedig h´atulr´ol olvassuk, l´ep´esenk´ent egy-egy karakterp´art leellen˝orizve. Egy ilyen g´ep ¨otlet´et fogalmazza meg form´alisan a k¨ovetkez˝o defin´ıci´o.

9.9. Defin´ıci´o A k-szalagos Turing-g´ep egy olyan Turing-g´ep v´altozat, amely k darab szalagot haszn´al (k ≥ 1). A g´epet ugyan´ugy egy hetes adja meg, mint a kor´abbi defin´ı-ci´oban: T = (Q,Σ,Γ, q0, , F, δ), ahol δ kiv´etel´evel minden ugyanaz, mint kor´abban, az

´atmeneti f¨uggv´eny pedig:

δ(q, a1a2. . . ak)→(q0, b2b3. . . bk, d1d2. . . dk), ahol ai, bi ∈Γ, q, q0 ∈Q ´es di ∈B, J, H.

A g´ep kezdetben itt is a q0 ´allapotban van, az els˝o szalag elej´en a bemeneti sz´o tal´alhat´o, a szalag t¨obbi r´esze ´es a t¨obbi szalag teljes eg´esz´eben a szimb´olummal van felt¨oltve. Minden szalaghoz tartozik egy fej, ami a szalag els˝o (bal sz´els˝o) mez˝oj´en ´all. Az els˝o szalag csak olvashat´o, a t¨obbi szalagot munkaszalagnak h´ıvjuk, ezeket ´ırni ´es olvasni is lehet.

A g´ep egy l´ep´esben minden szalagon elolvassa a fej alatti karaktert, ezek hat´as´ara

´

allapotot v´alt, a munkaszalagokon m´odos´ıthatja az ´ır´o-olvas´o fej alatt l´atott karaktert, majd l´ep a szalagokon.

Az ´atmeneti f¨uggv´eny azt adja meg, ha a g´epq ´allapotban van,a1, a2, . . . , ak bet˝uket olvas a szalagokr´ol, akkor q0 ´allapotba ker¨ul, a munkaszalagokra b2, . . . , bk karaktereket

´ır, majd a fejekkel d1, d2, . . . , dk ir´anyba l´ep (az input szalagon is mozoghat) . Ha valamelyik szalag elej´en balra l´epne (azaz

”leesne” a szalagr´ol az ´ır´o-olvas´o fej), akkor a g´ep hib´aval meg´all, egy´ebk´ent a m˝uk¨od´es akkor ´er v´eget, ha m´ar nem tud l´epni a g´ep, elakad, azaz az adott bels˝o ´allapot - olvasott karakterek kombin´aci´ora nincs ´ ertel-mezve az ´atmeneti f¨uggv´eny. A g´ep akkor fogadja el a bemeneti sz´ot, ha ez az elakad´as F-beli ´allapotban t¨ort´enik.

9.10. Megjegyz´es Vil´agos, hogy ha egy nyelvet el lehet fogadni egy egyszalagos Turing-g´eppel, akkor el lehet fogadni k-szalagossal (k ≥ 2) is: a k-szalagos Turing-g´ep csin´alja azt, hogy ´atm´asolja a bemenetet a 2. szalagj´ara ´es ott szimul´alja az eredeti Turing-g´epet.

Az ´uj g´ep pontosan akkor ´all meg, ha az eredeti meg´allt ´es pontosan akkor fogad el, ha az eredeti elfogadott.

Az is igaz azonban, hogy a k-szalagos Turing-g´epek nem tudnak t¨obbet az egyszala-gosn´al, ezt l´atjuk be a k¨ovetkez˝o t´etelben.

9.11. T´etel Adott egy k-szalagos M Turing-g´ep. Ekkor l´etezik olyan M0 egyszalagos Turing-g´ep, hogy L(M) = L(M0).

Bizony´ıt´as. A konstrukci´o ¨otlete az, hogy ´ugy k´epzelj¨uk, mintha az egyszalagos Turing-g´ep szalagja 2k s´avra lenne osztva: a p´aratlan sorsz´am´u s´avok a k-szalagos Turing-g´ep megfelel˝o szalagjaira ´ırt karaktereket tartalmazz´ak, a p´aros sorsz´am´u s´avok pedig M fejeinek helyzet´et k´odolj´ak:

• M i-edik szalagj´anak tartalma megegyezik M0 (2i−1)-edik s´avj´anak tartalm´aval (1≤i≤k)

• M i-edik szalagj´ahoz tartoz´o fej helyzet´et M0 (2i)-edik s´avj´aban ´ugy k´odoljuk, hogy az adott helyen 1-es karakter ´all, minden m´as helyen pedig ¨ures karakter van (1≤i≤k)

A fenti ¨otletet form´alisan a szalag ´ab´ec´ej´enek megv´altoztat´as´aval, megn¨ovel´es´evel val´os´ıtjuk meg: Γ0 = (Γ× {1, })k, a Γ0-beli karakterek megfelel˝o komponensei felelnek meg az egyes s´avoknak.

N´ezz¨uk most azt, hogyan szimul´aljuk M l´ep´eseit M0-vel! Kezdetben M0 egyetlen szalagj´anak els˝o s´avja az input sz´ot tartalmazza, minden m´as p´aratlan s´av ¨ures (csupa ures karakterb˝¨ ol ´all), a p´aros s´avokon pedig az els˝o karakter 1, minden m´ashol ¨ures jel van, M0 egyetlen feje a szalag elej´en tal´alhat´o.

M0 a bels˝o ´allapot´aban fogja t´arolni M ´allapot´at, ez aszerint v´altozik, ahogy M

´

allapota v´altozik.

A szimul´aci´o sor´an M egy l´ep´es´et M0 t¨obb l´ep´esben fogja szimul´alni, egy l´ep´es szi-mul´al´as´at M0 mindig ´ugy kezdi, hogy a fej a szalag elej´en tal´alhat´o. Ezut´an M0 jobbra gyalogol addig, m´ıg minden p´arosadik s´avon meg nem tal´alja M fejeinek poz´ıci´oj´at, k¨ozben ´allapot´aban megjegyezve, hogy melyik s´avban mi volt a fejpoz´ıci´okat jelz˝o egye-seknek megfelel˝o helyen a megfelel˝o p´aratlanodik s´avban. Mikor minden M-beli fej ´altal olvasott karaktert ismer, kisz´amolja M ´atmeneti f¨uggv´enye szerint, hogy M mit l´epne ebben a helyzetben ´es mik¨ozben visszagyalogol balra a szalag elej´ere, m´odos´ıtja eszerint a fejpoz´ıci´okat jelz˝o egyeseket ´es a hozz´ajuk tartoz´o karaktereket.

9.12. Megjegyz´es A bizony´ıt´asb´ol l´atszik, hogy az eredeti k-szalagos ´es a konstru´alt egyszalagos g´ep nemcsak hogy ugyanazt a nyelvet fogadja el, de pontosan ugyanakkor ´all meg egy bemeneten az egyik g´ep, amikor a m´asik. Ha teh´at egy nyelvr˝ol meg akarjuk mutatni, hogy rekurz´ıv vagy rekurz´ıvan felsorolhat´o, akkor megtehetj¨uk, hogy k-szalagos Turing-g´epet konstru´alunk r´a, ami (mint ahogy a palindromok eset´en l´attuk) sokszor egy-szer˝us´ıti a dolgunkat.

A t´etel bizony´ıt´as´ab´ol az is l´atszik, hogy az egyszalagos g´epre val´o ´att´er´esn´el a l´ e-p´esek sz´ama megn˝o, vagyis ha nem csak az a k´erd´es, hogy van-e Turing-g´ep egy adott nyelvhez, hanem az is k´erd´es, hogy a g´ep h´any l´ep´es alatt ad v´alaszt, akkor a k-szalagos

´

es az egyszalagos verzi´ok nem felt´etlen¨ul viselkednek hasonl´oan. A l´ep´essz´am-n¨oveked´es k´erd´es´evel a 11. fejezetben fogunk foglalkozni.

In document Nyelvek ´e sautomat ´a k (Pldal 94-97)