elte · 2013. 4. 14. · 2 ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson...
TRANSCRIPT
Bevezetés a számítástudományba
(lektorálatlan el®adás jegyzet)
Gazdag Zsolt
ELTE IK, ALgoritmusok és Alkalmazásaik Tanszék
2013. április 14.
2
Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika ésszámításelmélet c. tárgy számításelméletet tárgyaló részének megértéséhez, deezen túl betekintést nyújt az elméleti számítástudomány alábbi f®bb területeireis:
• automaták és formális nyelvek elmélete,
• kiszámíthatóság elmélet,
• bonyolultságelmélet.
A kiszámíthatóság elmélet alapvet®en azzal foglalkozik, hogy mely problémákoldhatók meg algoritmikusan. A bonyolultságelmélet azt vizsgálja, hogy az al-goritmikusan megoldható problémák közül melyek a nehéz problémák, vagyisazok, melyek megoldása az er®források (tár és id®) felhasználása szempontjábólnem hatékonyak. A formális nyelvek elmélete alapul szolgál a fenti két terület-hez, de az informatika más területein is hasznos (fordítóprogramok, természetesnyelvek feldolgozása, logika, stb.).
Miért hasznos a fenti dolgokat ismerni? Többek között azért mert például
• nem kezdünk el megoldani egy problémát ha tudjuk, hogy megoldhatatlan;
• ha megértjük, hogy egy probléma miért nehezen megoldható, akkor mó-dosítva a nehézséget okozó részt esetleg egy könnyebben megoldható (dea célnak még megfelel®) problémát kapunk;
• ha tudjuk, hogy a pontos megoldás megtalálása nehéz feladat, akkor eset-leg megelégszünk közelít® megoldások kereséséve, vagy megpróbálunk egyolyan algoritmust keresni, ami egy általános bemeneten ugyan exponen-ciális id®igény¶, de a gyakorlatban legtöbbször el®forduló bemenetekenhatékonyan m¶ködik.
A jegyzet úgy íródott, hogy önmagában is használható legyen. Mindazonál-tal feltételezzük, hogy az olvasó rendelkezik egy alapvet® diszkrét matematikaitudással, ismert számára például a függvény és a reláció fogalma. Fontos megje-gyezni, hogy a jegyzet nagyobb lélegzet¶ bizonyításai rendszerint az irodalombanis fellelhet® bizonyítások feldolgozásai. A jegyzet félkész állapotát az is tükrözi,hogy a hivatkozások eme munkákra egyel®re hiányoznak.
Tartalomjegyzék
1. Automaták és formális nyelvek 7
1.1. Formális nyelvek . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1. M¶veletek nyelveken . . . . . . . . . . . . . . . . . . . . . 8
1.1.2. Nyelvek és véges reprezentációik . . . . . . . . . . . . . . 9
1.2. Generatív nyelvtanok . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1. A nyelvtanok f® típusai . . . . . . . . . . . . . . . . . . . 11
1.3. Reguláris nyelvek . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1. Véges automaták . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1.1. Minimális automata . . . . . . . . . . . . . . . . 16
1.3.1.2. Nemdeterminisztikus véges automata. . . . . . . 21
1.3.2. A felismerhet® és a jobblineáris nyelvek ekvivalenciája . . 23
1.3.3. A felismerhet® nyelvek zártsági tulajdonságai . . . . . . . 24
1.3.4. Reguláris kifejezések . . . . . . . . . . . . . . . . . . . . . 26
1.3.5. Pumpáló lemma felismerhet® nyelvekre . . . . . . . . . . . 29
1.3.6. A felismerhet® nyelvekkel kapcsolatos eldönthet®ségi kér-dések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.4. Környezetfüggetlen nyelvek . . . . . . . . . . . . . . . . . . . . . 32
1.4.1. Egyértelm¶ CF nyelvek . . . . . . . . . . . . . . . . . . . 33
1.4.2. Derivációs fák . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.4.3. Veremautomaták . . . . . . . . . . . . . . . . . . . . . . . 35
1.4.3.1. Determinisztikus veremautomaták . . . . . . . . 38
1.4.3.2. A CF és a PDA-val felismerhet® nyelvek ekviva-lenciája . . . . . . . . . . . . . . . . . . . . . . . 39
3
4 TARTALOMJEGYZÉK
1.4.4. A környezetfüggetlen nyelvek egyszer¶sítései . . . . . . . . 41
1.4.4.1. A haszontalan szimbólumok elhagyása . . . . . . 41
1.4.4.2. Az ε-mentesítés . . . . . . . . . . . . . . . . . . 44
1.4.4.3. Láncszabály-mentesítés . . . . . . . . . . . . . . 45
1.4.4.4. Chomsky normálforma . . . . . . . . . . . . . . 46
1.4.5. A környezetfüggetlen nyelvek pumpáló lemmája . . . . . . 48
1.4.6. A környezetfüggetlen nyelvekkel kapcsolatos eldönthet®-ségi kérdések . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.4.7. A környezetfüggetlen nyelvek zártsági tulajdonságai . . . 52
2. A kiszámíthatóság elmélet alapjai 55
2.1. A kiszámíthatóság elmélet rövid története . . . . . . . . . . . . . 55
2.2. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3. Turing-gépek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.3.1. Különböz® Turing-gép változatok . . . . . . . . . . . . . . 63
2.3.1.1. Többszalagos Turing-gépek . . . . . . . . . . . . 63
2.3.1.2. Turing-gép egy irányban végtelen szalaggal . . . 66
2.3.1.3. Nemdeterminisztikus Turing-gépek . . . . . . . . 67
2.4. További Turing-ekvivalens modellek . . . . . . . . . . . . . . . . 70
2.4.1. Többvermes automaták . . . . . . . . . . . . . . . . . . . 70
2.4.2. Számlálós gépek . . . . . . . . . . . . . . . . . . . . . . . 73
2.4.3. Közvetlen hozzáférés¶ gépek . . . . . . . . . . . . . . . . 76
2.5. Eldönthetetlen problémák . . . . . . . . . . . . . . . . . . . . . . 78
2.5.1. Turing-gépek kódolása . . . . . . . . . . . . . . . . . . . . 79
2.5.2. Egy nem rekurzívan felsorolható nyelv . . . . . . . . . . . 80
2.5.3. Egy rekurzívan felsorolható, de nem eldönthet® nyelv . . . 81
2.6. További eldönthetetlen problémák . . . . . . . . . . . . . . . . . 84
2.6.1. A megállási probléma . . . . . . . . . . . . . . . . . . . . 85
2.6.2. További Turing-gépekkel kapcsolatos eldönthetetlen prob-lémák . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
2.6.3. Rice tétele . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.6.4. A Post Megfelelkezési Probléma . . . . . . . . . . . . . . . 90
TARTALOMJEGYZÉK 5
2.6.5. Nyelvtanokkal kapcsolatos eldönthetetlen problémák . . . 93
2.6.5.1. Környezetfüggetlen nyelvtanok egyértelm¶sége. . 93
3. Bevezetés a bonyolultságelméletbe 97
3.1. NP-teljes problémák . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.1.1. Sat NP-teljes . . . . . . . . . . . . . . . . . . . . . . . . 100
3.1.2. További NP-teljes problémák . . . . . . . . . . . . . . . . 104
3.1.3. Hamilton-úttal kapcsolatos NP-teljes problémák . . . . . 106
3.2. Tárbonyolultság . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.2.1. Savitch tétele . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.2.2. PSPACE-teljes problémák . . . . . . . . . . . . . . . . . 115
6 TARTALOMJEGYZÉK
1. fejezet
Automaták és formális
nyelvek
1.1. Formális nyelvek
Akárcsak a természetes nyelvek, a formális nyelvek is szavakból épülnek fel, aszavak pedig egy véges szimbólumhalmaz elemeib®l állnak. Ezen szimbólumhal-mazt itt is ábécének, elemeit pedig bet¶knek nevezzük. Meg kell jegyezni azon-ban, hogy amíg a természetes nyelvek esetén az ábécé egy beszélt nyelv bet¶ittartalmazza, addig a formális nyelvek esetében egy ábécé tetsz®leges szimbólu-mokból állhat. Így ábécének lehet tekinteni egy programozási nyelv tokenjeinekegy részhalmazát, például a Σ1 = if, then, else, do halmazt vagy például azta Σ2 = a, b, ..., x, y, z, 1, 2, ..., 0 halmazt, ami azokat a szimbólumokat tartal-mazza, melyekb®l felépíthet® egy programozási nyelv azonosítóinak a halmaza.A fenti Σ1 és Σ2 ábécék uniója felett (ami persze szintén egy ábécé) megadha-tó például az if valtozo1 then do szó (itt jegyezzük meg, hogy az irodalombansokszor egy formális nyelv szavait mondatoknak is nevezik).
1.1.1. Deníció. Legyen Σ egy véges, nem üres halmaz. Σ-t ábécének, az ele-meit pedig bet¶knek nevezzük. Egy Σ-feletti szón a Σ bet¶inek egy tetsz®legesvéges (akár üres) sorozatát értjük. Az olyan szót ami nem tartalmaz egy bet¶tsem üres szónak nevezzük és ε-nal jelöljük. Σ∗ jelöli az összes Σ-feletti szót, Σ+
a Σ∗ − ε halmazt, l(u) jelöli az u ∈ Σ∗ szó hosszát és minden a ∈ Σ eseténla(u) jelöli az u-beli a bet¶k számát. Σ-feletti formális nyelven (vagy rövidenΣ-feletti nyelven) a Σ∗ egy részhalmazát értjük.
1.1.2. Példa. Legyen Σ = 0, 1. Akkor Σ∗ = ε, 0, 1, 00, 01, 10, 11, . . ., azalábbi nyelvek pedig mind Σ-feletti nyelvek:
∅, ε, ε, 0, 1, 10, 11, 0, 111, 05, 110, L1 = (01)n : n ≥ 0,
7
8 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
L2 = 0n1n : n ≥ 0, L3 = u ∈ Σ∗ : l0(u) = l1(u).
Néhány fenti nyelvben szerepelnek olyan kifejezések, melyek egy szó n-ik hatvá-nyát tartalmazzák valamely n természetes számra. Ezek a kifejezések, most ésa továbbiakban is, az adott szó n-szeri megismétlését jelölik.
Érdemes felhívni a gyelmet arra, hogy a fenti példában szerepl® ∅ és ε nyel-vek nem ugyanazt a nyelvet jelölik. Amíg ∅ nem tartalmaz egyetlen egy szótsem, addig ε pontosan egy szót tartalmaz, mégpedig az üres szót. Egy másikfontos megjegyzés az, hogy mivel tetsz®leges Σ ábécére a Σ∗ végtelen és egyvégtelen halmaznak megszámlálhatatlanul sok részhalmaza van, megszámlálha-tatlanul sok Σ-feletti nyelv van.
1.1.1. M¶veletek nyelveken
Az alábbiakban bemutatunk néhány alapvet®, nyelveken értelmezett m¶veletet.Ezek közül az els® csoport, melyeket Boole-féle m¶veleteknek nevezünk, a szo-kásos halmazelméleti m¶veletek: az unió, a metszet és a komplementer. Világos,hogy ha az L1 és L2 rendre Σ1 illetve Σ2-feletti formális nyelvek, akkor L1 ∪L2
és L1∩L2 is Σ1∪Σ2-feletti nyelvek, továbbá ha a L egy Σ-feletti formális nyelv,akkor a komplementere, azaz L = Σ∗ − L is az. A másik m¶veletcsoport azúgynevezett reguláris m¶veletek, melyek az unió, a konkatenáció és a Kleene-iteráció. Látható, hogy az unió Boole-féle m¶velet valamint reguláris m¶veletis egyszerre. A további két m¶veletet az alábbi módon deniáljuk.
1.1.3. Deníció. Legyen L1 és L2 két nyelv és legyen u ∈ L1, v ∈ L2. Az u ésv szavak konkatenációját úgy kapjuk, hogy a v-t az u után írjuk, azaz ha · jelölia szavakon értelmezett konkatenáció m¶veletet, akkor u ·v jelöli az u és v konka-tenációját. A · m¶veleti jelet azonban általában nem írjuk ki, vagyis egyszer¶encsak uv-t írunk. Ezek után az L1 és az L2 konkatenációja a következ®képpenadódik: L1 ·L2 = uv : u ∈ L1, v ∈ L2. A · jelet általában itt is elhagyjuk, azazL1 · L2 helyett L1L2-t írunk.
Legyen L egy formális nyelv. Akkor az L Kleene-iteráltja, amit L∗-gal jelölünk,a következ®képpen adódik: L∗ = u1 . . . un : n ≥ 0, u1, . . . , un ∈ L (az n = 0eset azt eredményezi, hogy ε ∈ L∗). A Kleene-iteráltat egy alternatív módon isdeniálhatjuk. Ehhez el®ször induktív módon deniáljuk az L n-ik hatványát,vagyis az Ln nyelvet (n ∈ N). Ha n = 0, akkor Ln = ε. Ha n = 1, akkorLn = L. Végül, ha n ≥ 2, akkor Ln = Ln−1L. Ezek után L∗ =
⋃∞n=0 L
n.
1.1.4. Példa. Legyen L1 = ε, a, b és L2 = 0, 1. Akkor L1L2 = 0, 1, a0, a1,b0, b1. (Figyeljük meg, hogy mivel L1 tartalmazza ε-t, az L1 részhalmaza azL1L2-nek.) Továbbá, L∗
1 = ε, a, b, aa, ab, ba, bb, aaa, aab, . . . és L∗2 = ε, 0, 1,
00, 01, 10, 11, 000, 001, . . .. Vajon megegyezik-e (L1L2)∗ az (L1)
∗(L2)∗ halmaz-
zal? Könnyen látható, hogy a két halmaz nem egyezik meg, hisz az a0b1a1 elemeaz (L1L2)
∗ halmaznak, de nem eleme (L1)∗(L2)
∗-nek.
1.2. GENERATÍV NYELVTANOK 9
1.1.2. Nyelvek és véges reprezentációik
A 1.1.2 példában szerepl® nyelvek közül az L1-el, L2-vel és L3-mal jelöltek vég-telen sok szót tartalmaznak, a többi nyelv véges. Egy véges nyelvet könnyenmeg lehet adni az elemeinek a felsorolásával, de hogyan lehet reprezentálni egyvégtelen formális nyelvet? Nyilvánvaló, hogy ez esetben kell találni egy végesreprezentációját a szóban forgó nyelvnek. Legyen például L egy tetsz®leges,végtelen sok szót tartalmazó formális nyelv. Megadhatunk például egy algorit-must, mely az inputjára adott u ∈ Σ∗ szóra igen-nel áll meg, ha u ∈ L ésnem-mel, ha u 6∈ L. Kés®bb az ily módon megadható nyelveket nevezzükmajd eldönthet®nek vagy rekurzívnak, azaz az algoritmusunk eldönti, hogy egytetsz®leges szó eleme-e a nyelvnek vagy sem. A kés®bbi fejezetek során érdekeslesz az az eset, amikor az algoritmusunk olyan, hogy esetleg nem áll meg néhányolyan bemeneten, ami nem eleme L-nek. Ekkor nem mondhatjuk azt, hogy azalgoritmus eldönti az L-et, hisz nem tudhatjuk, hogy azért nem kapunk választegy bizonyos bemenetre mert az algoritmus még nem jutott el addig a pontig,amikor majd megadja a választ, vagy azért mert esetleg végtelen ciklusba esett.Azokat a nyelveket, melyekhez van olyan algoritmus, ami adott u ∈ Σ∗ szóraigen-nel áll meg, ha u ∈ L és nem-mel áll meg, vagy esetleg nem áll meg,ha u 6∈ L nevezzük majd kés®bb Turing-felismerhet®nek, vagy rekurzívan felso-rolhatónak. Ezen nyelvekre nem lehet eldönteni egy tetsz®leges szóról, hogy azeleme-e a nyelvnek vagy sem. Meg lehet viszont adni egy olyan algoritmust, amiképes felsorolni ezen nyelvek elemeit. Innen a rekurzívan felsorolható elnevezés.
A formális nyelvek alapvet® reprezentációi az úgynevezett generatív nyelvtanokés a különböz® véges sok állapottal rendelkez® gépek. A következ®kben ezeketaz eszközöket ismertetjük.
1.2. Generatív nyelvtanok
A generatív nyelvtanokat Noam Chomsky amerikai nyelvész vezette be 1956-ban. Célja az volt, hogy a segítségükkel modellezze a természetes nyelvek szin-taxisát. A generatív nyelvtanok jellemz®en egy kezd®szimbólumból kiindulva,egy véges szabályhalmaz segítségével szavakat építenek fel. A felépített szavakstruktúráját persze el®re meghatározza a felhasznált szabályok szerkezete. Aszabályokra alkalmazott megszorítások alapján Chomsky megalkotta a nyelvta-nok egy hierarchiáját, amit ma a tiszteletére Chomsky hierarchiának nevezünk.Mint kés®bb kiderült, a különböz® típusú nyelvtanok közül az egyik, az úgyne-vezett 2-es típusú vagy környezetfüggetlen nyelvtan, alkalmas a programozásinyelvek szintaxisának megadására is. Például az ezen szintaxisok leírására szol-gáló Backus-Naur Form (BNF) is valójában egy környezetfüggetlen nyelvtanokmegadására szolgáló metanyelv.
1.2.1. Deníció. Generatív nyelvtannak (vagy röviden csak nyelvtannak) ne-vezünk egy olyan G = (V,Σ, R, S) rendszert, ahol
10 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
• V az úgynevezett nemterminálisok ábécéje,
• Σ a terminálisok ábécéje (feltesszük, hogy V ∩ Σ = ∅),
• S egy kitüntetett szimbólum a V -b®l amit kezd®szimbólumnak nevezünk és
• R pedig u → v alakú szabályok véges halmaza, ahol u, v ∈ (V ∪ Σ)∗ és utartalmaz legalább egy nemterminálist.
Most megnézzük, hogy hogyan lehet egy nyelvtant szavak generálására felhasz-nálni. Ha ezt tudjuk, akkor deniálni tudjuk azt is, hogy mit értünk egy nyelvtanáltal generált nyelven.
1.2.2. Deníció. Legyen G = (V,Σ, R, S) egy nyelvtan és u, v ∈ (V ∪Σ)∗. Aztmondjuk, hogy a v egy lépésben levezethet® u-ból a G-ben (jele u⇒G v), ha u ésv felírható u = αγβ és v = αγ′β alakban (α, β, γ, γ′ ∈ (V ∪Σ)∗) és R-ben van egyγ → γ′ alakú szabály. Az így kapott relációt a G által meghatározott közvetlenlevezetési relációnak nevezzük. Amikor egyértelm¶, hogy milyen nyelvtanról vanszó, akkor ⇒G-ben a G indexet általában elhagyjuk.
A G által meghatározott levezetési reláció (jele ⇒∗G) a következ®képpen adódik
(a G indexet itt is elhagyhatjuk, amennyiben ez nem okoz félreértést). u ⇒∗ vpontosan akkor teljesül, ha u megkapható v-b®l a közvetlen levezetési relációvéges sok (akár 0) számú alkalmazásával. Formálisan, u⇒∗ v, ha létezik olyann ≥ 0 és w0, w1, . . . , wn ∈ (V ∪Σ)∗ szavak, hogy u = w0, minden 0 ≤ i ≤ n−1-rewi ⇒ wi+1 és wn = v. Tehát ⇒∗ a ⇒ reláció reexív, tranzitív lezártja.
A G által generált nyelv (jele L(G)) azon Σ∗-beli szavak halmaza, melyek meg-kaphatók (levezethet®k) a kezd®szimbólumból a levezetési reláció alkalmazásával:L(G) = u ∈ Σ∗ : S ⇒∗ u.
1.2.3. Példa. Az alábbiakban nézünk néhány példát nyelvtanokra. A nyelvta-nok által generált nyelvekkel már találkoztunk a 1.1.2 példában, de fel fognakbukkanni a fejezet további részeiben is.
1. Legyen G1 = (V,Σ, R, S), ahol V = S, Σ = 0, 1 és R = S →01S, S → ε. Ebben az esetben adódik például a következ® levezetés G1-ben: S ⇒ 01S ⇒ 0101S ⇒ 0101, vagyis S ⇒∗ 0101. Tehát 0101 ∈ L(G1),továbbá a G1 által generált nyelv: L(G1) = (01)n : n ≥ 0.
2. Legyen G2 = (V,Σ, R, S), ahol V = S, Σ = 0, 1 és R = S →0S1, S → ε. Akkor igaz, hogy S ⇒ 0S1 ⇒ 00S11 ⇒ 0011, vagyis S ⇒∗
0011. Tehát 0011 ∈ L(G2). A G2 által generált nyelv pedig L(G2) =0n1n : n ≥ 0.
A továbbiakban alkalmazni fogjuk a következ® jelölést. Ha egy nyelvtannak azα bal oldalú szabályai rendre α→ β1, . . . , α→ βn valamely n ≥ 2-re, akkor eztígy is írhatjuk: α→ β1 | . . . | βn.
1.2. GENERATÍV NYELVTANOK 11
1.2.1. A nyelvtanok f® típusai
Attól függ®en, hogy milyen megszorításokat teszünk egy nyelvtan szabályaira,különböz® generatív er®vel rendelkez® nyelvtant kapunk. A nyelvtanoknak négyf® típusát különböztetjük meg, ezeket deniáljuk az alábbiakban.
1.2.4. Deníció. Legyen G = (V,Σ, R, S) egy tetsz®leges nyelvtan. Azt mond-juk, hogy a G egy . . .
. . . jobblineáris (vagy 3-as típusú) nyelvtan, ha R-ben minden szabályA→ uB vagy A→ u alakú, ahol A,B ∈ V és u ∈ Σ∗.
. . . környezetfüggetlen (vagy 2-es típusú) nyelvtan, ha R-ben mindenszabály A→ u alakú, ahol u ∈ (V ∪ Σ)∗.
. . . környezetfügg® (vagy 1-es típusú) nyelvtan, ha R-ben minden szabályαAβ → αγβ alakú, ahol α, β, γ ∈ (V ∪ Σ)∗ és γ 6= ε (ez alól kivételt csakaz S → ε szabály képezhet, de ha van ilyen szabály G-ben, akkor S nemfordulhat el® szabály jobb oldalán).
. . . általános (vagy 0-s típusú) nyelvtan, ha a szabályokra semmilyen meg-kötés nincsen.
Ha L egy i-típusú (0 ≤ i ≤ 3) nyelvtannal generálható nyelv, akkor L-et i-típusúnyelvnek nevezzük. Az összes i-típusú nyelv osztályát Li-vel jelöljük.
1.2.5. Példa. A 1.2.3 példában szerepl® G1 nyelvtan egy jobblineáris nyelvtan,tehát L(G1) ∈ L3. Továbbá, mivel a G2 nyelvtan egy környezetfüggetlen nyelv-tan, L(G2) ∈ L2.
A fenti nyelvosztályokkal kapcsolatban az egyik legalapvet®bb kérdés az, hogyhogyan viszonyulnak egymáshoz a tartalmazás szempontjából. A továbbiakbanekvivalensnek nevezünk két nyelvtant, ha ugyanazt a nyelvet generálják. Vilá-gos, hogy minden 3-as típusú nyelvtan egyben 2-es típusú is, és bármely nyelvtanegyben 0-s típusú is. Továbbá, kés®bb látni fogjuk, hogy minden környezet-független nyelvtanhoz megadható egy úgynevezett ε-mentes nyelvtan, melyb®lkövetkezik, hogy minden környezetfüggetlen nyelvtan egyben környezetfügg® is.Mindezekb®l pedig az következik, hogy L3 ⊆ L2 ⊆ L1 ⊆ L0. A következ® tételmég ennél is többet állít, nevezetesen, hogy a fenti tartalmazások mindegyikevalódi.
1.2.6. Tétel. (Chomsky-féle hierarchia) L3 ⊂ L2 ⊂ L1 ⊂ L0.
A tétel els® két tartalmazását a következ® részekben fogjuk bizonyítani, az utolsótartalmazásról pedig a következ® fejezetben lesz szó.
12 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
1.3. Reguláris nyelvek
Ebben a fejezetben az úgynevezett reguláris nyelvekkel ismerkedünk meg kö-zelebbr®l. Egy Σ = a1, . . . , an (n ≥ 1) ábécé feletti nyelvet regulárisnaknevezzük ha megkapható az ∅ illetve az a1, . . . , an nyelvekb®l a regulárism¶veletek véges számú alkalmazásával. Megvizsgáljuk, hogy ezeket a nyelveketmilyen eszközökkel lehet megadni. Látni fogjuk, hogy a jobblineáris nyelvtanokpontosan ezeket a nyelveket deniálják. El®ször viszont egy olyan automatamo-dellt mutatunk be, amivel szintén a reguláris nyelveket lehet reprezentálni.
1.3.1. Véges automaták
A véges automaták olyan egyszer¶, véges sok állapottal rendelkez® gépek, me-lyek modelljei a mindennapjainkban el®forduló egyszer¶ gépek, például liftek,elektromos ajtók vagy italautomaták vezérl®egységeinek.
A következ® példában egy el®adóterem egyik fel-le mozgatható táblájának am¶ködését szeretnénk modellezni egy véges automata segítségével.
1.3.1. Példa. Az említett tábla a következ®képpen m¶ködik. A Fel, Le és Áljgombokkal lehet a táblát értelemszer¶en irányítani. Ha például a tábla fent van,akkor nem csinál semmit a Fel vagy Állj gombot megnyomása esetén, de elindullefele a Le gomb megnyomására. Milyen f®bb állapotai vannak tehát a táblának?Az alábbiakban felsoroljuk ezeket az állapotokat. Ezek lesznek a táblát irányítóautomata állapotai is. Továbbá, minden állapothoz bevezetünk egy informatívjelet is:
• ⇑: felfele megy a tábla,
• ⇓: lefele megy a tábla,
• u : fent van a tábla,
• t : lent van a tábla,
• S : a tábla az alsó és fels® végállapota között van.
Milyen jeleket kaphat a tábla a m¶ködése során? Már említettük a Fel, Le ésÁllj gombokat. Ezeken kívül egy-egy szenzor jelzi a táblának ha az elért a legfels®illetve a legalsó pozíciójába. A bemen® jeleket tehát a következ®képpen adhatjukmeg:
• f : a Fel gomb megnyomása,
• l : a Le gomb megnyomása,
• s : az Állj gomb megnyomása,
1.3. REGULÁRIS NYELVEK 13
1.1. ábra. Egy el®adóterem tábláját m¶ködtet® automata modellje
S
⇑
⇓f, l
f, l u
t
f, s
f
s
ss
f
l, s
a
l
l
t
• t : jel a szenzortól, hogy a tábla elért a legfels® pozícióba,
• a : jel a szenzortól, hogy a tábla elért a legalsó o pozícióba.
Ezek után a táblát modellez® véges automata m¶ködése az 1.1. ábrán láthatógráal adható meg. A gráf szögpontjai a tábla fent felsorolt állapotai, a címkézettélei pedig azt jelzik, hogy az élen szerepl® jel hatására milyen változás következikbe a tábla állapotában. A fenti gráf tehát a táblát modellez® véges automataúgynevezett állapotátmeneti gráfját adja meg.
A véges automaták alkalmazhatók szavak elfogadására és ezáltal nyelvek felisme-résére is. Ha az automatában kijelölünk egy kezd®állapotot és végállapotokat,akkor vizsgálni lehet, hogy milyen jelsorozatok viszik az automatát a kezd®álla-potból valamilyen végállapotba. Azt mondjuk, hogy az ilyen jelsorozatokat azautomata elfogadja, az automata által felismert nyelv pedig az automata általelfogadott jelsorozatok, azaz szavak, összessége. Mint kés®bb látni fogjuk, avéges automaták pontosan a reguláris nyelveket ismeri fel.
1.3.2. Deníció. Formálisan a determinisztikus véges automata (vagy rövidenvéges automata, DVA) egy olyan (Q,Σ, δ, q0, F ) rendszer, ahol
• Q az állapotok véges, nem üres halmaza,
• Σ : egy ábécé a bemen® jelek (bet¶k) halmaza,
• δ : Q× Σ→ Q az átmeneti függvény,
• q0 ∈ Q : a kezd®állapot,
14 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
• F ⊆ Q pedig a végállapotok véges halmaza.
Hogyan lehet tehát a fent deniált véges automatát szavak felismerésére hasz-nálni? Az M m¶ködése egy u = a1 . . . an ∈ Σ∗ szón (n ≥ 0, a1, . . . , an ∈ Σ) akövetkez®képpen írható le. M kezdetben a q0 kezd®állapotban van, majd miutánelolvasta az a1 bet¶t - az átmenetfüggvénye alapján - átmegy egy q1 állapotba.Ezután elolvassa az a2 bet¶t és átmegy egy q2 állapotba. Ezt addig folytatja,amíg el nem éri az utolsó bet¶t, amit elolvasva átmegy egy qn állapotba. Ha aqn ∈ F akkor M elfogadja az u szót, egyébként pedig elutasítja azt. Ezek utánaz M által felismert nyelv azon Σ∗-beli szavak halmaza, melyeket M elfogad.Formálisan a fentiek a következ®képpen írhatók le.
1.3.3. Deníció. Legyen M = (Q,Σ, δ, q0, F ) egy véges automata. El®szörmegadjuk δ kiterjesztését Σ-feletti szavakra, amit szintén δ-val jelölünk. Legyentehát u ∈ Σ∗ és q ∈ Q. Ha u = ε, akkor legyen δ(q, u) = q. Ha pedig u = u′a,ahol u′ ∈ Σ∗ és a ∈ Σ, akkor legyen δ(q, u) = δ(δ(u′, q), a). Ezek után az Máltal felismert nyelv: L(M) = u ∈ Σ∗ | δ(q0, u) ∈ F.
A véges automaták állapotátmeneti függvényét szokás táblázatosan is megadni,de egy ennél elterjedtebb módszer az, hogy magát az automatát adjuk meg azúgynevezett állapotdiagram segítségével, ahogy azt a bevezet® 1.3.1. példábanláttuk is. Egy M = (Q,Σ, δ, q0, F ) DFA állapotdiagramja egy olyan irányítottgráf, melynek csúcsai az M állapotaival címkézettek, és két csúcs, mondjukp, q ∈ Q között pontosan akkor vezet egy a ∈ Σ-val címkézett él, ha δ(p, a) =q. Az állapotdiagramban az M kezd®állapotát az a csúcs jelzi, melybe egykiindulási pont nélküli él vezet, a végállapotokat pedig a bekarikázott csúcsokjelzik. Ilyenkor nem kell megadni külön a Q és Σ halmazokat, mert feltehetjük,hogy Q az állapotdiagram csúcsainak, a Σ-pedig az éleken szerepl® jeleknek ahalmaza. Nézzünk a fentiekre egy példát.
1.3.4. Példa. Legyen M1 az 1.2. ábrán látható állapotdiagrammal deniáltautomata. Könnyen látható, hogy M1 az (01)n (n ≥ 0) alakú szavakra kerülvégállapotba (speciálisan az ε-ra is, hiszen a kezd®állapot egyben végállapot is).Tehát L(M1) = (01)n : n ≥ 0, azaz M1 éppen a 1.2.3 példabeli G1 nyelvtanáltal generált nyelvet ismeri fel.
A következ®kben egy olyan DFA-t szeretnénk deniálni, mely azon 0, 1 ábé-cé feletti szavakat ismeri fel, melyekben páros sok 0 és páros sok 1-es szerepel.Hogyan fogjunk hozzá a keresett DFA meghatározásához? El®ször is el kell dön-tenünk, hogy hány állapotra lesz szükségünk. Mindig legalább annyi állapotravan szükség, ahány alapvet® tulajdonságát kell a bemen® szó aktuálisan elol-vasott részének megkülönböztetni. Ebben az esetben melyek ezek az alapvet®tulajdonságok? A bemenet aktuálisan elolvasott része páros vagy páratlan sok0-t és páros vagy páratlan sok 1-est tartalmazhat. Vagyis ezek szerint négy kü-lönféle eset jöhet számításba, tehát a feladatra alkalmas automatának legalábbnégy állapota kell, hogy legyen. Amint azt látni fogjuk, a négy állapot elegend®is. Legyen M2 a 1.3. ábrán látható automata.
1.3. REGULÁRIS NYELVEK 15
1.2. ábra. Az M1 automata állapotdiagramja
0
1
q1q0
1 0
0, 1
q2
1.3. ábra. Az M2 automata állapotdiagramja
q1q0
q2 q2
1
10 00 0
1
1
16 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
Látható, hogy M2 pontosan azokra az u ∈ Σ∗ szavakra kerül végállapotra me-lyekben páros sok 0 és páros sok 1-es van. érdemes megjegyezni, hogy a fentihezhasonló automatát kapnánk akkor is, ha olyan automatát kellene csinálnunk,ami a páros sok 0-t és páratlan sok 1-et tartalmazó szavakat fogadja el, vala-mint a maradék két esetben is (páratlan számú 0 és páros 1-es illetve páratlan0 és páratlan 1-es). A különböz® esetekben csupán az automaták végállapotaitkell megfelel® módon megválasztanunk.
A véges automatával felismerhet® nyelvek osztályát felismerhet® nyelveknek ne-vezzük és REC-el jelöljük. Érdekes kérdés lehet az, hogy ha adott egy L fel-ismerhet® nyelv, akkor vajon egyértelm¶en meghatározott-e az L-et felismer®minimális állapotszámú automata. A következ® részben ezzel a kérdéssel foglal-kozunk.
1.3.1.1. Minimális automata
Két DVA-t ekvivalensnek nevezünk ha ugyanazt a nyelvet ismerik fel. LegyenM = (Q,Σ, δ, q0, F ) egy DVA. Azt mondjuk, hogy M egy minimális automa-ta, ha nincs olyan M -mel ekvivalens másik DVA, melynek kevesebb állapotavan, mint M -nek. Továbbá, az M -et redukáltnak nevezzük, ha minden állapotaelérhet®, azaz minden q ∈ Q állapothoz van olyan u ∈ Σ∗ szó, hogy δ(q0, u) = q.
Egyszer¶en belátható, hogyM -hez megadható egy ekvivalens redukált automa-ta: el®ször kiszámoljuk az 1. algoritmus segítségével az M elérhet® állapotait,majd a nem elérhet®ket elhagyjuk M -b®l. A kapott M ′ automata egy M -melekvivalens redukált automata lesz.
Algorithm 1 Az elérhet® állapotok D halmazának kiszámításaBemenet: egy M = (Q,Σ, δ, q0, F ) DVA;Kimenet: M elérhet® állapotainak D halmaza;i← 0;Di ← q ∈ Q | ∃a ∈ Σ : δ(q0, a) = q;repeati← i+ 1;Di ← q ∈ Q | ∃p ∈ Di−1,∃a ∈ Σ : δ(p, a) = q;
until Di = Di−1;D ← Di.
Megjegyezzük, hogy mivel a Q véges, az 1. algoritmus véges lépés után terminálés az is könnyen látható, hogy a kimenetként adottD halmaz ténylegM elérhet®állapotainak a halmaza lesz.
Nyilvánvaló, hogy ha M egy minimális automata, akkor M szükségképpen re-dukált is. Tegyük fel ugyanis, hogy M nem redukált. Akkor tegyük redukálttáés legyen a kapott automata M ′. M ′ ekvivalens M -mel és kevesebb állapotavan neki, tehát M nem lehetett minimális, ami nyilván ellentmondás. Követke-
1.3. REGULÁRIS NYELVEK 17
zésképpen M redukált kell, hogy legyen.
A továbbiakban el®ször megadunk egy szükséges és elégséges feltételt arra nézve,hogy egy nyelv felismerhet® legyen. A kapott eredményeket felhasználva bebizo-nyítjuk, hogy ha egy nyelvet felismer® minimális automata létezik, akkor az azállapotok átcímkézését®l eltekintve egyértelm¶en meghatározott. Végül adunkegy algoritmust, ami egy nyelvet felismer® M automatához megkonstruálja azM -mel ekvivalens minimális automatát.
1.3.5. Deníció. Legyen Σ egy ábécé és L ⊆ Σ∗ egy nyelv. Deniálunk egy ρLbináris relációt a Σ∗-on a következ®képpen. Minden u, v ∈ Σ∗-ra legyen uρLv,feltéve, hogy minden z ∈ Σ∗ ha szóra uz ∈ L akkor és csak akkor, ha vz ∈ L.
Könnyen belátható az alábbi tétel.
1.3.6. Tétel. Legyen L ⊆ Σ∗ egy tetsz®leges Σ ábécére. Akkor a ρL reláció egyjobbkongruencia Σ∗-n.
Bizonyítás. Egyrészt nyilvánvaló, hogy ρL egy ekvivalenciareláció. Azt kell mégmegmutatni, hogy ha uρLv teljesül valamely u, v ∈ Σ∗ szavakra, akkor tetsz®le-ges z ∈ Σ∗ szóra uzρLvz is teljesül. Ezt az állítást indirekt módon bizonyítjuk.Tegyük fel tehát, hogy vannak olyan u, v, z ∈ Σ∗ szavak, melyekre igaz, hogyuρLv de uzρLvz nem teljesül. Ez azt jelenti, hogy van olyan z′, melyre igaz,hogy uzz′ ∈ L de vzz′ 6∈ L, vagy fordítva, azaz uzz′ 6∈ L de vzz′ ∈ L. Tegyükfel, hogy az uzz′ ∈ L és vzz′ 6∈ L eset áll fenn (a másik esetben a bizonyítás ha-sonlóan folytatható). Ekkor viszont az y = zz′ szóra azt kapjuk, hogy uy ∈ L devy 6∈ L, ami ellentmond annak, hogy uρLv. Ezzel a tételt bebizonyítottuk.
A fentiek alapján, a ρL relációt az L nyelv szintaktikus jobbkongruenciájá-nak nevezzük. A következ®, úgynevezett Myhill-Nerode tétel bizonyításábanlátni fogjuk, hogy szoros kapcsolat van egy felismerhet® L nyelv szintaktikusjobbkongruenciájának ekvivalencia-osztályai és egy, az L-et felismer® minimálisállapotszámú Mmin automata állapotai között. Ezt a kapcsolatot a követke-z®képpen írhatjuk le. Tekintsük az Mmin automata egy u bemen® szavát éstegyük fel, hogy az Mmin az u egy x prexét már elolvasta továbbá az y az aszó, ami még hátra van u-ból, azaz u = xy. Akkor az Mmin aktuális q álla-potának tulajdonképpen pontosan a [x]ρL
ekvivalencia-osztályt kell eltárolnia,hiszen vagy az igaz, hogy minden [x]ρL-beli z szóra zy ∈ L vagy pedig az, hogyminden z ∈ [x]ρL
-re zy 6∈ L.
1.3.7. Tétel. (Myhill-Nerode tétel.) Legyen L ⊆ Σ∗ valamely Σ ábécére. Akkora következ® három állítás ekvivalens:
(i) L felismerhet® automatával.
(ii) L egy Σ∗-on értelmezett véges index¶ jobbkongruencia bizonyos ekvivalencia-osztályainak egyesítése.
18 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
(iii) A ρL reláció véges index¶.
Bizonyítás. El®ször azt mutatjuk meg, hogy az (i)-b®l következik (ii). Ehhezlegyen M = (Q,Σ, δ, q0, F ) egy olyan DVA ami L-et ismeri fel. Legyen to-vábbá ρM a következ® reláció Σ∗-on. Minden u, v ∈ Σ∗ szóra legyen uρMv,ha δ(q0, u) = δ(q0, v). Világos, hogy ha M redukált, akkor ρM ekvivalencia-osztályainak száma megegyezik |Q|-val, egyébként pedig kisebb, mint |Q|. Nemnehéz belátni továbbá, hogy a ρM egy jobbkongruencia, ezért, mivel Q véges,ρM egy véges index¶ jobbkongruencia Σ∗-on.
Jelölje minden u ∈ Σ∗ szóra [u]ρM a ρM u-t tartalmazó ekvivalencia-osztályát.Ekkor, L =
⋃u∈Σ∗([u]ρM
| δ(q0, u) ∈ F ) vagyis L egy véges index¶ jobbkong-ruencia bizonyos ekvivalencia-osztályainak az egyesítése, amit bizonyítani akar-tunk.
Azt, hogy (ii)-b®l következik (iii) az alábbi módon látjuk be. Legyen ρ egy olyanjobbkongruencia, melyre igazak a tétel (ii)-es pontjának feltételei. Elég megmu-tatni, hogy ha uρv teljesül valamely u, v ∈ Σ∗ szavakra, akkor uρLv is teljesül.Valóban, ez pontosan azt jelenti, hogy ρ ekvivalencia-osztályai részhalmazai aρL ekvivalencia-osztályainak, amib®l következik, hogy ha ρ véges index¶, akkorρL is az. Legyen tehát u, v ∈ Σ∗ úgy, hogy uρv. Mivel ρ jobbkongruencia,kapjuk, hogy minden z ∈ Σ∗ esetén uzρvz is teljesül. Továbbá, mivel L a ρbizonyos ekvivalencia-osztályainak egyesítése, az is igaz, hogy uz ∈ L pontosanakkor igaz, amikor vz ∈ L. Következésképpen uρLv is teljesül, amit bizonyítaniakartunk.
Végezetül megmutatjuk, hogy (iii)-ból következik (i). A ρL ekvivalencia-osztá-lyaiból megkonstruálunk egy L-et felismer® automatát. Legyen Mmin = (Qmin ,Σ, δmin , qmin , Fmin) egy DVA, ahol a komponensek a következ®képpen deniál-juk:
• Qmin = [u]ρL| u ∈ Σ∗, azaz Qmin a ρL ekvivalencia-osztályainak a
halmaza,
• qmin = [ε]ρL,
• δmin : Qmin ×Σ→ Qmin úgy, hogy minden u ∈ Σ∗ szóra és a ∈ Σ bet¶re,δmin([u]ρL
, a) = [ua]ρL,
• Fmin = [u]ρL| u ∈ L.
Megmutatjuk, hogy L(Mmin) = L. Legyen w ∈ Σ∗. A deníciókból következik,hogy w ∈ L(Mmin) pontosan akkor teljesül, ha δmin([ε]ρL
, w) ∈ Fmin . A whossza szerinti indukcióval könnyen belátható, hogy δmin([ε]ρL , w) ∈ Fmin akkorés csak akkor teljesül, ha [w]ρL
∈ Fmin . Végül az Fmin deníciója szerint [w]ρL∈
Fmin pontosan akkor igaz, amikor w ∈ L. Azt kaptuk tehát, hogy w ∈ L(Mmin)akkor és csak akkor, ha w ∈ L, vagyis L(Mmin) = L, amit bizonyítani akartunk.
1.3. REGULÁRIS NYELVEK 19
A Myhill-Nerode tétel segítségével el lehet dönteni, hogy egy adott nyelv felis-merhet®"|e.
1.3.8. Példa. Legyen L = u ∈ a, b∗ | la(u) = lb(u). A Myhill-Nerode tételsegítségével megmutatjuk, hogy L nem felismerhet®. Ehhez elég megmutatni,hogy tetsz®leges n,m ≥ 0 számokra, ha n 6= m, akkor (an, am) 6∈ ρL. Valóban,ebb®l már következik, hogy ρL végtelen index¶, ami a Myhill-Nerode tétel szerintazt bizonyítja, hogy L nem felismerhet®. Indirekt módon tegyük fel, hogy vannakolyan n,m ≥ 0, n 6= m számok, hogy (an, am) ∈ ρL. Ekkor viszont a ρLdeníciója szerint minden z ∈ a, b∗ esetén anz ∈ L ⇔ amz ∈ L. Válasszukz-nek bn-t. Ekkor anz = anbn ∈ L, amíg amz = ambn 6∈ L. Ellentmondáshozjutottunk, ami bizonyítja azt, hogy L nem lehet felismerhet®.
A Myhill-Nerode tétel egyik fontos következményeként megmutatjuk azt, hogyha L egy felismerhet® nyelv, akkor az L-et felismer® minimális állapotszámúautomata egyértelm¶en meghatározott.
1.3.9. Következmény. Legyen L egy Σ-feletti felismerhet® nyelv. Az L-etfelismer® DVA az állapotainak átcímkézését®l eltekintve egyértelm¶en meghatá-rozott.
Bizonyítás. Legyen Mmin a 1.3.7. tétel bizonyításában megkonstruált DVA.Azt már láttuk, hogy Mmin L-et ismeri fel. Most megmutatjuk, hogy Mmin
minimális is. Tegyük fel, hogy L-et felismeri egy M = (Q,Σ, δ, q0, F ) DVA is.Legyen ρM a Myhill-Nerode tétel bizonyításában deniált, M -t®l függ® reláció.A tétel bizonyításában láttuk, hogy a ρM reláció nomítja a ρL relációt, azazha uρMv teljesül valamely u, v ∈ Σ∗ szavakra, akkor uρLv is teljesül. EzértρL-nek legfeljebb annyi ekvivalencia-osztálya van mint ρM -nek. Ebb®l, mivelρM ekvivalencia-osztályainak száma legfeljebb |Q|, kapjuk, hogy |Qmin | ≤ |Q|,tehát Mmin minimális.
Most tegyük fel, hogy M is minimális, azaz |Qmin | = |Q|. Megmutatjuk, hogyMmin és M izomorfak egymással abban az értelemben, hogy csak az állapotaikcímkéiben térnek el egymástól. Ehhez elég megmutatni, hogy van egy olyanϕ : Qmin → Q bijekció, melyre teljesül, hogy minden u ∈ Σ∗ szóra és a ∈ Σ-ra,ϕ(δmin([u]ρL , a)) = δ(ϕ([u]ρL), a).
Legyen ϕ : Qmin → Q az a leképezés, mely minden u ∈ Σ∗ szóra az [u]ρL
ekvivalencia-osztályhoz hozzárendeli a δ(q0, u) ∈ Q állapotot. El®ször azt kellbelátni, hogy ez a leképezés jól deniált. Ezt indirekt módon látjuk be. Eh-hez tegyük fel, hogy vannak olyan u, v ∈ Σ∗ szavak, hogy [u]ρL = [v]ρL , deδ(q0, u) 6= δ(q0, v), azaz [u]ρM
6= [v]ρM. Ebb®l, mivel a ρM reláció nomítja a
ρL relációt, következik, hogy ρL-nek kevesebb ekvivalencia-osztálya van, mintρM -nek . Továbbá, mivel M minimális, következik, hogy redukált is, vagyisρM ekvivalencia-osztályinak száma megegyezik |Q|-val. Ezért ρL-nek kevesebbekvivalencia-osztálya van, mint |Q|, vagyis |Qmin | < |Q|. Ez viszont ellentmon-dás, hisz feltettük, hogy M minimális.
20 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
Ezek után az, hogy ϕ szürjektív következik abból, hogy M minimális és ígyredukált is, tehát minden állapota elérhet®. Az pedig, hogy ϕ injektív következikabból, hogy |Q| = |Qmin |. Kapjuk tehát, hogy a ϕ egy bijekció.
Végezetül, legyen u ∈ Σ∗ és a ∈ Σ. Akkor ϕ(δmin([u]ρL, a)) = δ( ϕ([u]ρL
, a)teljesül mivel
ϕ(δmin([u]ρL, a)) = ϕ([ua]ρL
) = δ(q0, ua) = δ(δ(q0, u), a) = δ( ϕ([u]ρL, a).
Az el®bbi tétel tehát azt állítja, hogy ha L egy felismerhet® nyelv, akkor az L-etfelismer® minimális automata izomora erejéig egyértelm¶en meghatározott, denem ad egy algoritmikus módszert a minimális automata kiszámolásához. Azalábbiakban megadott 2. algoritmus pontosan ezt a hiányosságot pótolja.
Algorithm 2 Minimális DVA-t kiszámoló algoritmusBemenet: egy redukált M = (Q,Σ, δ, q0, F ) DVA;i← 0;ρi ← (p, q) ∈ Q×Q | p, q ∈ F ∨ p, q 6∈ F;repeati← i+ 1;ρi ← (p, q) ∈ Q×Q | (p, q) ∈ ρi−1 ∧ ∀a ∈ Σ : (δ(p, a), δ(q, a)) ∈ ρi−1;
until ρi = ρi−1;Qmin ← [q] | q ∈ Q //[q] jelöli a ρi q-t tartalmazó ekvivalencia-osztályát;∀q ∈ Q, ∀a ∈ Σ : δmin([q], a)← [δ(q, a)];Fmin ← [q] | q ∈ F;Kimenet: Mmin = (Qmin ,Σ, δmin , Fmin).
Világos, hogy tetsz®leges L felismerhet® nyelv és az ®t felismer®M = (Q,Σ, δ, q0, F )redukált DVA esetén a 2. algoritmus terminál, hiszen Q véges. Azt sem nehézbelátni, hogy az algoritmus által az M -hez kiszámolt Mmin automata is azL-et ismeri fel. Továbbá Mmin -nek legfeljebb annyi állapota van, mint a ρLekvivalencia-osztályainak a száma, tehát Mmin minimális is.
1.3.10. Példa. Tekintsük az 1.4. ábra bal oldalán látható véges automatát. Aminimalizáló algoritmus erre az automatára a következ® relációkat számolja ki:
• ρ0 = q0, q3, q1, q2, q4, q5
• ρ1 = q0, q3, q2, q5, q1, q4
• ρ2 = q0, q3, q2, q5, q1, q4
Ezt felhasználva, a fenti automatával ekvivalens minimális automata a 1.4. ábrajobb oldalán látható DFA.
1.3. REGULÁRIS NYELVEK 21
1.4. ábra. Példa automata minimalizálására
b
b
ab
baa
b
b
a
a
b
ba a
b
a
aq0 q1
q3q4
q2
[q2]
[q0] [q1]
q5 ⇒
1.3.1.2. Nemdeterminisztikus véges automata.
Létezik a véges automatáknak egy általánosabb verziója is, ezek a nemdetermi-nisztikus véges automaták. A nemdeterminizmus itt azt jelenti, hogy az automa-ta a szó olvasása közben egy bizonyos ponton egynél több állapotba is átmehet.Ily módon az automata számítási sorozata ezen a ponton több részre ágazik ésminden ágon egy külön számítása indul az automatának a még el nem olvasottrészszón. El®fordulhat az is, hogy az automata nem tud átmenni egy állapotbasem. Ekkor a szóban forgó ágon az automata számítása befejez®dik, vagyis azonaz ágon a számítási sorozat elhal. Egy nemdeterminisztikus véges automataakkor fogad el egy szót, ha a szón az összes lehetséges q0-ból induló számításisorozata közül legalább egy végigolvassa a szót és végállapotban végz®dik.
1.3.11. Deníció. Formálisan a nemdeterminisztikus véges automata (NVA)egy olyan M = (Q,Σ, δ, q0, F ) rendszer, ahol Q, Σ, q0 és F ugyanazok mint aDVA esetében, δ viszont nem Q-ba, hanem Q részhalmazainak halmazába képez,azaz δ : Q × Σ → P(Q). Most is megadjuk a δ kiterjesztését Σ-feletti szavak-ra, amit szintén δ-val jelölünk. Legyen u ∈ Σ∗ és q ∈ Q. Ha u = ε, akkorlegyen δ(q, u) = q. Ha pedig u = u′a, ahol u′ ∈ Σ∗ és a ∈ Σ, akkor legyenδ(q, u) =
⋃p∈δ(p,u′) δ(q, a). Tehát δ(q, u) pontosan azoknak az állapotoknak a
halmaza, melyek elérhet®k az u hatására a q állapotból. Ezt felhasználva az Máltal felismert nyelv: L(M) = u ∈ Σ∗ | δ(q0, u) ∩ F 6= ∅.
1.3.12. Példa. Legyen M3 az 1.5. ábrán látható automata. L(M3) pontosanazokat az u ∈ Σ∗ szavakat tartalmazza melyekben a szó végét®l számolt harmadik
22 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
1.5. ábra. Az M3 automata állapotdiagramja
q0
0, 1
1q1 q2 q3
0, 1 0, 1
1.6. ábra. Az M3 automata számítási fája az 1101 szón
q0
q0
q0
q1
q1
q1
q2
q2
q3
q0
q2
1
1
1 1
0
q0
1
1
1
00
1
q3
pozíció 1-es. M3 különböz® számítási sorozatai például az u = 1101 szón a 1.6.ábrán látható fával szemléltethet®ek.
Az NVA deníciójából látszik, hogy minden DVA egyben speciális NVA is, tehátminden nyelv ami felismerhet® DVA-val az felismerhet® NVA-val is. A megle-p®bb inkább az lehet, hogy a nemdeterminizmus nem nyújt plusz számítási er®taz automatának, ahogy azt a következ® tétel állítja.
1.3.13. Tétel. A nemdeterminisztikus véges automatával felismerhet® nyelvekosztálya megegyezik a (determinisztikus) véges automatával felismerhet® nyelvekosztályával.
Bizonyítás. Legyen M = (Q,Σ, δ, q0, F ) egy NFA. Megadunk egy M -mel ek-vivalens M ′ DFA-t. M ′ állapothalmaza M állapotainak hatványhalmaza lesz.M ′ úgy fogja szimulálni M számításait egy u szón, hogy az állapotaiban tartjaszámon azokat az állapotokat, melyekbe az M kerülhet az u szó egy-egy adottprexének az elolvasása után.
Legyen tehát M ′ = (P(Q),Σ, δ′, q0, F ′), ahol δ′-t és F ′-t a következ®képpendeniáljuk. Minden P ∈ P(Q) és a ∈ Σ esetén legyen δ′(P, a) =
⋃q∈P δ(q, a).
Továbbá, legyen F ′ = P | P ∈ P(Q) és P ∩ F 6= ∅. Legyen u ∈ Σ∗. Az uhossza szerinti indukcióval könnyen belátható, hogy δ(q0, u) = δ′(q0, u). Ezért
1.3. REGULÁRIS NYELVEK 23
1.7. ábra. Nemdeterminisztikus automata a lép és él szavak elfogadására
p
q0
q1 q2 q3
q5q4
l
él
Σé
következik, hogy δ(q0, u)∩F 6= ∅ akkor és csak akkor igaz, amikor δ′(q0, u) ∈F ′, vagyis u ∈ L(M) pontosan akkor teljesül amikor u ∈ L(M ′). Kapjuk tehát,hogy L(M) = L(M ′), amit bizonyítani akartunk.
Nyilvánvaló, hogy a nemdeterminizmus egy nem realisztikus tulajdonsága a vé-ges automatáknak. Ki szeretne például egy olyan liftet, amiben el®fordulhat,hogy megnyomva a harmadik emelet gombját mondjuk a negyediken kötünk ki?Az NVA-knak azonban nem csak az elméleti számítástudomány területén vanlétjogosultságuk, hanem a gyakorlati életben is.
Mintaillesztésnek hívjuk azt a problémát, melyben adott egy szöveg és egy szó,és a kérdés az, hogy a el®fordul-e a szó a szövegben. Ezt a problémát el lehetdönteni DVA-val, de néha a megfelel® DVA konstrukciója nehéz, miközben afeladatra könnyen megadható egy megfelel® NVA (lásd a példát lentebb). Ezekután elegend® az adott NVA-ból, a 1.3.13. tétel alapján, megkonstruálni a kere-sett DVA-t. Persze a kapott DVA állapotszáma általános esetben exponenciálisaz NVA állapotszámához képest, de a 2. algoritmus segítségével a DVA-nkatminimalizálhatjuk. A fent elmondottakat az alábbi példával támasztjuk alá.
1.3.14. Példa. Megadunk egy olyan NFA-t ami eldönti, hogy a bemenetére adottsztringben el®fordul-e a lép vagy az él szó. Jelöljük a magyar ábécé bet¶ibenel®forduló karakterek halmazát Σ-val. A keresett automata a 1.7. ábrán látható.
1.3.2. A felismerhet® és a jobblineáris nyelvek ekvivalenci-
ája
Most megmutatjuk, hogy a véges automaták ugyanakkora számítási er®vel bír-nak mint a 3-as típusú, azaz jobbllineáris nyelvtanok.
1.3.15. Tétel. A felismerhet® nyelvek osztálya megegyezik az L3 osztállyal.
24 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
Bizonyítás. El®ször azt mutatjuk meg, hogy minden jobblineáris L nyelvhezmegadható olyan DVA ami L-et ismeri fel.
Legyen L ∈ L3. Akkor van egy olyan G = (V,Σ, R, S) jobblineáris nyelvtan,melyre L = L(G). Ebb®l a nyelvtanból megkonstruálunk egy M NVA-t úgy,hogy L(M) = L teljesüljön. A 1.3.13 tétel alapján ebb®l az NVA-ból mármegkonstruálható egy M -mel ekvivalens DVA.
Az általánosság megsértése nélkül feltehetjük, hogy R-ben minden szabály A→aB illetve A → ε alakú, ahol A,B ∈ V és a ∈ Σ (ehhez eliminálni kell azA→ B alakú, úgynevezett láncszabályokat és új nemterminálisok bevezetésévelel kell törni a hosszú szavakat a szabályok jobb oldalán; hasonló átalakításokrólmajd részletesebben is beszélünk a környezetfüggetlen nyelvtanok kapcsán a1.4.4 alfejezetben).
Ezek után legyen M = (Q,Σ, δ, q0, F ) az az NVA, ahol Q = V , q0 = S, F =A ∈ V | A→ ε ∈ R és δ a következ® függvény. Minden A ∈ V -re és a ∈ Σ-raδ(A, a) = B ∈ V | A→ aB ∈ R.
Nem nehéz belátni, hogy ebben az esetben minden u ∈ Σ∗ szóra, u ∈ L(G)akkor és csak akkor teljesül, ha u ∈ L(M) is teljesül (indukcióval az u hosszaszerint). Azt kaptuk tehát, hogy L = L(M) és ezzel a bizonyítás egyik felétbefejeztük.
Ezután azt mutatjuk meg, hogy minden felismerhet® L nyelvhez megadhatóolyan G jobblineáris nyelvtan ami L-et generálja. Legyen M = (Q,Σ, δ, q0, F )egy L-et felismer® DVA.M -b®l konstruáljuk meg a G = (V,Σ, R, S) nyelvtant akövetkez® módon. Legyen V = Q,S = q0 és R = q → ap | δ(q, a) = p ∪ q →ε | q ∈ F. Legyen u ∈ Σ∗. Indukcióval az u hossza szerint belátható, hogyu ∈ L(G) akkor és csak akkor, ha u ∈ L(M), vagyis L(G) = L(M).
1.3.3. A felismerhet® nyelvek zártsági tulajdonságai
A felismerhet nyelvek egyik alapvet® tulajdonsága, hogy zártak a Boole-félem¶veletekre (unió, metszet és komplementer képzés) valamit a reguláris m¶-veletekre (unió, konkatenáció és Kleene iteráció). El®ször a Boole-m¶veletekrevaló zártságot bizonyítjuk.
1.3.16. Tétel. A felismerhet® nyelvek zártak a Boole-féle m¶veletekre.
Bizonyítás. Legyen L1 és L2 két Σ-feletti felismerhet® nyelv. Mivel L1 és L2
felismerhet®k, vannak olyan M1 = (Q1,Σ, δ1, q1, F1) és M2 = (Q2,Σ, δ2, q2, F2)DVA-k, hogy L1 = L(M1) és L2 = L(M2). Ebb®l a két automatából megkonst-ruálunk egy olyan M DVA-t, aminek állapothalmaza a Q1 és a Q2 direkt szor-zata. Továbbá, az M átmenetfüggvényét úgy deniáljuk, hogy M képes legyeneltárolni egy adott bemenetet olvasva az aktuális állapota els® illetve másodikkomponensében az M1 és M2 aktuális állapotait ugyanezen a bemeneten.
1.3. REGULÁRIS NYELVEK 25
Legyen tehát M = (Q,Σ, δ, q0, F ), ahol Q = Q1 × Q2, q0 = (q1, q2) és δ :Q × Σ → Q a következ® függvény. Minden p1 ∈ Q1, p2 ∈ Q2 állapotra ésa ∈ Σ-ra, δ((p1, p2), a) = (δ1(p1, a), δ2(p2, a)).
Nem nehéz belátni, hogy ha F -et (F1 ×Q2) ∪ (Q1 × F2)-nek deniáljuk, akkoregy olyan automatát kapunk, ami az L1 ∪ L2 nyelvet ismeri fel. Másrészt, haF -et F1 × F2-nek deniáljuk, akor egy L1 ∩ L2-t felismer® automatát kapunk.
Legyen végül M = (Q1,Σ, δ1, q1, F ), ahol F = Q1 − F . Könny¶ belátni, hogyM az L1 nyelvet ismeri fel, ezzel a tételünk bizonyítását befejeztük.
Most megmutatjuk, hogy a felismerhet® nyelvek zártak a reguláris m¶veletekreis.
1.3.17. Tétel. A felismerhet® nyelvek zártak a reguláris m¶veletekre.
Bizonyítás. Legyen L1 és L2 két Σ-feletti felismerhet® nyelv. Azt, hogy L1∪L2
felismerhet® az el®z® tételben bizonyítottuk. Láttuk azt is, hogy a felismerhe-t® nyelvek generálhatók jobblineáris nyelvtannal (1.3.15. tétel). Legyen tehátG1 = (V1,Σ, R1, S1) és G2 = (V2,Σ, R2, S2) két jobblineáris nyelvtan melyekrendre az L1 illetve L2 nyelvet generálják. Feltehetjük, hogy V1 és V2 diszjunk-tak.
A konkatenációra való zártság. A két nyelv konkatenációját az a G =(V,Σ, R, S1) nyelvtan generálja, melyben V = V1 ∪ V2 és R-et pedig a követ-kez®képpen kapjuk. R tartalmazza G2 összes szabályát, valamint G1 azon sza-bályait, melyek jobb oldalai nemterminálissal végzd®nek. Továbbá G1 mindenolyan A→ v szabályára melyre v ∈ Σ∗, G-be felvesszük az A→ vS2 szabályt.
Most megmutatjuk, hogy L(G) = L1L2. El®ször vegyünk egy w szót L(G)-b®l. Megmutatjuk, hogy w ∈ L1L2 is teljesül. Mivel w ∈ L(G), igaz, hogyS1 ⇒∗
G w. Továbbá, mivel V1 és V2 diszjunktak, az S1 ⇒∗G w deriváció felírható
S1 ⇒∗G w1 ⇒G w′
1S2 ⇒∗G w′
1w2 = w alakban úgy, hogy a következ®k teljesülnek:w1 ∈ (Σ ∪ V1)∗ és az S1 ⇒∗
G w1 derivációban csak V1-beli nemterminálisokattartalmazó szabályok szerepelnek. Továbbá, w′
1 ∈ Σ∗ és az S2 ⇒∗G w2 deri-
vációban csak V2-beli nemterminálisokat tartalmazó szabályokat alkalmaztunk.Mivel minden olyan R-beli szabály, amiben V2-beli nemterminális szerepel elemeaz R2-nek is, kapjuk, hogy S2 ⇒∗
G2w2. Továbbá, minden olyan R-beli szabály,
amiben V1-beli nemterminális szerepel a jobb oldalon eleme az R1-nek is, ígykapjuk, hogy S1 ⇒∗
G1w1. Végül a w1 ⇒G w′
1S2 derivációban nyilvánvalóanegy A → vS2 alakú R-beli szabály került alkalmazásra (valamely A ∈ V1-reés v ∈ Σ∗-ra). De akkor deníció szerint van az R1-ben egy A → v szabálymelyet alkalmazva a w1 szóra a G1-ben megkapjuk a w′
1 szót. Összegezve teháta w felírható a w′
1 és a w2 szavak konkatenációjaként, és mivel w′1 ∈ L(G1) és
w2 ∈ L(G2) kapjuk, hogy w ∈ L1L2.
A fordított irányú tartalmazás belátásához legyen w ∈ L1L2. Megmutatjuk,hogy w ∈ L(G) is teljesül. A w deníció szerint felírható w = w1w2 alakban,
26 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
ahol w1 ∈ L1 és w2 ∈ L2. Akkor S1 ⇒∗G1
w1 és S2 ⇒∗G2
w2. MivelG tartalmazzaa G2 szabályait következik, hogy S2 ⇒∗
G w2 is teljesül.
Másrészt, az S1 ⇒∗G1
w1 deriváció felírható S1 ⇒∗G1
w′1 ⇒G1 w1 alakban, ahol
w′1 ∈ Σ∗V1. Mivel az S1 ⇒∗
G1w′
1 levezetésben alkalmazott minden szabályjobboldala kell, hogy tartalmazzon egy nemterminálist, az összes S1 ⇒G1 w
′1-
ben alkalmazott szabály, deníció szerint, eleme V -nek is, vagyis S1 ⇒G w′1.
Továbbá, a w′1 ⇒G1 w1 lépésben alkalmazott szabály olyan, aminek a jobb oldala
csupa terminális szimbólumot tartalmaz, ezért a G deníciója miatt van egyolyan szabály R-ben, melynek alkalmazásával adódik a w′
1 ⇒G w1S2 levezetés.Azt kapjuk tehát, hogy S1 ⇒∗
G w′1 ⇒G w1S2 ⇒G w1w2, vagyis w = w1w2 ∈
L(G), amit bizonyítani akartunk.
Az iterációra való zártság: L1 iteráltját az a G′ = (V1 ∪ S,Σ, R′1, S)
nyelvtan generálja, ahol S egy új, a V1-ben nem szerepl® nemterminális és R′1-t
pedig a következ®képpen kapjuk. R′1 tartalmazza az R1-beli szabályokat plusz
az S → ε és az S → S1 szabályt. Továbbá G1 minden olyan u → v szabályáramelyre v ∈ Σ∗, G-be felvesszük az u→ vS szabályt is. Annak bizonyítása, hogyL(G′) = L∗
1 hasonló, mint annak bizonyítása, hogy L(G) = L1L2, ezért ezt mostaz olvasóra bízzuk.
Kés®bb látni fogjuk, hogy a reguláris nyelvek megegyeznek a felismerhet® nyel-vekkel, de el®bb bevezetjük a reguláris kifejezéseket, amelyeket a reguláris nyel-vek természetes reprezentációjaként fogunk használni.
1.3.4. Reguláris kifejezések
Az alábbiakban röviden ismertetjük a reguláris kifejezéseket. Mint látni fogjukezek a kifejezések éppen a reguláris nyelvek jelölésére szolgálnak.
1.3.18. Deníció. Legyen Σ egy ábécé. A (Σ-feletti) reguláris kifejezések REGhalmaza a legsz¶kebb olyan halmaz, melyre teljesülnek a következ® állítások.
1. ∅, ε ∈ REG.
2. Minden a ∈ Σ-ra a ∈ REG.
3. Ha R1, R2 ∈ REG, akkor (R1 +R2), (R1 ·R2), (R∗1) ∈ REG.
4. REG minden eleme megkapható a fenti szabályok véges számú alkalmazá-sával.
Az R reguláris kifejezés által jelölt nyelvet |R|-el jelöljük. értelemszer®en,
1. ha R = ε, akkor |R| = ε,
2. ha R = ∅, akkor |R| = ∅,
1.3. REGULÁRIS NYELVEK 27
3. ha R = a valamely a ∈ Σ-ra, akkor |R| = a,
4. ha R = (R1 +R2) valamely R1, R2 ∈ REG-re, akkor |R| = |R1| ∪ |R2|,
5. ha R = (R1 ·R2) valamely R1, R2 ∈ REG-re, akkor |R| = |R1| · |R2|,
6. ha R = (R∗1) valamely R1 ∈ REG-re, akkor |R| = |R1|∗.
A reguláris kifejezések könnyebb olvashatósága érdekében el szeretnénk hagy-ni a kifejezésekb®l bizonyos zárójeleket, ezért megegyezünk abban, hogy ∗ aleger®sebb precedenciájú reguláris kifejezésbeli m¶veleti jel, utána jön a · ésvégül a + jel. Továbbá a · jelet általában elhagyjuk.
1.3.19. Példa. Legyen Σ = 0, 1 és tekintsük az alábbi Σ-feletti reguláriskifejezéseket és az általuk jelölt nyelveket.
1. |(0 + ε)(1 + ε)| = ε, 0, 1, 01.
2. |(0 + 1)(0 + 1)(0 + 1)(0 + 1)∗| = u ∈ Σ | l(u) ≥ 3.
3. A |(ε+ 1)(01)∗(ε+ 0)| nyelv azokat a Σ-feletti szavakat tartalmazza, me-lyekben a 0-k és 1-k egymást váltogatják.
4. A |((0 + 1)1)∗| nyelv azokat a szavakat tartalmazza, melyeknek mindenpáros pozícióján 1-es van.
Az alábbi tétel bizonyítása nagyon egyszer¶, ezért azt az olvasóra bízzuk.
1.3.20. Tétel. Legyen Σ egy ábécé. Egy L ⊆ Σ∗ nyelv akkor és csak akkorreguláris, ha van olyan Σ-feletti R reguláris kifejezés, melyre |R| = L.
Kleene tételeként tartjuk számon az alábbi állítást, ami igazolja a felismerhet®és a reguláris nyelvek ekvivalenciáját.
1.3.21. Tétel. Egy nyelv akkor és csak akkor reguláris, ha felismerhet® végesautomatával.
Bizonyítás. Legyen L ⊆ Σ∗ egy reguláris nyelv. Az, hogy L felismerhet®,könnyen belátható, ha meggondoljuk, hogy az ε és ∅ nyelvek, valamint min-den a ∈ Σ-ra az a felismerhet®ek. Továbbá, ahogy azt a 1.3.17. tételbenláttuk, a felismerhet® nyelvek zártak a reguláris m¶veletekre.
A másik irány bizonyításához legyen L ⊆ Σ∗ egy felismerhet® nyelv és legyenA = (Q,Σ, δ, q0, F ) egy DVA melyre L = L(A). A-t felhasználva megmutat-juk, hogy L egy reguláris nyelv. El®ször is tegyük fel, hogy Q = 1, 2, . . . , nvalamely n ∈ N-re, q0 = 1 és F = i1, . . . , im valamely m ∈ [n]-re. Legyen1 ≤ i, j ≤ n, 0 ≤ k ≤ n és jelölje Li,j,k azt a halmazt, ami pontosan azokataz Σ∗-beli szavakat tartalmazza, melyeket végigolvasva az A eljut i-b®l j-beúgy, hogy közben nem érint k-nál nagyobb sorszámú állapotot. Könny¶ belátni,
28 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
hogy L = L1,i1,n∪ . . .∪L1,im,n. Elegend® tehát megmutatni, hogy ezek az Li,j,k
nyelvek regulárisak.
Ehhez k-szerinti teljes indukciót alkalmazunk. Ha k = 0, akkor az Li,j,k ponto-san azokat a szavakat tartalmazza, melyek hatására az A el tud jutni i-b®l j-beúgy, hogy semmilyen más közbüls® állapotot nem érint. Könny¶ belátni, hogyebben az esetben Li,j,k = a ∈ Σ | δ(i, a) = j. Mivel Σ véges, kapjuk, hogyLi,j,k is az, amib®l triviálisan következik, hogy Li,j,k reguláris.
Tegyük fel tehát, hogy Li,j,k reguláris tetsz®leges 0 < k < n esetén. Meg-mutatjuk, hogy ekkor Li,j,k+1 is reguláris. El®ször bebizonyítjuk a következ®egyenl®séget:
Li,j,k+1 = Li,j,k ∪ Li,k+1,kL∗k+1,k+1,kLk+1,j,k. (1.1)
Az nyilvánvaló, hogy a fenti egyenl®ség jobb oldala része a bal oldalnak, az pedig,hogy a bal oldal is része a jobb oldalnak a következ®képpen igazolható. Vegyünkegy w ∈ Li,j,k+1 szót. Ha w olyan, hogy az A végigolvasva ®t közbüls® állapot-ként legfeljebb csak k sorszámú állapotot érint, akkor világos, hogy w ∈ Li,j,k
is teljesül, vagyis w eleme az (1.1) egyenl®ség jobb oldalának. Tegyük fel tehát,hogy w olyan, hogy amikor A végigolvassa ®t, akkor érinti a k + 1 állapotot.Legyen w = w1w2...wκ a w azon maximális számú részszavakra történ® felbon-tása, melyre igaz, hogy δ(i, w1) = k+1, δ(k+1, w2) = k+1, . . . , δ(k+1, wκ) = j(ilyen felbontás létezik, mivel az A érinti a k+1 állapotot a w elolvasása során).Látható, hogy így w1 ∈ Li,k+1,k, w2, . . . , wκ−1 ∈ Lk+1,k+1,k és wκ ∈ Lk+1,j,k
(felhasználtuk, hogy w maximális számú részszavakra történ® felbontását vet-tük). Ezért w ∈ Li,k+1,kL
∗k+1,k+1,kLk+1,j,k, vagyis w eleme az (1.1) egyenl®ség
jobb oldalán lév® halmaznak, amit bizonyítani akartunk.
Mivel az (1.1) egyenl®ség jobb oldalán szerepl® összes nyelv alsó indexének har-madik komponense k, felhasználhatjuk az indukciós feltevést, mely szerint ezennyelvek regulárisak. Akkor viszont nyilvánvalóan ezen jobb oldal maga is regu-láris, hiszen a jobb oldalon csakis reguláris m¶veleteket alkalmazunk regulárisnyelveken. Azt kaptuk tehát, hogy maga az Li,j,k+1 nyelv is reguláris, amivel atétel bizonyítását befejeztük.
Az alábbiakban összefoglaljuk a felismerhet® nyelvek különböz® jellemzéseivelkapcsolatos ismereteinket.
1.3.22. Következmény. Legyen L egy tetsz®leges Σ ábécé feletti nyelv. Akövetkez® állítások ekvivalensek.
1. L felismerhet® véges automatával.
2. L egy Σ∗-on értelmezett véges index¶ jobbkongruencia bizonyos ekvivalencia-osztályainak egyesítése.
1.3. REGULÁRIS NYELVEK 29
3. A ρL reláció véges index¶.
4. L generálható 3-as típusú nyelvtannal.
5. L jelölhet® valamely Σ-feletti reguláris kifejezéssel.
6. L egy reguláris nyelv.
A fenti következmény számos szükséges és elégséges feltételt ad arra vonatko-zóan, hogy egy nyelv mikor felismerhet®. Az alábbiakban a felismerhet®ség egytovábbi szükséges feltételét ismertetjük.
1.3.5. Pumpáló lemma felismerhet® nyelvekre
Ha röviden kellene összefoglalni, hogy mit is állít a felismerhet® nyelvek pumpálólemmája, akkor a következ®t mondhatnánk. Minden L felismerhet® nyelvre igaz,hogy ha veszünk bel®le egy elegend®en hosszú w szót, akkor a w egy bizonyosnem üres részszavát ismételgetve, azaz w-t pumpálva, a nyelv további szavaitkaphatjuk meg. Persze meg kell mondani, hogy mit jelent az, hogy elegend®enhosszú szó veszünk L- b®l. A pumpáló lemma ezt precízen deniálja:
1.3.23. Lemma. Legyen L egy felismerhet® nyelv. Akkor van olyan p ≥ 1 L-t®lfügg® konstans, hogy minden olyan w ∈ L szóra, melynek a hossza legalább pigaz az, hogy w felírható w = xyz alakban úgy, hogy
• y 6= ε,
• l(xy) ≤ p és
• minden i ≥ 0 esetén xyiz eleme az L-nek.
Bizonyítás. Legyen A = (Q,Σ, δ, q0, F ) egy olyan VDA ami felismeri L-et. Aztállítjuk, hogy a lemmában szerepl® p számot választhatjuk |Q|-nak. Vegyünktehát egy olyan w szót L-b®l, melynek hossza legalább p, azaz Q állapotainakszáma. Nyilvánvaló, hogy w-t elolvasva lesz egy olyan állapot amit az A legalábbkétszer érint. Ezért kell hogy legyen két különböz® prexe a w-nek úgy, hogyezeket elolvasva az A ugyanabba az állapotba lép. Továbbá az is igaz, hogy ezeka prexek választhatók úgy, hogy mindkett® hossza legfeljebb p. Legyen tehátx és x′ a w két olyan prexe melyekre a következ®k teljesülnek: l(x) < l(x′),l(x′) ≤ p és δ(q0, x) = δ(q0, x
′) = q valamely q ∈ Q-ra. Legyenek továbbáy ∈ Σ+ és z ∈ Σ∗ olyan szavak melyekre igaz, hogy xy = x′ és x′z = w (ilyenszavak léteznek, hiszen x prexe x′-nek, x′ prexe w-nek es x hossza kisebb,mint x′ hossza). Nem nehéz belátni, hogy minden i ≥ 0 számra az xyiz szótis szükségszer¶en felismeri az A, tehát a fent deniált p számra valamint w,x, y és z szavakra teljesülnek a lemma állítása. Ezzel a lemma bizonyításátbefejeztük.
30 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
A fenti lemma nem ad elégséges feltételt a felismerhet®ségre, tehát nem használ-hatjuk arra, hogy bebizonyítsuk azt, hogy egy adott nyelv felismerhet®. Ennekpont az ellenkez®jére lehet használni: ha egy adott nyelvr®l meg tudjuk mu-tatni, hogy nem teljesíti a lemma feltételeit, akkor ezzel beláttuk, hogy a nyelvnem lehet felismerhet®. Nézzünk erre egy példát.
1.3.24. Példa. Legyen L = 0n1n|n ≥ 0. A pumpáló lemma segítségévelmegmutatjuk, hogy ez a nyelv nem felismerhet®. Indirekt módon tegyük fel,hogy L felismerhet® és legyen p a pumpáló lemmában szerepl® szám, valaminttekintsük a w = 0p1p szól, ami nyilván L-beli és legalább p hosszú. Akkor w-re teljesülnek a lemma feltételei, azaz w felírható w = xyz alakban úgy, hogyl(xy) ≤ p és y 6= ε. Mivel xy hossza legfeljebb p, világos, hogy xy csupa 0bet¶kb®l álló szó kell, hogy legyen. Továbbá y hossza nem nulla, vagyis az xyyzszóban több 0 van, mint 1-es, tehát xyyz nem lehet L-nek eleme. Másrészta pumpáló lemma azt állítja, hogy az xy2z = xyyz is szó eleme az L-nek, aminyilván ellentmondás. Következik tehát, hogy az L nem lehet felismerhet® nyelv.
1.3.6. A felismerhet® nyelvekkel kapcsolatos eldönthet®ségi
kérdések
Az alábbiakban bemutatunk néhány, a felismerhet® nyelvekkel kapcsolatos el-dönthet® problémát. Az els® és egyben legalapvet®bb feladat ami egy tetsz®legesL ∈ Σ∗ nyelvvel és egy u ∈ Σ∗ szóval kapcsolatban felmerülhet az az, hogy vajonel tudjuk-e dönteni, hogy u eleme-e L-nek. Ezt a problémát nevezzük szóprob-lémának, és kés®bb látni fogjuk, hogy a szóprobléma általában eldönthetetlen.Miért fontos a gyakorlatban, hogy adott nyelvre eldönthet®-e a szóprobléma?Tekintsünk például egy olyan G CF nyelvtant ami egy programozási nyelv szin-taxisát írja le. Vegyünk továbbá egy, az adott programozási nyelven megírt Pprogramot. Annak eldöntése, hogy P ∈ L(G) teljesül-e nem más, mint annakeldöntése, hogy a P program szintaktikailag helyes-e. Kés®bb látni fogjuk, hogya szóprobléma a CF nyelvek esetében eldönthet®.
Persze az olvasó most gyanakodni kezdhet: hogyan is lehet az, hogy adott egynyelv, ami nem más mint szavak egy halmaza, és nem lehet eldönteni, hogyennek a halmaznak vajon eleme-e egy adott szó? A dolog azért nem egészen ígyfest. Mint arról már korábban volt szó, egy nyelv általában végtelen és így nemaz elemeinek az explicite felsorolásával, hanem valamilyen véges reprezentációvaladott. Mint azt korábban láttuk, a felismerhet® nyelvek véges reprezentációilehetnek például a jobblineáris nyelvtanok, a véges automaták vagy a reguláriskifejezések. Szerencsére ezek a reprezentációk kell®en egyszer¶ek ahhoz, hogya szóprobléma esetükben eldönthet® legyen:
1.3.25. Tétel. Legyen L egy Σ-feletti felismerhet® nyelv és legyen u ∈ Σ∗ egyszó. Eldönthet®, hogy u eleme-e L-nek.
Bizonyítás. Tegyük fel, hogy az L egy M DVA-val adott. Egyszer¶en olvassuk
1.3. REGULÁRIS NYELVEK 31
végig azM -el az u-t. HaM végállapotba kerül, akkor u eleme L-nek, egyébkéntpedig nem.
Sokszor az is érdekel minket, hogy mekkora a probléma eldöntésének az id®igé-nye a bemenet méretének a függvényében (alapvet®en az érdekel minket, hogya problémát eldönt® algoritmus hatékony-e a gyakorlatban, azaz pl. polinomid®igény¶-e vagy sem). Ilyenkor meg kell egyezni abban, hogy mit kell a beme-net méretének tekintenünk. A fenti bizonyításban a bemenet mérete, rögzítettL esetén, értelemszer¶en az u szó hossza. Könnyen látható, hogy ekkor a szó-probléma eldöntésének az id®igénye a bemenet méretével lineárisan arányos.
Mint azt bizonyos esetekben láttuk is, a felismerhet® nyelvek különböz® rep-rezentációi egymásba alakíthatók. Így például ha a nyelvünk nem véges au-tomatával adott, de mi csak véges automatára ismerjük az adott problémáteldönt® algoritmust, akkor megtehetjük, hogy átalakítjuk az adott reprezentá-ciót (nemdeterminisztikus automatát, reguláris kifejezést vagy nyelvtant) végesautomatává. Meg kell azonban jegyezni, hogy ebben az esetben a kérdés eldön-tésének az id®igényéhez hozzá kell venni az adott reprezentáció átalakításánakaz id®igényét is.
A következ®kben azt tárgyaljuk, hogyan lehet eldönteni azt, hogy egy L felis-merhet® nyelv tartalmaz-e legalább egy szót.
1.3.26. Tétel. Legyen L egy felismerhet® nyelv. Eldönthet®, hogy L megegyezik-e az üreshalmazzal vagy sem.
Bizonyítás. Tegyük fel, hogy az L egy M = (Q,Σ, δ, q0, F ) véges automatávaladott. El®ször kiszámoljuk az M elérhet® állapotainak D halmazát az 1. algo-ritmus segítségével. Ezek után ha D nem tartalmaz egyetlen végállapotot sem,akkor L = ∅, egyébként pedig L 6= ∅.
Megjegyzés: A D halmaz kiszámolása az M automata méretének függvényébennégyzetes id®igény¶. Tehát, ha M n darab állapottal rendelkezik, akkor Dkiszámolása nagyságrendileg n2 lépést vesz igénybe.
Most azt mutatjuk meg, hogyan lehet eldönteni azt, hogy egy L felismerhet®nyelv végtelen-e.
1.3.27. Tétel. Legyen L egy Σ feletti felismerhet® nyelv. Eldönthet®, hogy Lvégtelen-e.
Bizonyítás. Tegyük fel, hogy az L az M véges automatával adott. Legyen azautomata állapotszáma n. Az állítjuk, hogy L pontosan akkor végtelen, ha vanolyan u ∈ L szó, melyre n ≤ l(u) ≤ 2n teljesül. A 1.3.23. lemma bizonyításábólegyenesen következik, hogy a fenti feltétel elégséges, azaz ha L-ben van egylegalább n hosszú szó, akkor L végtelen. A szükségesség a következ®képpenadódik. Ha L végtelen, akkor van L-ben egy olyan u szó, melynek a hossza
32 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
nagyobb, mint 2n. Megint alkalmazhatjuk 1.3.23. lemma bizonyításában látottgondolatmenetet és azt kapjuk, hogy M fel kell ismerjen egy olyan u′ szót is,melyre l(u)− l(u′) ≤ n. Ezt a gondolatmenetet iterálva adódik, hogy M -nek felkell ismernie egy legfeljebb 2n hosszú szót is.
Ahhoz tehát, hogy eldöntsük vajon L végtelen-e, elég megviszgálni, hogy van-eolyan u ∈ L szó, melyre n ≤ l(u) ≤ 2n teljesül. Ezt könnyen meg tudjuk csinálniúgy, hogy egyszer¶en felsoroljuk Σ∗ legalább n hosszú de 2n-nél nem hosszabbelemeit, és eldöntjük, hogy valamelyik szó ezek közül eleme-e L-nek (a 1.3.25.tétel alapján ez persze eldönthet®). Ha a vizsgálat pozitív eredménnyel zárul,akkor L végtelen elemszámú, egyébként pedig nem az.
Megjegyezzük, hogy a fenti algoritmus nem nevezhet® hatékonynak. Könnyenlátható ugyanis, hogy már egy két elem¶ Σ ábécé esetén is nagyságrendileg 2n
olyan szó van melynek hossza legalább n és legfeljebb 2n− 1.
Végezetül megmutatjuk, hogy a véges automaták ekvivalencia-problémája el-dönthet®. Így persze az is eldönthet®, hogy két felismerhet® nyelv megegyezik-e.
1.3.28. Tétel. LegyenM1 ésM2 két véges automata. Eldönthet®, hogy L(M1) =L(M2) fennáll-e.
Bizonyítás. Legyen M = (Q1×Q2,Σ, δ, (q1, q2), F ) az a véges automata amit a1.3.16. tétel bizonyításában konstruáltunk meg. Nem nehéz belátni, hogy ha F -nek az F1×(Q2−F2)∪(Q1−F1)×F2 halmazt választjuk, akkorM az (L(M1)−L(M2))∪(L(M2)−L(M1)) nyelvet ismeri fel. Világos az is, hogy L(M1) = L(M2)akkor és csak akkor teljesül, ha L(M) = ∅. Ez utóbbi egyenl®ség viszont az1.3.26 tétel alapján eldönthet®, amib®l következik, hogy L(M1) = L(M2) iseldönthet®.
1.4. Környezetfüggetlen nyelvek
Egy nyelvet környezetfüggetlennek nevezünk (CF-nek az angol context free el-nevezés után), ha van ®t generáló környezetfüggetlen (röviden CF) nyelvtan.Ebben a részben megismerjük a derivációs fákat, melyeket a CF nyelvtanok le-vezetéseinek a szemléltetésére használunk majd. Bevezetjük az ún. egyértelm¶CF nyelveket és deniáljuk a veremautomatákat, melyek pontosan a CF nyel-vek felismerésére használható, a véges automatáknál er®sebb kiszámító er®velrendelkez® gépek. Megvizsgáljuk továbbá a CF nyelvek néhány zártsági tulaj-donságát valamint néhány CF nyelvekkel kapcsolatos eldöntési problémát.
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 33
1.4.1. Egyértelm¶ CF nyelvek
Tekintsük az alábbi, egyszer¶ aritmetikai kifejezéseket generáló CF nyelvtant.
GAr = (E, (, ), ∗,+, x, y, z, R,E),
ahol R a következ® szabályokat tartalmazza:
E → E + E | E ∗ E | (E) | x | y | z.
Ebben a nyelvtanban le lehet vezetni például az x+y∗z szót a következ®képpen:
E ⇒ E + E ⇒ x+ E ⇒ x+ E ∗ E ⇒ x+ y ∗ E ⇒ x+ y ∗ z.
A fenti levezetés olyan, hogy mindig az aktuális mondatforma legbaloldalab-bi nemterminálisát írjuk át. Az ilyen levezetéseket nevezzük baloldali leveze-téseknek (a jobboldali levezetések analóg módon deniálhatóak). Felmerülhet akérdés, hogy az x+ y ∗ z szónak van-e a fentit®l különböz® baloldali levezetése.A válasz igen, tekintsük például a E ⇒ E ∗ E ⇒ E + E ∗ E ⇒ x + E ∗ E ⇒x+ y ∗E ⇒ x+ y ∗ z levezetést. Azok a nyelvtanok, melyekben minden szónakpontosan egy baloldali levezetése van az úgynevezett egyértelm¶ nyelvtanok. Afenti GAr tehát nem egyértelm¶ nyelvtan. Egy nyelvet egyértelm¶ nek nevezünk,ha van olyan egyértelm¶ nyelvtan ami L-et generálja. A GAr által generált LAr
nyelv egyértelm¶. Egy az LAr-t generáló egyértelm¶ nyelvtan például az mely-nek szabályai a következ®k: E → E+T | T, T → T ∗N | N, N → (E) | x | y | z.Itt az x+ y ∗ z szónak csak egy baloldali levezetése van, ez pedig a következ®:
E ⇒ E + T ⇒ N + T ⇒ x+ T ⇒ x+ T ∗N ⇒⇒ x+N ∗N ⇒ x+ y ∗N ⇒ x+ y ∗ z.
Felmerül a kérdés, hogy minden CF nyelvtan egyértelm¶-e. Ez nagyon hasz-nos lenne, hiszen, ahogy azt említettük is, a programozási nyelvek szintaktikájamegadható CF nyelvtanokkal, és az egyértelm¶ CF nyelvtanokhoz hatékonyabbelemz® konstruálható, mint a többi CF nyelvtanhoz. Sajnos azonban nem min-den CF nyelv egyértelm¶. Azokat a CF nyelveket, melyekhez nincs olyan egyér-telm¶ nyelvtan, ami a nyelvet generálja ellentmondásos CF nyelveknek nevez-zük. Ilyen például az L = anbncmdm | n,m ≥ 0 ∪ anbmcmdn | n,m ≥ 0nyelv (az L környezetfüggetlen, hiszen az unió minkét nyelve könnyen láthatóanaz, maga az unió pedig, mint ahogy kés®bb látni fogjuk, zárt a CF nyelvek-re). Azt, hogy L ellentmondásos nem bizonyítjuk, csak a bizonyítás alapötletétvázoljuk. Vegyünk egy tetsz®leges G CF nyelvtant melyre L = L(G). Vi-szonylag könnyen meggondolható, hogy G-ben kell, hogy legyen két diszjunktszabályhalmaz, melyek lényegében rendre az L1 = anbncmdm | n,m ≥ 0 ésaz L2 = anbmcmdn | n,m ≥ 0 nyelveket generálják. Ha ezek a szabályhal-mazok nem lennének diszjunktak, akkor olyan szavak is levezethet®k lennének,melyek sem az L1-be, sem az L2-be nem tartoznak. Kell, hogy legyenek tehát azL-ben olyan anbncndn (n ≥ 0) alakú szavak, melyeket mindkét szabályhalmazsegítségével le lehet vezetni, vagyis G nem lehet egyértelm¶.
34 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
1.4.2. Derivációs fák
Egy G = (V,Σ, R, S) CF nyelvtan levezetéseit szemléltethetjük derivációs fák-kal is. Egy ilyen fa nem csak arról ad információt, hogy milyen szót sikerültlevezetnünk az S kezd®szimbólumból, hanem arról is, hogy milyen a levezetésszerkezete. Ez alatt azt értjük, hogy a derivációs fából kiolvasható az is, hogya levezetett szó adott részszavai mely nemterminálisokból kerültek levezetésre.
1.4.1. Deníció. A G egy t derivációs fája egy olyan címkézett, rendezett fa,melyre teljesülnek a következ®k:
• a csúcsai V ∪ Σ ∪ ε elemeivel címkézettek,
• gyökere V -beli elemmel címkézett,
• levelei Σ ∪ ε elemeivel címkézettek,
• ha egy csúcsa A-val (A ∈ V ), a gyermekei pedig rendre A1, . . . , An (n ≥1, A1, . . . , An ∈ V ∪Σ) szimbólumokkal címkézettek, akkor A→ A1 . . . An ∈R (ebb®l következik, hogy t bels® csúcsai, vagyis azok a csúcsok, amelyeknem levelei t-nek, nemterminálisokkal címkézettek),
• ha egy csúcs ε-nal címkézett, akkor ® az egyedüli gyermeke az ®sének.
AG egy t derivációs fájának a határa nem más, mint az a Σ∗-beli szó, melyet úgykapunk, hogy balról jobbra összeolvassuk a t levelein szerepl® szimbólumokat.Formálisan deniálva, a t derivációs fa határa, melyet az angol terminológiaalapján yd(t)-vel jelölünk, a következ®képpen adódik. Ha t ∈ Σ ∪ ε, akkoryd(t) = t. Ha pedig t = A(t1, . . . , tk) valamely A ∈ V -re, k ≥ 1-re és t1, . . . , tkderivációs fákra, akkor yd(t) = yd(t1) . . . yd(tk).
1.4.2. Példa. Tekintsük az LAr nyelvet generáló GAr nyelvtant, és ebben anyelvtanban az x + y ∗ z szó két korábban látott levezetését. Ezek a levezetésekrendre a 1.8. ábrán látható derivációs fákkal írhatók le.
Igaz az, hogy szoros kapcsolat áll fenn egy G CF nyelvtan baloldali levezetéseiés derivációs fái között. Ezt mondja ki az alábbi tétel.
1.4.3. Tétel. Legyen G = (V,Σ, R, S) egy CF nyelvtan. Minden u ∈ Σ∗ szóra,u-nak akkor és csak akkor van egy baloldali levezetése G-ben, ha G-nek van egyolyan t derivációs fája, melynek gyökere S-sel van címkézve, továbbá yd(t) = u.
Bizonyítás. Többet mutatunk meg, nevezetesen azt, hogy miden u ∈ Σ∗-ra,u-nak akkor és csak akkor van egy A-nemterminálisból kiinduló baloldali leve-zetése G-ben, ha van G-nek egy olyan t derivációs fája, melynek gyökere A-valcímkézett és melyre yd(t) = u. Csak az egyik irányt bizonyítjuk, a másik iránybizonyítása hasonló gondolatmenetet igényel, ezért azt az olvasóra bízzuk. Le-gyen u ∈ Σ∗ és A⇒∗ u az u egy baloldali levezetése valamely A ∈ V -re. A leve-zetés hossza szerinti teljes indukciót alkalmazunk. Ha A⇒ u, azaz A→ u ∈ R,
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 35
1.8. ábra. Az x ∗ y+ z szó két különböz® baloldali levezetésének a derivációs fái
E
E E+
x E E∗
y z
E
E E
x E E
y z
∗
+
akkor G-nek nyilván van egy olyan t′ derivációs fája, melyben minden levél agyökér gyermeke, a gyökér A-val cimkézett és yd(t′) = u. Tegyük fel tehát,hogy az állításunk teljesül, ha a levezetés hossza n valamely n ≥ 2 számra ésmegmutatjuk, hogy akkor is teljesül, ha a levezetés hossza n + 1. Ez esetbenaz A ⇒∗ u levezetés felírható A ⇒ A1 . . . Am ⇒∗ u alakban, ahol m ≥ 1 ésA1, . . . , Am ∈ V ∪ Σ. Ekkor az n = 1 esetnél látottakhoz hasonlóan van aG-nek egy olyan t′ derivációs fája, melyben minden levél a gyökér gyermeke,a gyökér A-val címkézett és yd(t′) = A1 . . . Am. Világos, hogy az u felírhatóu = u1 . . . um alakban úgy, hogy minden 1 ≤ i ≤ m esetén Ai ⇒∗ ui az uiegy baloldali levezetése az Ai nemterminálisból (ha ai esetleg terminális, akkora fenti levezetést egy nulla lépéses levezetésnek tekinthetjük). Feltehetjük to-vábbá, hogy ezen levezetések hossza legfeljebb n, vagyis az indukciós feltevésalapján minden 1 ≤ i ≤ m-re van a G-nek egy olyan ti derivációs fája, mely-nek gyökere Ai-vel címkézett és yd(ti) = ui. Könnyen belátható, hogy az a faamit úgy kapunk, hogy a t′-ben minden (1 ≤ i ≤ m)-re az i-ik levél helyérebehelyettesítjük a ti fát, a G egy olyan derivációs fája lesz, melyre yd(t) = u.
A fenti tétel következményeként kapjuk, hogy egy G nyelvtan pontosan akkoregyértelm¶, ha minden u ∈ L(G) szónak pontosan egy derivációs fája van.
1.4.3. Veremautomaták
Ebben a részben a veremautomatákkal foglalkozunk. Amint azt a 1.9 ábránis láthatjuk, a veremautomaták annyival tudnak többet a véges automatáknál,hogy a számítások során felhasználhatnak egy potenciálisan végtelen vermetis. Ezzel a képességgel felvértezve már alkalmasak olyan nyelvek felismerésére,
36 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
1.9. ábra. Egy veremautomata felépítése
γ1
γ2
γ1
γ1
γ2a b b a b a a b b b aa b
vezérl®
Verem
Véges sok állapotú
Bemen® szó
melyeket a véges automaták képtelenek felismerni. Tekintsük például az 1.2.3.példában látott L = 0n1n | n ≥ 0 nyelvet és az ®t generáló nyelvtant. Látható,hogy az L-et generáló nyelvtan környezetfüggetlen. Másrészt, az 1.3.24 példábanláttuk, hogy L nem felismerhet®. EgyM véges automata kudarcra van ítélve azL felismerése során: mivel M -nek csak véges számú állapota van, ezért ® csakvéges számú 0-t tud megjegyezni (megszámolni) az állapotaiban (nevezetesenlegfeljebb csak annyit ahány állapota van a kezd®állapoton kívül). Így viszontha a vizsgálandó szóban túl sok a 0, akkor az automata nem tudja leellen®rizniazt, hogy a 0-k illetve 1-k száma megegyezik-e. Ezzel szemben a veremautomataképes arra hogy az L-beli szavakat (és persze csak azokat) felismerje úgy, hogyel®ször az összes 0-t belerakja egy verembe, majd minden 1-es elolvasásakorkivesz egy 0-t veremb®l. Ha egyszerre fogy el a bemen® szó még elolvasatlanrésze illetve ürül ki a verem akkor a veremautomata elfogadja a bemen® szót.
1.4.4. Deníció. Formálisan a veremautomata (röviden PDA az angol Push-down Automata elnevezés alapján) egy olyan P = (Q,Σ,Γ, δ, q0, Z0, F ) rendszer,ahol Q,Σ, q0 és F ugyanazok mint a véges automata esetében, Γ a veremjelekábécéje, Z0 a verem kezd®szimbólum és δ : Q × Σε × Γ → P(Q × Γ∗) az átme-netfüggvény (itt és a továbbiakban is, a Σε a Σ ∪ ε halmazt jelöli).
P m¶ködésének pillanatfelvételét egy adott u ∈ Σ∗ szón kongurációnak nevez-zük. Egy konguráció három dologról ad információt: milyen állapotban van agép, mi az amit még nem olvasott el a bemen® szóból és mi van a veremben.Formálisan a konguráció tehát egy olyan (q, w, γ) hármas, ahol q ∈ Q, w ∈ Σ∗
és γ ∈ Γ∗.
Nyilvánvaló, hogy P csak akkor mehet át egy kongurációból egy másikba,ha azt az átmenetfüggvénye megengedi. Legyen C1 = (q, vw,Xβ) és C2 =(p, w, αβ) két kongurációja P -nek, ahol v ∈ Σε és X ∈ Γ. Azt mondjuk, hogy
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 37
q1
0, 0/00
1, 0/ε
ε, Z0/ε
q00, Z0/0Z0
q2
1, 0/ε
C2 egy lépésben elérhet® C1-b®l P -ben (jele: C1 `P C2) ha (p, α) ∈ δ(q, v,X).Legyen továbbá C és C ′ a P két kongurációja. Azt mondjuk, hogy P véges soklépésben eljut a C-b®l a C ′-be (jele C1 `∗P Cn), ha van olyan n ≥ 0 és C1, . . . , Cn
kongurációsorozat, hogy C1 = C, C ′ = Cn és minden 1 ≤ i < n-re, Ci ` Ci+1
(a konguráció átmenetek jelöléséb®l gyakran kihagyjuk a veremautomata jelét,feltéve, hogy az nem okoz félreértést). Megjegyezzük, hogy ` és `∗ is binárisrelációk a P összes kongurációjának a halmaza felett, továbbá `∗ a ` reexív,tranzitív lezártja.
A P által felismert nyelvet két módon is deniáljuk. P végállapottal az Lf (P ) =u ∈ Σ∗ | (q0, u, Z0) `∗ (q, ε, α) és (q ∈ F ) nyelvet ismeri fel, míg üres verem-mel az L∅(P ) = u ∈ Σ∗ | (q0, u, Z0) `∗ (q, ε, ε) nyelvet (itt q egy tetsz®legesQ-beli állapot). Vegyük észre, hogy üres veremmel történ® felismeréskor a ver-met ki kell ürítenie P -nek, míg végállapottal történ® felismeréskor erre nincsszükség. Mivel üres veremmel történ® felismeréskor az automata végállapothal-mazának nincs szerepe, így ezt ilyenkor nem is kell megadni.
1.4.5. Példa. Tekintsük újra a bevezetésben is tárgyalt L = 0n1n | n ≥ 0nyelvet. L-et a 1.4.5 ábrán látható P veremautomata ismeri fel (végállapottal).Legyen például u = 0011. Akkor a P az u bemenettel indítva az alábbi kon-guráció átmenetek során jut el a végállapotba: (q0, 0011, Z0) ` (q1, 011, 0Z0) `(q1, 11, 00Z0) ` (q2, 1, 0Z0) ` (q2, ε, Z0) ` (q0, ε, ε).
Megjegyezzük, hogy L∅(P ) = L − ε, mivel az üres szón mint bemeneten Pnem tudja kiüríteni a vermét, ezáltal üres veremmel nem tudja felismerni ε-t.
Ekvivalensnek nevezünk két veremautomatát, ha ugyanazt a nyelvet ismerik fel.Megmutatható, hogy egy végállapottal felismer® veremautomatához megadhatóegy ekvivalens üres veremmel felismer®, és ez fordítva is igaz.
38 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
1.4.6. Tétel. A veremautomatákkal végállapottal illetve üres veremmel felis-merhet® nyelvek osztálya megegyezik.
Bizonyítás. El®ször azt vizsgáljuk, hogyan lehet megkonstruálni egy végállapot-tal felismer® P = (Q,Σ,Γ, δ, q0, Z0, F ) veremautomatához egy ekvivalens üresveremmel felismer® P ′-t. Alapvet®en a P ′ megegyezik P -vel azzal a különb-séggel, hogy P ′-ben azokból az állapotokból, melyek P -ben végállapotok egy εátmenetet indítunk egy új állapotba, melyben P ′ nem csinál mást, mint kiürítia vermet. Legyen tehát P ′ = (Q′,Σ,Γ, δ′, q0, Z0), ahol Q′ = Q ∪ qu valamelyqu 6∈ Q állapotra. Továbbá, legyen δ′ a δ kiterjesztése úgy, hogy miden q ∈ F -reés X ∈ Γ-ra δ′(q, ε,X) = δ(q, ε,X) ∪ (qu, X) és minden X ∈ Γ-ra legyenδ′(qu, ε,X) = (qu, ε). Könnyen belátható, hogy az így deniált P ′ egy P -velekvivalens üres veremmel felismer® veremautomata.
A másik irány bizonyításához legyen P = (Q,Σ,Γ, δ, q0, Z0) egy üres verem-mel felismer® veremautomata. Az ekvivalens végállapottal felismer® P ′ a kö-vetkez® módon m¶ködik. Legyen qv egy Q-ban nem szerepl® állapot és le-gyen ez az állapot a P ′ egyetlen végállapota. Továbbá irányítsuk P min-den olyan átmenetét, ami kiveszi a veremb®l Z0-t, a qv-be. Legyen tehátP ′ = (Q ∪ qv,Σ,Γ, δ′, q0, Z0, qv), ahol δ′ a δ alábbi kiterjesztése. Ha vanolyan p, q ∈ Q és a ∈ Σ, hogy (p, ε) ∈ δ(q, a, Z0), akkor legyen δ′(q, a, Z0) =δ(q, a, Z0) ∪ (qv, ε). Belátható, hogy az így vázolt P ′ egy a P -vel ekvivalensvégállapottal felismer® veremautomata, és ezzel a tétel bizonyítását befejez-tük.
1.4.3.1. Determinisztikus veremautomaták
Amint az a 1.4.4 denícióból is látszik, a veremautomata egy nemdeterminiszti-kus modell csakúgy, mint a nemdeterminisztikus véges automata. Lehet perszea veremautomatát is determinisztikusan megadni, ennek a lényege az, hogy averemautomata az aktuális kongurációból mindig csak legfeljebb egy követ-kez® kongurációba léphet. Precízen deniálva, egy P = (Q,Σ,Γ, δ, q0, Z0, F )veremautomata determinisztikus ha az átmenetfüggvényére az alábbi két feltételteljesül. Legyen q ∈ Q, akkor
1. minden a ∈ Σε és b ∈ Γ esetén, |δ(q, a, b)| ≤ 1 és
2. minden a ∈ Σ és b ∈ Γ esetén, ha δ(q, a, b) 6= ∅, akkor δ(q, ε, b) = ∅.
Amíg a véges automaták esetében a determinisztikusság nem jelentett limitációtaz automata felismer® erejére nézve, addig a determinisztikus veremautomatákhatározottan kevesebb nyelvet képesek felismerni, mint a nemdeterminisztiku-sak. Legyen például L = uu−1 | u ∈ 0, 1∗, ahol a u−1 szó a u megfordítását(tükörképét) jelöli. Könnyen belátható, hogy ez a nyelv felismerhet® verem-automatával: a veremautomata elkezdi bemásolni a szót a vermébe, ezutánnemdeterminisztikusan megsejti a szó közepét és innen kezdve összehasonlítja
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 39
a szó hátralév® részét a veremben lév® szóval. Másrészt az is belátható, hogyL nem ismerhet® fel determinisztikus veremautomatával. Ennek az állításnaka bizonyítása meglehet®sen bonyolult, ezért nem közöljük, csak a bizonyításalapötletét vázoljuk. Tegyük fel, hogy egy P = (Q,Σ,Γ, δ, q0, Z0, F ) determi-nisztikus veremautomata mégis felismeri L-et. Legyen p > |Q| és tekintsük azu = 0p110p szót, ami nyilván L-beli. Hogyan tudja felismerni az u-t P? Csakaz állapotainak segítségével biztosan nem, hiszen p-nél kevesebb állapottal nemlehet megszámolni p darab 0-t (ezt már a véges automaták esetében is láttuk).Tehát P a vermét kell hogy használja úgy, mint ahogy azt a 0n1n | n ≥ 0nyelv esetében is teszi. Igen ám, de ekkor az u végigolvasása után kiürül a verme.Hogyan tudja akkor felismerni az uu szót, ami szintén L eleme? Végiggondolvabeláthatjuk, hogy P nem ismerheti fel az L nyelvet, ami igazolja a következ®tételt.
1.4.7. Tétel. A determinisztikus veremautomatával felismerhet® nyelvek osztá-lya valódi részhalmaza a (nemdeterminisztikus) veremautomatával felismerhet®nyelvek osztályának.
1.4.3.2. A CF és a PDA-val felismerhet® nyelvek ekvivalenciája
Az alábbiakban azt szeretnénk megmutatni, hogy a veremautomaták és a CFnyelvtanok azonos kiszámítási er®vel bírnak. Ehhez belátjuk az alábbi két lem-mát.
1.4.8. Lemma. Minden CF nyelv felismerhet® veremautomatával.
Bizonyítás. Legyen L egy CF nyelv és legyen G = (V,Σ, R, S) egy környezet-független nyelvtan melyre L(G) = L. Megadunk egy P üres veremmel felismer®veremautomatát, ami G baloldali levezetései szimulálja.
Legyen P = (q,Σ, V ∪Σ, δ, q, S), ahol δ a következ® függvény. Minden A ∈ V -re, δ(q, ε, A) = (q, β) | A → β ∈ R. Továbbá minden a ∈ Σ-ra, δ(q, a, a) =(q, ε). Az u hossza szerinti teljes indukcióval könnyen könnyen belátható, hogyminden u ∈ Σ∗ szóra u ∈ L(P ) akkor és csak akkor teljesül, ha u levezethet®S-b®l. A bizonyítás befejezését az olvasóra bízzuk.
1.4.9. Példa. Tekintsük ismét az L = 0n1n : n ≥ 0 nyelvet és az ®t generálóG = (S, 0, 1, S → 01S, S → ε, S) nyelvtant. Ebb®l a nyelvtanból, a fentilemma bizonyítása alapján, az 1.10. ábrán látható L-et felismer® veremautomatakonstruálható meg.
1.4.10. Lemma. Minden veremautomatával felismerhet® nyelv generálható CFnyelvtannal.
Bizonyítás. Legyen L egy veremautomatával felismerhet® nyelv és tegyük fel,hogy a P = (Q,Σ,Γ, δ, q0, Z0, F ) veremautomata L-et ismeri fel. P -b®l meg-konstruálunk egy olyan G CF nyelvtant melyre L(G) = L(P ) teljesül. Legyen
40 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
1.10. ábra. CF nyelvtanból veremautomata készítése
q0
ε, S/0S1ε, S/ε0, 0/ε1, 1/ε
G = (V,Σ, R, S) az a környezetfüggetlen nyelvtan, ahol V = [q, α, p] | q, p ∈Q,α ∈ Γ ∪ S, R pedig az alábbi szabályok halmaza:
• S → [qo, Zo, q] ∈ P minden q ∈ Q-ra.
• [q, γ, p] → a[q1, α1, q2][q2, α2, q3] . . . [qm, αm, qm+1] ∈ P minden olyan p, q,q1, . . . , qm+1 ∈ Q-ra, a ∈ Σε-ra és γ, α1, . . . , αm ∈ Γ-ra, melyekre teljesül,hogy qm+1 = p és (q1, α1 . . . αm) ∈ δ(q, a, γ) (az m = 0 esetben ez aztjelenti, hogy (p, ε) ∈ δ(q, a, γ) és ekkor [q, γ, p]→ a ∈ P ).
G-ben a nemterminálisokat és a szabályokat úgy konstruáltuk meg, hogy ezek-kel a G baloldali levezetései éppen a P m¶ködését képesek szimulálni. Tekint-sünk például egy u ∈ Σ∗ szót és annak egy v prexét, azaz u = vw valamelyv, w ∈ Σ∗ szavakra. Ha S-b®l levezethet® G-ben a v[q1, α1, q2] . . . [ql, αl, ql+1]mondatforma, akkor P -nek van (q0, u, Z0) `∗ (q1, w, α) kongurációátmenete,ahol α = α1 . . . αl. Tehát ez esetben a szóban forgó mondatforma nemterminá-lisai tárolják a P veremtartalmát plusz q1 jelzi azt az állapotot melyb®l indulvaP -nek el kell kezdenie az u szó w suxének a feldolgozását.
Ahhoz, hogy belássuk az L(G) = L(P ) egyenl®séget, elég igazolni a következ®állítást. Tetsz®leges u ∈ Σ∗ szóra, q, p ∈ Q állapotokra és γ ∈ Γ-ra, [q, γ, p]⇒∗
G
u akkor és csak akkor, ha (q, u, γ) `∗ (p, ε, ε). Most csak azt mutatjuk meg,hogy (q, u, γ) `∗ (p, ε, ε)-b®l következik, hogy [q, γ, p] ⇒∗
G u, a fordított állításhasonlóan bizonyítható, ezért ezt az olvasóra bízzuk. A (q, u, γ) `∗ (p, ε, ε)-belikonguráció átmenetek n száma szerinti teljes indukciót alkalmazunk. Tegyükfel, hogy n = 1, azaz (q, u, γ) ` (p, ε, ε). Ekkor u ∈ Σ és (p, ε) ∈ δ(q, u, γ), ezérta G deníciója alapján van egy [q, γ, p]→ u szabály P -ben. Ez azt jelenti, hogy[q, γ, p]⇒G u is teljesül, vagyis az n = 1 esetben igaz az állításunk.
Tegyük fel tehát, hogy az állításunk teljesül, ha n > 1. Ezt felhasználva meg-mutatjuk, hogy akkor is teljesül, ha a konguráció átmenetek száma n + 1.Ez esetben u felírható u = au′ alakban valamely a ∈ Σε-ra és u′ ∈ Σ∗-raúgy, hogy a (q, u, γ) `∗ (p, ε, ε) kongurációátmenet a következ®képpen nézki: (q, u, γ) = (q, au′, γ) ` (q1, u
′, α) `∗ (p, ε, ε), ahol α ∈ Γ∗. Tegyük fel,hogy α = α1 . . . αm valamely m ∈ N-re és α1, . . . , αm ∈ Γ bet¶kre. Tegyükfel továbbá. hogy u′ = u1 . . . um valamely u1, . . . , um ∈ Σ∗ szavakra úgy,
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 41
hogy a (q1, u′, α) `∗ (p, ε, ε) átmenet felírható az alábbi módon: (q1, u
′, α) =(q1, u1 . . . um, α1 . . . αm) `∗ (q2, u2 . . . um, α2 . . . αm) `∗ . . . `∗ (qm, um, αm) `∗(qm+1, ε, ε) = (p, ε, ε). Ekkor mivel minden 1 ≤ i ≤ m esetén fennáll, hogy(qi, ui, αi) `∗ (qi+1, ε, ε) egy legfeljebb n hosszú kongurációátmenet, az induk-ciós feltevés alapján azt kapjuk, hogy [qi, αi, qi+1]⇒∗ ui.
Másrészt azt is tudjuk, hogy mivel (q1, α1 . . . αm) ∈ δ(q, a, γ), a G szabályhal-mazának deníciója szerint van R-ben egy
[q, γ, qm+1]→ a[q1, α1, q2][q2, α2, q3] . . . [qm, αm, qm+1]
szabály. Alkalmazva a [q, γ, qm+1] nemterminálisra ezt a szabályt, majd a kapottmondatformára pedig rendre a [q1, α1, q2] ⇒∗ u1, . . . , [qm, αm, qm+1] ⇒∗ umlevezetéseket, kapjuk, hogy [q, γ, qm+1] ⇒∗ au1 . . . um = u, azaz [q, γ, p] ⇒∗ u,amit bizonyítani akartunk.
A fenti két lemma következményeként kapjuk az alábbi tételt.
1.4.11. Tétel. A környezetfüggetlen nyelvek osztálya megegyezik a veremauto-matával felismerhet® nyelvek osztályával.
1.4.4. A környezetfüggetlen nyelvek egyszer¶sítései
Ebben a fejezetben a környezetfüggetlen nyelvtanok különböz® átalakításairóllesz szó. Van amikor azért alakítunk át egy CF nyelvet, hogy egyszer¶bbé tegyükés van amikor azt szeretnénk, hogy az adott nyelvtan szabályi megfeleljenekvalamilyen kritériumnak. El®ször azt mutatjuk meg, hogyan lehet elhagyni egyCF nyelvtanból az úgynevezett haszontalan szimbólumokat.
1.4.4.1. A haszontalan szimbólumok elhagyása
Nyilvánvaló, hogy egy nyelvet generáló nyelvtan tartalmazhat redundanciákat.Ez alatt azt értjük, hogy el®fordulhatnak a nyelvtanban olyan nemterminálisok,melyekb®l semmilyen módon nem lehet levezetni egy csak terminális szimbó-lumokból álló szót. Vagy esetleg olyan nemterminális/terminális szimbólumszerepel a nyelvtanunkban, ami semmilyen kezd®szimbólumból induló deriváci-óval sem érhet® el. Az ilyen tulajdonságú szimbólumokat bátran elhagyhatjuka nyelvtanból, hisz a generált nyelv nem változik, viszont a nyelvtan maga egy-szer¶södik. A következ®kben azt mutatjuk meg, hogyan lehet egy nyelvtanbanmegtalálni ezeket a haszontalan szimbólumokat.
1.4.12. Deníció. Legyen G = (V,Σ, R, S) egy CF nyelvtan. Egy x ∈ V ∪ Σszimbólumot elérhet®nek nevezünk, ha vannak olyan u, v ∈ (V ∪Σ)∗ szavak, hogyS ⇒∗ uxv. Továbbá azt mondjuk, hogy egy A ∈ V nemterminális befejezhet®,ha van olyan x ∈ Σ∗ szó, hogy A ⇒∗ x. Végül, egy x ∈ V ∪ Σ szimbólumhasznos, ha elérhet® és x ∈ V esetén x befejezhet® is.
42 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
1.4.13. Tétel. Minden nem üres nyelvet generáló CF nyelvtanhoz van veleekvivalens olyan CF nyelvtan, melyben minden szimbólum hasznos.
Bizonyítás. Legyen G = (V,Σ, R, S) egy CF nyelvtan, melyre L(G) 6= ∅. Meg-adunk egy G-vel ekvivalens CF nyelvtant, melyben minden szimbólum hasznos.Ez két lépésben történik. El®ször elhagyjuk G-b®l a nem befejezhet® nemter-minálisokat, utána pedig a kapott nyelvtanból elhagyjuk a nem elérhet® szim-bólumokat.
El®ször tehát kiszámoljuk a befejezhet® nemterminálisok Vt halmazát. Ezt végziel a 3 algoritmus.
Algorithm 3 A befejezhet® nemterminálisok Vt halmazának kiszámításaBemenet: egy G = (V,Σ, R, S) CF nyelvtan;Kimenet: G termináló nemterminálisainak Vt halmaza;i← 1;Vi ← A ∈ V | van A→ x szabály R-ben úgy, hogy x ∈ Σ∗;repeati← i+ 1;Vi ← Vi−1 ∪A ∈ V | van A→ α szabály R-ben úgy, hogy α ∈ (Vi ∪Σ)∗;
until Vi 6= Vi−1;Vt ← Vi.
Könnyen belátható, hogy van olyan i0 ≥ 1 szám, hogy Vi0 = Vi0+1 = Vi0+2 =. . .. Azt sem nehéz belátni, hogy ekkor Vt = Vi0 . Legyen ezek után G1 akövetkez®képpen deniált nyelvtan. G1 = (V1,Σ, S,R1), ahol V1 = V ∩ Vtés R1 azon R-beli szabályok halmaza, melyekben csak Vt-beli nemterminálisokszerepelnek. Megjegyezzük, hogy mivel L(G) nem üres, az S szükségszer¶enbefejezhet®, vagyis S ∈ Vt, tehát S választható a G1 kezd®szimbólumának. Az,hogy L(G1) ⊆ L(G) triviális, hiszen G1 szabályainak halmaza a G szabályhal-mazának részhalmaza. Az pedig, hogy L(G) ⊆ L(G1) következik abból, hogyR-b®l csak olyan szabályokat hagytunk el, melyekben szerepelnek nem befejez-het® nemterminálisok. Az ilyen szabályok alkalmazása egy levezetésben viszontolyan mondatformát eredményez, melyb®l már nem vezethet® le csupa terminá-lis szimbólumokat tartalmazó szó.
Most elhagyjuk G1-b®l a nem elérhet® szimbólumokat. Ehhez felhasználjuk a4. algoritmust, ami kiszámolja az elérhet® szimbólumok E halmazát.
Világos, hogy a fenti algoritmus terminál valamely i ≥ 1-re, és ekkor E = Ei.Legyen G2 = (V2,Σ2, S,R2) az a nyelvtan amit a G1-b®l kapunk az alábbi mó-don. Legyen V2 = V1 ∩ E, Σ2 = Σ ∩ E és R1 azon R1-beli szabályok halmaza,melyekben csak E-beli szimbólumok szerepelnek. Nem részletezzük, de mostis könnyen belátható, hogy a kapott G2 ekvivalens G1-gyel. Azt kapjuk tehát,hogy G2 egy olyan G-vel ekvivalens nyelvtan, melyben minden szimbólum el-érhet®. Be kell még látnunk, hogy a nem elérhet® szimbólumok elhagyásávalnem lesz olyan nemterminális a kapott nyelvtanban ami ne lenne befejezhet®.
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 43
Algorithm 4 Az elérhet® szimbólumok E halmazának kiszámításaBemenet: egy G = (V,Σ, R, S) CF nyelvtan;Kimenet: G elérhet® szimbólumainak E halmaza;i← 1;Ei ← S ∪ X ∈ Σ ∪ V | van S → uXv szabály R-ben valamely u, v ∈(Σ ∪ V )∗ szavakra;repeati← i+ 1;Ei ← Ei−1 ∪ X ∈ Σ ∪ V | van A → uXv szabály R-ben valamely A ∈Ei-re és u, v ∈ (Σ ∪ V )∗szavakra;
until Ei 6= Ei−1;E ← Ei.
Ehhez tegyük fel, hogy A egy olyan G2-beli nem befejezhet® nemterminális,ami egy G1-beli nem elérhet® szimbólum elhagyásával keletkezett. Ez a követ-kez®t jelenti. Egyrészt az A-ból G1-ben elérhet® egy csupa terminálisokból állószó, jelöljük ezt u-val. Továbbá, mivel az A szerepel a G2-ben, tudjuk, hogyA egy elérhet® nemterminális a G1-ben. Ezért vannak olyan v1 és v2 Σ-felettiszavak, hogy S ⇒∗
G1v1Av2. Kapjuk tehát, hogy S ⇒∗
G1v1Av2 ⇒∗
G1v1uv2,
vagyis az A ⇒∗G1
u levezetésben szerepl® összes szimbólum elérhet®. De ez aztjelenti, hogy az A ⇒∗ u levezetés elvégezhet® G2-ben is. E ellentmond annak,hogy A nem befejezhet® a G2-ben, következésképpen G2 összes nemterminálisabefejezhet® kell, hogy legyen.
Nézzünk egy példát a fent tanultakra.
1.4.14. Példa. Legyen G az a nyelvtan melynek kezd®szimbóluma S és a sza-bályai pedig a következ®ek: S → aSb | Ab, A → AB | CD | a, B → b, D → d.El®ször a 3. algoritmus segítségével kiszámoljuk a befejezhet® nemterminálisokVt halmazát. Azt kapjuk, hogy Vt = A,B,D, S, vagyis a G1 az a nyelvtanlesz melynek kezd®szimbóluma S, a szabályai a következ®k: S → aSb | Ab, A→AB | a, B → b, D → d. Ezek után számoljuk ki a 4. algoritmus segítségével aG1 elérhet® szimbólumainak E halmazát. Azt kapjuk, hogy E = S, a, b, A,B, b,amit felhasználva legyen G2 az a nyelvtan, melynek kezd®szimbóluma S, szabá-lyai pedig S → aSb | Ab, A → AB | a, B → b. Így a G2 lesz az a G-velekvivalens nyelvtan, melynek minden szimbóluma használható.
Megjegyezzük, hogy ha egy nyelvtanból el®ször a nem elérhet® szimbólumokathagyjuk el, majd ezek után a nem befejezhet® nemterminálisokat, akkor el®-fordulhat, hogy egy olyan nyelvtant kapunk, melyben nem minden szimbólumhasználható. Jó példa erre az el®z® példában szerepl® G nyelvtan. Mivel G-benminden szimbólum elérhet®, az 4. algoritmus alkalmazása után kapott nyelvtanmaga a G lesz. Ezek után, mivel a G nem befejezhet® nemterminálisa csak a Cnemterminális, elhagyva G-b®l az A→ CD szabályt egy olyan nyelvtant kapunkamiben a d egy nem elérhet® szimbólum lesz.
44 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
Eddigi munkánk arra vonatkozott, hogy elhagyjuk egy CF nyelvtanból azokat aszimbólumokat, melyek nélkül a nyelvtan még mindig az eredeti nyelvet képesgenerálni. Meggyelhet®, hogy a kapott új nyelvtan szabályhalmaza részhalma-za az eredeti szabályhalmaznak. A következ®kben viszont olyan átalakításokkalfoglalkozunk melyek átalakítják az eredeti nyelvtanunk bizonyos szabályait. Acél az lesz, hogy a szabályhalmazból kiküszöböljünk adott típusú szabályokat,megtartva az eredeti nyelvtan által meghatározott nyelvet. Az így kapott nyelv-tanok ezután alkalmasabbak lesznek majd bizonyos feladatokra.
1.4.4.2. Az ε-mentesítés
El®ször azt mutatjuk meg, hogyan lehet egy CF nyelvtanból elhagyni az ún.ε-szabályokat.
1.4.15. Deníció. Legyen G = (V,Σ, S,R) egy CF nyelvtan. Azt mondjuk,hogy G ε-mentes, ha minden R-beli A→ α szabályra igaz az, hogy α 6= ε, vagyha α = ε, akkor A = S és ez esetben az S nem fordul el® egyik szabály jobboldalán sem.
1.4.16. Tétel. Minden CF nyelvtanhoz van vele ekvivalens ε-mentes CF nyelv-tan.
Bizonyítás. Legyen G = (V,Σ, S,R) egy CF nyelvtan. Tegyük fel, hogy ε 6∈L(G) (kés®bb visszatérünk arra ez esetre amikor ε ∈ L(G)). El®ször az 5. algo-ritmus segítségével kiszámoljuk azon nemterminálisok Vε halmazát, melyekb®llevezethet® az ε.
Algorithm 5 Azon nemterminálisok Vε halmazának kiszámítása, melyekb®llevezethet® εBemenet: Egy G = (V,Σ, R, S) CF nyelvtan;Kimenet: A keresett Vε halmaz;i← 1;Vi ← A ∈ Σ | van A→ ε szabály R-ben;repeati← i+ 1;Vi ← Vi ∪ A ∈ V | van A→ u szabály R-ben valamely u ∈ Vi∗-ra;
until Vi 6= Vi−1;Vε ← Vi.
Most is könnyen látható, hogy ez az algoritmus terminál és az is, hogy Vi akeresett Vε halmaznak felel meg. Ezek után a G-vel ekvivalens Gε CF nyelvtanta következ®képpen kapjuk. Legyen Gε = (V,Σ, S,Rε), ahol
Rε =⋃
A→α∈R
A→ α′ | α′ 6= ε és α′ megkapható α-ból
néhány (akár 0) darab Vε-beli nemterminális elhagyásával .
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 45
Világos, hogy a Gε nyelvtan nem tud több Σ-feletti szót levezetni, mint a G.A kérdés az, hogy minden L(G)-beli szó levezethet®-e Gε-ban is. Ehhez elégmegmutatni, hogy ha A ⇒∗
G u valamely A ∈ V -re és u ∈ Σ+ szóra, akkorA ⇒∗
Gεu is teljesül. Az A ⇒∗
G u levezetés hossza szerinti teljes indukciótalkalmazunk. Ha A⇒G u, akkor A⇒Gε u triviálisan teljesül, tegyük fel tehát,hogy az állítás akkor is teljesül, hogy ha az A⇒∗
G u levezetés hossza n > 1. Ezekután megmutatjuk, hogy az állításunk A ⇒n+1
G u esetén is fennáll. Tegyük fel,hogy az A ⇒n+1
G u levezetésben alkalmazott els® szabály A → B1 . . . Bm alakúvalamely m ≥ 1-re és B1, . . . , Bm ∈ V ∪ Σ bet¶kre. Ekkor az u felírható u =u1 . . . um alakban úgy, hogy minden 1 ≤ i ≤ m-re Bi ⇒∗
G ui (ha Bi ∈ Σ, akkora Bi ⇒∗
G ui levezetést egy nulla lépéses levezetésnek tekinthetjük). Ha valamely1 ≤ i ≤ m-re az ui 6= ε, akkor az indukciós feltevés alapján Bi ⇒∗
Gεui is teljesül.
Továbbá, deníció szerint van Rε-ban egy A→ C1 . . . Cm szabály, ahol minden1 ≤ i ≤ m-re Ci = Bi, ha ui 6= ε és Ci = ε egyébként. KövetkezésképpenA⇒∗
Gεu is teljesül.
Ezzel kész vagyunk abban az esetben, ha az eredeti G nyelvtanunk nem tudjalevezetni az üres szót. Ellenkez® esetben a G-hez konstruáljuk meg a fenti Gε
nyelvtant. Ezután vegyük fel egy új S′ nemterminálist a Gε nyelvtanba, legyenez a nyelvtan új kezd®szimbóluma, és vegyük fel a nyelvtanba még az S′ → Sszabályt. Jelöljük a kapott nyelvtantG′
ε-vel. Világos, hogy a kapottG′ε nyelvtan
az eredeti G-vel ekvivalens ε-mentes CF nyelvtan.
1.4.4.3. Láncszabály-mentesítés
A következ®kben az úgynevezett láncszabályokat, azaz az A→ B (B ∈ V ) alakúszabályokat szeretnénk kiküszöbölni egy adott CF nyelvtanból. Az ilyen szabá-lyok bizonyos szempontból feleslegesnek t¶nnek, hisz nem csinálnak mást, mintátnevezik egy levezetés aktuális mondatformájában a nemterminálisokat. EgyG CF nyelvtant láncszabálymentesnek nevezünk, ha nincsenek benne láncsza-bályok.
1.4.17. Tétel. Legyen G = (V,Σ, S,R) egy CF nyelvtan. Megadható egy G-velekvivalens láncszabálymentes CF nyelvtan.
Bizonyítás. El®ször minden V -beli A nemterminálishoz kiszámoljuk az A-bólcsupa láncszabály alkalmazásával elérhet® nemterminálisok VA halmazát. De-níció szerint beletesszük VA-ba magát az A-t is, hiszen az A-t tekinthetjük úgy,mint ami nulla darab láncszabály alkalmazásával érhet® el A-ból. Egy adott Anemterminálisra a VA-t a 6. algoritmussal számoljuk ki.
Ezek után a G-vel ekvivalens Gl láncszabálymentes nyelvtan a következ®képpendeniálható. Legyen Gl = (V,Σ, S,Rl), ahol Rl az alábbi módon adódik:
Rl =⋃A∈V
A→ α | ∃B ∈ VA : B → α ∈ R,α 6∈ V .
46 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
Algorithm 6 Az A-ból csak láncszabállyal elérhet® nemterminálisok VA hal-mazának a kiszámításaBemenet: Egy G = (V,Σ, R, S) CF nyelvtan és egy A ∈ V nemterminális;Kimenet: A keresett VA halmaz;i← 1;Vi ← A;repeati← i+ 1;Vi ← Vi−1 ∪ B ∈ V | van C → B szabály R-ben valamely C ∈ Vi-re;
until Vi 6= Vi−1
VA ← Vi.
Tehát például ha A→ α,A→ B,B → C,C → β R-beli szabályok és α, β 6∈ V ,akkor az A → B és B → C szabályok nem, de az A → α és A → β szabályokbekerülnek Rl-be.
Azt állítjuk, hogy az így deniált Gl ugyanazt a nyelvet generálja mint G. Az,hogy L(Gl) ⊆ L(G) könnyen belátható, ezért csak a fordított irányú tartalma-zást bizonyítjuk. Legyen u ∈ L(G) és tekintsük az u egy S = α0 ⇒G α1 ⇒G
α2 ⇒G . . .⇒G αn = u baloldali levezetését. Itt minden lépés ami nem láncsza-bály elvégezhet® Gl-ben is. Tekintsünk tehát egy maximális hosszúságú részéta fenti levezetésnek, melyben minden lépés láncszabály alkalmazásával történt.Legyen ez αi ⇒G . . . ⇒G αj valamely 0 ≤ i < j < n-re. Mivel a levezeté-sünk egy baloldali levezetés, az αi ⇒G . . .⇒G αj levezetésben a láncszabályokmindig az aktuális mondatforma ugyanazon pozícióján kerülnek alkalmazásra.Ekkor viszont az egész αi ⇒G . . .⇒G αj levezetés, az Rl deníciója alapján, he-lyettesíthet® az αi ⇒Gl
αj+1 lépéssel a Gl-ben. Ezt a gondolatmenetet folytatvakönnyen látható, hogy S ⇒∗
Glu is teljesül, azaz u ∈ L(Gl).
1.4.4.4. Chomsky normálforma
A környezetfüggetlen nyelvtanokon sokféle normálformát deniáltak, mi ezekközül az egyik legismertebbel és legfontosabbal, a Chomsky normálformávalismerkedünk meg.
1.4.18. Deníció. Egy G = (V,Σ, R, S) környezetfüggetlen nyelvtan Chomskynormál formában adott, ha R-ben minden szabály A → BC vagy A → a alakú(A,B,C nemterminálisok, a pedig egy terminális). A fentiek alól csak az S → εszabály lehet a kivétel, de ha van ilyen szabály R-ben, akkor az S nem fordulhatel® egyetlen szabály jobboldalán sem.
1.4.19. Tétel. Minden környezetfüggetlen nyelvtanhoz megadható egy vele ek-vivalens Chomsky normálformában lév® nyelvtan.
Bizonyítás. Legyen G = (V,Σ, S,R) egy CF nyelvtan. Az 1.4.16. és az 1.4.17.
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 47
tételek alapján feltehetjük, hogy G ε- és láncszabály mentes. Legyen GCh =(VCh,Σ, S,RCh), ahol a VCh és RCh halmazokat az alábbi módon deniáljuk.
El®ször is, legyen VCh = V , majd adjuk hozzá VCh-hoz a V ′ = a′ | a ∈ Σhalmazt, azaz minden a ∈ Σ elemre beteszünk a V -be egy új, a′-vel jelöltnemterminálist. Továbbá, minden a′ ∈ V ′-re vegyük fel RCh-ba az a′ → aszabályt.
Ezek után, minden R-beli A → α szabályra tegyük a következ®t. Ha α = BCvalamely B,C ∈ V -re vagy α = a (a ∈ Σ), akkor vegyük fel A → α-t RCh-ba,hiszen ezek a szabályok eredetileg is megfelelnek a Chomsky normálformának.Egyébként pedig legyen α = a1 . . . an, ahol n ≥ 2, a1, . . . , an ∈ V ∪Σ és az n = 2esetben a1a2 6∈ V V . Legyen továbbá β = b1 . . . bn, ahol minden 1 ≤ i ≤ n-rebi = ai, ha ai ∈ V és bi = a′i egyébként (tehát β minden bet¶je egy V ∪ V ′-beli nemterminális). Ha n = 2, akkor vegyük fel az A → β szabályt RCh-ba.Ha pedig n > 2, akkor legyenek B1, . . . , Bn−2 új, a VCh-ban még nem használtnemterminálisok. Adjuk hozzá VCh-hoz ezeket a nemterminálisokat, az RCh-hozpedig az A→ b1B1, B1 → b2B2, . . . , Bn−2 → bn−1bn szabályhalmazt.
Megmutatjuk, hogy az így deniált GCh egy a G-vel ekvivalens Chomsky nor-málformában lév® nyelvtan. Az aránylag könnyen látható, hogy a G mindenszabálya szimulálható a GCh egy vagy több szabályának egymás utáni alkalma-zásával, ezért L(G) ⊆ L(GCh). Az L(GCh) ⊆ L(G) tartalmazást a következ®-képpen látjuk be. Legyen A ∈ V egy nemterminális és u ∈ Σ∗ egy szó, melyreA ⇒∗
Gchu teljesül. A fenti levezetés hossza szerinti indukcióval megmutatjuk,
hogy u levezethet® az A-ból a G nyelvtanban is.
Ha a levezetés hossza egy, akkor csak az A → u (u ∈ Σ) szabály kerülhetettalkalmazásra GCh-ban, de RCh deníciójából következik, hogy ez a szabály sze-repel G-ben is, tehát A ⇒∗
G u szintén teljesül. Tegyük fel tehát, hogy A ⇒∗G u
teljesül, ha az A⇒∗Gch
u levezetés hossza n ≥ 2 és megmutatjuk, hogy akkor isteljesül, ha a levezetés hossza n + 1. Vizsgáljuk meg az els® szabályt, amit azA ⇒∗
Gchu levezetésben alkalmazhatunk. A következ® három esetet különböz-
tethetjük meg.
Els® eset: az alkalmazott szabály A→ CB alakú, ahol B,C ∈ V . Ekkor az RCh
deníciója miatt az A → CB szabály benne van R-ben is. Legyen u = u1u2(u1, u2 ∈ Σ∗) úgy, hogy B ⇒∗
GChu1 és C ⇒∗
GChu2. Mivel B,C ∈ V , az
indukciós feltevés miatt a fenti két levezetés elvégezhet® G-ben is. Kapjuktehát, hogy A⇒∗
G u.
Második eset: az alkalmazott szabály A → b1b2 alakú, ahol b1, b2 ∈ V ∪ V ′, deb1b2 6∈ V V . Ha mindkét nemterminális V ′-beli, mondjuk b1 = a′1 és b2 = a′2valamely a1, a2 ∈ Σ-ra, akkor a levezetés csak az RCh-beli a′1 → a1 és a′2 →a2 szabályokkal folytatható, tehát az u = a1a2 ∈ Σ∗. Ekkor viszont az RCh
deníciója miatt kell, hogy legyen az R-ben egy A→ a1a2 alakú szabály, tehátaz u szó levezethet® az A-ból a G-ben is.
Ha viszont a b1 és b2 közül csak az egyik, mondjuk a b1 a V ′-beli (és ekkor
48 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
a b2 V -beli kell hogy legyen), akkor a következ®k teljesülnek. Legyen b1 = a′
valamely a ∈ Σ-ra. Ekkor a′-re csak az a′ → a szabály alkalmazható GCh-ban és az RCh deníciója alapján R-ben szerepel az A → ab2 szabály. Tegyükfel, hogy u = au1 valamely u1 ∈ Σ∗-ra. Akkor b1 ⇒∗
GChu1 és ez a levezetés,
az indukciós feltevés alapján, elvégezhet® G-ben is. Azt kaptuk tehát, hogyA ⇒∗
G u, vagyis ebben az esetben készen vagyunk. Az az eset, amikor b2 ∈ V ′
és b1 ∈ V hasonlóan kezelhet®.
Harmadik eset: az alkalmazott szabály A → b1B1 alakú, ahol b1 ∈ V ∪ V ′ ésB1 ∈ VCh − (V ∪ V ′). Tudjuk, hogy ebben az esetben a B1-b®l pontosan egyszót lehet levezetni, mégpedig egy olyan b2 . . . bk szót, ahol k > 2 és miden2 ≤ i ≤ k-ra bi ∈ V ∪ V ′. Tehát a GCh-ban az A ⇒∗ u levezetést fel lehet írnia következ® alakban:
A→ b1B1 → b1b2B2 → . . .⇒ b1b2 . . . bk ⇒∗ u.
Ekkor az u felírható u = u1 . . . uk alakban úgy, hogy minden 1 ≤ i ≤ k-rabi ⇒∗
GChui. Továbbá ha bi = a′ valamely a′ ∈ V ′-re, akkor az ui csak az a ∈ Σ
bet¶ lehet. Egyébként bi ∈ V és ekkor az indukciós feltevés alapján a bi ⇒∗ uilevezetés elvégezhet® a G-ben is. Másrészt az RCh deníciójából következik,hogy R-ben van egy A → a1 . . . ak szabály úgy, hogy minden 1 ≤ i ≤ k-raai = bi, ha bi ∈ V és ai = a, ha bi = a′ ∈ V ′. Kapjuk tehát, hogy az u azA ⇒ a1 . . . ak ⇒∗ u1 . . . uk = u levezetéssel megkapható az A-ból a G-ben is,ezzel a tétel bizonyítását befejeztük.
1.4.5. A környezetfüggetlen nyelvek pumpáló lemmája
A környezetfüggetlen nyelvekre is létezik a felismerhet® nyelveknél látotthozhasonló pumpáló lemma: minden L CF nyelvre igaz, hogy ha veszünk bel®leegy elegend®en hosszú w szót, akkor a w bizonyos nem üres részszavait iterálvaa nyelv további szavait kapjuk meg. Ezt precízen a következ® lemma írja le,melyet Bar-Hillel lemmaként is ismerünk.
1.4.20. Lemma. (Bar-Hillel lemma) Legyen L egy CF nyelv. Akkor van egyolyan p ≥ 1 L-t®l függ® konstans, hogy minden olyan w ∈ L szóra, melynek ahossza legalább p a következ® teljesül. A w felírható w = xuvzy alakban úgy,hogy
1. uz 6= ε,
2. l(uvz) < p és
3. minden i ≥ 0 esetén xuivziy eleme az L-nek.
Bizonyítás. Legyen G = (V,Σ, R, S) egy olyan Chomsky normálformában lév®CF nyelvtan ami L-et generálja (ilyen nyelvtan a 1.4.19. lemma szerint létezik).
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 49
1.11. ábra. Pumpáló lemma CF nyelvekre
A
t2
A
t1t
x u v z y
α
t1t
x y. . .
t2
t1
t1
vui zi
ti1
⇒
t ti
A
A
A
A
El®ször megjegyezzük, a következ®t. Ha t a G egy legfeljebb n + 1 magasderivációs fája, ahol n ≥ 0, akkor l(yd(t)) ≤ 2n. Ehhez elég meggondolni azt,hogy a t határán lév® szó akkor a leghosszabb, ha t-ben minden út pontosann+1 hosszú. Ekkor viszont pontosan 2n darab nemterminális jelenik meg t-benaz n-ik szinten, így az n+ 1-ik szinten értelemszer¶en 2n terminális szerepel.
Legyen p = 2|V |−1 + 1 és tekintsünk egy u ∈ L(G) szót, melyre l(u) ≥ p.Legyen t az u egy derivációs fája. A fenti megjegyzés alapján t magasságanagyobb kell hogy legyen, mint |V |. Tekintsünk egy a t gyökeréb®l valamelyiklevélhez vezet® maximális hosszúságú utat. Jelöljük ezt az utat α-val (lásd1.11. ábra). Tudjuk, hogy α hossza legalább |V | + 1. Ezért a skatulya elvalapján kell, hogy legyen egy olyan nemterminális, mely kétszer is szerepel azα-n. Vegyük az α-nak a t csúcsától számított utolsó két olyan szögpontjátmelyeken ugyanaz a nemterminális ismétl®dik. Jelöljük ezt a nemterminálistA-val, a fenti csúcsok közül a gyökérhez közelebbit n1-gyel, a másikat pedig n2-vel. Jelölje továbbá t1 az n1-ben, a t2 pedig az n2-ben kezd®d® részfáját a t-nek.Világos, hogy a t1 magassága kisebb, mint |V | + 1, mert egyébként az α-nakaz n1 α-ra es® gyermekét®l a levélig tartó részén lenne egy nemterminálisnakkét különböz® el®fordulása, ami ellentmondana az A választásának. Legyen
50 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
u1 = yd(t1) és u2 = yd(t2). Nyilván az u2 egy részszava u1-nek, az u1 pedig u-nak, azaz u = w1u1w2 és u1 = w3u2w4 valamely w1, w2, w3, w4 ∈ Σ∗ szavakra.A továbbiakban megmutatjuk, hogy az x = w1, y = w2, u = w3, v = u2 ész = w4 választással a tétel feltételei teljesülnek.
El®ször is, a bizonyítás elején tett megjegyzés alapján l(u1) ≤ 2|V |−1, azazl(uvz) < p, vagyis a lemma második feltétele teljesül. S®t, az is igaz, hogyw1w2 6= ε, a következ®k miatt. Mivel G Chomsky normálformában van, az n1csúcsnak két gyermeke van, legyenek ezek m1 és m2. Világos, hogy t2 vagy azm1 vagy az m2 csúcsú részfában van. A másik részfa határa viszont nem lehetε, mivel G ε-mentes, tehát a lemma els® feltétele is teljesül.
Végül, tetsz®leges i ≥ 0-ra jelöljük ti-vel azt a fát, amit a következ®képpenkapunk (lásd a 1.11. ábra jobb oldalán lév® fát). El®ször töröljük a t1-b®l at2 részfát úgy, hogy megtartjuk a t2 csúcsát, azaz n2-t. Jelöljük a kapott fátt′1-el. Ezután legyen ti1 az a fa amit úgy kapunk, hogy a t′1-t behelyettesítjükönmagába az n1 csúcs helyére, és ezt ismételjük addig, amíg a kapott fábani-szer nem szerepel a t′1 (az i = 0 esetet speciálisan kell értelmezni, err®l majdkés®bb beszélünk). Ezután helyettesítsük ti1-be az n2 csúcs helyére t2-t, és azegész fát helyettesítsük t-be az n1 csúcs helyébe. Végezetül legyen ti az ígykapott fa. Visszatérve az i = 0 esethez, ezt úgy kell értelmezni, hogy ekkor a t′1egyszer sem fordul el® a t0-ban. Könny¶ látni, hogy minden i ≥ 0-ra a kapott ti
fa a G egy legálisan képzett derivációs fája, tehát a fa határa, azaz az xuivziyszó eleme L(G)-nek. Ezzel beláttuk, hogy a lemma harmadik feltétele is teljesül.
A fenti lemma használatával azt tudjuk bizonyítani, hogy egy nyelv nem kör-nyezetfüggetlen, ahogy ezt a következ® példában is láthatjuk.
1.4.21. Példa. Legyen L = anbncn | n ≥ 0. Megmutatjuk, hogy L nemkörnyezetfüggetlen. Ehhez felhasználjuk a környezetfüggetlen nyelvek fentebb lá-tott pumpáló lemmáját. Indirekt módon bizonyítjuk az állításunkat. Tegyük fel,hogy L egy CF nyelv és legyen p a 1.4.20. lemmában szerepl® szám. Legyenw = apbpcp. Akkor l(w) ≥ p, valamint w ∈ L, tehát w-re teljesülnek a lemmafeltételei. Ezek alapján vannak olyan x, y, u, v, z ∈ a, b, c∗ szavak, melyekrew = xuvzy, továbbá l(uvz) < p, uz 6= ε és minden i ≥ 0-ra xuivziy ∈ L. Mivell(uvz) < p, az uvz szó legfeljebb kétféle bet¶t tartalmazhat. Tegyük fel, hogy ez akét bet¶ az a és a b (az összes többi esetben hasonlóan folytatható a bizonyítás).Ekkor minden i > 1-re az xuivziy több a vagy b bet¶t tartalmaz, mint c bet¶t,vagyis xuivziy nem lehet L-beli. Ellentmondáshoz jutottunk, vagyis L nem lehetkörnyezetfüggetlen.
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 51
1.4.6. A környezetfüggetlen nyelvekkel kapcsolatos eldönt-
het®ségi kérdések
Ebben a részben megvizsgálunk néhány CF nyelvekkel kapcsolatos eldönthet®-ségi kérdést. El®ször itt is a szóproblémát vizsgáljuk.
1.4.22. Tétel. Legyen L ⊆ Σ∗ egy CF nyelv és u ∈ Σ∗ egy szó. Eldönthet®,hogy u ∈ L teljesül-e.
Bizonyítás. Legyen G = (V,Σ, R, S) egy L-et generáló CF nyelvtan. Az 1.4.19.lemma alapján feltehetjük, hogy G Chomsky normálformában van. Ha u =ε, akkor u ∈ L akkor és csak akkor, ha S → ε eleme az R-nek. Ez utóbbieldönthet®, tehát u ∈ L is eldönthet®.
Ezután tegyük fel, hogy l(u) ≥ 1 és legyen n = l(u). Nem nehéz belátni, hogyaz u derivációs fájának a magassága legfeljebb n+1 lehet. Annak eldöntéséheztehát, hogy u ∈ L teljesül-e elég megvizsgálni az u szó legfeljebb n + 1 magasderivációs fáit. Ezt megtehetjük, hiszen ilyen fa véges sok van. Megjegyezzük,hogy ez a módszer az n függvényében exponenciális id®igény¶, tehát a gyakor-latban nem igazán alkalmazható. Van azonban a kérdés eldöntésére polinomidej¶ algoritmus is. Ilyen például az ún. CYK algoritmus, aminek a beme-nete szintén egy Chomsky normálformában lév® nyelvtan, az id®igénye pedignagyságrendileg n3. HIVATKOZÁS!!!!
1.4.23. Tétel. Eldönthet®, hogy egy L CF nyelv üres-e.
Bizonyítás. Legyen L egy CF nyelv és tegyük fel, hogy L egy G = (V,Σ, R, S)CF nyelvtannal adott, azaz L = L(G). Számoljuk ki a 3. algoritmussal a Gbefejezhet® nemterminálisainak Vt halmazát. Ezek után L = ∅ akkor és csakakkor teljesül, ha S 6∈ Vt.
Megjegyezzük, hogy a fenti algoritmus futásának id®igénye a G méretével négy-zetesen arányos (itt most a méret alatt V számosságát értjük).
Végül azt mutatjuk meg, hogy a CF nyelvek végtelensége is eldönthet®.
1.4.24. Tétel. Legyen L egy CF nyelv. Eldönthet®, hogy L végtelen-e.
Bizonyítás. Tegyük fel, hogy L a G = (V,Σ, S,R) CF nyelvtannal adott éslegyen p az 1.4.20. lemmában szerepl® p szám. Azt állítjuk, hogy L akkor éscsak akkor végtelen, ha van olyan u ∈ L szó, melyre p ≤ l(u) ≤ 2p teljesül. Eztaz állítást a következ®képpen bizonyítjuk.
Egyrészt az 1.4.20. lemma miatt ha egy u ∈ L szóra p ≤ l(u), akkor L végtelen.A másik irány bizonyításához tegyük fel, hogy L végtelen. Ekkor biztos, hogyvan olyan u ∈ L szó melyre l(u) > 2p. Elég tehát megmutatni, hogy mindenilyen u szóhoz megadható egy olyan u′ ∈ L szó melyre l(u)− l(u′) ≤ p. Vegyükaz u egy derivációs fáját, legyen ez t, és az 1.4.20. lemma bizonyításában látott
52 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
módon készítsük el a t0 fát. Belátható, hogy az u′ = yd(t0) szóra teljesül, hogyl(u)− l(u′) ≤ p. Továbbá, a pumpáló lemma szerint u′ ∈ L, tehát megtaláltuka keresett tulajdonságú L-beli u′ szót és ezzel az allításunkat bebizonyítottuk.
Ezek után L végtelensége a következ®képpen dönthet® el. Soroljuk fel az összesolyan Σ∗-beli szót, melynek hossza legalább p és legfeljebb 2p (ilyen szó perszecsak véges sok van). Ha találunk ezen szavak között olyat ami L-beli (ez a 1.4.22.tétel alapján eldönthet®), akkor L végtelen, egyébként pedig nem az.
A felismerhet® nyelvekkel ellentétben a CF nyelvekkel kapcsolatban már meg-lep®en kevés kérdés dönthet® el, ezek közül láttunk néhányat idáig. Az alábbfelsorolt problémák közül viszont már egy sem dönthet® el:
1. Üres-e két környezetfüggetlen nyelv metszete?
2. Megegyezik-e két környezetfüggetlen nyelv?
3. Megegyezik-e egy L ⊆ Σ∗ nyelv Σ∗-gal?
A fenti állításokat itt most nem bizonyítjuk, de a témára a következ® fejezet-ben, ahol alapvet®en eldönthetetlen problémákat keresünk majd a Turing-gépeksegítségével, még visszatérünk.
1.4.7. A környezetfüggetlen nyelvek zártsági tulajdonságai
Ebben a részben CF nyelvekkel kapcsolatos zártsági tulajdonságokat vizsgálunk.
1.4.25. Tétel. A CF nyelvek zártak a reguláris m¶veletekre, de nem zártak ametszet és a komplementer képzésre.
Bizonyítás. A reguláris m¶veletekre való zártság bizonyításához, úgy mint a re-guláris nyelvek esetében is, nyelvtanokból indulunk ki. Itt azonban könnyebbdolgunk lesz, hisz a CF nyelvtanok szabályai nem olyan szigorúak, mint a regulá-ris nyelvtanoké. Legyen tehát L1 és L2 két CF nyelv ésG1 = (V1,Σ, R1, S1) vala-mint G2 = (V2,Σ, R2, S2) két CF nyelvtan melyekre L1 = L(G1) és L2 = L(G2).Feltehetjük, hogy V1 ∩ V2 = ∅. G1-b®l és G2-b®l megkonstruáljuk az L1 ∪ L2,L1L2 illetve L∗
1 nyelveket generáló nyelvtanokat az alábbi módon. El®ször ve-gyünk egy olyan S új nemterminálist ami nem fordul el® V1 ∪ V2-ben. Ezutánlegyen
• G∪ = (V1 ∪ V2 ∪ S,Σ, R1 ∪R2 ∪ S → S1, S → S2, S),
• Gkonk = (V1 ∪ V2 ∪ S,Σ, R1 ∪R2 ∪ S → S1S2, S),
• Giter = (V1 ∪ S,Σ, R1 ∪ S → SS1, S → ε, S).
1.4. KÖRNYEZETFÜGGETLEN NYELVEK 53
Nem nehéz belátni, hogy a G∪, Gkonk és Giter nyelvtanok rendre az L1 ∪ L2,L1L2 és az L∗
1 nyelveket generálják.
A bizonyítás második részeként belátjuk, hogy a CF nyelvek nem zártak a met-szet és a komplementer képzésre. Ehhez tekintsük az L = anbncn | n ≥ 1nyelvet. Amint azt az 1.4.21. példában láttuk, L nem környezetfüggetlen. Az isigaz viszont, hogy az L felírható két CF nyelv metszeteként: L = L1 ∩ L2, aholL1 = anbnci | n ≥ 1, i ≥ 1 és L1 = aibncn | n ≥ 1, i ≥ 1. Következik tehát,hogy a CF nyelvek nem zártak a metszetképzésre.
Ezek után az, hogy a CF nyelvek nem zártak a komplementer képzésre a követ-kez®képpen adódik. Legyenek L1 és L2 tetsz®leges CF nyelvek. Akkor nyilván-valóan L1 ∩L2 = L1 ∪ L2, azaz ha a CF nyelvek zártak lennének a komplemen-terképzésre, akkor a metszetképzésre is zártak lennének, ami pedig mint fentebbláttuk nem igaz. Kapjuk tehát, hogy a CF nyelvek nem zártak a komplementerképzésre sem.
Korábban láttuk, hogy a felismerhet® nyelvek zártak a metszetképzésre, fentebbpedig azt bizonyítottuk, hogy a CF nyelvek nem zártak erre a m¶veletre. Pozitíveredményként azonban kimondjuk az alábbi tétel.
1.4.26. Tétel. A CF nyelvek zártak a felismerhet® nyelvekkel való metszetkép-zésre.
A tétel bizonyítását az olvasóra bízzuk, de segítségképpen megemlítjük, hogyaz 1.3.16. tétel bizonyításában látott megfelel® részt kell általánosítani egyveremautomatára és egy véges automatára.
54 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK
2. fejezet
A kiszámíthatóság elmélet
alapjai
Ebben a fejezetben megismerünk egy olyan eszközt, a Turing-gépet, mely segít-ségével képesek leszünk bizonyítani, hogy léteznek kiszámíthatatlan problémák.Mindenekel®tt áttekintjük, hogy milyen események vezettek addig, amíg a tu-dósok elfogadták, hogy igenis léteznek ilyen kiszámíthatatlan problémák.
2.1. A kiszámíthatóság elmélet rövid története
1900-ban, a századforduló alkalmából, David Hilbert német matematikus 23addig megválaszolatlan kérdést intézett a kor matematikusaihoz. Ezek közülnéhány, mint ahogy az kés®bb kiderült, nagy hatással volt a huszadik századimatematika és különösen a kiszámíthatóság elmélet fejl®désére.
Ezen problémák közül a 10-ik a következ®képpen szólt. Adott egy p egész együtt-hatós polinom. A kérdés az, hogy tudunk-e p változóiba olyan egész számokathelyettesíteni, hogy p értéke 0 legyen? Legyen például p = 3xy−2x2+2z. Ha xhelyébe 2-t, y és z helyébe pedig 1-et helyettesítünk, akkor p értéke 0 lesz. Te-hát ennek a konkrét polinomnak az esetében igen a válasz a kérdésre. Hilbertolyan algoritmust keresett, ami tetsz®leges polinom esetén igen vagy nemválaszt ad. Akkoriban az algoritmus fogalmának csak egy intuitív deníciójalétezett:
Az algoritmus utasítások egy jól deniált, véges sorozata, melyeketvégrehajtva megoldható egy adott feladat (probléma).
Hilbert úgy gondolta, hogy nincs eldönthetetlen probléma és meg volt gy®z®d-ve róla, hogy a 10-ik probléma is eldönthet® megfelel® algoritmussal. Ezt a
55
56 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
problémát végül Matijasevi£ oldotta meg 1970-ben. Megmutatta, hogy a 10-ik probléma algoritmikusan eldönthetetlen. Ehhez azonban nem volt elég azalgoritmus intuitív fogalma, annak matematikailag is precíz deníciójára voltszükség. A következ®kben röviden áttekintjük, hogy melyek voltak azok a f®bbesemények, amelyek a kiszámíthatóság elmélet kialakulásához és ezzel együtt azalgoritmus matematikailag is precíz deníciójához vezettek.
Hilbert az 1920-as években meghirdette nagyra tör® programját, melynek lé-nyege az volt, hogy formalizálni és axiomatizálni kellene a matematika összeselméletét egy megfelel® formális nyelven, és megmutatni, hogy az axiómarend-szer teljes (minden igaz állítás bizonyítható a rendszerben) és konzisztens (nemvezethet® le bel®le ellentmondás, azaz egy állítás és annak a tagadása is).
Hilbert programjának része volt az úgynevezett Entscheidungsproblem (magyar-ra Eldönthet®ségi Problémaként fordítható) mely egy olyan algoritmus megadá-sát t¶zte ki célul, ami a matematika tetsz®leges állításáról eldönti, hogy az igazvagy hamis.
Hilbert programja nagy hatással volt Kurt Gödelre, aki 1929-ben megmutatta,hogy az els®rend¶ kalkulus teljes, azaz minden érvényes formula levezethet® (bi-zonyítható) egy megfelel® axiómarendszerb®l. Ezt a tételt hívjuk Gödel teljes-ségi tételének. Két évvel kés®bb Gödel bebizonyította az ún. els® nemteljességitételét: Minden olyan mechanikusan kiszámítható elméletben ami tartalmazzaaz elemi aritmetikát van olyan állítás, hogy az adott elméletben sem az állí-tás, sem annak tagadása nem bizonyítható, tehát van olyan állítás ami igaz denem bizonyítható. A tétel tulajdonképpen azt mondja ki, hogy minden olyanelmélet, ami eleget tesz a fent leírtaknak nem lehet egyszerre teljes és konzisz-tens. A nemteljességi tételb®l következik, hogy Hilbert programjának alapvet®célkit¶zései megvalósíthatatlanok voltak.
Azt viszont a nemteljességi tétel elvileg nem zárta ki, hogy esetleg létezik algo-ritmus, ami eldönti a matematika összes állítását, mivel az algoritmus pontosdeníciója akkor még nem létezett. Az Eldönthet®ségi Problémára a negatívválaszt végül Alonzo Church és Alan Turing adta meg egymástól függetlenül,de nagyjából egy id®ben, 1936-ban. Ehhez viszont az kellett, hogy bevezetésrekerüljenek olyan algoritmus modellek, amelyekr®l kés®bb kiderül, hogy mind azeektíven (algoritmikusan) kiszámítható függvények osztályát deniálják:
Gödel: 1931-ben bevezeti a primitív rekurzív függvényeket. 1934-ben, egy el®-adáson, Herbrand javaslatára deniálja az általánosabb rekurzív függvé-nyeket és megfogalmazza azt a nézetét, hogy ezek a függvények megfelelneka mechanikusan kiszámítható függvényeknek.
Church: Az 1930-as évek elején tanítványaival (Kleene és Rosser) megalkotjaa λ-kalkulust, egy formális rendszert, ami a függvény fogalmán és a függ-vényeknek a változók értékeire való alkalmazásán alapszik. Ezen belülmegalkotják a λ-deniálható függvényeket. Kés®bb bebizonyítják, hogyezek ekvivalensek rekurzív függvényekkel.
2.2. ALAPFOGALMAK 57
Turing: 1936-os cikkében deniálja a kés®bb róla elnevezett Turing-gépet ésmegfogalmazza azt a nézetét, hogy a Turing-géppel kiszámítható függvé-nyek megegyeznek az algoritmikusan kiszámítható függvényekkel. A cikkevégén vázolja annak bizonyítását, hogy a λ-deniálható valamit a Turing-géppel kiszámítható függvények megegyeznek.
Kés®bb további modelleket is deniáltak (pl. RAM gépek, Post-gépek, Markov-algoritmusok), de mindr®l kiderült, hogy nem rendelkeznek a Turing-gépnél na-gyobb számítási er®vel. Ezek az eredmények is alátámasztják az ún. Church-Turing tézist:
A kiszámíthatóság különböz® matematikai modelljei mind az eektí-ven kiszámítható függvények osztályát deniálják.
Church Hilbert Eldönthet®ségi Problémájára úgy adott negatív választ, hogymegmutatta, nincs olyan eektíven kiszámítható módszer, ami két λ-kalkulusbelikifejezésr®l eldönti, hogy azok ekvivalensek-e. Turing a következ®képpen gon-dolkodott. El®ször megmutatta, hogy nincs olyan módszer, ami eldöntené aTuring-gépek úgynevezett megállási problémáját. Ezek után pedig megfogal-mazta a problémát matematikai állításként. Ebb®l már következett, hogy nemlétezhet olyan algoritmus ami eldöntené a matematikai állítások igazságértékét.
2.2. Alapfogalmak
Kiszámítási problémának nevezünk egy olyan, a matematika nyelvén megfo-galmazott kérdést, amire egy algoritmussal szeretnénk megadni a választ. Agyakorlati élet szinte minden problémájához rendelhet®, megfelel® absztrakcióthasználva, egy kiszámítási probléma.
2.2.1. Példa. Tekintsük a következ®, valós életb®l vett problémát. Tegyük fel,hogy van több, azonos magasságú, de különböz® méret¶ hordónk, melyeket elszeretnénk szállítani valahova. Adódik a kérdés: hogyan helyezzük el a teherau-tónkon a hordóinkat úgy, hogy minél nagyobb legyen a hordók együttes ¶rtartal-ma. Az ehhez a feladathoz rendelhet® kiszámítási probléma a következ®: hogyanhelyezhetünk el egy téglalapban különböz® sugarú köröket úgy, hogy a téglalapnakminél nagyobb részét lefedjük?
Egy problémát a hozzá tartozó konkrét bementettel együtt a probléma egypéldányának nevezzük. A fenti kiszámítási probléma egy példánya az amikormegadjuk a téglalap és a körök konkrét méreteit.
Speciális kiszámítási probléma az eldöntési probléma. Ilyenkor a problémávalkapcsolatos kérdés egy eldöntend® kérdés, tehát a probléma egy példányára aválasz igen vagy nem lesz.
58 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
Ilyen eldöntési probléma az úgynevezett Sat probléma, amit a következ®képpendeniálunk. Adott egy φ zérusrend¶ (ítéletkalkulusbeli) konjunktív normálfor-ma. A kérdés az, hogy kielégíthet®-e φ. Tehát a problémára a válasz igen haφ kielégíthet® és nem egyébként.
Egy kiszámítási probléma reprezentálható egy f : A → B függvénnyel. Az Ahalmaz tartalmazza a probléma egyes bemeneteit, jellemz®en egy megfelel® ábé-cé feletti szóban elkódolva, míg a B halmaz tartalmazza a bemenetekre adottválaszokat, szintén valamely alkalmas ábécé feletti szóban elkódolva. Értelem-szer¶en, ha eldöntési problémáról van szó, akkor az f értékkészlete, vagyis a Begy két elem¶ halmaz: igen, nem, 1, 0, stb.
Egy f : A → B függvényt kiszámíthatónak nevezünk, ha minden x ∈ A elemreaz f(x) ∈ B érték kiszámítható valamilyen algoritmus modellel. Egy problémapedig megoldható (eldöntési probléma esetén azt is mondjuk, hogy eldönthet®),ha az általa meghatározott függvény kiszámítható.
A Sat probléma eldönthet®, hisz könnyen adható egy algoritmus, ami eldöntiazt, hogy egy φ formula kielégíthet®-e. Ez az algoritmus nem csinál mást, mint aφ-ben szerepl® változóknak logikai értéket ad az összes lehetséges módon, majdrendre kiértékeli a formulát.
A kés®bbiekben gyakran lesz szükségünk arra, hogy a problémákat eldönt® al-goritmusok id®igényét a probléma egy példánya méretének a függvényében vizs-gáljuk. Igazából nem a pontos id®igényre leszünk kíváncsiak, hanem annaknagyságrendjére, ezért bevezetjük a következ® fogalmakat.
2.2.2. Deníció. Legyenek f, g : N → N függvények, ahol N a természetes szá-mok halmaza. Azt mondjuk, hogy f legfeljebb olyan gyorsan n® mint g (jelölése:f(n) = O(g(n))) ha létezik olyan c > 0 szám és n0 ∈ N , hogy f(n) ≤ c · g(n)minden n ≥ n0 számra. Az f(n) = Ω(g(n)) jelöli azt, hogy g(n) = O(f(n))teljesül, és f(n) = Θ(g(n)) jelöli azt, hogy f(n) = O(g(n)) és f(n) = Ω(g(n))is teljesül.
2.2.3. Példa. 3n3 + 5n2 + 6 = O(n3), 123n2 + 6235 = O(n2), nk = O(2n)minden k ≥ 0-ra, log2 n = O(n), log log n = O(logn).
Nagyon fontos a következ® eredmény, amit bizonyítás nélkül közlünk.
2.2.4. Tétel. Minden polinomiális függvény lassabban n®, mint bármely expo-nenciális függvény, azaz minden p(n) polinomhoz és c pozitív valós számhoz vanolyan n0 egész szám, hogy minden n ≥ n0 esetén p(n) ≤ 2cn. !!!!!HIVATKOZÁS(Papadimitriou)!!!!
Intuitíven egy algoritmus id®igénye egy olyan f : N → N függvény, amely meg-adja egy n számra azt az f(n) számot, ami a maximuma az algoritmus n hosszúbemeneteken való lépésszámának. Ilyenkor azt mondjuk, hogy az algoritmusf(n) id®igény¶. Ha az algoritmus id®igényét csak nagyságrendileg akarjuk be-csülni, akkor mondhatjuk azt is, hogy az algoritmus O(f(n)) id®igény¶. Ha
2.2. ALAPFOGALMAK 59
f egy polinom vagy egy exponenciális függvény, akkor azt is mondjuk, hogyaz algoritmus polinom vagy exponenciális id®igény¶. A 2.2.4. tételb®l látszik,hogy egy polinom id®igény¶ algoritmus, elég nagy bemenet esetén, hamarabbmegválaszolja az adott kérdést, mint egy exponenciális id®igény¶ algoritmus.
Tekintsük újra az eldönthet® Sat problémát. Vajon Sat megoldható-e polinomid®ben? A probléma eldöntésére használható, minden változó-hozzárendeléstmegvizsgáló algoritmus a formula változószámának függvényében exponenciálislépésszámú (mert legrosszabb esetben exponenciálisan sok hozzárendelést kellmegvizsgálni). Ez pedig a gyakorlatban, legalábbis a sok változót tartalmazóformulákra, használhatatlan. Ahhoz, hogy ezt belássuk tekintsünk egy 100 vál-tozót tartalmazó φ konjunktív normálformát. Tudjuk, hogy φ kielégíthet®ségé-nek az eldöntéséhez általában 2100 kiértékelés szükséges. Ez akkora szám, hogyegy másodpercenként 1012 m¶veletre képes számítógép körül-belül 4 · 1016 évigdolgozna a problémán, ami pedig több, mint az univerzum jelenlegi életkora.
Jelenleg megválaszolatlan az a kérdés, hogy van-e a Sat problémát polinomid®ben eldönt® algoritmus. Ennek a kérdésnek a vizsgálata már a bonyolult-ságelmélet témaköre. Az viszont tény, hogy ha valaki tudna adni egy olyanalgoritmust, ami a Sat problémát polinom id®ben eldönti, akkor számos olyanprobléma, melynek eldöntésére jelenleg csak exponenciális id®igény¶ algoritmusismert, polinom id®ben eldönthet® lenne.
Egy eldönthet® probléma tekinthet® úgy is mint egy formális nyelv. A problémapéldányait elkódoljuk egy megfelel® ábécé feletti szavakban. Ezek után magáta problémát azonosítjuk azzal a formális nyelvvel, mely azokat a szavakat tar-talmazza, melyek a probléma igen példányait kódolják, vagyis azokat a példá-nyokat melyekre a problémát eldönt® algoritmus igen választ ad.
Az így kapott formális nyelvet általában ugyanúgy nevezzük, mint magát aproblémát. Tehát például a Sat jelentheti a fent deniált eldöntési problémátés azt a formális nyelvet is, amely szavai a kielégíthet® zérusrend¶ formulákatkódolják.
A továbbiakban jellemz®en eldöntési problémákkal foglalkozunk majd. Ez nemjelenti azonban az általánosság megszorítását. Tekintsünk ugyanis egy P kiszá-mítási problémát és legyen f : A→ B a P által meghatározott függvény. AkkorP -hez megadható egy P ′ eldöntési probléma úgy, hogy P ′ pontosan akkor el-dönthet®, ha P kiszámítható. Állítsuk párba ugyanis minden a ∈ A elemre az aés az f(a) elemeket, és kódoljuk el az így kapott párokat egy-egy szóban. Ezekután legyen P ′ az igy kapott szavakból képzett formális nyelv. Nyilvánvaló,hogy ha minden a ∈ A és b ∈ B elemre az (a, b) ∈ P ′ tartalmazás eldönthet®,vagyis P ′ eldönthet®, akkor P kiszámítható. Továbbá az is igaz, hogy ha Pkiszámítható, akkor P ′ eldönthet®.
Most áttérünk annak vizsgálatára, hogy mely problémákat lehet algoritmikusankiszámítani és melyeket nem. Ehhez bevezetünk egy eszközt, a Turing-gépet,mely az eddigi nyelveket felismer® eszközeink közül a legnagyobb kiszámításier®vel rendelkezik. Amint arról a bevezetésben szó volt, a Turing-gép az egyik
60 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
legáltalánosabb algoritmusmodell. Ebben a részben megvizsgáljuk a Turing-gépek különböz® változatait és a Turing-gép valamint néhány más algoritmus-modell ekvivalenciáját. Ezután rátérünk az eldönthet® valamint a felismerhet®nyelvek közötti kapcsolat vizsgálatára.
2.3. Turing-gépek
Hasonlóan a véges automatához vagy a veremautomatához, a Turing-gép isegy véges sok állapottal rendelkez® eszköz. A Turing-gép egy két iránybanvégtelen szalagon dolgozik. A szalag cellákra van osztva, tulajdonképpen eza gép (korlátlan) memóriája. Kezdetben a szalagon csak a bemen® szó van,minden cellán egy bet¶. A szalag többi cellája egy úgynevezett blank vagyszóköz (t) szimbólumokkal van feltöltve. Kezdetben a gép úgynevezett író-olvasó feje a bemen® szó els® bet¶jén áll és a gép a kezd®állapotában van.
A gép az író-olvasó fejet tetsz®legesen képes mozgatni a szalagon. Képes továbbáa fej pozíciójában a szalag tartalmát kiolvasni és átírni. A gépnek van kétkitüntetett állapota, a qi és a qn állapotok. Ha ezekbe az állapotokba kerül,akkor rendre elfogadja illetve elutasítja a bemen® szót. Formálisan a Turing-gépet a következ® módon deniáljuk.
2.3.1. Deníció. A Turing-gép egy olyan M = (Q,Σ,Γ, δ, q0, qi, qn) rendszer,ahol
• Q az állapotok véges, nem üres halmaza,
• q0, qi, qn ∈ Q, q0 a kezd®-, qi az elfogadó és qn az elutasító állapot,
• Σ és Γ ábécék, a bemen® jelek illetve a szalag szimbólumok ábécéje úgy,hogy Σ ⊆ Γ és Γ− Σ tartalmaz egy speciális t szimbólumot,
• δ : (Q− qi, qn)× Γ→ Q× Γ× L,R, S az átmenetfüggvény.
Úgy mint a veremautomaták esetében, egy M Turing-gép m¶ködésének fázisaitis kongurációkkal írhatjuk le. Az M kongurációja egy olyan uqv szó, aholq ∈ Q és u, v ∈ Γ∗, v 6= ε. Ez a konguráció az M azon állapotát tükröziamikor a szalag tartalma uv (uv el®tt és után szalagon már csak t van), a gépa q állapotban van, és az író-olvasó fej a v els® bet¶jére mutat. A gép kezd®-kongurációja egy olyan q0ut szó, ahol u csak Σ-beli bet¶ket tartalmaz. Az Mösszes kongurációinak a halmazát CM -mel jelöljük. Végül az M konguráció-átmenetét az alábbiak szerint deniáljuk.
2.3.2. Deníció. Az M konguráció-átmenete egy olyan ` ⊆ CM×CM reláció,amit a következ®képpen deniálunk. Legyen uqav egy konguráció, ahol a ∈ Γés u, v ∈ Γ∗. A következ® három esetet különböztetjük meg.
1. Ha δ(q, a) = (r, b, S), akkor uqav ` urbv.
2.3. TURING-GÉPEK 61
2. Ha δ(q, a) = (r, b, R), akkor uqav ` ubrv′, ahol v′ = v, ha v 6= ε, és v′ = tegyébként.
3. Ha δ(q, a) = (r, b, L), akkor uqav ` u′rcbv ahol u′c = u valamely u′ ∈ Γ∗-ra és c ∈ Γ-ra, ha u 6= ε és u′ = ε, c = t egyébként.
Azt mondjuk, hogy M véges sok lépésben eljut a C kongurációból a C ′ kongu-rációba (jele C `∗ C ′), ha van olyan n ≥ 0 és C1, . . . , Cn kongurációsorozat,hogy C1 = C, C ′ = Cn és minden 1 ≤ i < n-re, Ci ` Ci+1. Másképpen fogal-mazva ez azt jelenti, hogy a `∗ reláció a ` reláció reexív, tranzitív lezártja.
Ha q ∈ qi, qn, akkor azt mondjuk, hogy az uqv konguráció egy megállásikonguráció. Továbbá, q = qi esetében elfogadó, míg q = qn esetében elutasítókongurációról beszélünk.
Az M által felismert nyelv (amit L(M)-mel jelölünk) azoknak az u ∈ Σ∗ sza-vaknak a halmaza, melyekre igaz, hogy q0ut `∗ xqiy valamely x, y ∈ Γ∗, y 6= εszavakra.
2.3.3. Példa. Tekintsük az L = u#u | u ∈ 0, 1+ nyelvet. Az L felismerhet®egy olyan Turing-géppel, mely a következ® algoritmus szerint m¶ködik.
1. A szalagon oda-vissza haladva ellen®rizzük le, hogy a # bal és jobb oldalán,az egymásnak megfelel® pozíciókon ugyanazok a szimbólumok szerepelnek-e. Ez úgy történik, hogy el®ször a # bal oldalán átírjuk a soron következ®bet¶t t-re; a gép az állapotában megjegyzi, hogy milyen bet¶t írt át, ésilyen bet¶t fog keresni a # jobb oldalán. Ha talál ilyet, akkor átírja x-re,egyébként pedig elutasítja a bemenetet. Ezután a gép vissza megy a szóelejére, és kezdi újra a most vázolt m¶veletet.
2. Ha a # bal oldalán minden szimbólum átíródott t-ra, akkor leellen®riz-zük, hogy a # jobb oldalán van-e még feldolgozatlan bet¶ (olyan ami mégnincs átírva x-re). Ha igen, akkor elutasítjuk a bemenetet, egyébként pedigelfogadjuk.
Az 2.1 ábrán az L-et felismer® Turing-gép δ átmenetfüggvénye látható (a gépállapothalmaza, bemen®- illetve szalagszimbólumai is leolvashatók az ábráról, agép kezd®állapota a q1 állapot). Az átmenetfüggvény egy gráal van megadva,amit a következ® módon kell értelmezni. Legyen q és p a gép két állapota, a, bszalagszimbólumok, D pedig egy L,R, S-beli irány. Akkor az ábrán egy q-bólp-be vezet® él a/b,D címkéje azt jelenti, hogy δ(q, a) = (p, b, R). A gép be nemrajzolt átmenetei (a δ deníció szerint totális függvény kell, hogy legyen) a qnállapotba vezetnek.
A gép számítását a 01#01 szón a következ® kongurációátmenetekkel írhatjukle.
q101#01 ` tq21#01 ` t1q2#01 ` t1#q401 `2 t1#01q4t ` t1#0q61 `4q6 t 1#01 ` tq81#01 ` t1q8#01 ` t1#q1001 ` t1q12#x1 `2 q12 t 1#x1 `tq131#x1 ` txq9#x1 `∗ tx#xx t qi t .
62 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.1. ábra. A 2.3.3 példabeli nyelvet felismer® egyszalagos Turing-gép
q9 q11
q1
q8 q10
q12
q13
q14
qi
0/t, R
0/0, R1/1, R
#/#, R
0/t, R
x/x,R
0/0, L1/1, Lx/x, L#/#, L
t/t, R
#/#, Rx/x,R
x/x,R
1/x,R
t/t, Rx/x,R
1/1, R0/0, R
#/#, R1/t, R1/x, L
0/x, L
Tehát a gép, helyesen, elfogadja a 01#01 szót.
Most a Turing-gép segítségével deniáljuk a Turing-felismerhet® illetve az el-dönthet® nyelveket (vessük össze a következ® deníciót a 9. oldalon leírtakkal).
2.3.4. Deníció. Egy L ∈ Σ∗ nyelv Turing-felismerhet®, ha L = L(M) vala-mely M Turing-gépre. Továbbá, egy L ⊆ Σ∗ nyelv eldönthet®, ha létezik olyanM Turing-gép, mely minden bemeneten megállási kongurációba jut és felismeriaz L-et. A Turing-felismerhet® nyelveket szokás rekurzívan felsorolhatónak, azeldönthet® nyelveket pedig rekurzívnak is nevezni.
Megjegyezzük, hogy a fenti példában látható Turing-gép nem csak felismeri,hanem el is dönti az L nyelvet.
Felmerülhet a kérdés, hogy mennyi lépesre van szüksége egy Turing-gépnek abemenet hosszának a függvényébem ahhoz, hogy megálljon a bemeneten (hamegáll egyáltalán). Ezen kérdés vizsgálatához deniálnunk kell a Turing-gépekfutásának id®igényét.
2.3.5. Deníció. Tekintsünk egy M = (Q,Σ,Γ, δ, q0, qi, qn) Turing-gépet ésannak egy u ∈ Σ∗ bemen® szavát. Azt mondjuk, hogy M futási ideje (id®igénye)az u szón n (n ≥ 0), ha M a q0ut kezd®kongurációból n lépésben el tud jutniegy megállási kongurációba. Ha nincs ilyen szám, akkor M futási ideje az u-nvégtelen.
Legyen f : N→ N egy függvény. Azt mondjuk, hogyM id®igénye f(n) (vagy azt,
2.3. TURING-GÉPEK 63
hogy M egy f(n) id®korlátos gép), ha minden u ∈ Σ∗ input szóra, M id®igényeaz u szón legfeljebb f(l(u)).
2.3.6. Példa. Tekintsük újra az el®z® példában látható L nyelvet, és az ®t el-dönt® Turing-gépet. Könnyen látható, hogy a gép id®igénye egy u#u n hosszúszón a következ®képpen alakul.
• Egy bet¶ pár összehasonlítása minimum 2(bn2 c + 1) (ahol bn2 c azn2 egész
részét jelöli) és maximum 2n lépés (attól függ®en, hogy melyik pozíciónáltartunk az összehasonlításban).
• Az el®bb leírt ellen®rzést pedig maximum bn2 c esetben kell végrehajtani.
Tehát a gép számítása az u#u szón maximul n2 lépésb®l áll. Ha a gép a szalag-ján olyan u szót kap bemenetként, amely nem eleme L-nek, akkor a bet¶ párokleellen®rzése bn2 c-nél kevesebbszer hajtódik végre. Mindezekb®l következik, hogyaz L nyelv eldönthet® egy O(n2) id®korlátos Turing-géppel.
2.3.1. Különböz® Turing-gép változatok
Ebben a fejezetben megvizsgálunk néhányat a Turing-gépek különböz® változa-tai közül. Ezek a gépek, még ha általánosabban is vannak deniálva, mint ami Turing-gép modellünk, valójában ekvivalensek vele. S®t, azt is látjuk majd,hogy további megszorításokat is alkalmazhatunk a modellünkön, és még így isaz eredeti modellel ekvivalens gépet kapunk.
2.3.1.1. Többszalagos Turing-gépek
A többszalagos Turing-gépek, értelemszer¶en, egynél több szalaggal rendelkez-nek. Mindegyik szalaghoz tartozik egy-egy író-olvasó fej, melyek egymástólfüggetlenül képesek mozogni a szalagon.
2.3.7. Deníció. Legyen k > 1. Egy k-szalagos Turing-gép egy olyan M =(Q,Σ,Γ, δ, q0, qi, qn) rendszer, ahol a komponensek a δ kivételével megegyez-nek az egyszalagos Turing-gép komponenseivel, δ pedig a következ®képpen adó-dik. δ : (Q − qi, qn) × Γk → Q × Γk × L,R, Sk. Legyenek q, p ∈ Q,a1, . . . , ak, b1, . . . , bk ∈ Γ és D1, . . . , Dk ∈ L,R, S. Ha δ(q, a1, . . . , ak) =(p, b1, . . . , bk, D1, . . . , Dk), akkor a gép a q állapotból, ha a szalagjain rendre aza1, . . . , ak bet¶ket olvassa, át tud menni a p állapotba, miközben az a1, . . . , ak be-t¶ket átírja a b1, . . . , bk bet¶kre és a szalagokon a fejeket a D1, . . . , Dk irányokbamozgatja.
A többszalagos Turing-gép kongurációja, a kongurációátmenet valamint afelismert illetve elöntött nyelv deníciója az egyszalagos eset értelemszer¶ álta-lánosítása. A többszalagos Turing-gép id®igényét is az egyszalagoshoz hasonlóandeniáljuk.
64 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.2. ábra. Az 2.3.3 példabeli nyelvet felismer® kétszalagos Turing-gép
q0
0,t/0, 0, R,R1,t/1, 1, R,R 1,t/1,t, R, S
0,t/0,t, R, S
q2
1, 1/1, 1, L, L0, 0/0, 0, L, L
#,t/#,t, R, S t,t/t,t, L, L
qi
q1
#,t/#,#, S, S
A továbbiakban egy L nyelvet f(n) id®ben eldönthet®nek nevezünk, ha eldönt-het® egy f(n) id®korlátos (akár többszalagos) Turing-géppel.
2.3.8. Példa. Tekintsük újra az L = u#u | u ∈ 0, 1+ nyelvet. Az 2.2ábrán látható kétszalagos gép szintén L-et dönti el. A gép δ átmenetfüggvényea következ® módon olvasható ki az ábrából. Legyen q és p a gép két állapota,a1, a2, b1 és b2 szalagszimbólumok, D1 és D2 pedig L,R, S-beli irányok. Haaz ábrán vezet él q-ból p-be és az él címkéje a1, a2/b1, b2, D1, D2, akkor ez aztjelenti, hogy δ(q, a1, a2) = (p, b1, b2, D1, D2). A gép be nem rajzolt átmenetei ittis a qn állapotba vezetnek.
A gép az alábbiak szerint m¶ködik. El®ször átmásolja a # baloldalán lév® szóta második szalagra. Majd elmegy az els® szalagon a szó végére és mindkét sza-lagon az utolsó nem t szimbólumra áll. Végül mindkét szalagon balra lépkedveösszehasonlítja az els® szalagon a #-tól jobbra lév® szót a második szalagon lév®szóval. Ha a fejek a két szalagon egyszerre olvasnak #-t illetve t-ot, akkor agép elfogad, különben elutasít.
A gép id®igényét egy n hosszú szón könny¶ kiszámolni, az legfeljebb bn2 c+n+1lesz, tehát L egy O(n), azaz lineáris id®ben eldönthet® nyelv.
Bár a Turing-gép a több szalaggal egyszer¶bben képes felismerni egyes nyel-veket, az általános kiszámítási ereje nem n® ezáltal, ahogy ezt az alábbi tételbizonyításában is látni fogjuk. Értelemszer¶en, két Turing-gépet ekvivalensneknevezünk, ha azok ugyanazt a nyelvet ismerik fel.
2.3.9. Tétel. Minden k-szalagos, f(n) id®korlátos Turing-géphez van vele ek-vivalens egyszalagos, O(n · f(n)) id®korlátos Turing-gép.
Bizonyítás. LegyenM egy k-szalagos Turing-gép valamely k ≥ 2-re. Megadunk
2.3. TURING-GÉPEK 65
2.3. ábra. Egy háromszalagos Turing-gépet szimuláló egyszalagos
# 0 1 1 # 1 1 1 # a 1 1 #0 t1 0 a
1 0 1 1 t
1 1 0 1 t
a a 1 0 1 t
M
M ′
egy M ′ egyszalagos Turing-gépet ami képes szimulálni M m¶ködését. A szimu-láció alapötlete a 2.3 ábrán látható.
M ′ egymás után tárolja a szalagján M szalagjainak a tartalmát. A különböz®szalagokat egy # jellel választja el egymástól. Azt, hogy M szalagjain a fejekmely szimbólumokra mutatnak M ′ úgy tartja számon, hogy a kérdéses szim-bólumokat megjelöli egy ˆ jellel. Tehát M ′ szalagszimbólumai között, az Mszalagszimbólumai mellett, ott van még a # szimbólum, valamint M szalag-szimbólumainak egy -pal megjelölt változata.
A szimuláció lépései a következ®k. Legyen w = a1 . . . an az M egy bemen®szava.
1. M ′ el®ször el®állítja a szalagján M kezd®kongurációját, ami így néz ki:#a1a2 . . . an#t#t . . .#.
2. M egy lépésének szimulálásához M ′ végigolvassa a szalagját az els® #-tólkezdve az utolsó (azaz a k+1-ik)#-ig. Eközben az állapotában eltárolja aˆjellel megjelölt szimbólumokˆnélküli változatait (M ′ állapotai úgy vannakdeniálva, hogy mindegyik képes tárolni M k darab szalagszimbólumát).
3. M ′ ezután az állapotában eltárolt adatok ésM átmenetfüggvénye alapján(ne felejtsük, M átmenetfüggvénye el van kódolva M ′ átmenetfüggvényé-ben) végrehajtja a saját szalagján azokat a módosításokat, melyeket Mvégez a szalagjain.
4. Ha M valamelyik szalagján az utolsó nem t szimbólum olvasása utánjobbra lép, akkor M ′ a megfelel® #-tól kezdve jobbra mozgatja egy po-zícióval a szalagjának a tartalmát, és a felszabadult helyre beszúr egy t
66 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
szimbólumot. Hasonlóan jár el M ′, ha M a legels® nem t szimbólumolvasása után balra lép.
5. Ha M valamilyen (elfogadó vagy elutasító) megállási kongurációba ke-rül, akkor M ′ is a megfelel® megállási kongurációba lép. Egyébként M ′
folytatja M lépéseinek szimulálását a 2. ponttal.
Látható, hogy M ′ pontosan akkor lép elfogadó állapotba amikor M , tehátL(M) = L(M ′), vagyis a két Turing-gép ekvivalens.
Az egyszalagos M ′ id®igénye az M id®igényének a függvényében az alábbiakszerint alakul. Az M n-ik lépésének a szimulálásához (itt most feltesszük, hogyn legalább a bemenet hosszával egyenl®), M ′-nek a következ®ket kell tennie.El®ször is, el kell mennie a saját szalagjának a végére begy¶jteni a szükségesinformációt az M aktuális szalagtartalmáról. Mivel ekkor M ′ szalagján két# között legfeljebb n darab cella van, ez M ′-nek O(n) lépést jelent. EzutánM ′-nek módosítania kell a szalagjait. Nem nehéz belátni, hogy ehhez M ′-nekO(n2) lépésre van csak szüksége. Kapjuk tehát, hogy az M n-ik lépéséneka szimulálásához, M ′-nek elég O(n2) lépés. Ha tehát M egy f(n) id®igény¶Turing-gép, akkor M ′ O(f(n)2) id®igény¶ lesz.
2.3.1.2. Turing-gép egy irányban végtelen szalaggal
A Turing-gép deniálható úgy is, hogy egy balra zárt, jobbra végtelenen sza-lagon dolgozik. Az ilyen Turing-gépet egy irányú Turing-gépnek nevezzük (azeredeti modellre pedig többirányú Turing-gépként hivatkozunk majd). Egyirá-nyú Turing-gépnél a Turing-gép denícióját úgy módosítjuk, hogy az író olvasófej nem "eshet le" a szalag bal oldalán (az ilyen gépek pontos deníciója meg-található például itt !!!HIVATKOZÁS!!!!). Természetesen az egyirányú Turing-gépnek is létezik többszalagos verziója.
Az világos, hogy egy egyirányú Turing-gép szimulálható egy többirányúval.Egyszer¶en megjelöljük a többirányú Turing-gép szalagjain a fejek kezd®po-zícióját egy speciális csak erre használt szimbólummal és ügyelünk rá, hogy aTuring-gépünk ne mozdítsa a fejet ezen pozíciótól balra. A fordított irányúszimuláció egy kicsit bonyolultabb.
2.3.10. Tétel. Minden többirányú Turing-géphez van vele ekvivalens egyirányúTuring-gép.
Bizonyítás. A bizonyítás vázlata a következ®. LegyenM egy többirányú Turing-gép. Megkonstruálunk egyM -mel ekvivalens, kétszalagos, egyirányúM ′ Turing-gépet. Ezután M ′-höz, a 2.3. tételben látott bizonyításhoz hasonló módon,megkonstruálható egy ekvivalens egyszalagos, egyirányú Turing-gép.
Az M ′ m¶ködésének az alapötlete a következ®. M ′ két szalagjából rendre azels® illetve a második szalag reprezentálja M szalagjának azon részét, amely M
2.3. TURING-GÉPEK 67
kezd®kongurációjában a fejt®l jobbra illetve balra szerepel. Amikor M a fejkezd®pozíciójához képest jobbra dolgozik, akkor M ′ az els® szalagon lemásoljaM m¶ködését. Amikor M a fej kezd®pozíciójától egyet balra lép, akkor M ′ amásodik szalagján kezd el dolgozni úgy, hogy M minden egyes olyan lépésétmely a fej kezd®pozíciójától balra lév® szalagrészen dolgozik, egy a másodikszalagon történ® ellentétes irányú lépéssel szimulálja. Ha a fej egyszer csak újraa kezd®pozíciójától jobbra lév® szalagrészen kezd el dolgozni, akkor M ′ újraaz els® szalagján kezdi el szimulálni M m¶ködését. Mindeközben M ′ állapotaitárolják M állapotait plusz azt az információt, hogy M ′-nek az els® szalagonvagy a másodikon kell-e dolgoznia.
2.3.1.3. Nemdeterminisztikus Turing-gépek
Természetesen a Turing-gépnek is létezik nemdeterminisztikus verziója. Ebbenaz alfejezetben ezekkel a gépekkel ismerkedünk meg. Egy M nemdeterminiszti-kus Turing-gép átmenetfüggvénye δ : (Q − qi, qn) × Γ → P(Q × Γ × L,R)alakú. Tehát M minden kongurációjából néhány (esetleg nulla) különböz®kongurációba mehet át. Ily módon M számítási sorozatai egy u szón egy fá-val reprezentálhatók. A fa csúcsa M kezd®kongurációja, a szögpontjai pedigM kongurációi. A fa minden levele megfelel M egy számítási sorozatának azu-n. M akkor fogadja el u-t, ha a fa valamelyik levele elfogadó konguráció.Nevezzük ezt a most leírt fát az M nemdeterminisztikus számítási fájának azu-n. Az M által felismert nyelv a determinisztikus esethez hasonlóan deniál-ható, a gép által eldöntött nyelv pedig a következ®képpen. Azt mondjuk, hogyegy nemdeterminisztikus Turing-gép eldönt egy L ⊆ Σ∗ nyelvet ha felismeri, ésminden u ∈ Σ szóra M számítási sorozatai végesek és elfogadási vagy eluta-sítási kongurációba vezetnek. A nemdeterminisztikus Turing-gép deníciójaértelemszer¶en kiterjeszthet® a többszalagos esetre is.
2.3.11. Példa. A 2.4. ábrán látható nemdeterminisztikus Turing-gép, feltéve,hogy a be nem rajzolt átmenetek a qn állapotba vezetnek, az L = ww | w ∈a, b∗ nyelvet dönti el. A gép a q0 állapotban elkezdi olvasni a bemen® szót,majd a q1 állapotban tovább olvassa azt. Közben folyamatosan átmásolja a szómár elolvasott részét a második szalagra. A q1 állapotban nemdeterminisztikusandönthet úgy, hogy abbahagyja a szó másolását és átmegy a q2 állapotba. Ittelmegy az els® szalagon a szó végére, a második szalagon helyben marad. Ha aszó végére ért az els® szalagon, akkor átmegy q3-ba, ahol elkezdi összehasonlítaniaz els® és a második szalagon lév® szót. Ha egyformának találja ®ket, akkorelfogadja a bemenetet, egyébként pedig elutasítja. Ha a bemen® szó eleme anyelvnek, akkor lesz a gépnek egy olyan számítási sorozata, amely pont a szófelénél hagyja abba a szó másolását, és ebben az esetben az els® és a másodikszalagon ugyanaz a szó lesz. Tehát ebben az esetben a gép elfogadja a bemenetet,tekintet nélkül arra, hogy a szón az összes többi számítási sorozat sikertelen lesz.
A nemdeterminisztikus Turing-gép id®igényét a következ® módon deniáljuk.Legyen f : N→ N egy függvény ésM egy nemdeterminisztikus Turing-gép. Azt
68 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.4. ábra. A 2.3.11 példában szerepl® nyelvet eldönt® nemdeterminisztikusTuring-gép
q0
a,t/t, a, R,Rb,t/t, b, R,R
a,t/t, a, R,Rb,t/t, b, R,R
a,t/t, a, R, Sb,t/t, b, R, S
q1 q2
a,t/a,t, R, Sb,t/b,t, R, S
t,t/t,t, L, L
a, a/a, a, L, Lb, b/b, b, L, L
q3
qi
t,t/t,t, R,R t,t/t,t, S, S
mondjuk, hogy az M id®igénye f(n), ha egy n hosszú u bemeneten nincsenekM -nek f(n)-nél hosszabb számítási sorozatai, azaz az M számítási fája az u-nlegfeljebb f(n) magas. A 2.3.11 példabeli Turing-gép O(n) id®ben dönti el azL nyelvet.
Most belátjuk, hogy a nemdeterminizmus nem jelent plusz kiszámítási er®t aTuring-gépek esetében.
2.3.12. Tétel. Minden M nemdeterminisztikus Turing-géphez megadható egyekvivalens M ′ determinisztikus Turing-gép. Továbbá, ha M f(n) id®igény¶ va-lamely f : N→ N függvényre, akkor M ′ 2O(f(n)) id®igény¶.
Bizonyítás. LegyenM egy nemdeterminisztikus Turing-gép. Megadunk egyM ′
háromszalagos Turing-gépet ami ekvivalens M -mel. Azt már korábban láttuk,hogy M ′-höz megadható egy ekvivalens egyszalagos Turing-gép.
M ′ els® szalagja tartalmazza a u bemen® szót. A második szalagon történikaz M számítási sorozatainak a szimulációja. Ez a szalag tartalmazza M egykonkrét számítási sorozatának a lépésenkénti eredményét. A harmadik szalagonlév® szó alapján szimulálja M ′ az M egy számítási sorozatát. A szalagon afej pozíciója mutatja azt, hogy melyik lépésnél tart M ′ a szimulációban. Aharmadik szalagon tulajdonképpen az u-t elfogadó kongurációk egy szélességikeresése történik a nemdeterminisztikus számítási fában. M ′ egy kongurációjaa 2.5 ábrán látható.
Legyen d az M átmenetfüggvénye által megadott halmazok közül a legnagyobbelemszámúnak a számossága. Tegyük fel továbbá, hogy az átmenetfüggvényáltal megadott halmazokban az elemeknek van egy rögzített sorrendje. Vilá-gos, hogy az u számítási fájának minden szögpontjához hozzárendelhet® egy1, . . . , d feletti számsorozat. Nevezetesen az, amelyik megmutatja, hogy akezd®kongurációból az átmenetfüggvény nemdeterminisztikus lehet®ségei kö-
2.3. TURING-GÉPEK 69
2.5. ábra. Nemdeterminisztikus Turing-gép szimulálása determinisztikussal
t
t
t
M ′ a b a b
x x a b
2 1 1 2
szimulációs szalag
szimulálandó számítási1
sorozat
bemenet
zül mely választásokkal juthatunk el az adott szögpontban lév® kongurációhoz.
Maga a szimuláció a következ®képpen történik.
1. Kezdetben az 1-es szalag tartalmazza a w bemen® szót, a 2-es és 3-asszalagok üresek.
2. M ′ az els® szalag tartalmát rámásolja a második szalagra.
3. M ′ szimulálja a 2-ik szalagon M egy számítási sorozatát. Az, hogy me-lyiket kell szimulálnia a 3-ik szalagon lév® szótól függ. M ′ a szimulációminden lépése el®tt megnézi a 3-ik szalagján lév® szó következ® bet¶jét, ése bet¶ szerint (ami egy szám a Σ-ból) választ M átmenetfüggvényének alehet®ségei közül. Ha nincs megfelel® sorszámú választási lehet®ség, vagya 3-ik szalagon már nincs több bet¶, akkor a szimuláció véget ér, és ugrása 4-ik lépésre.
Ha a lépés szimulálása soránM elutasító kongurációba kerül, akkor szin-tén ugrás a 4-ik lépésre.
Végül, ha M ′ azt látja, hogy M elfogadó kongurációba kerül, akkor M ′
is elfogadó állapotba lép és megáll.
4. M ′ kicseréli a 3-ik szalagján lév® szót az azt alfabetikusan követ® szóra, afejet a szó elejére állítja és a 2-ik pontra ugorva újrakezdiM m¶ködésénekszimulálását.
Látható, hogy M ′ pontosan akkor kerül elfogadó illetve elutasító konguráció-ba, amikor M , és ha M nem áll meg a bemen® szón, akkor M ′ sem áll meg.Következik tehát, hogy M és M ′ ekvivalensek.
70 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
Az is könnyen belátható, hogy ha M egy f(n) id®igény¶ Turing-gép, akkor M ′-nek 2O(f(n)) számítási sorozatot kell megvizsgálnia. Speciálisan, ha M polinomid®igény¶, akkor M ′ exponenciális id®igény¶ lesz.
2.4. További Turing-ekvivalens modellek
Mint azt már korábban láttuk, a Church-Turing tézis azt mondja ki, hogy ki-számíthatóság különböz® matematikai modelljei mind az eektíven kiszámíthatófüggvények osztályát deniálják. A tézist persze formálisan nem lehet bizonyí-tani, hiszen az, hogy valami eektíven kiszámítható egy intuitív fogalom. Atézis bizonyítéka viszont többek között az, hogy minden algoritmus modellr®lkiderült, hogy ekvivalens a Turing-géppel. Ebben a részben megismerkedünknéhány olyan Turing-ekvivalens modellel, melyek m¶ködése hasonlít valamelyeddig megismert számítási eszközhöz, vagy éppen egy egyszer¶ programozásinyelvhez.
2.4.1. Többvermes automaták
A többvermes automata a veremautomata egyfajta általánosítása. Adott k > 1számra, a k-vermes automata értelemszer¶en egy olyan végállapottal felismer®nemdeterminisztikus veremautomata, aminek k darab verme van. A 2.6 alábbiábrán egy 3-vermes automata vázlata látható.
A többvermes automata minden verme ugyanazt a veremábécét használja. Azautomata konguráció-átmenete függ az éppen olvasott bemen® szimbólumtól(ez lehet ε is), a vermek legtetején álló szimbólumoktól, valamint az automataállapotától.
A többvermes automata akkor fogad el egy bemen® szót, ha van olyan számításisorozata, mely során végigolvassa a szót és végállapotba kerül. A 2.7 ábránszerepl® kétvermes veremautomata például az L = anbncn | n ≥ 0 nyelvetismeri fel.
Világos, hogy minden többvermes automatához van vele ekvivalens Turing-gép.Legyen ugyanis P egy k-vermes automata, valamely k > 1-re. Akkor P szi-mulálható egy olyan k szalagos M Turing-géppel, ami a szalagjain tárolja P kdarab vermének tartalmát, és a szalagokon lév® szavakat ugyanúgy manipulálja,ahogyan P a vermeit. Meglep®bb talán az alábbi tétel.
2.4.1. Tétel. Minden Turing-felismerhet® nyelv felismerhet® egy kétvermes au-tomatával.
Bizonyítás. A tétel bizonyításának vázlata a következ®. Legyen L egy Turing-felismerhet® nyelv és M egy Turing-gép, melyre L = L(M). Megadunk egyolyan P kétvermes automatát, ami szimulálja M m¶ködését és szintén L-et
2.4. TOVÁBBI TURING-EKVIVALENS MODELLEK 71
2.6. ábra. Egy 3-vermes automata vázlata
b b a b a a b b b ab
γ1
γ2
γ1
γ1
γ2
γ1
γ1
aa
γ1
γ2
γ2
γ2
γ1
Véges sok állapotúvezérl®
Verem2 Verem3Verem1
Bemen® szó
72 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.7. ábra. Az anbncn | n ≥ 0 nyelvet felismer® kétvermes automata
q1q0
q2q3
b, a, b/a, bb
a, Z0, Z0/aZ0, Z0
a, a, Z0/aa, Z0
c, a, b/ε, ε
b, a, Z0/a, bZ0
ε, Z0, Z0/Z0, Z0
c, a, b/ε, εε, Z0, Z0/Z0, Z0
ismeri fel. A szimuláció alapötlete a következ®. P az els® vermében tároljaazt a szót, ami az M m¶ködése során az író-olvasó fejt®l balra van, a másodikveremben pedig azt a szót ami fej pozíciójánál kezd®dik. A szimuláció lépései akövetkez®k.
• P kezdetben csak a verem kezd®szimbólumokat tartalmazza mindkét ver-mében. A továbbiakban azt mondjuk, hogy egy verem üres, ha csak averem kezd®szimbólumot tartalmazza.
• Tegyük fel, hogy a w szó van M bemenetén. P bemásolja w-t az els®verembe.
• P bet¶nként átmásolja az els® verem tartalmát a második verembe. Havégez, akkor a kongurációja M kezd®kongurációjának felel meg a w-n.
• P a következ® módon szimulálja M egy átmenetét.
P ismeri M aktuális állapotát, legyen ez q, mert a saját állapotábantárolja M állapotait.
P tudja, hogy M milyen szimbólumot olvas éppen, hisz ez a szimbó-lum van a második verem tetején. Legyen ez a szimbólum X.
Ha M átírja X-et Y -ra és jobbra lép, akkor P beírja Y -t az els®verembe X pedig kikerül a másodikból (ha a második verem üres
2.4. TOVÁBBI TURING-EKVIVALENS MODELLEK 73
volt, akkor nem változik, továbbá ha Y = t és az els® verem tartalmaüres volt, akkor az els® verem továbbra is üres marad).
Ha M átírja X-et Y -ra és balra lép, akkor P kiveszi az els® veremlegfels® elemét, legyen ez Z, és beírja ZY -t az második verembe (haaz els® verem üres volt, akkor P csak Y -t ír a második verem tetejére).
Ha M átírja X-et Y -ra és helyben marad, akkor P egyszer¶en csakY -t ír a második verem tetejére).
Ha M új állapota qi, akkor P végállapotba lép, egyébként pedigelkezdi szimulálni M egy újabb lépését a 4-ik pontra ugorva.
Belátható, hogy az így leírt veremautomata szintén L-et ismeri fel.
2.4.2. Számlálós gépek
A többvermes automatákhoz nagyon hasonló felépítés¶ek a számlálós gépek,csak itt a gépeknek a vermek helyett számlálói vannak, melyek értéke egy ter-mészetes szám lehet. A gép nem látja, hogy mekkora szám van az adott szám-lálóban, csak azt tudja kiolvasni, hogy a számláló értéke nulla-e vagy sem. Agép konguráció átmenete függ az aktuális állapottól, az éppen olvasott bemen®szimbólumtól (ez lehet ε is) valamint attól, hogy a számlálók értéke nulla-e vagysem. Ezen információkat felhasználva, az állapotátmeneti függvény alapján álla-potot válthat a gép és (egymástól függetlenül) növeli vagy csökkenti a számlálókértékét eggyel (ha egy számláló értéke nulla volt, akkor annak az értékét nemtudja csökkenteni). A gép csak akkor fogad el egy bemen® szót, ha végig tudjaolvasni azt és végállapotba jut. A 2.8 ábrán egy 3-számlálós automata vázlatalátható.
2.4.2. Példa. Tekintsük például az
L = u#v#w | u, v, w ∈ 0, 1∗, w az u és v bináris számok összege.
Ezt a nyelvet felismerhetjük például az alábbi (vázlatosan megadott) P 4-számlálósgéppel. P az egyes állapotaiban a következ®ket teszi:
q0: Beírja az u számot (decimálisan) az 1-es számlálóba az alábbi módon:
• Ha 0-t olvas, akkor az 1-es számlálóban lév® számot megszorozza 2-vela következ®képpen. El®ször kimásolja az 1-ben lév® számot 4-be úgy,hogy egy ciklusban eggyel csökkenti az 1-es és növeli a 4-es értékétaddig, amíg az 1-es értéke 0 nem lesz. Ezután egy ciklusban 4-et 0-ra csökkenti és minden lépésben 2-vel (1 plusz 1-gyel) növeli az 1-esszámláló értékét).
• Ha 1-t olvas, akkor az 1-es számlálóban lév® számot a fenti módonmegszorozza 2-vel és az eredményhez még hozzáad 1-et.
74 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.8. ábra. Egy 3-számlálós gép vázlata
a b b a a a b b b aa b
n2 n3
b
n1Számláló1 Számláló2 Számláló3
Véges sok állapotúvezérl®
Bemen® szó:
• Ha #-t olvas, akkor átmegy q2-be.
q2: Beírja a v számot (decimálisan) a 2-es számlálóba az el®bb vázolt módon.Ha végzett, akkor átmegy a q3 állapotba.
q3: Beírja a w számot (decimálisan) a 3-es számlálóba és átmegy a q4 állapot-ba.
q4: Egy ciklusban hozzáadja az 1-es számlálóban lév® számot a 2-esben lév®számhoz. Ha végez, akkor átmegy a q5 állapotba.
q5: Egy ciklusban csökkenti a 2-es és a 3-as számláló értékét 1-el. Ha a kétszámláló értéke egyszerre lesz 0, akkor végállapotba megy.
Ismert, hogy a számlálós gépek kiszámítási ereje is megegyezik a Turing-gépekével.Azt, hogy a számlálós gépek nem tudnak több nyelvet felismerni, mint a Turing-gépek következik abból, hogy a számlálós gép tekinthet® egyfajta többvermesautomatának is, ami pedig ekvivalens a Turing-géppel. Nem nehéz meggondolniugyanis azt, hogy egy számlálós géphez megadható egy olyan ekvivalens több-vermes gép, aminek ugyanannyi verme van, mint a számlálós gépnek, és ami avermében a verem kezd®szimbólumon kívül csak egy veremszimbólumot hasz-nál. Ebb®l a szimbólumból egy veremben mindig annyi szerepel, mint amennyia számlálós gép megfelel® számlálójában lév® szám.
Most belátjuk, hogy minden Turing-gép szimulálható egy számlálós géppel.
2.4.3. Tétel. Minden Turing-géphez megadható egy vele ekvivalens három-számlálós gép.
2.4. TOVÁBBI TURING-EKVIVALENS MODELLEK 75
Bizonyítás. A 2.4.1. tétel alapján elegend® megmutatni azt, hogy egy kétver-mes automata szimulálható egy három-számlálós géppel. Legyen tehát P egykétvermes automata egy Γ veremábécével. Megadunk egy P -vel ekvivalens P ′
három-számlálós gépet. Az elv az, hogy P vermeinek a tartalmát egy számmákonvertáljuk és ezeket a számokat tárolja majd P ′ egy-egy számlálójában. P ′
harmadik számlálóját segéd-számlálóként használjuk. El®ször is rendeljünk Γminden eleméhez egy sorszámot, azaz ha Γ r− 1 elem¶ valamely r > 1 számra,akkor azonosítsuk Γ-t az 1, 2, . . . , r − 1 halmazzal. Tegyük fel, hogy P egyverme a γ = X1X2 . . . Xn ∈ Γ∗ szót tartalmazza. Akkor γ-hoz hozzárendel-hetünk egy l számot úgy, hogy l-b®l egyértelm¶en meg lehessen határozni γ-t.Legyen l = Xnr
n−1 +Xn−1rn−2 + . . .+X2r+X1. Ekkor l-b®l visszakaphatjuk
az X1, X2, . . . , Xn számokat úgy, hogy el®ször osztjuk l-et r-el és a maradék leszX1, utána osztjuk l−X1-et r2-el és a maradék lesz X2 és így tovább. Ezt addigcsináljuk, amíg meg nem kapjuk Xn értékét is.
Mivel P ′ egyszerre csak eggyel tudja növelni vagy csökkenteni a számlálóinakaz értékét, feltesszük, hogy P ′-nek van r darab olyan állapota melyeket segít-ségével képes (r lépésben) egy számláló értékét r-rel növelni vagy csökkenteni.Tegyük fel, hogy P ′ egyik számlálójában, mondjuk az els®ben, egy i > 0 számvan. Akkor P képes kiszámolni az i · r értéket a következ® módon. Egy cik-lusban csökkenti az els® számláló értékét eggyel amíg az 0 nem lesz, és mindenlépésben növeli a harmadik számláló értékét r-el. Amikor P ′ végez a m¶velettel,a harmadik számlálóban i · r lesz.
Másrészt, P ′ képes az ir érték egész részét (b ir c-t) valamint az X = i−b ir cr érté-
ket (tehát az egész osztás maradékát) is kiszámolni. Egy ciklusban csökkenti azels® számláló értékét r-rel addig, amíg az 0 nem lesz, és minden lépésben növelia harmadik számláló értékét 1-el. Amikor P ′ végez a m¶velettel, a harmadikszámlálóban b ir c lesz. Továbbá, a ciklus utolsó lépésében, amikor az els® szám-láló értéke eléri a 0-t, P ′ az állapotából ki tudja olvasni azt az értéket, amivelmég csökkenteni kellene a számláló értékét ahhoz, hogy az r kivonása befejezettlegyen. Könnyen ellen®rizhet®, hogy ez az érték pontosan az X.
Az alábbiakban megmutatjuk, hogy hogyan kell P ′-nek módosítania a számlálóitartalmát ahhoz, hogy a számlálók folyamatosan P vermeit reprezentálják. Csakaz els® veremtartalmat reprezentáló els® számlálóval foglalkozunk, a másodiktartalmát az els®vel analóg módon kell P ′-nek módosítania.
Ahhoz, hogy P ′ szimulálni tudja P egy konguráció átmenetét, ismernie kellazokat a szimbólumokat, melyek P vermeinek a tetején vannak. Nem nehézbelátni azonban, hogy az X = i− b ir cr szám (i az els® számlálóban lév® szám)éppen a P els® vermének a tetején álló szimbólum. Fentebb pedig láttuk, hogyP ′ ezt az értéket ki tudja számolni és azt sem nehéz meggondolni, hogy P ′,miután kiszámolta X-et, vissza tudja állítani i értékét az els® számlálóban.
A P egy lépése során a vermen elvégzett m¶velet felbontható olyan m¶veleteksorozatára, melyek mindegyike az alábbiak közül való: a verem tetején lév® bet¶kivétele a veremb®l; a verem tetején lév® bet¶ átírása egy másikra; valamint egy
76 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
bet¶ írása a verem tetejére. Az a m¶velet például, ami kiveszi a verem tetejér®laz X szimbólumot és kicseréli azt egy Y1 . . . Yn szóra (n ≥ 2, Y1, . . . , Yn ∈ Γ)felbontható azon m¶veletek sorozatára, melyek rendre kicserélik az X-et Y1-reutána bet¶nként kiírják az Y2 . . . Yn szót a verem tetejére.
P ′-nek tehát a P következ® lépéseit kell szimulálnia.
• Leveszi a verem tetejér®l az X szimbólumot és nem ír a helyére semmit.Ebben az esetben P ′-nek a fentebb látott módon ki kell cserélnie az els®számláló tartalmát i-r®l b ir c-re.
• Leveszi a verem tetejér®l X-et és a helyére irja az Y -t. Ekkor ha Y > Xakkor P ′ növeli a számláló értékét Y − X-el, egyébként pedig csökkentiazt X − Y -al.
• Kiírja a verem tetejére az X szimbólumot. Ekkor P ′-nek növelnie kell akorábban látott módon az els® számláló tartalmát i-r®l i · r +X-re.
2.4.3. Közvetlen hozzáférés¶ gépek
Az utolsó Turing-ekvivalens eszköz, amit ebben a fejezetben tárgyalunk a köz-vetlen hozzáférés¶ gép vagy röviden RAM (az angol Random Access Machine ki-fejezésb®l). Ez egy olyan véges utasításkészlettel rendelkez® kiszámítási eszköz,ami egy regiszterekb®l álló tömbön dolgozik. A gép regisztereit rendre ellátjuk a0, 1, 2, . . . sorszámokkal és a j-ik regiszter értékét r[j]-vel jelöljük. Egy regiszterértéke egy tetsz®leges egész szám lehet. A RAM számára potenciálisan végtelensok regiszter áll rendelkezésre, de ezekb®l mindig csak véges sok van használva.Ez azt is jelenti, hogy mivel kezdetben a regiszterek értéke 0, a gépnek mindigcsak véges sok olyan regisztere lehet, melynek az értéke nem 0.
A gép a bemenetét az úgynevezett bemeneti regiszterekb®l kapja. A j-ik (j ≥ 1)bemeneti regisztert i[j]-vel jelöljük. A gépnek van egy kitüntetett bels® regisz-tere, a 0-ik, amit akkumulátornak nevezünk. A gép csak ezen a regiszteren tudaritmetikai m¶veleteket végezni. A többi regiszter értékét csak úgy tudja módo-sítani, hogy az akkumulátor értékét betölti ezekbe a regiszterekbe. A regiszterekmódosítását a gép programja végzi. RAM-programon egy U = (u1, u2, . . . , un)utasítássorozatot értünk, ahol minden 1 ≤ i ≤ n-re ui a 2.1 táblázatban felsoroltutasítások egyike lehet.
A 2.1 táblázatban az x operadnust a következ®képpen kell értelmezni. Ha x = j,akkor x értéke maga a j szám. Ha x = ∗j, akkor x értéke r[j]. Végül, ha x = ∗∗j,akkor x értéke r[r[j]].
Az utasítások, kivéve a vezérlésmódosító utasításokat, eggyel növelik az s utasí-tásszámláló értékét, ami a program indulásakor 1. A JUMP j egy feltétel nélküli
2.4. TOVÁBBI TURING-EKVIVALENS MODELLEK 77
2.1. táblázat. A RAM utasításkészlete
Típus Utasítás Operandus Jelentés
Adatmozgató READ ∗j r[0] := i[j]∗ ∗ j r[0] := i[r[j]]
LOAD x r[0] := xSTORE ∗j r[j] := r[0]
∗ ∗ j r[r[j]] := r[0]Aritmetikai ADD x r[0] := r[0] + x
SUB x r[0] := r[0]− xDIV j r0 := b r0j cMUL j r[0] := j · r[0]
Vezérlésmódosító JUMP j s := jJPOS j ha r0 > 0, akkor s := jJNEG j ha r0 < 0, akkor s := jJZERO j ha r[0] = 0, akkor s := jHALT s := 0
ugrás, a JPOS j, JNEG j, JZERO j pedig egy-egy, az akkumulátor értékét®lfügg®, feltételes ugrás a j-ik utasításra.
Egy RAM program az els® utasítás végrehajtásával kezd®dik, és akkor van vége,ha végrehajtódik egy HALT utasítás vagy a program egy szabálytalan utasítástpróbál végrehajtani (olyan utasítást például ami negatív sorszámú regiszterrehivatkozik). A program megállása után a kimenet értéke az akkumulátorbanvan.
2.4.4. Példa. Az alábbi példa egy i[1] ≥ 0, i[2] > 0 bemenet esetén kiszámolja
az⌊i[1]i[2]
⌋értéket, egyéb bemenetek esetén pedig −1-et ad vissza.
1 READ *22 JNEG 163 JZERO 164 STORE *25 READ *16 JNEG 167 STORE *18 SUB *29 JNEG 1910 STORE *1
11 LOAD *312 ADD *113 STORE *314 LOAD *115 JUMP 816 LOAD 017 SUB *118 HALT19 LOAD *320 HALT
Egy P RAM program kezd®kongurációja az az állapot, amikor az s értéke 1és minden (bels®) regiszter értéke 0. A P megállási kongurációja pedig az az
78 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
állapot, amikor s értéke 0. Legyen most E az egész számok véges sorozatainaka halmaza és ϕ a E-b®l az egész számok halmazába képez® függvény. Aztmondjuk, hogy P kiszámítja a ϕ-t, ha minden I ∈ E számsorozatra, P az Ibemenettel indítva (azaz a bemeneti regiszterekbe rendre az I-beli elemeketírva) el tud jutni a kezd®kongurációból egy megállási kongurációba úgy, hogyaz akkumulátor értéke ϕ(I) lesz.
Bár látszólag teljesen különböz®en m¶ködnek, a RAM és a Turing-gép kiszámí-tási ereje megegyezik.
2.4.5. Tétel. A közvetlen hozzáférés¶ gépek és a Turing-gépek számítási erejemegegyezik.
Bizonyítás. Ezt a tételt bizonyítás nélkül közöljük, csak arra térünk ki, hogy ho-gyan lehet a két eszközt kompatibilissé tenni (a tétel bizonyítása megtalálhatópéldául a !!!!HIVATKOZÁS!!!! könyvben).
El®ször megjegyezzük a következ®ket. Legyen φ : D → Z (Z az egész számokhalmaza), egy RAM programmal kiszámítható függvény. Akkor megadhatóolyan M Turing-gép amely minden I ∈ D számsorozatra, az I egy reprezen-tációjával a szalagján indítva megáll úgy, hogy a szalagon a φ(I) szám (egyreprezentációja) lesz.
Másrészt, legyen Σ = σ1, σ2, . . . , σn (n > 0) egy ábécé és L ⊆ Σ∗ egy Turing-felismerhet® nyelv. Akkor megadható egy olyan P RAM program, mely azt aφ függvényt számolja ki, amit a következ®képpen deniálunk. Legyen x egytetsz®leges szám, melyre igaz, hogy x 6∈ 1, . . . , n. Ezek után tetsz®leges I =(i1, . . . , im, x) bemenetre legyen φ(I) = 1, ha σi1 . . . σim ∈ L, és legyen φ(I) = 0egyébként. A bemenetben az x szám jelöli a RAM számára azt, hogy a bemenetutolsó bet¶jét az I-ben az x-et megel®z® szám reprezentálja.
2.5. Eldönthetetlen problémák
Ebben a fejezetben megmutatjuk, hogy bár a Turing-gép a lehet® legáltaláno-sabb algoritmus modell, mégis vannak olyan problémák, melyek nem számítha-tók ki Turing-géppel.
El®ször felidézzük azt (lásd a 2.3.4. deníciót), hogy egy L nyelvet Turing-felismerhet®nek (vagy rekurzívan felsorolhatónak) nevezünk, ha van olyan MTuring-gép ami az összes L-beli szóra qi-ben áll meg, a többi szóra pedig qn-benáll meg vagy esetleg nem áll meg. A rekurzívan felsorolható nyelvek osztályátRE-vel jelöljük. Továbbá, L-et eldönthet®nek (vagy rekurzívnak) nevezzük, haM minden bemeneten meg is áll. A rekurzív nyelvek osztályát R-rel jelöljük.Világos, hogy fennáll az R ⊆ RE tartalmazás. A célunk az, hogy megmutas-suk az R valódi részhalmaza az RE-nek, azaz van olyan nyelv (probléma) amiTuring-felismerhet®, de nem eldönthet®.
2.5. ELDÖNTHETETLEN PROBLÉMÁK 79
Ebben a fejezetben csak olyan Turing-gépeket fogunk vizsgálni, melyek bemen®ábécéje a 0, 1 halmaz. Ez nem jelenti az általánosság megszorítását, hiszen hatalálunk egy olyan 0, 1-feletti nyelvet, melyet nem lehet eldönteni ilyen Turing-géppel, akkor ezt a nyelvet egyáltalán nem lehet eldönteni (ne felejtsük el, hogya Turing-gépnek csak a bemen® ábécéjét szorítottuk meg, a szalagábécéjét nem).
Az általunk keresett eldönthetetlen nyelv a következ®: azon (M,w) párok hal-maza (egy megfelel® bináris szóban elkódolva), aholM egy 0, 1 bemen® ábécéfeletti Turing-gép, w pedig egy 0, 1-feletti szó úgy, hogy w ∈ L(M), azaz Melfogadja w-t. Jelöljük ezt a nyelvet Lu-val.
Ahhoz, hogy megmutassuk azt, hogy Lu 6∈ R, el®ször az alábbiakat mutatjukmeg. El®ször belátjuk, hogy a 0, 1 ábécé feletti Turing-gépek egyértelm¶enelkódolhatóak egy bináris szóval. Ez után pedig megmutatjuk, hogy az Látló
nyelv, mely azon 0, 1-feletti Turing-gépek bináris kódjait tartalmazza, melyeknem fogadják el önmaguk kódját, mint bemen® szót, egy olyan nyelv, ami nemrekurzívan felsorolható.
2.5.1. Turing-gépek kódolása
El®ször megjegyezzük, hogy a 0, 1-feletti szavak felsorolhatóak (vagyis meg-számlálhatóak). Valóban, tekintsük azt a felsorolást, amelyben a szavak ahosszuk szerint követik egymást, és két egyforma hosszú szó közül pedig az vanel®bb, amelyik az alfabetikus rendezés szerint megel®zi a másikat. Ily módona 0, 1∗ halmaz elemeinek egy felsorolása a következ®képpen alakul: w1 = ε,w2 = 0, w3 = 1, w4 = 00, w5 = 01, és így tovább. Ebben a fejezetben tehát awi szóval a 0, 1∗ halmaz i-ik elemét jelöljük.
Legyen a továbbiakban M = (Q, 0, 1,Γ, δ, q0, qi, qn) egy Turing-gép. Akkorvan olyan k > 0 szám, hogy Q-t felírhatjuk Q = p1, p2, . . . , pk alakban, aholp1 = q0, pk−1 = qi és pk = qn (azaz tulajdonképpen megsorszámozzuk Q elemeitaz 1, . . . , k számokkal). Továbbá, van olyan m > 0 szám, hogy Γ felírható Γ =X1, X2, . . . , Xm alakban, ahol X1 = 0, X2 = 1, X3 = t és X4, . . . , Xm az Mtovábbi szalagszimbólumai. Nevezzük végül az L, R és S szimbólumokat, azaza Turing-gép átmenetfüggvényében szerepl® irányokat, rendre a D1-es, D2-es ésD3-as iránynak. Ezek után M egy δ(pi, Xj) = (pr, Xs, Dt) átmenete (0 ≤ i, r ≤k, 1 ≤ j, s ≤ m és 1 ≤ t ≤ 3) elkódolható a 0i10j10r10s10t szóval. Valóban,az els® és harmadik 0-s blokkban szerepl® 0-k száma megadja az átmenetbenszerepl® állapotok indexeit. A második, negyedik és ötödik 0-s blokkban szerepl®0-k száma pedig rendre az átmenetben szerepl® szalagszimbólumok és az irányindexeit adják. Továbbá, mivel miden 0-s blokk hossza legalább 1, az átmenetetkódoló szóban nem szerepel az 11 részszó. Tehát az M összes átmenetét kódolószavakat összef¶zhetjük egy olyan szóvá, melyben az átmeneteket az 11 részszóválasztja el egymástól. Az így kapott szó pedig magát M -et kódolja.
A továbbiakban minden i ≥ 1-re Mi-vel jelöljük azt a Turing-gépet, amit a wi
bináris szó kódol (emlékeztet®ül, wi az i-ik elem a 0, 1∗ elemeit felsoroló lis-
80 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.9. ábra. Az Látló 6∈ RE bizonyításában használt T táblázat
1 2 3 4 . . .1234...
0 1 0 01 1 11 1 1
1
0
0000
szavak
Turing-gépek
tában). Megegyezünk továbbá abban, hogy ha valamely i-re wi nem a fent leírtkódolása egy Turing-gépnek, akkorMi-t egy olyan Turing-gépnek tekintjük, amiminden inputon azonnal a qn állapotba megy, vagyis L(Mi) = ∅. A kés®bbiek-ben szükségünk lesz arra, hogy elkódoljunk egy (M,w) Turing-gép és bemenetpárost egy 0, 1-feletti szóban. Ehhez felhasználhatjuk azt, hogy a Turing-gépek fenti kódolása nem tartalmazhat három 1-est egymás mellett. Tehát az(M,w) párt úgy kódoljuk el, hogyM kódja után írjuk az 111 szót, ezután pedigw-t. A továbbiakban egy (Mi, w) párost kódoló wi111w szó helyett, a könnyebbolvashatóság kedvéért, általában az 〈M,w〉 kifejezést használjuk majd.
2.5.2. Egy nem rekurzívan felsorolható nyelv
Felhasználva a Turing-gépek el®bb látott elkódolását, most már pontosan isdeniálni tudjuk, hogy mit értünk a fent említett Lu és Látló nyelvek alatt: Lu =〈wi, wj〉 | i, j ≥ 1, wj ∈ L(Mi) és Látló = wi | i ≥ 1, wi 6∈ L(Mi). El®szörerr®l az utóbbi nyelvr®l mutatjuk meg, hogy nem rekurzívan felsorolható.
Ezt a nyelvet azért nevezzük Látló-nak, mert a karakterisztikus függvénye meg-kapható az alábbi módon. Tekintsük a következ® T táblázatot, melynek oszlopaiés sorai rendre az 1, 2, 3, . . . számokkal vannak címkézve (tehát T egy végtelenkétdimenziós mátrix). A T elemei 0 és 1 lehetnek az alábbiak szerint. Mindeni, j ≥ 1-re, T (i, j) értéke pontosan akkor 1, ha wj ∈ L(Mi) és 0 egyébként. Te-gyük fel, hogy az így kitöltött táblázatunk az 2.9 ábrán látható módon néz ki.Ebben a táblázatban például a második sor második eleme 1, ami azt jelenti,hogy M2 elfogadja a w2 szót (ez persze a valóságban nem igaz, hisz w2 nemkódol legális Turing-gépet, így M2 nem is ismerhet fel semmilyen szót, de azösszefüggések szemléltetéséhez feltesszük, hogy a fenti táblázat helyes).
Minden i ≥ 1-re, a fenti táblázat i-ik sora tekinthet® úgy, mint az L(Mi) nyelvkarakterisztikus függvénye. Nevezetesen azért, mert minden j ≥ 1-re, a wj
szó pontosan akkor eleme L(Mi)-nek, ha az i-ik sor j-ik eleme 1. Ebben azértelemben a táblázat átlójában szerepl® bitsorozat komplementere pedig nemmás, mint az Látló karakterisztikus függvénye. Ezért nyilvánvaló, hogy minden
2.5. ELDÖNTHETETLEN PROBLÉMÁK 81
i ≥ 1-re az Látló karakterisztikus függvénye különbözik L(Mi) karakterisztikusfüggvényét®l. Mivel minden M Turing-géphez van olyan i ≥ 1 szám, hogyL(M)L(Mi) =, kapjuk, hogy az Látló nyelv nem lehet egyenl® az L(M) nyelvvelsemmilyen M Turing-gépre. Adódik tehát a következ® tétel:
2.5.1. Tétel. Az Látló nem rekurzívan felsorolható.
2.5.3. Egy rekurzívan felsorolható, de nem eldönthet® nyelv
Az el®z® alfejezet eredményét is felhasználva szeretnénk megmutatni, hogy azLu egy olyan rekurzívan felsorolható nyelv ami nem rekurzív.
El®ször azt mutatjuk meg, hogy Lu rekurzívan felsorolható.
2.5.2. Tétel. Lu ∈ RE.
Bizonyítás. Megadunk egy olyan U Turing-gépet, ami Lu-t ismeri fel. Ezt aTuring-gépet Univerzális Turing-gépnek nevezzük, mert mint látni fogjuk Uszimulálja a bemenetén kapott 〈M,w〉 szó által kódoltM Turing-gép m¶ködéséta w szón.
U -nak négy szalagja van. El®ször leellen®rzi, hogy a bemenete egy 〈M,w〉 alakúszó-e. Ha igen, akkor elkezdi szimulálni M m¶ködését. U a második szalagjántárolja az M szalagját, mégpedig ugyanolyan a kódolással, mint amilyen az Melkódolásánál is használatos. Vagyis például az M Xj szalagszimbóluma a 0j
szóval van reprezentálva és a szalagszimbólumok pedig egy 1-es szimbólummalvannak elválasztva. A harmadik szalagon tárolja U az M aktuális állapotát aszokásos módon kódolva, a pi állapot például a 0i szóval van reprezentálva. AzU felépítése az 2.10 ábrán látható.
Az U m¶ködése egy v bemeneten az alábbi módon foglalható össze.
1. U el®ször megvizsgálja, hogy a v szó 〈M,w〉 alakú-e. Ha nem, akkorelutasítja a bemenetet. Ezt helyesen teszi, hisz ebben az esetben, meg-állapodásunk szerint v egy olyan Turing-gépet kódol, ami nem fogad elegyetlen bemen® szót sem. Ekkor viszont v nem lehet eleme Lu-nak.
2. U rámásolja w-t a második szalagra a kódolt formában.
3. U 0-t ír a harmadik szalagjára, ezzel reprezentálva M kezd®állapotát.
4. U szimulálja M egy lépését az alábbi módon. Keres egy 0i10j10r10s10t
alakú részszót M kódjában az els® szalagján úgy, hogy 0i a harmadik sza-lagon lév® állapot legyen, 0j pedig az a 0-s blokk, ami a második szalagona fej pozíciójában kezd®dik. Ezek után U elvégzi a fent kódolt átmenetalapján M egy lépését:
• Kitörli a harmadik szalagon 0i-t és a másodikról átmásolja a harma-dikra 0r-t (annak az állapotnak a kódját, amibe M -lépne).
82 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.10. ábra. Az Lu nyelvet eldönt® U Univerzális Turing-gép
0 1 0 0 1 ... 1 1 1 0 0 1 t ...︸ ︷︷ ︸M kódja
︸ ︷︷ ︸w
0 0 0 0 0 t01 1
0 0 0
t Segédszalag
M állapota elkódolva
M szalagja elkódolva
bemenetU
t
• Kicseréli a második szalagon 0j-t 0s-re, azaz átírja M szalagszimbó-lumát az átmenetnek megfelel®en. Ehhez ha kell felhasználja a negye-dik szalagot, ugyanis ha j 6= s, akkor rámásolja a negyedik szalagra amásodik szalagról a 0i mögötti részt, kitörli a második szalagon 0i-t,a helyére írja 0s-t, végül visszamásolja a negyedik szalagon lév® szóta második szalagra és a fejet a 0s blokk elejére állítja.
• U megkeresi a második szalagon a fej pozícióján kezd®d® 0-s blokktólbalra vagy jobbra lév® 0-s blokk kezdetét, vagy helyben marad attólfügg®en, hogy t értéke 1, 2, vagy 3.
5. Ha U azt találja, hogyM a 4-ik pontban elfogadó vagy elutasító állapotbalépett, akkor U is qi-be vagy qn-be lép. Egyébként pedig folytatja Mkövetkez® lépésének szimulálását a 4-ik ponttal.
Világos, hogy U pontosan akkor fogad el egy 〈M,w〉 alakú bemenetet, ha w ∈L(M), vagyis ha 〈M,w〉 ∈ Lu. Tehát U felismeri Lu-t, és ez az amit bizonyítaniakartunk.
Ezek után megmutatjuk, hogy Lu nem eldönthet®.
2.5.3. Tétel. Lu 6∈ R.
Bizonyítás. Az állítást indirekt módon bizonyítjuk. Tegyük fel, hogy Lu eldönt-het®. Legyen akkor M az a Turing-gép, ami eldönti Lu-t. M -b®l megkonstru-álunk egy olyan M ′ Turing-gépet, ami Látló-t dönti el. M ′ felépítése az 2.5.3.ábrán látható.
Adott w bementere M ′ a következ®ket csinálja:
2.5. ELDÖNTHETETLEN PROBLÉMÁK 83
2.11. ábra. Egy Turing-gép, ami az Lu-t eldönt® Turing-gép segítségével Látló-tdönti el
MMásolw
M ′
w111wqi
qn
qi
qn
1. El®állítja w-b®l a w′ = 〈w,w〉 szót.
2. w′-n szimulálja M -et
3. Ha M elfogadja w′-t, akkor M ′ elutasítja w-t.
4. Ha M elutasítja w′-t, akkor M ′ elfogadja w-t.
Mivel M minden bemeneten megáll, M ′ is megáll minden bemeneten. Továbbáw ∈ L(M ′) akkor és csak akkor, ha 〈w,w〉 6∈ Lu, azaz ha a w által kódolt Turing-gép nem fogadja el önmaga kódját bemenetként. Ez azt jelenti, hogy w ∈ L(M ′)pontosan akkor teljesül, ha w ∈ Látló. Azt kaptuk tehát, hogy L(M ′) = Látló,vagyis Látló eldönthet®. Ez viszont ellentmond a 2.5.1 tételünknek, mely szerintLátló 6∈ RE. Ezzel a tétel bizonyítását befejeztük.
Most egy olyan tételt bizonyítunk, amely a 2.5.2. és 2.5.3. tételekkel együtt azteredményezi hogy a rekurzívan felsorolható nyelvek nem zártak a komplementerképzésre.
2.5.4. Tétel. Legyen L egy nyelv. Ha L, L ∈ RE, akkor L ∈ R.
Bizonyítás. Ha L és L is rekurzívan felsorolható, akkor vannak olyan M1 és M2
Turing-gépek, melyek rendre L-et és L-et ismerik fel. M1 ésM2 felhasználásávalmegkonstruálunk egy olyan M turing-gépet, ami eldönti L-et.
M egy olyan kétszalagos gép, ami egy w bemeneten az alábbiakat teszi. Els®lépésként a második szalagra másolja w-t. Ezután egy ciklusban szimulálja azM1 egy lépését az els® szalagon és az M2 egy lépését a másodikon. A ciklusaddig fut, amígM1 ésM2 közül valamelyik elfogadó állapotba nem lép. Mivel wvagy az L(M1)-nek vagy az L(M2)-nek az eleme, véges számú szimulációs lépésután, vagy M1 vagy M2 elfogadja w-t, tehát valamelyik el®bb-utóbb biztosanqi-be lép. HaM1 lép qi-be, akkorM elfogadja a bemenetet, haM2, akkor pedigelutasítja azt. Könnyen látható, hogy M is L-et ismeri fel ráadásul mindenbemeneten megáll, tehát el is dönti L-et. Következésképpen L ∈ R.
84 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
Hogyan lehet belátni ezek után azt, hogy a rekurzívan felsorolható nyelvek nemzártak a komplementerképzésre? Tekintsük például az Lu nyelv komplemente-rét: Lu = w ∈ 0, 1∗ | w 6∈ Lu. Azt állítjuk, hogy Lu 6∈ RE. Valóban,tegyük fel, hogy Lu ∈ RE. Akkor, mivel a 2.5.2. tétel alapján Lu ∈ RE, a2.5.4. tételb®l következik, hogy Lu ∈ R. Ez viszont ellentmond annak, hogya 2.5.3. tétel alapján Lu 6∈ R. Kapjuk tehát, hogy Lu nem lehet rekurzívanfelsorolható, amib®l következik az alábbi megállapítás.
2.5.5. Következmény. A rekurzívan felsorolható nyelvek nem zártak a komp-lementerképzésre.
A rekurzívan felsorolható nyelvekkel ellentétben a rekurzív nyelvek már zártaka komplementer képzésre.
2.5.6. Tétel. Ha L ∈ R, akkor L ∈ R.
Bizonyítás. Legyen L egy rekurzív nyelv. Akkor van olyan M Turing-gép, amieldönti L-et. Tudjuk, hogy ekkor M olyan, hogy a nyelv elemein indítva qi-benáll meg, az összes többi szón pedig qn-ben áll meg, vagyis minden szón megáll.Legyen M ′ az a Turing-gép, amit úgy kapunk M -b®l, hogy M összes olyanátmenetét, ami qi-be megy qn-be irányítjuk, a qn-be men® átmeneteket pedigqi-be. Nem nehéz belátni, hogy az így deniált M ′ az L nyelvet dönti el.
2.6. További eldönthetetlen problémák
Ebben a fejezetben néhány további Turing-gépekkel kapcsolatos eldönthetetlenprobléma mellett megvizsgálunk két olyan eldönthetetlen problémát is, melyeknem kapcsolódnak közvetlenül a Turing-gépekhez. El®ször viszont végiggondol-juk, hogyan lehet felhasználni egy eldönthetetlen problémát továbbiak keresésé-re.
Tegyük fel, hogy van két eldöntési problémánk, legyenek ezek L1 és L2. El®-fordulhat, hogy csak a L2 probléma eldöntésére van egy A2 algoritmusunk, azL1-ére nincs. Viszont ha igaz az, hogy az L1 probléma minden w példányáhozmeg tudjuk konstruálni a L2 probléma egy w′ példányát úgy, hogy a w pon-tosan akkor igen példánya L1-nek, ha w′ igen példánya L2-nek, akkor máraz L1 problémát is el tudjuk dönteni az alábbi módon. Az L1-et eldönt® A1
algoritmus egy w bemenetb®l el®ször elkészíti a L2 fentebb leírt w′ példányát,ezután szimulálja A2 m¶ködését a w′ bemeneten. Ha A2 igen választ ad a w′
bemenetre, akkor A1 is igen választ ad a w bemenetre, ha A2 nem választad, akkor A1 is nem választ ad a bemenetre. Könnyen látható, hogy az ígyleírt A1 algoritmus valóban az L1 problémát dönti el. A most vázolt módszertnevezzük visszavezetésnek, mely során az L1 probléma eldöntését visszavezettükaz L2 probléma eldöntésére.
2.6. TOVÁBBI ELDÖNTHETETLEN PROBLÉMÁK 85
A visszavezetést felhasználhatjuk arra is, hogy megmutassuk egy problémáról,hogy eldönthetetlen. Tudjuk például, hogy az el®z® fejezetben vázolt Lu prob-léma eldönthetetlen. Ha Lu-t sikerülne visszavezetni egy másik problémára,akkor ezáltal bizonyítani tudnánk, hogy ez az újabb probléma is eldönthetetlen(gondoljuk csak meg, ha az újabb problémánk mégis eldönthet® lenne, akkor avisszavezetést felhasználva meg tudnánk adni egy Lu-t eldönt® algoritmust, amiellentmondáshoz vezetne).
A fent vázolt visszavezetést formálisan az alábbi módon deniáljuk.
2.6.1. Deníció. Legyen Σ és ∆ két ábécé és f egy Σ∗-ból ∆∗-ba képez®függvény. Azt mondjuk, hogy f kiszámítható, ha van olyanM Turing-gép, hogyM -et egy w ∈ Σ∗ szóval a bemenetén indítva, M úgy áll meg, hogy a szalagjánaz f(w) szó van.
Ezután legyen L1 ⊆ Σ∗ és L2 ⊆ ∆∗ két nyelv (azaz eldöntési probléma). Aztmondjuk, hogy L1 visszavezethet® L2-re, ha van olyan f : Σ∗ → ∆∗ kiszámíthatófüggvény, hogy minden w ∈ Σ∗ szóra, w ∈ L1 akkor és csak akkor teljesül, haf(w) ∈ L2 is teljesül.
2.6.2. Tétel. Legyen L1 ⊆ Σ∗ és L2 ⊆ ∆∗ két eldöntési probléma és tegyükfel, hogy L1 visszavezethet® L2-re. Akkor igazak az alábbi állítások:
1. Ha L1 eldönthetetlen, akkor L2 is az.
2. Ha L1 6∈ RE, akkor L2 6∈ RE.
Bizonyítás. Csak a második állítást bizonyítjuk, az els® bizonyítása hasonló.Indirekt módon tegyük fel, hogy L2 rekurzívan felsorolható. Akkor van olyanM2 Turing-gép, hogy L2 = L(M2). Továbbá, van olyan M ′ Turing-gép, amikiszámolja az L1 nyelv L2-re való visszavezetését. Ezen gépek segítségével meg-adunk egy olyan M1 Turing-gépet, ami L1-et ismeri fel. M1 egy w bemenetenel®ször szimulálja az M ′ gépet. Amikor végez, akkor a szalagján lév® f(w) szónszimulálja M2 m¶ködését. Ha M2 elfogadja az f(w) szót, akkor M1 is elfogadjaa w-t. Ha M2 elutasítja f(w)-t, akkor M1 is elutasítja a w-t. Ha M2 nem állmeg az f(w) bemeneten, akkor M1 sem áll meg w-n. Könnyen belátható, hogyaz így vázoltM1 gép pontosan az L1 nyelvet ismeri fel. Feltevésünk szerint azon-ban az L1 6∈ RE, vagyis L1 nem felismerhet®, tehát ellentmondáshoz jutottunk.Következésképpen L2 nem lehet rekurzívan felsorolható.
2.6.1. A megállási probléma
A fentiek demonstrálására tekintsük a következ® problémát, mely a Turing-gépek megállási problémájaként is ismert.
Legyen Lh = 〈M,w〉 |M megáll a w bemeneten, azaz Lh azon 〈M,w〉 Turing-gép és bemenet párosokat tartalmazza megfelel®en elkódolva, melyekre teljesül,hogy az M gép megáll a w bemenetet.
86 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
Nyilvánvaló, hogy ha lenne egy Turing-gép, ami képes lenne eldönteni is az Lh
nyelvet, akkor tetsz®leges Turing-gépr®l és így a Church-Turing tézis értelmébentetsz®leges algoritmusról, C++, Pascal programról, stb.) el tudnánk dönteni,hogy megáll-e a bemenetén vagy sem. Ez a Turing-gép egy igen hasznos eszközlenne a számunkra, sajnálatos módon azonban ilyen gép nem létezik, amint azta következ®kben látni fogjuk.
2.6.3. Tétel. Az Lh nyelv eldönthetetlen.
Bizonyítás. Visszavezetjük az Lh problémára az Lu problémát, ami a 2.6.2. tételszerint, mivel Lu eldönthetetlen, bizonyítja azt, hogy Lh is eldönthetetlen. Avisszavezetés a következ® módon történik. Egy tetsz®leges M Turing-géphezlegyen M ′ a következ® Turing-gép.
M ′ egy w bemeneten:
1. FuttatjaM -et a w szón (tulajdonképpen meghívja az U univerzális Turinggépet az 〈M,w〉 szóra).
2. Ha M elfogadja a w bemenetet, akkor M ′ is elfogadja w-t.
3. HaM elutasítja w-t, akkorM ′ egy olyan állapotba megy, ahol egy végtelenciklusban lépteti a fejet jobbra, tehát M ′ ebben az esetben soha nem állmeg.
Könny¶ belátni, hogy az 〈M,w〉 → 〈M ′, w〉 leképezés kiszámítható. Továbbá,〈M,w〉 ∈ Lu akkor és csak akkor teljesül, ha 〈M ′, w〉 ∈ Lh teljesül. Azt kaptuktehát, hogy Lu visszavezethet® Lh-ra, amib®l következik, hogy Lh eldönthetet-len.
Bár az Lh nyelv nem eldönthet®, de legalábbis felismerhet® Turing-géppel.
2.6.4. Tétel. Lh ∈ RE.
Bizonyítás. Tekintsük az Lu nyelvet felismer® U Univerzális Turing-gépet (lásda 2.5.2. tételt). Ezt a gépet fogjuk módosítani úgy, hogy Lh-t ismerje fel. Uminden olyan átmenetét, ami qn-be megy irányítsuk qi-be, és jelöljük a kapottTuring-gépet M ′-vel. Nem nehéz belátni, hogy egy M Turing-gépre és annak wbemen® szavára az 〈M,w〉 szó pontosan akkor eleme L(M ′)-nek, ha M megálla w bemeneten (qi-ben vagy qn-ben). Ez pedig azt jelenti, hogy Lh = L(M ′),vagyis M ′ az Lh nyelvet ismeri fel.
2.6.2. További Turing-gépekkel kapcsolatos eldönthetetlen
problémák
Tekintsük az Lüres = 〈M〉 | L(M) = ∅ nyelvet.
2.6. TOVÁBBI ELDÖNTHETETLEN PROBLÉMÁK 87
2.6.5. Tétel. Lüres 6∈ R.
Bizonyítás. Visszavezetjük az Lu-t Lüres-re. A visszavezetés egyik módja a kö-vetkez®. Adott (M,w) Turing-gép bement pároshoz konstruáljuk meg a kö-vetkez® Müres Turing-gépet. Müres egy adott u bemeneten a következ®ket teszi:
1. Megnézi, hogy u = w teljesül-e. Ha nem, akkor elutasítja u-t. Egyébkéntszimulálja az M -et az u-n (azaz w-n)
2. Ha M elfogadja u-t, akkor Müres is qi-be lép, ha M elutasítja u-t, akkorMüres is qn-be lép.
Könnyen látható, hogy 〈M〉 ∈ Lüres ⇔ L(Müres) = ∅⇔ w ∈ L(M)⇔ 〈M,w〉 ∈Lu, vagyis a fenti konstrukció az Lu visszavezetése az Lüres-re. A 2.6.2. tételalapján tehát az Lüres is eldönthetetlen.
A 2.5.6 tétel alapján az Lüres nyelv komplementere, azaz az Lnem üres = 〈M〉 |L(M) 6= ∅ sem eldönthet®. Ez a nyelv viszont felismerhet® Turing-géppel.
2.6.6. Tétel. Lnem üres ∈ RE.
Bizonyítás. Tekintsük azt az M ′ Turing-gépet, ami egy adott bemeneten a kö-vetkez®képpen m¶ködik.
1. M ′ a második szalagjára írja a 0-t.
2. Jelöljük a második szalagon lév® számot i-vel. M ′ egy ciklusban szimu-lálja a bemenetén kapott M Turing-gép els® i lépését rendre a w1, . . . , wi
szavakon.
3. Ha M ′ azt találja, hogy az M valamik szón elfogadó állapotba lép, akkorM ′ is belép a saját elfogadó állapotába. Egyébként növeli a másodikszalagon lév® számot 1-el és folytatja a m¶ködését a 2-es lépéssel.
Világos, hogy az így deniált M ′ megáll qi-ben, ha van olyan wj (j ≥ 1) szó,melyre wj ∈ L(M), egyébként pedig nem áll meg. Kapjuk tehát, hogy adott MTuring-gépre, 〈M〉 ∈ Lnem üres ⇔ 〈M〉 ∈ L(M ′), vagyis M ′ az Lnem üres nyelvetismeri fel.
A 2.5.4., 2.6.5. és 2.6.6. tételek alapján könnyedén beláthatjuk az alábbi állítást.
2.6.7. Következmény. Az Lüres nyelv nem rekurzívan felsorolható.
Az továbbiakban azt mutatjuk meg, hogy nem csak a fenti problémák eldönt-hetetlenek, hanem az összes Turing-gépekkel kapcsolatos nem triviális kérdés isaz.
88 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.6.3. Rice tétele
El®ször tisztázni kell, hogy mit nevezünk a rekurzívan felsorolható nyelvek egynem triviális tulajdonságának.
2.6.8. Deníció. Ha P a rekurzívan felsorolható nyelvek egy halmaza, akkorP-t a rekurzívan felsorolható nyelvek egy tulajdonságának nevezzük. Továbbá, Pegy nem triviális tulajdonság, ha P 6= ∅ és P 6= RE. Azt mondjuk, hogy egyL ∈ RE nyelv rendelkezik a P tulajdonsággal, ha L ∈ P.
Például, ha P az üres halmaz, akkor egyetlen rekurzívan felsorolható nyelv semrendelkezik a P tulajdonsággal. Viszont ha P = ∅, azaz P az üres nyelvettartalmazza (ami nyilván egy rekurzívan felsorolható nyelv), akkor kizárólag a∅, vagyis az üres nyelv rendelkezik a P tulajdonsággal.
Ebben az alfejezetben megmutatjuk, hogy ha P egy nem triviális tulajdonság,akkor nincs olyan Turing-gép, ami tetsz®leges L ∈ RE nyelvre eldöntené, hogy Lrendelkezik-e a P tulajdonsággal, azaz L ∈ P teljesül-e vagy sem (megjegyezzük,hogy ha P egy triviális tulajdonság lenne, akkor a probléma eldöntése is triviálislenne). Igazából a következ®t fogjuk bizonyítani. Adott P tulajdonságra jelöljükLP -vel azon Turing-gépek kódjainak a halmazát, melyek P-beli nyelvet ismernekfel. Az alábbi tétel azt mondja ki, hogy az LP nyelv eldönthetetlen, amennyibenP egy nem triviális tulajdonság.
2.6.9. Tétel. Legyen P a rekurzívan felsorolható nyelvek egy nem triviális tu-lajdonsága. Akkor az LP nyelv eldönthetetlen.
Bizonyítás. El®ször tegyük fel, hogy ∅ 6∈ P (a bizonyítás végén majd visszaté-rünk ahhoz az esethez, amikor ∅ ∈ P). Legyen továbbá L egy tetsz®leges nemüres nyelv nyelv P-b®l (ilyen L létezik, hiszen P nem üres, mivel nem triviális,és ∅ 6∈ P). Legyen ML az L-et felismer® Turing-gép.
A következ®kben visszavezetjük az Lu nyelvet az LP -re. Legyen 〈M,w〉 egytetsz®leges Turing-gép és annak egy w bemenete. Megmutatjuk, hogy meg-konstruálható egy M ′ Turing-gép úgy, hogy L(M ′) = ∅, ha w 6∈ L(M) ésL(M ′) = L, ha w ∈ L(M). A megkonstruált M ′ egy kétszalagos Turing-géplesz, a gép vázlata a 2.12 ábrán látható.
M ′ egy tetsz®leges x bemeneten a következ®ket csinálja:
1. Függetlenül attól, hogy mi az x bemenet,M ′ szimulálja az egyik szalagjánaz M m¶ködését a w szón (M és w kódja be van építve M ′ kódjába;M ′ felmásolja a szalagjára a w-t és meghívja az univerzális Turing-gépet,melynek segítségével szimulálja M m¶ködését w-n).
2. Ha M ′ azt találja, hogy M nem fogadja el w-t, akkor M ′ nem csinálsemmit, vagyis nem fogadja el x bemenetet. Ebben az esetben L(M ′) = ∅,vagyis 〈M ′〉 6∈ LP .
2.6. TOVÁBBI ELDÖNTHETETLEN PROBLÉMÁK 89
2.12. ábra. Lu visszavezetése LP -re
x
w
M ′
Mqi
ML
qi
qn
qi
qn
3. Ha M ′ azt találja, hogy M elfogadja w-t, akkor elkezdi szimulálni ML
m¶ködését az x bemeneten. Ebben az esetben pedig L(M) = L, vagyis〈M ′〉 ∈ LP .
Látható, hogy 〈M,w〉 ∈ Lu akkor és csak akkor teljesül, ha 〈M ′〉 ∈ LP , vagyisa fenti eljárás Lu visszavezetése LP -re. Mivel Lu eldönthetetlen kapjuk, hogyLP is eldönthetetlen.
Meg kell még vizsgálni azt az esetet, amikor ∅ ∈ P. Ebben az esetben ismétel-jük meg a fenti bizonyítást a P = RE−P tulajdonságra. Azt kapjuk, hogy LPnem eldönthet®. Tegyük fel most, hogy az LP nyelv viszont eldönthet®. Koráb-bi tételünk alapján tudjuk, hogy ebben az esetben LP is eldönthet®. Másrésztnem nehéz belátni, hogy LP = LP , ami azt jelenti, hogy LP is eldönthet®, ez pe-dig ellentmondás, amib®l következik, hogy LP eldönthetetlen, amit bizonyítaniakartunk.
A fentiek alapján az alábbi problémák mindegyike eldönthetetlen.
1. Egy tetsz®leges M Turing-gép az üres nyelvet ismeri-e fel. (Ebben azesetben P = ∅.)
2. Egy M Turing-gép véges nyelvet ismer-e fel (P = L | L véges).
3. Egy M Turing-gép reguláris nyelvet ismer-e fel (P = L | L reguláris).
4. Egy M Turing-gép környezetfüggetlen nyelvet ismer-e fel (P = L |L környezetfüggetlen).
Eddig olyan eldönthetetlen problémákat láttunk, melyek Turing-gépekkel illetveaz általunk felismert nyelvekkel kapcsolatosak. A következ®kben megmutatunknéhány olyan eldönthetetlen problémát, melyek nem kapcsolódnak közvetlenüla Turing-gépekhez.
90 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2.6.4. A Post Megfelelkezési Probléma
El®ször az úgynevezett Post Megfelelkezési Problémát (röviden PMP-t) ismer-tetjük. Ezt a problémát szokás dominóproblémának is nevezni.
2.6.10. Deníció. A PMP problémát a következ®képpen deniáljuk. Legyen
Σ egy legalább két bet¶t tartalmazó ábécé és legyen D =[
u1
v1
], . . . ,
[un
vn
]egy
dominóhalmaz, melyben n ≥ 1 és u1, . . . , un, v1, . . . , vn ∈ Σ+. A kérdés az,hogy van-e egy olyan 1 ≤ i1, . . . , im ≤ m (m ≥ 1) indexsorozat, melyre teljesül,
hogy a[ui1
vi1
], . . . ,
[uim
vim
]dominókat egymás mellé írva alul és felül ugyanaz a szó
adódik, azaz ui1 . . . uim = vi1 . . . vim . Ebben az esetben a fenti dominósorozatota D egy megoldásának nevezzük.
Formális nyelvként a következ®képpen deniálhatjuk a PMP-t:
PMP = 〈D〉 | D-nek van megoldása.
2.6.11. Példa. !!!!!ide kellene egy ket pelda, megoldasos illetve megoldas nelkuliis!!!!!
Ismert, hogy a PMP probléma algoritmikusan eldönthetetlen. Ennek az állítás-nak a bizonyítása általában a következ® lépéseken alapul. El®ször deniáljukaz úgynevezett Módosított Post Megfelelkezési Problémát (MPMP) és megmu-tatjuk, hogy ez visszavezethet® a PMP-re. Majd megmutatjuk, hogy az Lu
probléma visszavezethet® az MPMP-re.
El®ször nézzük meg tehát, hogy hogyan is néz ki az MPMP probléma. Adott
egy D =[
u1
v1
], . . . ,
[un
vn
]dominókészlet valamely n ≥ 1-re (úgy ahogy a PMP
esetében is). A kérdés az, hogy, hogy van-e egy olyan megoldása a D-nek (a
PMP szerint), melyben az els® dominó az[u1
v1
].
El®ször tehát megmutatjuk, hogy az MPMP visszavezethet® a PMP-re.
2.6.12. Tétel. MPMP ≤ PMP.
Bizonyítás. Tekintsük az MPMP probléma egy
D =
[u1v1
], . . . ,
[unvn
]példányát. Ehhez konstruáljuk meg a
D′ =
[∗u1∗v1∗
],
[∗u1v1∗
],
[∗u2v2∗
], . . . ,
[∗unvn∗
],
[∗##
]dominókészletet. Itt a ∗ és a # jelek új, a D dominóiban nem szerepl® szimbó-lumok. Világos, hogy ha D-nek van megoldása (az MPMP probléma szerint),
2.6. TOVÁBBI ELDÖNTHETETLEN PROBLÉMÁK 91
akkorD′-nek is van megoldása (a PMP szerint). Valóban, legyen az i1, i2, . . . , im(m ≥ 1) indexsorozat a D egy megoldása. Ekkor i1 = 1, hiszen a D az MPMP
egy pozitív példánya. Ekkor válasszuk D′-b®l el®ször az[
∗u1
∗v1∗
]dominót, majd
rendre minden 2 ≤ j ≤ m-re válasszuk a[∗uij
vij∗
]dominókat. Végül válasszuk a[
∗##
]dominót. Az így kapott dominósorozat a D′ egy megoldása lesz.
Tegyük fel most azt, hogy a D′-nek van egy megoldása. Nyilvánvaló, hogy ez
a megoldás az[
∗u1
∗v1∗
]dominóval kezd®dik, az
[∗ui1
vi1∗
], . . . ,
[∗uim
vim∗
]dominókkal
folytatódik (valamely m ≥ 0-ra és i1, . . . , im indexekre) és a[∗##
]dominóval
végz®dik. Ekkor viszont az[u1
v1
] [ui1
vi1
]. . .[uim
vim
]dominósorozat a D egy megol-
dása. Ezzel a bizonyítást befejeztük.
2.6.13. Tétel. A PMP algoritmikusan eldönthetetlen.
Bizonyítás. Elég megmutatni, hogy az Lu visszavezethet® a MPMP-re. Való-ban, ekkor a 2.6.2. tétel alapján az MPMP is eldönthetetlen, és mivel MPMP≤ PMP (2.6.12. tétel) a PMP is eldönthetetlen.
Legyen tehát M = (Q,Σ,Γ, δ, q0, qi, qn) egy Turing-gép és w ∈ Σ∗. Megadjukaz MPMP egy D bemenetét úgy, hogy D pontosan akkor pozitív példánya azMPMP-nek, ha 〈M,w〉 ∈ Lu.
El®ször is feltesszük, hogy az M sosem próbálja a fejet a kiindulási pozíciótólbalra mozgatni (nem nehéz belátni, hogy minden Turing-géphez megadható egyekvivalens ilyen Turing-gép). Tegyük fel továbbá, hogy w = a1 . . . an valamelyn ≥ 0-ra és a1, . . . , an ∈ Σ-ra. Ezután a D-t a következ®képpen deniáljuk:
Els® rész. Az els® dominó amit felveszünk D-be legyen a[##q0a1...an#
].
Második rész. Ezután, minden a, b, c ∈ Γ-ra, p, q ∈ Q-ra ahol p 6= qi,
• ha δ(p, a) = (q, b, R), akkor a[pabq
]dominót,
• ha δ(p, a) = (q, b, L), akkor a[cpaqcb
]dominót,
• ha δ(p, a) = (q, b, S), akkor a pedig a[paqb
]dominót vesszük fel D-be.
Harmadik rész. Minden a ∈ Γ-ra vegyük fel az[aa
]dominót D-be.
Tekintsünk egy egyszer¶ példát a fentiek demonstrálására. Legyen Mex egyTuring-gép, melynek a szalagábécéje a Γ = a, b,t, az állapothalmaza pediga Q = q0, q1, q2, qi, qn halmaz. Tekintsük az Mex egy w = bab bemenetét.
Ekkor, az els® részben leírtak alapján a D-be bekerül a[##q0babb#
]dominó.
92 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
Továbbá, ha például az M -nek van egy δ(q0, b) = (q2, a, R) átmenete, akkor a
második rész alapján a D-be bekerül a[q0baq2
]dominó. Végül, a harmadik rész
miatt bekerülnek a D-be az[aa
],[bb
]és[tt]dominók.
Ha az Mex a bemenetére kapja a w = bab szót, akkor a q0bab kezd®kongurá-cióból át tud lépni az aq2ab kongurációba. Nézzük meg, hogy milyen D-belidominók sorozatával szimulálható az Mex ezen konguráció-átmenete. A célaz, hogy egy olyan dominósorozatot adjunk meg, melyben az alsó szó az Mex
q0bab kezd®kongurációjával kezd®dik és a aq2ab kongurációval folytatódik (éspersze a kongurációk a # jellel vannak elválasztva egymástól):[
#
#q0babb#
][q0b
aq2
][a
a
][b
b
].
Látható, hogy ekkor az alsó szó pontosan az aq2ab kongurációval lesz hosszabba fels®nél. Persze ahhoz, hogy tovább folytathassuk a dominósorozatunkat szük-ség van egy olyan dominóra, ami a fels® sor végére ír egy # szimbólumot. Eztdeniáljuk a D megadásának következ® részében.
Negyedik rész. Vegyük fel D-be a[##
]és a
[#t#
]dominókat. Ezek közül a
másodikra akkor van szükség, ha el®áll M -ben egy olyan konguráció, amikor
a fej az utolsó nem t szimbólum utáni t-ra mutat. Ilyenkor a[
#t#
]dominó az
alsó szó végére a # elé beír egy t-ot.
A fenti példánknál maradva, a következ® feladatunk biztosítani azt, hogy haaz Mex qi-be lép, akkor a D-ben legyen olyan dominósorozat, melyek alkalma-zásával az alsó és fels® szavak egyforma hosszúak lesznek, hisz ekkor lesz csakigaz az, hogy megoldást találhatunk a D-ben. Ehhez olyan dominók kellenek,melyek az alsó szóban olyan ál-kongurációkat hoznak létre, melyekben a qiállapot körül elt¶nnek a nem t szimbólumok.
Ötödik rész. Vegyük fel a D-be minden a ∈ Γ-ra a[aqiqi
]és a
[qiaa
]dominókat.
Ezen rész szemléltetéséhez tegyük fel, hogyMex-nek van egy δ(q2, a) = (qi, b, S)átmenete. Ekkor a harmadik részben látott dominósorozat folytatható a követ-kez®képpen: [
#
#q0babb#
][q0b
aq2
][a
a
][b
b
][#
#
][a
a
][q2a
qib
][b
b
][#
#
].
A könnyebb olvashatóság kedvéért nézzük meg, hogyan néz ki most a fentisorozat fels® illetve alsó szava:
#q0bab#aq2ab#
#q0bab#aq2ab#aqibb#.
Az ötödik részben deniált dominók segítségével eltüntethetjük az alsó szóutolsó két #-ja közti qi-t®l különböz® szimbólumokat. Valóban, folytassuk a
2.6. TOVÁBBI ELDÖNTHETETLEN PROBLÉMÁK 93
fenti dominósorozatot az alábbi dominókkal:[aqiqi
][b
b
][b
b
][#
#
].
Ekkor a dominósorozat szavai a következ®képpen néznek ki:
#q0bab#aq2ab#aqibb#
#q0bab#aq2ab#aqibb#qibb#.
Folytatva a fenti dominósorozatot a[qib
qi
][b
b
][#
#
][qib
qi
][#
#
]dominókkal, azt kapjuk, hogy a teljes dominósorozat fels® és alsó szavai a kö-vetkez®képpen néznek ki:
#q0bab#aq2ab#aqibb#qibb#qib#
#q0bab#aq2ab#aqibb#qibb#qib#qi#.
Hatodik rész. Ahogy a fenti példából is látszik, ahhoz, hogy a D-nek legyen
egy megoldása, elegend® a[qi##
#
]dominót felvenni a D-be.
A fentiek alapján elmondható, hogy ha w ∈ L(M), azaz 〈M,w〉 ∈ Lu, akkor aD-nek van egy megoldása. Másrészt, ha D-nek van megoldása, akkor mivel a
D a MPMP egy pozitív példánya, ez a megoldás biztos, hogy a[##q0a1...an#
]dominóval kezd®dik. Ez viszont azt jelenti, hogy a D ezen megoldása szimuláljaaz M egy elfogadó számítási sorozatát a w-n. Kapjuk tehát, hogy w ∈ L(M),vagyis 〈M,w〉 ∈ L.
Így a D konstrukciója az Lu visszavezetése azMPMP -re, és ezzel a bizonyítástbe is fejeztük.
2.6.5. Nyelvtanokkal kapcsolatos eldönthetetlen problémák
2.6.5.1. Környezetfüggetlen nyelvtanok egyértelm¶sége.
A PMP segítségével megmutatjuk, hogy eldönthetetlen, vajon egy környezetfüg-getlen nyelvtan egyértelm¶-e. Emlékeztet®ül, egy G CF nyelvtan egyértelm¶,ha minden L(G)-beli szónak pontosan egy baloldali levezetése van G-ben.
2.6.14. Tétel. Legyen G = (V,Σ, P, S) egy CF nyelvtan. Nem eldönthet®, hogyG egyértelm¶-e.
Bizonyítás. Megmutatjuk, hogy a PMP visszavezethet® erre a problémára. Eza 2.6.2. tétel segítségével bizonyítja az állításunkat.
94 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
Legyen D =[
u1
v1
], . . . ,
[un
vn
](n ≥ 1) a PMP egy bemenete, melyben a do-
minók szavai egy Σ ábécé felettiek. Konstruáljuk meg a G CF nyelvtant akövetkez®képpen. El®ször deniálunk két további CF nyelvtant. Legyen ∆ =a1, . . . , an úgy, hogy ∆ ∩ Σ = ∅. Legyen továbbá GA = (A,Σ ∪∆, PA, A)és GB = (B,Σ ∪∆, PB , B), ahol
PA = A→ u1Aa1, . . . , A→ unAan, A→ u1a1, . . . , A→ unan és
PB = B → v1Ba1, . . . , B → vnBan, B → u1a1, . . . , B → unan.Végül, legyen G a GA és GB nyelvtanok uniója egy új S kezd®szimbólummal(lásd az 1.4.25. tételt).
Könnyen látható, hogy G-ben minden levezetés baloldali. Ezért G akkor éscsak akkor nem egyértelm¶, ha van egy olyan w szó a Σ ∪ ∆ felett, hogy wlevezethet® G-ben két különböz® módon. De ez, mivel G-ben a GA és GB
szabályi nem keverednek, csak úgy lehetséges, hogy w levezethet® GA-ban ésGB-ben is. Megjegyezzük, hogy GA-ban csak ui1 . . . uimaim . . . ai1 GB-ben pedigvi1 . . . vimaim . . . ai1 alakú szavak vezethet®k le (m ≥ 1, 1 ≤ i1, . . . , im ≤ n).
Elég tehát belátnunk azt, hogy D-nek akkor és csak akkor megoldása az[ui1
vi1
],
. . . ,[uim
vim
](m ≥ 1) dominókészlet, ha a w = uaim . . . ai1 (u = ui1 . . . uim =
vi1 . . . vim) szó levezethet® GA-ban és GB-ben is.
El®ször tegyük fel, hogy D-nek van egy[ui1
vi1
], . . . ,
[uim
vim
](m ≥ 1) megoldása. A
GA deníciója alapján, az ui1 . . . uimaim . . . ai1 szó levezethet® GA-ban rendreaz A → ui1Aai1 , . . . , A → uim−1Aaim−1 , A → umam szabályok alkalmazásával.Hasonlóan, a GB-ben is levezethet® a vi1 . . . vimaim . . . ai1 szó. Mivel a fentidominósorozat megoldása a D-nek, kapjuk, hogy ui1 . . . uim = vi1 . . . vim , és ígya bizonyítás egyik részével készen vagyunk.
Most tegyük fel, hogy egy w = uaim . . . ai1 (u ∈ Σ∗) alakú szó levezethet®G-ben az A-ból és a B-b®l is. Ekkor a w-beli ai1 . . . aik részszó miatt a wlevezetésében mindkét nyelvtan ugyanolyan sorrendben használja a szabályait.Nevezetesen, GA-ban pontosan akkor kapható meg a w az A⇒ ui1Aai ⇒ . . .⇒ui1 . . . uim−1Aaim−1 . . . ai1 ⇒ ui1 . . . uimaim . . . ai1 = w levezetéssel, amikor aGB-ben megkapható a w a B ⇒ vi1Bai ⇒ . . . ⇒ vi1 . . . vim−1Baim−1 . . . ai1 ⇒vi1 . . . vimaim . . . ai1 = w levezetéssel. Tehát ui1 . . . uim = vi1 . . . vim , azaz az[ui1
vi1
], . . . ,
[uim
vim
]dominósorozat a D egy megoldása. Ezzel a bizonyítás végére
értünk.
Legyen D a PMP probléma egy példánya. A fenti bizonyításban szerepl® GA ésGB nyelvtanokat, illetve az általuk felismert LA = L(GA) és LB = L(GB) nyel-veket fogjuk felhasználni arra, hogy a 1.4.6 felsorolásban megadott problémákeldönthetetlenségét bizonyítsuk.
El®ször megjegyezzük, hogy az LA nyelv (és hasonlóan az LB nyelv is) felis-merhet®ek egy P determinisztikus veremautomatával. Legyen w ∈ (Σ ∪ ∆)∗,
2.6. TOVÁBBI ELDÖNTHETETLEN PROBLÉMÁK 95
ahol Σ a fenti 2.6.14. tétel bizonyításában szerepl® D dominókészlet szavainakábécéje, ∆ pedig a bizonyításában szerepl® a1, . . . , an halmaz. Ekkor P akövetkez®képpen ellen®rzi le, hogy w ∈ LA teljesül-e:
1. P elkezdi olvasni a w bet¶it. Ha Σ-beli bet¶t olvas, akkor azt eltárolja avermében, közben folyton elfogadó állapotban van, hiszen a Σ∗-beli szavakLA-beliek.
2. Ha P egy ai ∈ ∆ szimbólumot olvas, akkor megnézi, hogy a verme tetejénaz u−1
i szó van-e.
(a) Ha nem, akkor P elfogadó állapotba lép és végigolvassa a w szót,amit így helyesen elfogad, hiszen ekkor w nem lehet LA-beli.
(b) Ha a verem tetején az u−1i szó volt de a verem még nem ürült ki,
akkor P egy elfogadó állapotban folytatja a w továbbolvasását. HaP nem ∆-beli szimbólumot olvas, akkor az elfogadó állapotban végigolvassa a bemenetet. Ellenkez® esetben folytatja a verem kiürítéséta 2-es pontra lépve.
(c) Ha a verem tetején az u−1i szó volt és a verem ki is ürült, akkor az
alábbi két eset lehetséges: Ha w-b®l nincs hátra bet¶, akkor a wLA-beli, így P nem fogadja el azt. Ha w-nek nincs még vége, akkormár w nem lehet LA-beli, vagyis P egy végállapotban végigolvasvaelfogadja azt.
A fenti megjegyzést felhasználva be tudjuk bizonyítani az alábbi tételt:
2.6.15. Tétel. Legyen G1 és G2 két környezetfüggetlen nyelvtan. Akkor azalábbi problémák mindegyike eldönthetetlen:
1. L(G1) ∩ L(G2) = ∅?
2. L(G1) = L(G2)?
3. L(G1) = Γ∗ valamely Γ ábécére?
4. L(G1) ⊆ L(G2)?
Bizonyítás. A fenti problémák eldönthetetlenségének bizonyítása jellemz®en aPMP probléma visszavezetésével történik. Megjegyezzük azonban, hogy némelyesetben nem a szóban forgó problémára, hanem annak komplementerére vezet-jük vissza a PMP-t. Ez azonban nem okoz gondot hiszen, ahogy azt a 2.5.6.tételben láttuk, ha egy nyelv eldönthetetlen, akkor a komplementere is az.
1. Legyen G1 = GA és G2 = GB . Belátható, hogy a D dominókészletnekpontosan akkor van megoldása, ha LA ∩ LB 6= ∅. Ez utóbbi viszontpontosan akkor teljesül, ha L(G1) ∩ L(G2) 6= ∅. Mivel a PMP eldönthe-tetlen, kapjuk, hogy L(G1) ∩ L(G2) 6= ∅ is eldönthetetlen, ami korábbimegjegyzésünk alapján bizonyítja az állításunkat.
96 2. FEJEZET. A KISZÁMÍTHATÓSÁG ELMÉLET ALAPJAI
2. Korábban láttuk, hogy LA és LB is felismerhet® veremautomatával, tehátCF nyelvek. Mivel a CF nyelvek zártak az unióra, LA ∪ LB is CF nyelv.Továbbá a (Σ∪∆)∗ is CF nyelv (s®t, reguláris is). Legyen tehát G1 és G2
két CF nyelvtan, melyekre L(G1) = LA ∪LB és L(G2) = (Σ∪∆)∗. EkkorL(G1) csakis azokat a szavakat tartalmazza, melyek nem jelennek meg alsó(és fels®) szóként D megoldásaiban. vagyis L(G1) = L(G2) = (Σ ∪ ∆)∗
akkor és csak akkor teljesül, ha D-nek nincs megoldása. Ez utóbbi minttudjuk eldönthetetlen, tehát a CF nyelvek ekvivalenciája is az.
3. Ez az állítás nagyon könnyen következik az el®z® pontban leírtakból. Le-gyen G1 az a nyelvtan melyre L(G1) = LA ∪ LB és legyen Γ = (Σ ∪∆).Ekkor L(G1) = Γ∗ akkor és csak akkor, ha D-nek nincs megoldása.
4. Ez az állítás következik abból, hogy a CF nyelvek ekvivalenciája eldönt-hetetlen. Valóban, tetsz®leges G1 és G2 CF nyelvtanokra, L(G1) = L(G2)akkor és csak akkor teljesül, ha L(G1) ⊆ L(G2) és L(G2) ⊆ L(G1). Te-hát ha a tartalmazás eldönthet® lenne, akkor az ekvivalenciát is el lehetnedönteni, ami ellentmondáshoz vezetne.
Ezzel a tétel bizonyítását befejeztük.
3. fejezet
Bevezetés a
bonyolultságelméletbe
Amint azt a jegyzet elején említettük, a bonyolultságelmélet célja a megoldható(és ezen belül az eldönthet®) problémák osztályozása a megoldáshoz szükségeser®források (jellemz®en az id® és a tár) mennyisége szerint. El®ször az id®bo-nyolultsággal foglalkozunk. Szükségünk lesz az alábbi deníciókra.
3.0.16. Deníció. Legyen f : N → N egy függvény. Akkor
TIME(f(n)) = L | L eldönthet® O(f(n)) id®igény¶ Turing-géppel.
Továbbá, P =⋃
k≥1 TIME(nk).
Tehát P azon nyelveket tartalmazza, melyek eldönthet®ek polinom id®korlátosdeterminisztikus Turing-géppel. Ilyen például a jól ismert Elérhet®ség prob-léma, melynek bemenete egy G gráf és annak két kitüntetett csúcsa (s és t). Akérdés az, hogy van-e a G-ben út s-b®l t-be. Ha az Elérhet®ség problémáranyelvként tekintünk, akkor írhatjuk azt, hogy
Elérhet®ség= 〈G, s, t〉 | G-ben van út s-b®l t-be,
ahol a 〈G, s, t〉 jelölés, amint azt már megszokhattuk, a G, s, t egy megfelel®elkódolása valamilyen ábécé feletti szóban. Könnyen megadható az Elérhet®-ség problémát polinom id®ben eldönt® Turing-gép, tehát Elérhet®ség ∈ P.Most deniáljuk a nemdeterminisztikus Turing-gépek analóg nyelvosztályait.
3.0.17. Deníció. Ha f : N → N egy függvény, akkor
NTIME(f(n)) = L | L eldönthet® O(f(n)) id®igény¶nemdeterminisztikus Turing-géppel.
Továbbá, NP =⋃
k≥1 NTIME(nk).
97
98 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
AzNP-beli problémák rendelkeznek egy közös tulajdonsággal az alábbi értelem-ben. Ha tekintjük egy NP-beli probléma egy példányát és egy lehetséges bizo-nyítékot arra nézve, hogy ez a példány igen példánya az adott problémának,akkor ezen bizonyíték helyességének leellen®rzése polinom id®ben elvégezhet®.Ennek megfelel®en egyNP-beli problémát eldönt® nemdeterminisztikus Turing-gép általában úgy m¶ködik, hogy megsejti a probléma bemenetének egy le-hetséges megoldását, és polinom id®ben leellen®rzi, hogy a megoldás helyes-e.
Tekintsük például a korábban már említett Sat problémát. Tudjuk, hogy Satigen példányai azon konjunktív normálformák, melyek kielégíthet®ek. Tekint-sünk egy tetsz®leges φ konjunktív normálformát. Annak a bizonyítéka, hogya φ kielégíthet® egy olyan változó-hozzárendelés, ami mellett kiértékelve a φ-tigaz értéket kapunk. Egy tetsz®leges változó-hozzárendelés tehát a φ kielégít-het®ségének egy lehetséges bizonyítéka. Annak leellen®rzése pedig, hogy ez ahozzárendelés tényleg igazzá teszi-e φ-t polinom id®ben elvégezhet®. Ennek meg-felel®en, a Sat eldönthet® egy olyan nemdeterminisztikus Turing-géppel, melynemdeterminisztikusa megsejt egy változó-hozzárendelést, azaz elkezdi olvasnia formulát mondjuk balról jobbra és minden új ítéletváltozó esetén felírja egyszalagjára ezt a változót és annak egy lehetséges igazságértékét (itt jelenik megtehát a nemdeterminisztikusság a Turing-gép m¶ködésében). A gép ezután po-linom id®ben leellen®rzi, hogy a kapott igazságértékelés kielégíti-e a bemenetet.Következésképpen a Sat egy NP-beli probléma.
A Sat azonban speciális is az NP-beli problémák között, mert az eldöntéséreismert összes algoritmus olyan, hogy a bemenet méretének függvényében expo-nenciális a lépésszáma. Ezek az algoritmusok alapvet®en úgy m¶ködnek, hogyegy φ bemenetre szisztematikusan megvizsgálják a lehetséges megoldások terét,azaz addig állítják el® a φ változóinak értéket adó változó-hozzárendeléseket,amíg nem találnak egy olyat ami kielégíti a φ-t. Az összes lehetséges hozzá-rendelés száma viszont a φ-ben szerepl® változók számának a méretében ex-ponenciális nagyságrend¶, tehát a Sat-ot eldönt® algoritmus is exponenciálisid®igény¶ lesz. Amint arról már volt szó, a determinisztikus Turing-gép egy al-goritmus modell, következik tehát, hogy a Sat-ot, jelenlegi ismereteink szerint,csak exponenciális id®igény¶ determinisztikus Turing-géppel tudjuk eldönteni.A nemdeterminisztikus Turing-gép ezzel szemben rendelkezik azzal a nem rea-lisztikus tulajdonsággal, hogy képes ráhibázni a megfelel® megoldásra, és nemkell szisztematikusan átvizsgálnia a lehetséges megoldások terét.
Az a deníciókból következik, hogy fennáll a P⊆NP tartalmazás. Az a sejtés(azaz még nem bizonyított), hogy a fenti tartalmazás valódi. éppen a Sat
az egyik olyan probléma, ami valószín¶leg nem eleme a P-nek, viszont NP-beli. Másrészt igaz, hogy ha sikerülne a Sat eldöntésére polinomiális id®igény¶algoritmust találni, akkor ez azt jelentené, hogy az NP osztály megegyezik a Posztállyal. A Sat-ot és a vele megegyez® nehézség¶ problémákat nevezzük majdkés®bb NP-teljes problémáknak.
3.1. NP-TELJES PROBLÉMÁK 99
3.1. NP-teljes problémák
Ahhoz, hogy az NP osztály szerkezetét vizsgálni tudjuk, szükségünk lesz avisszavezetések egy speciális osztályára. Ezek a polinom idej¶ visszavezetések.
3.1.1. Deníció. Legyen Σ és ∆ két ábécé és f egy Σ∗-ból ∆∗-ba képez® függ-vény. Azt mondjuk, hogy f polinom id®ben kiszámítható, ha kiszámítható egypolinom id®igény¶ Turing-géppel.
Legyen L1 ∈ Σ∗ és L2 ∈ ∆∗ két nyelv. Azt mondjuk, hogy L1 polinom id®benvisszavezethet® L2-re (jele: L1 ≤p L2), ha L1 ≤ L2 és az L1 ≤ L2 visszeveze-tésben alkalmazott f függvény polinom id®ben kiszámítható.
Két, egymásra polinom id®ben visszavezethet® probléma között az alábbi kap-csolatot gyelhetjük meg.
3.1.2. Tétel. Legyen L1 és L2 két probléma úgy, hogy L1 ≤p L2. Ha L2
1. P-beli, akkor L1 is P-beli.
2. NP-beli, akkor L1 is NP-beli.
Bizonyítás. Tegyük fel el®ször, hogy L2 ∈ NP. Megmutatjuk, hogy L1 ∈ NP isteljesül. Legyen ugyanisM1 az a Turing-gép, ami polinom id®ben kiszámolja azL1 ≤p L2 visszavezetést, M2 pedig az a nemdeterminisztikus gép, ami polinomid®ben eldönti L2-®t. Konstruáljunk megM1-b®l ésM2-b®l egyM Turing-gépeta következ® módon. M egy w bemenetre kiszámolja az f(w) szót (szimuláljaM1-et), majd a kapott f(w) szóra meghívja M2-t. Ha M2 elfogadja f(w)-t, akkorM is elfogadja w-t, ha M2 elutasítja f(w)-t, akkor M is elutasítja w-t. Könny¶belátni, hogy az így vázolt M is egy olyan polinom idej¶ nemdeterminisztikusTuring-gép, ami L1-et dönti el. Vagyis L1 ∈ NP is teljesül. Továbbá, ha L2 ∈ P,akkor feltehet®, hogyM2 egy determinisztikus Turing-gép. Ez esetben viszont afenti konstrukció egy L1-et eldönt® determinisztkius Turing-gépet eredményez,ami az 1. állítást igazolja.
Most deniáljuk a NP egy fontos részosztályát.
3.1.3. Deníció. Legyen L egy probléma. Azt mondjuk, hogy L NP-teljes, ha
1. NP-beli és
2. minden további NP-beli probléma polinom id®ben visszavezethet® L-re.
Megmutatjuk, hogy ha egy NP-teljes probléma eleme P-nek, akkor P = NP.
3.1.4. Tétel. Legyen L egy NP-teljes probléma. Ha L ∈ P, akkor P = NP.
100 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
Bizonyítás. Tegyük fel, hogy L ∈ P. Mivel P ⊆ NP, elég megmutatni, hogyNP ⊆ P is teljesül, azaz minden L′ ∈ NP-re L′ ∈ P. Ez viszont igaz, hiszenmivel L NP-teljes, L′ ≤p L és ebben az esetben a 3.1.2. tétel alapján L′ ∈ P isfennáll.
Ahogy azt azNP-teljes problémák deníciójában láttuk, ha meg akarjuk mutat-ni, hogy egyNP-beli problémaNP-teljes, akkor meg kell mutatni, hogy mindenNP-beli probléma visszavezethet® rá. Ez, mint ahogy azt a Sat esetében ha-marosan látni is fogjuk, általában nehéz feladat. Az alábbi tételt alkalmazvaviszont egy NP-teljes probléma segítségével további NP-beli problémákról lát-hatjuk be, hogy NP-teljesek.
3.1.5. Tétel. Legyen L1 egy NP-teljes és L2 egy NP-beli probléma. Ha L1 ≤p
L2, akkor L2 is NP-teljes.
Bizonyítás. Legyen L egy tetsz®leges NP-beli probléma. Mivel L1 NP-teljeskapjuk, hogy L ≤p L1. Legyenek M1 az L ≤p L1 visszavezetést és M2 azL1 ≤p L2 visszavezetést kiszámító polinom id®igény¶ Turing-gép. M1-b®l ésM2-b®l könnyen megadható egy olyan M polinom id®igény¶ Turing-gép, amiaz L ≤p L2 visszavezetést számolja ki. Mivel L egy tetsz®leges NP-beli nyelvvolt kapjuk, hogy minden NP-beli nyelv visszavezethet® polinom id®ben L2-re.Mivel L2 NP-beli következik, hogy L2 is NP-teljes.
3.1.1. Sat NP-teljes
Ebben a részben megmutatjuk a bonyolultságelmélet egyik fontos eredményét,nevezetesen, hogy a Sat egy NP-teljes probléma. Ehhez el®ször deniáljuka Sat problémát, most mint nyelvet, valamint néhány további, a logikábanhasználatos alapfogalmat.
3.1.6. Deníció. Literálnak nevezünk egy ítéletváltozót (melynek értéke igaz
illetve hamis lehet) illetve annak negáltját. Tagnak nevezzük a literálok diszjunk-cióját (vagy kapcsolatát) és konjunktív normálformának (knf) a tagok kon-junkcióját (és kapcsolatát). Ezek után a Sat problémát a következ®képpendeniáljuk.
Sat=〈φ〉 | φ kielégíthet® konjunktív normálformában adott logikai formula.
Tehát Sat azon konjunktív normálformákat tartalmazza, egy megfelel® ábécéfelett elkódolva, melyek kielégíthet®ek.
3.1.7. Példa. (x1 ∨ ¬x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3) ∈ Sat.
3.1.8. Tétel. (Cook tétele) Sat NP-teljes.
Bizonyítás. Azt, hogy Sat NP-beli, a fejezet elején már láttuk. Amit be kellmég bizonyítani az az, hogy minden NP-beli nyelv polinom id®ben vissza-vezethet® Sat-ra. Legyen L egy tetsz®leges NP-beli nyelv és legyen M =
3.1. NP-TELJES PROBLÉMÁK 101
3.1. ábra. Sat NP-teljes
Ablak
#
#
# t #
#
#
#
p(n) + 3
#
p(n)+
1
q0 w1 w2 . . . . . .twnt . . . t
qi
(Q,Σ,Γ, δ, q0, qi, qn) egy p(n) id®igény¶ nemdeterminisztikus Turing-gép vala-mely p : N → N polinomra úgy, hogy L = L(M). Feltehet®, hogy mindenn ∈ N -re, p(n) ≥ n.
A feladatunk az, hogyM minden w bemen® szavához elkészítsünk egy φ formu-lát úgy, hogy:
• w ∈ L akkor és csak akkor, ha φ kielégíthet®,
• a w 7→ φ hozzárendelés megvalósítható polinom id®korlátos determiniszti-kus Turing-géppel.
M m¶ködése w szón leírható egy olyan táblázattal, melynek els® sora M kezd®-kongurációjának, két egymást követ® sora pedig M két egymást követ® kon-gurációjának felel meg a w-n. Egy ilyen táblázat a 3.1. ábrán látható.
Tegyük fel, hogy w = w1w2 . . . wn valamely n ∈ N számra és w1, . . . , wn ∈Σ bet¶kre. Mivel M p(n) id®korlátos gép, azaz minden számítási sorozatamaximum p(n) lépésben véget ér a w-n, a fenti táblázat 2(p(n) + 3) · (p(n) + 1)darab cellából áll. A táblázatnak tehát van egy olyan i-ik sora (1 ≤ i ≤ p(n)+1)mely M egy megállási kongurációját reprezentálja. Megegyezünk abban, hogya táblázat összes i-nél nagyobb sorszámú sora megegyezik az i-ik sorral.
A táblázat minden cellája a C = Q∪Γ∪# halmaz egy elemét tartalmazhatja.Minden cellához és C-beli szimbólumhoz bevezetünk egy ítéletváltozót, azazminden 1 ≤ i ≤ p(n) + 1-re, 1 ≤ j ≤ p(n) + 3-ra és s ∈ C-re, az xi,j,s egyítéletváltozó lesz φ-ben. Az xi,j,s változó igaz értéke a φ-ben azt fogja jelenteni,
102 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
hogy a táblázat i-ik sorának j-ik oszlopában az s szimbólum van. A táblázatelfogadó, vagyis w ∈ L, akkor és csak akkor ha az alábbiak teljesülnek:
• A táblázat els® sora M kezd®kongurációját írja le a w-n.
• A táblázat két egymást követ® sora megfelel az M egy legális kongurá-cióátmenetének.
• A táblázat utolsó sora M egy elfogadó kongurációja, azaz az utolsó sor-ban szerepl® állapot a qi.
A megkonstruált φ-nek azt kell leírnia, hogy a táblázat egy elfogadó táblázat.Ennek megfelel®en φ négy részformulából áll: φ = φ0 ∧ φstart ∧ φmove ∧ φaccept .
φ0 azt fejezik ki, hogy a táblázat minden egyes mez®jében pontosan egy karaktervan:
φ0 =∧
1≤i≤p(n)+11≤j≤2p(n)+3
(∨s∈C
xi,j,s
)∧
∧s,t,∈C,s 6=t
(¬xi,j,s ∨ ¬xi,j,t)
.φstart azt fejezi ki, hogy a táblázat els® sorában a w-hez tartozó kezd®kongu-ráció van:
φstart = x1,1,# ∧ x1,2,t ∧ . . . ∧ x1,p(n)+1,t ∧ x1,p(n)+2,q0 ∧ x1,p(n)+3,w1∧
. . . ∧ x1,p(n)+n+2,wn∧ x1,p(n)+n+3,t ∧ . . . ∧ x1,2p(n)+2,t ∧ x1,2p(n)+3,#.
φaccept azt fejezi ki, hogy a táblázat utolsó sorában elfogadó konguráció van:
φaccept =
2p(n)+2∨j=2
xp(n)+1,j,qi .
Végezetül, a φmove formulának azt kell kifejeznie, hogy a táblázat két egymástkövet® sora M két egymást követ® kongurációjának felel meg a w-n. Ahhoz,hogy ezt formalizálni tudjuk, szükségünk lesz némi el®készületre.
Nevezzük a táblázat egya1 a2 a3a4 a5 a6
részét a táblázat egy ablakának. Azt
mondjuk, hogy a táblázat egy ablaka legális, ha az megengedett az M átmenetirelációja által (ha a fels® és az alsó sor megegyezik, akkor szintén legális azablak).
Példaként tegyük fel, hogy δ(q1, a) = (q1, b, R) és δ(q1, b) = (q2, c, L), (q2, a, R)
(q1, q2 ∈ Q és a, b, c ∈ Γ). Akkor a következ® két ablak legális:a a q1a a b
,
3.1. NP-TELJES PROBLÉMÁK 103
a q1 bq2 a c
. Másrészt, bármilyen további átmeneteket engedjen is meg δ, az
a a aa b a
ablak nem legális.
Ezek után az általunk megadott φmove azt fogja kifejezni, hogy a táblázat min-den ablaka legális. Az, hogy φmove így azt fejezi ki, amit elvárunk t®le következikaz alábbi állításból, melyet nem bizonyítunk:
Ha a táblázat els® sora az M kezd®kongurációja w-n és a táblázat mindenablaka legális, akkor a táblázat minden sora egy olyan kongurációja M -nek,ami legálisan követi M -nek a táblázat megel®z® sorában lév® kongurációját.
Legyen tehát
φmove =∧
1≤i≤p(n)2≤j≤2p(n)+2
ψi,j ,
ahol adott i-re és j-re ψi,j az a formula, aminek azt fejezi ki, hogy a táblázati-sorában és annak j− 1-ik pozíciójában kezd®d® ablak legális. Ezt az állítást a∨
(a1,...,a6)legális
xi,j−1,a1 ∧ xi,j,a2 ∧ xi,j+1,a3 ∧ xi+1,j−1,a4 ∧ xi+1,j,a5 ∧ xi+1,j+1,a6
formulával lehet leírni, de ez a formula sajnos nem knf. Ezért ψi,j-vel egyekvivalens állítást fogunk formalizálni: nem igaz az, hogy a táblázat i-sorábanés annak j − 1-ik pozíciójában kezd®d® ablak nem legális. Ezt az állítást a
¬( ∨
(a1,...,a6)nem legális
xi,j−1,a1∧xi,j,a2∧xi,j+1,a3∧xi+1,j−1,a4∧xi+1,j,a5∧xi+1,j+1,a6
)
formula írja le. Ebb®l a formulából a De Morgan azonosságokat felhasználvakapjuk a keresett ψi,j formulát:
ψi,j =∧
(a1,...,a6)nem legális
¬xi,j−1,a1 ∨ ¬xi,j,a2 ∨ ¬xi,j+1,a3∨
¬xi+1,j−1,a4 ∨ ¬xi+1,j,a5 ∨ ¬xi+1,j+1,a6 .
Mivel így ψi,j knf, kapjuk, hogy φmove is az. Másrészt a φ0, φstart , valaminta φaccept részformulák mindegyike knf. Ezért az egész φ formula maga is knf.Felhasználva továbbá azt, hogy ezen részformulák mérete n függvényében po-linomiális nagyságrend¶, megmutatható, hogy φ konstrukciója n függvényébenpolinom id® alatt elvégezhet®.
Másrészt az is könnyen látható, hogy w ∈ L akkor és csak akkor igaz, ha φkielégíthet®. Tehát φ konstrukciója az L nyelv polinom idej¶ visszavezetéseSat-ra. Mivel L tetsz®legesNP-beli nyelv volt kapjuk, hogy SatNP-teljes.
104 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
3.1. táblázat. 3sat NP-teljes
c tag c′ knfl l ∨ l ∨ ll1 ∨ l2 l1 ∨ l2 ∨ l2l1 ∨ l2 ∨ l3 l1 ∨ l2 ∨ l3l1 ∨ l2 ∨ l3 ∨ l4 (l1 ∨ l2 ∨ x) ∧ (¬x ∨ l3 ∨ l4)
(x új változó)l1 ∨ l2 ∨ l3 ∨ l4 ∨ . . . ∨ ln (l1 ∨ l2 ∨ x1) ∧ (¬x1 ∨ l3 ∨ x2)∧(n > 4) (¬x2 ∨ l4 ∨ x3) ∧ . . . ∧ (¬xn−3 ∨ ln−1 ∨ ln)
(x1, x2, . . . , xn−3 új változók)
3.1.2. További NP-teljes problémák
Érdekes módon a Sat probléma akkor is NP-teljes marad, ha a probléma pél-dányainak azokat a knf-eket tekintjük, melyek minden tagja pontosan háromliterált tartalmaz. A továbbiakban ezt az így kapott problémát vizsgáljuk.
3.1.9. Deníció. Legyen k ≥ 1. ksat = 〈φ〉 : 〈φ〉 ∈ sat, φ minden tagjában kliterál van .
Most megmutatjuk, hogy a 3sat probléma is NP-teljes.
3.1.10. Tétel. 3sat NP-teljes.
Bizonyítás. Mivel Sat ∈ NP, nyilvánvaló, hogy 3sat ∈ NP is teljesül. Meg-mutatjuk, hogy Sat ≤p 3sat, ami a 3.1.5. tétel alapján implikálja 3sat NP-teljességét.
Legyen φ a Sat egy példánya. φ-hez megkonstruálunk egy olyan ψ formulát,melyben minden tag pontosan három literált tartalmaz, és φ ∈ Sat akkor éscsak akkor áll fenn, ha ψ ∈ 3sat teljesül.
A 3.1. táblázat szerint φ minden c tagját átalakítjuk a ψ egy c′ knf-ban lév®részformulájává.
Látható, hogy ψ konstrukciója elvégezhet® polinom id®ben, valamint φ ∈ Satakkor és csak akkor, ha ψ ∈ 3sat. A fenti konstrukció tehát a Sat egy polinomidej¶ visszavezetése a 3sat-ra, azaz sat ≤p 3sat. Következik, hogy 3sat NP-teljes
A 3sat segítségével további problémákról mutatjuk meg, hogyNP-teljesek. El®-ször a következ®, egymással szoros kapcsolatban álló gráfelméleti problémákkalfoglalkozunk: Teljes részgráf, Független csúcshalmaz és Csúcslefe-dés. Most ezeket a problémákat deniáljuk.
3.1. NP-TELJES PROBLÉMÁK 105
3.1.11. Deníció.
Teljes részgráf = 〈G, k〉 | G véges gráf, k ≥ 1, G-nek
létezik k csúcsú teljes részgráfja .
Tehát a Teljes részgráf azon G és k párokat tartalmazza, megfelel® ábécé fe-letti szavakban elkódolva, melyekre igaz, hogy G-ben van k csúcsú teljes részgráf,azaz olyan részgráf, melyben bármely két csúcs között van él.
Független csúcshalmaz = 〈G, k〉 | G véges gráf, k ≥ 1, G-nek
van k elem¶ független csúcshalmaza .
Vagyis a Független csúcshalmaz azon G és k párokat tartalmazza, melyek-re igaz, hogy G-ben van k olyan csúcs, melyek közül egyik sincs összekötve amásikkal.
Csúcslefedés = 〈G, k〉 | G véges gráf, k ≥ 1, G-nek van olyan k elem¶
csúcshalmaza, mely tartalmazza G minden élének legalább egy végpontját .
Ezek után megmutatjuk, hogy a fenti problémák NP-teljesek.
3.1.12. Tétel. Teljes részgráf NP-teljes.
Bizonyítás. El®ször is, Teljes részgráf ∈ NP, hisz megadható egy nemde-terminisztikus Turing-gép, ami az egyik szalagjára írja a bemenetként kapott Ggráf k darab csúcsát (azaz megsejt k darab csúcsot G-b®l) és polinom id®benleellen®rzi, hogy ezek a csúcsok teljes részgráfot alkotnak-e G-ben.
Másrészt visszavezetjük a 3sat-ot Teljes részgráf-ra a következ® módon.Legyen φ a 3sat egy példánya. Akkor φ = c1 ∧ . . .∧ ck, valamely k ≥ 0-ra, aholminden 0 ≤ i ≤ k-ra ci = li1 ∨ li2 ∨ li3 .
φ-hez megadunk egy Gφ gráfot az alábbi módon. φ minden ci tagja meghatározhárom csúcsot (azaz egy háromszöget) G-ben. Ezeket a csúcsokat li1 -el li2-velés li3-mal jelöljük. Az így kapott csúcsok között az összes élet behúzzuk, kivéveaz alábbiakat:
• az egy háromszögön belül lév® csúcsok közti éleket és
• az ellentétes literálokkal címkézett csúcsok közti éleket.
Nyilvánvaló, hogy Gφ polinom id®ben megkonstruálható, továbbá az is könnyenbelátható, hogy φ ∈ 3sat ⇔ 〈G, k〉 ∈ Teljes részgráf. Tehát a fenti konst-rukció 3sat polinom idej¶ visszavezetése Teljes részgráf-ra. Mivel 3satNP-teljes, kapjuk, hogy Teljes részgráf is NP-teljes.
Most azt mutatjuk meg, hogy Független csúcshalmaz is NP-teljes.
106 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
3.1.13. Tétel. Független csúcshalmaz NP-teljes.
Bizonyítás. Független csúcshalmaz ∈ NP, hisz megadható egy nemdeter-minisztikus Turing-gép, ami megsejt k darab csúcsot G-ben és polinom id®benleellen®rzi, hogy ezek a csúcsok független csúcshalmazt alkotnak-e G-ben.
Ezek után ahhoz, hogy a Független csúcshalmaz NP-teljességét belássukelegend® megmutatni, hogy Teljes részgráf ≤p Független csúcshalmaz.Legyen G egy tetsz®leges gráf és G az a gráf, melynek ugyanazok a csúcsai, mintG-nek és két csúcs között akkor és csak akkor van élG-ben, ha ugyanezen csúcsokközött nincs él G-ben. Világos, hogy G polinom id®ben megkonstruálható G-b®l. Továbbá, a G gráfban akkor és csak akkor van k elem¶ teljes részgráf,ha G-ben van k elem¶ független csúcshalmaz. Kapjuk tehát, hogy Teljes
részgráf polinom id®ben visszavezethet® Független csúcshalmaz-ra, amitbizonyítani akartunk.
3.1.14. Tétel. Csúcslefedés NP-teljes.
Bizonyítás. El®ször megint azt kell belátni, hogy Csúcslefedés ∈ NP. Ezviszont igaz, hisz Csúcslefedés eldönthet® egy olyan nemdeterminisztikusTuring-gépel ami megsejt k darab csúcsot G-ben és polinom id®ben leellen®rzi,hogy G minden éle rajta van-e a k csúcs valamelyikén.
A Csúcslefedés probléma NP-teljességét úgy bizonyítjuk, hogy visszavezet-jük rá az NP-teljes Független csúcshalmaz problémát. Tekintsünk egy ncsúcsú (n ≥ 1) véges G gráfot és annak egy k elem¶ (k ≤ n) G′ részgráfját. Nemnehéz belátni, hogy a G′-beli csúcsok pontosan akkor alkotnak egy k elem¶ füg-getlen csúcshalmazt G-ben, ha G-nek a G′-n kívüli csúcsai egy n − k elem¶csúcslefedést alkotnak G-ben. Tehát 〈G, k〉 ∈ Független csúcshalmaz ⇔〈G,n − k〉 ∈ Csúcslefedés. Világos, hogy az n − k szám polinom id®benkiszámítható, vagyis Független csúcshalmaz ≤p Csúcslefedés. Követke-zésképpen Csúcslefedés is NP-teljes.
3.1.3. Hamilton-úttal kapcsolatos NP-teljes problémák
A következ®kben azt szeretnénk megmutatni, hogy azUtazó ügynök problémaNP-teljes. Ehhez el®ször megmutatjuk, hogy a Hamilton-út probléma NP-teljes, majd ezt felhasználva megmutatjuk, hogy az Irányítatlan Hamilton-
út probléma is NP-teljes. Akkor mondjuk, hogy egy adot G irányított gráfbanvan Hamilton-út, ha van olyan út G-ben, ami minden csúcsot pontosan egyszerérint. Ezek után a Hamilton-út problémát az alábbi módon deniáljuk:
Hamilton-út = 〈G, s, t〉 | G véges irányított gráf, s, t csúcsok,
∃s-b®l t-be Hamilton-út.
3.1.15. Tétel. A Hamilton-út probléma NP-teljes.
3.1. NP-TELJES PROBLÉMÁK 107
3.2. ábra. Az xi változóhoz konstruált részgráf
. . .
d1 d2 dk
Bizonyítás. Az, hogy a probléma NP-beli könnyen belátható: megadható egynemdeterminisztikus Turing-gép, ami megsejti a bemen® gráf csúcsainak egys, . . . , t felsorolását és polinom id®ben leellen®rzi, hogy a felsorolásban az egy-mást követ® csúcsok között van-e él.
Hamilton-út NP-teljességének belátásához elegend® tehát megmutatni, hogyegy NP-teljes probléma visszavezethet® rá. Ez a probléma a 3sat lesz. Legyenadott egy φ knf, melyben minden tag három literált tartalmaz. Polinom id®benmegkonstruálunk egy Gφ gráfot úgy, hogy Gφ két kitüntetett csúcsa közöttpontosan akkor lesz Hamilton-út, ha φ ∈ 3sat.
Legyen φ = d1 ∧ . . .∧ dk, ahol k ≥ 0 és minden i-re (0 ≤ i ≤ k) di = ai ∨ bi ∨ ci.Legyenek továbbá x1, x2, . . . , xl (l ≥ 0) a φ-ben felhasznált változók.
Minden xi változóhoz (0 ≤ i ≤ l) lesz egy rombusz alakú részgráf Gφ-ben (3.2.ábra). Ebben a részgráfban, a bal oldali csúcs melletti csúcstól kezdve, két-kétegymás melletti csúcs rendre a φ egy-egy tagjának van megfeleltetve (az ábránezek a csúcspárok be vannak karikázva).
Továbbá, minden dj (0 ≤ j ≤ k) taghoz lesz egy-egy külön csúcs Gφ-ben.Ezekb®l a részgráfokból felépítjük a 3.3. ábrán látható gráfot. Ebben a gráfbana változók által reprezentált eszközöket az alábbi stratégia szerint kötjük összea tagokat reprezentáló csúcsokkal. Ha az xi változó szerepel a dj tagban, akkoraz xi-nek megfelel® részgráf dj-nek megfelel® csúcsaiból vesszük balról jobbrahaladva az els® csúcsot és behúzunk egy élet ebb®l a csúcsból a dj csúcsba.Ezután dj-b®l behúzunk egy élet a második (3.4. ábra).
Ha a ¬xi literál szerepel a dj tagban, akkor hasonlóan járunk el, de most az xi-nek megfelel® részgráf dj-nek megfelel® csúcsaiból vesszük balról jobbra haladvaa második csúcsot és behúzunk egy élet ebb®l a csúcsból a dj csúcsba. Ezutándj-b®l behúzunk egy élet az els® csúcsba (3.5. ábra).
Legyen az így kapott gráf Gφ. Belátható, hogy 〈Gφ, s, t〉 polinomidej¶ Turing-géppel elkészíthet® 〈φ〉-b®l. Meg kell még mutatni, hogy 〈ϕ〉 ∈ 3sat akkor és
108 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
3.3. ábra. A φ-beli változókhoz illetve tagokhoz rendelt részgráfok
. . . . . .
. . . . . .
x1
x2
xl
. . .
. . .
. . .
d1
d2
t
dk
s
...
3.4. ábra. Amikor az xi literál szerepel a dj tagban
. . .. . .xi
dj
dj
3.1. NP-TELJES PROBLÉMÁK 109
3.5. ábra. Amikor a ¬xi literál szerepel a dj tagban
. . .. . .xi
dj
dj
csak akkor teljesül, ha 〈Gϕ, s, t〉 ∈ Hamilton-út.
Tegyük fel, hogy 〈φ〉 ∈ 3sat. Vegyük azt az I változó-hozzárendelést, amikielégíti φ-t. I meghatároz egy utat s-b®l t-be a következ® módon. Ha I egyxi-hez (0 ≤ i ≤ l) igazat rendel, akkor az út az xi-nek megfelel® rombuszfels® csúcsából el®ször balra megy, majd a rombusz bal oldalán lév® csúcsbóljobbra lépked egészen addig, amíg eléri a jobb oldalon lév® csúcsot, végül pediga rombusz alján lév® csúcsot érinti. Ha I az xi-hez hamisat rendel, akkor az útaz ellenkez® irányban járja be az xi-nek megfelel® részgráfot: a fels® csúcsbólel®ször jobbra megy, majd a rombusz jobb oldalán lév® csúcsból balra lépkedaddig, amíg eléri a jobb oldalon lév® csúcsot, ahonnan pedig továbblép a rombuszalján lév® csúcsra.
Ezt a fent vázolt utat most kiegészítjük úgy, hogy a d1, . . . , dk tagoknak megfe-lel® csúcsokat is érintse. Tekintsük egy dj tagot (0 ≤ j ≤ k), és vegyünk dj-b®legy igaz literált (ilyen biztos, hogy létezik, hiszen I kielégíti a φ-t). Ez a literálxi vagy ¬xi alakú valamely 0 ≤ i ≤ l-re. Ha a literál xi alakú, akkor az út balróljobbra halad az xi-nek megfelel® rombuszban (hisz x értéke igaz). Ha a literál¬xi alakú, akkor az út jobbról balra halad (mert az xi értéke hamis). A dj csúcsviszont úgy van hozzákötve az xj-nek megfelel® rombuszban a dj-nek megfelel®csúcspárhoz, hogy az utunk mindkét esetben képes megtenni egy kitér®t a djcsúcshoz. Nem nehéz belátni, hogy az így vázolt út egy Hamilton-út a Gφ-bens-b®l t-be.
Tegyük fel most, hogy van egy Hamilton-út s-b®l t-be a Gφ-ben. Nem nehézbelátni, hogy ez az út olyan, mint amilyet az el®bb vázoltunk, azaz az út nemteheti meg azt, hogy egy xi-nek megfelel® rombuszból kitér®t tesz egy dj csúcs-hoz, de a dj-b®l nem ugyanabba a rombuszba megy vissza. Ellenkez® esetbenugyanis lennének olyan csúcsai Gφ-nek, amit az út nem lenne képes megláto-gatni, ez viszont ellentmondana annak, hogy az út egy Hamilton-út. Így teháta Hamilton-út meghatároz egy I változó-hozzárendelést, ami pedig kielégíti φ-t.
110 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
3.6. ábra. Hamilton-út visszavezetése Irányítatlan Hamilton-út-ra
w
v
⇒
v(0)
v(1)
v(2)
w(0)
w(1)
w(2)
Most azt mutatjuk meg, hogy a Hamilton-út probléma akkor is NP-teljes ma-rad, ha megengedjük azt, hogy a bemenetben szerepl® gráf irányítatlan legyen.Nevezzük az így kapott problémát Irányítatlan Hamilton-út-nak:
Irányítatlan Hamilton-út = 〈G, s, t〉 | G véges irányítatlan gráf,
s,t csúcsok, és ∃s-b®l t-be Hamilton-út.
3.1.16. Tétel. Az Irányítatlan Hamilton-út probléma NP-teljes.
Bizonyítás. Az, hogy a problémaNP-beli hasonlóan adódik, mint aHamilton-út probléma esetében. Azt, hogy a probléma NP-teljes úgy bizonyítjuk, hogyvisszavezetjük rá a Hamilton-út problémát. Adott G = (V,E) irányított gráf-hoz és s, t ∈ V csúcsokhoz legyen Gu = (Vu, Eu) a következ® irányítatlan gráf.Legyen s(2), t(0) ∈ Vu és minden v ∈ V −s, t csúcsra legyen v(0), v(1), v(2) egy-egy csúcs Vu-ban, valamint (v(0), v(1)) és (v(1), v(2)) egy-egy él Eu-ban. Legyentovábbá minden (v, w) ∈ E élre (v(2), w(0)) ∈ Eu. A 3.6. ábrán az látható, hogya (v, w) G-beli élnek milyen élek felelnek meg Gu-ban.
Világos, hogy Gu polinom id®ben megkonstruálható G-b®l. Annak belátásához,hogy 〈G, s, t〉 ∈ Hamilton-út akkor és csak akkor teljesül, ha 〈Gu, s
(2), t(0)〉 ∈Irányítatlan Hamilton-út elég meggondolni a következ®ket. Az világos,hogy ha G-ben van egy s, v1, . . . , vn−2, t Hamilton-út, ahol n a G csúcsainak aszáma, akkor az a H út mely rendre az
s(2), v(0)1 , v
(1)1 , v
(2)1 , . . . , v
(0)n−2, v
(1)n−2, v
(2)n−2, t
(0)
csúcsokat érinti, egy Hamilton-út Gu-ban s(2)-b®l t(0)-ba. Másrészt, tegyük fel,hogy van egy Hamilton-út Gu-ban s(2)-b®l t(0)-ba. Ez az út az s(2) után ésa t(0) el®tt, nyilvánvalóan, v(0), v(1), v(2) sorrendben látogatja meg a csúcsokatminden v ∈ V −s(2), t(0)-ra. Tehát ez a Gu-beli Hamilton-út, szükségszer¶en,olyan alakú, mint a fentebb látott H-val jelölt Hamilton-út. Ekkor viszont azs, v1, . . . , vn−2, t csúcssorozat egy s-b®l t-be tartó Hamilton-utat alkot G-ben.Ezzel a tételt bebizonyítottuk.
3.2. TÁRBONYOLULTSÁG 111
Végezetül azt mutatjuk meg, hogy az úgynevezett utazóügynök probléma isNP-teljes. A problémát formálisan az alábbi módon deniálhatjuk:
Utazóügynök = 〈G, k〉 | G véges irányítatlan gráf az éleken egy-egy
pozitív egész súllyal és G-ben van legfeljebb k összsúlyú Hamilton kör.
3.1.17. Tétel. Az Utazóügynök probléma NP-teljes.
Bizonyítás. Azt a korábbiak alapján ismét nem nehéz belátni, hogy a problémaNP-beli. Az NP-teljességet úgy bizonyítjuk, hogy visszavezetjük rá az Irá-nyítatlan Hamilton-út problémát. Ehhez legyen G egy irányítatlan gráf éss, t ennek két kitüntetett csúcsa. Konstruáljuk meg a G′ gráfot az alábbi mó-don. Legyan G′ az a gráf amit úgy kapunk G-b®l, hogy G minden élének asúlya 2 lesz és felveszünk még egy élt 1 súllyal s-b®l t-be. Továbbá, legyen ka G csúcsainak száma. Az így kapott G′ gráfban pontosan akkor van 2k − 1hosszú Hamilton-kör, amikor G-ben van Hamilton-út s-b®l t-be. Mivel a G′
konstrukciója polinom idej¶, a tétel állítása bizonyított.
Az NP-teljes problémák nagyon fontosak a bonyolultságelméletben. Általábanha egy új problémával találkozunk, akkor vagy azt próbáljuk megmutatni róla,hogy P-beli vagy azt, hogy NP-teljes. Ha P-beli, akkor rendszerint hatékonyanmegoldható a gyakorlatban is, ha NP-teljes, akkor viszont (valószín¶leg) nincsa megoldására hatékony algoritmus és így fel is hagyhatunk annak keresésével.Azt már tudjuk, hogy P ⊆ NP. Elvileg lehetséges, hogy P = NP, de mintemlítettük az a sejtés, hogy ez az egyenl®ség nem áll fenn. Azt is tudjuk, hogyazNP-teljes problémák a legnehezebbek azNP-beli nyelvek között. Vajon van-e olyan nyelv ami nem eleme P-nek, de nem is NP-teljes? Nyilvánvaló, hogy haP = NP, akkor nincs ilyen nyelv, ellenkez® esetben viszont igaz az alábbi tétel,amit bizonyítás nélkül közlünk:
3.1.18. Tétel. Ha P 6= NP, akkor van olyan L ∈ NP nyelv, hogy L 6∈ P, deL nem is NP-teljes.
Tekintsük például az alábbi problémát:
Gráf izomorfizmus = 〈G1, G2〉 | G1 és G2 izomorf gráfok.
Err®l a problémáról ismert, hogyNP-ben van, de nem ismert, hogy P-ben van-evagy NP-teljes-e. Ez a fentiek alapján szintén a P ⊂ NP sejtést támasztja alá.
3.2. Tárbonyolultság
Az el®adás utolsó témaköreként ejtünk néhány szót a tárbonyolultságról. Azalapvet® különbség az id®- és a tárbonyolultság között az, hogy a tár újra fel-használható. Könnyen lehet adni egy olyan Turing-gépet, ami tetsz®legesen so-káig m¶ködik, de a bemenet hosszának függvényében csak lineáris számú cellát
112 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
használ fel a szalagjain. További érdekesség még, hogy a szublineáris tárbo-nyolultságnak is van értelme, persze csak akkor, ha a bemenet hosszát nemszámoljuk bele a felhasznált tár nagyságába. Összehasonlításképpen, a szubli-neáris id®bonyolultságnak nincs gyakorlati jelent®sége, hiszen ebben az esetbena Turing-gép nem is olvassa végig a bemenetet.
A fentiek értelmében a tárbonyolultságot egy speciális, úgynevezett o-lineTuring-gépen vizsgáljuk.
3.2.1. Deníció. O-line Turing-gépnek nevezünk egy olyan többszalagos Turing-gépet, mely a bemenetet tartalmazó szalagot csak olvashatja, a többi, ún. mun-kaszalagokra pedig írhat is. Az o-line Turing-gép tárigényébe csak a munka-szalagokon felhasznált terület számít be.
A továbbiakban Turing-gép alatt minidig o-line Turing-gépet értünk. Mostdeniáljuk a tárbonyolultsággal kapcsolatos nyelvosztályokat.
3.2.2. Deníció.
SPACE(f(n)) = L | L eldönthet® O(f(n)) tárigény¶determinisztikus Turing géppel
NSPACE(f(n)) = L | L eldönthet® O(f(n)) tárigény¶nemdeterminisztikus Turing géppel .
Ezek után a P és az NP osztályok tárbonyolultsági megfelel®it az alábbi módondeniálhatjuk.
3.2.3. Deníció. PSPACE =⋃
k>0 SPACE(nk)
és NPSPACE =⋃
k>0 NSPACE(nk).
Korábban említettük, hogy szublineáris tárbonyolultságnak is van értelme. Va-lójában az alábbi tárbonyolultsági osztályokra lesz szükségünk.
3.2.4. Deníció. L = SPACE(log2 n) és NL = NSPACE(log2 n).
3.2.1. Savitch tétele
Mint arról korábban már volt szó, egy nemdtereminisztikus Turing-gép determi-nisztikussal való szimulációja (jelenlegi tudásunk szerint) legalább exponenciálisid®igény romlást eredményez. A tárbonyolultság esetében viszont bizonyított,hogy a determinisztikus Turing-gépek a tárbonyolultság négyzetes romlása áránképesek szimulálni a nemdeterminisztikus Turing-gépeket. Ebben a fejezetbenezt az eredményt ismertetjük.
3.2.5. Tétel. Ha f(n) ≥ log n, akkor NSPACE(f(n)) ⊆ SPACE(f2(n)).
3.2. TÁRBONYOLULTSÁG 113
Bizonyítás. Legyen f(n) egy a tétel feltételeit kielégít® függvény és tekintsünkegy L ∈ NSPACE(f(n)) nyelvet. Tegyük fel, hogy L-et eldönti az M O(f(n))tárigény¶ nemdeterminisztikus Turing-gép. Megadunk egy olyan M ′ O(f2(n))tárigény¶ determinisztikus Turing-gépet, ami szintén L-et dönti el. El®ször isfeltesszük, hogy amikor M elfogad egy szót, akkor azt úgy teszi, hogy miel®ttmegáll a qi állapotban, letörli a szalagjáról a nem t szimbólumokat. ÍgyM -nekcsak egy elfogadó kongurációja van, jelöljük ezt celfogadó-val.
Legyen w egy n hosszú szó. Jelöljük M kezd®kongurációját a w-n ckezd®-vel.Nevezzük M kongurációs gráfjának a w szón azt a Cw gráfot melynek csúcsaiM kongurációi a w-n és c1, c2 csúcsok között pontosan akkor van él, ha a c1kongurációból elérhet® a c2 egy lépésben. MivelM egy f(n) tárkorlátos gép, aCw gráf minden kongurációja legfeljebb O(f(n)) méret¶ (hiszen M legfeljebbO(f(n)) méret¶ szalagot használhat fel a számításai során). Ilyen méret¶ kon-gurációja M -nek viszont legfeljebb 2df(n) lehet valamely alkalmas d konstansra,hisz a konguráció minden szimbólumát egy véges halmazból választhatjuk (ittugyanúgy kell gondolkodni, mint ahogy belátható, hogy 2n darab n hosszú bi-náris szám van). Tehát Cw 2df(n) méret¶, és ebben a gráfban kell keresni kétkitüntetett csúcs, nevezetesen a ckezd® és a celfogadó között egy utat úgy, hogya keresés során O(f2(n)) méret¶ tár legyen felhasználva. Ehhez viszont elégbelátni azt, hogy két kitüntetett Cw-beli csúcs közötti út keresése elvégezhet®O(log22(2df(n)))méret¶ tárral. Valóban, a tárigény ez esetben a következ®képpenalakul:
O(log22(2df(n))) = O((df(n))2 log22 2) = O((df(n))2) = O(f2(n)).
El®ször deniálunk egy három változós boole-függvényt az alábbi módon. Min-den c1, c2 ∈ Cw kongurációra és t nemnegatív egész számra, legyen ELER(c1,c2, t) = igaz, akkor és csak akkor, ha Cw-ben van egy legfeljebb t hosszú útc1-b®l c2-be. Nem nehéz meggondolni, hogy ELER(c1, c2, t) pontosan akkorigaz, ha van olyan c ∈ Cw konguráció, melyre ELER(c1, c, d t2e)=igaz ésELER(c, c2, d t2e)=igaz. Ezek alapján az ELER függvény kiszámolható egyrekurzív algoritmussal (lásd a 7. algoritmust).
Az M ′ determinisztikus Turing-gépnek tehát elvileg elegend® lenne megvaló-sítania a 7. algoritmust és meghívnia a ELER függvényt a ckezd®, celfogadó és2df(n) paraméterekkel. Itt viszont felmerül a következ® probléma. M ′ nem tudjaexplicite az f(n) értékét, ezért M ′-t a 8. algoritmus szerint konstruáljuk meg.
A bizonyítás befejezéséhez meg kell még vizsgálnunk a 7. és 8. algoritmusoktárigényét (belátható, hogy ezen algoritmusokat megvalósító M ′ tárigénye nemlesz nagyságrendekkel nagyobb, mint a fenti algoritmusoké).
El®ször is, a legnagyobb i-érték, melyre ELER meghívásra kerül O(f(n))-nélnem nagyobb, így a 7. algoritmusban szerepl® rekurzióban a legnagyobb mélységlog2 2
O(f(n)) = O(f(n)). Továbbá, egy rekurzív hívás tárigénye szintén O(f(n)),így a két algoritmus összes tárigénye O(f2(n)), amit bizonyítani akartunk.
114 3. FEJEZET. BEVEZETÉS A BONYOLULTSÁGELMÉLETBE
Algorithm 7 Az ELER függvény kiszámításaBemenet: c1, c2 ∈ Cw, t ∈ N;Kimenet: ELER(c1, c2, t);if t = 1 thenif c1 = c2 ∨ (c1, c2) egy él Cw-ben thenELER(c1, c2, t):=igaz ; stop
elseELER(c1, c2, t):=hamis; stop
end ifelsefor all c ∈ Cw doif ELER(c1, c, d t2e) ∧ ELER(c, c2, d t2e) thenELER(c1, c2, t):=igaz ;
end if ;end for;
end if ;ELER(c1, c2, t):=hamis.
Algorithm 8 Egy f(n) tárkorlátos nemdeterminisztikus Turing-géppel ekviva-lens O(f2(n)) tárkorlátos determinisztikus Turing-gép m¶ködésének algoritmu-saBemenet: M f(n) tárkorlátos nemdeterminisztikus Turing-gép;for i = 1, 2, 3, . . . doif ELER(ckezd®, celfogadó, i) thenMegállás qi-ben; STOP
elseif ¬∃c ∈ Cw i méret¶ konguráció, hogy ELER(ckezd®, c, 2
di) thenMegállás qn-ben; STOP.
end ifend if
end for.
3.2. TÁRBONYOLULTSÁG 115
Ha meggondoljuk, hogy minden polinom függvény négyzete is polinom függvény,azonnal következik az alábbi állítás.
3.2.6. Következmény. PSPACE = NPSPACE.
3.2.2. PSPACE-teljes problémák
El®adáson...