elte · 2013. 4. 14. · 2 ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson...

115

Upload: others

Post on 24-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 2: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 3: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 4: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 5: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 6: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

6 TARTALOMJEGYZÉK

Page 7: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 8: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 9: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részé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

Page 10: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 11: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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ó.

Page 12: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 13: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 14: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 15: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 16: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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-

Page 17: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 18: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 19: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 20: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 21: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 22: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 23: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 24: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 25: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 26: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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| = ∅,

Page 27: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 28: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 29: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 30: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 31: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 32: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 33: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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¶.

Page 34: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 35: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 36: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 37: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 38: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 39: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 40: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 41: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 42: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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®.

Page 43: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 44: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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 .

Page 45: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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 .

Page 46: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 47: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 48: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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).

Page 49: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 50: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 51: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 52: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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).

Page 53: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 54: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

54 1. FEJEZET. AUTOMATÁK ÉS FORMÁLIS NYELVEK

Page 55: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 56: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 57: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 58: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 59: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 60: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 61: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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 .

Page 62: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 63: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 64: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 65: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 66: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 67: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 68: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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ö-

Page 69: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 70: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 71: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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ó

Page 72: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 73: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 74: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 75: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 76: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 77: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 78: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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®.

Page 79: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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-

Page 80: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 81: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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).

Page 82: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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:

Page 83: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 84: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 85: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 86: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 87: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 88: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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 .

Page 89: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 90: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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),

Page 91: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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ó.

Page 92: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 93: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 94: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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 ∈ (Σ ∪ ∆)∗,

Page 95: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 96: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 97: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 98: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 99: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 100: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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 =

Page 101: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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,

Page 102: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

,

Page 103: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 104: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 105: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 106: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 107: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 108: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 109: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 110: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 111: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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

Page 112: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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)).

Page 113: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 114: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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.

Page 115: ELTE · 2013. 4. 14. · 2 Ennek a jegyzetnek alapvet®en az a célja, hogy segítséget nyújtson a Logika és számításelmélet c. tárgy számításelméletet tárgyaló részének

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...