opora
KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY99 Ekvivalentním specifikačním prostředkem pro libovolný bezkontextový jazyk je nedeterministický zásobníkový automat. Existují ekvivalentní varianty těchto automatů, které se, mimo jiné, využívají jako modely různých typů syntaktických analyzátorů. Třída jazyků přijímaných deterministickými zásobníkovými automaty (tzv deterministické bezkontextové jazyky) je vlastní podtřídou třídy bezkontextových jazyků. K uzávěrovým vlastnostem bezkontextových jazyků nepatří průnik a doplněk, není rovněž rozhodnutelný problém ekvivalence dvou bezkontextových gramatik. K rozhodnutí nepříslušnosti formálního jazyka do třídy bezkontextových jazyků se používá pumping lema, která rovněž charakterizuje základní atribut vět nekonečného bezkontextového jazyka. 4.14 Cvičení Cvičení 4.14.1 Sestrojte zásobníkový automat, který přijímá jazyk L = {a n b m | n ≤ m ≤ 2n} Cvičení 4.14.2 Pro gramatiky (a) S → aSb | ɛ (b) S → AS | b A → SA | a (c) S → SS | A A → 0A1 | S | 01 sestrojte zásobníkové automaty modelující syntaktickou analýzu shora–dolů a zdola–nahoru. Cvičení 4.14.3 Nalezněte gramatiku, která generuje jazyk L(P ), kde zobrazení δ má tvar: P = ({q 0 , q 1 , q 2 }, {a, b}, {Z 0 , A}, δ, q 0 , Z 0 , {q 2 }); δ(q 0 , a, Z 0 ) = (q 1 , AZ 0 ) δ(q 0 , a, A) = (q 1 , AA) δ(q 1 , a, A) = (q 0 , AA) δ(q 1 , ɛ, A) = (q 2 , A) δ(q 2 , b, A) = (q 2 , ɛ)
Kapitola 5 Turingovy stroje Cílem kapitoly je formální vymezení Turingova stroje, stanovení pravidel a konvencí pro kompozitní vytváření Turingových strojů, pochopení mechanismu definice jazyka přijímaného a rozhodovaného Turingovým strojem a dokázání ekvivalence třídy jazyků typu 0 s třídou jazyků přijímaných Turingovými stroji. Cílem této kapitoly je také analýza vlastností příslušných jazyků a důležitá modifikace Turingova stroje specifikující kontextové jazyky. 5.1 Základní koncepce Turingových strojů 5.1.1 Churchova teze Churchova (Church-Turingova) teze: Turingovy stroje (a jim ekvivalentní systémy) definují svou výpočetní silou to, co intuitivně považujeme za efektivně vyčíslitelné. Churchova teze není teorém, nemůžeme formálně dokazovat, že něco odpovídá našim intuitivním představám, nicméně je podpořena řadou argumentů: • Turingovy stroje jsou velmi robustní – uvidíme, že jejich různé úpravy nemění jejich výpočetní sílu (determinismus x nedeterminismus, počet pásek, ...). • Byla navržena řada zcela odlišných výpočetních modelů (λ-kalkul, parciálně rekurzívní funkce, Minského stroje, ...), jejichž síla odpovídá Turingovým strojům. • Není znám žádný výpočetní proces, který bychom označili za efektivně vyčíslitelný a který by nebylo možné realizovat na Turingově stroji. 1 5.1.2 Turingův stroj Turingův stroj se skládá z konečně stavové řídící jednotky, jednosměrně neohraničené pásky a čtecí/zapisovací hlavy. V jednom kroku výpočtu Turingův stroj nejprve přečte symbol pod hlavou. Následně v závislosti na čteném symbolu a stavu řídící jednotky může čtený symbol přepsat, změnit stav a posunout hlavu o jedno pole doprava nebo doleva. To vše podle konečné série pravidel – přechodové relace, která je součástí řídící jednotky. Výpočet je pak navazující sérií výpočetních kroků vycházející z počáteční konfigurace stroje, t.j. stavu řídící jednotky, obsahu pásky a pozice hlavy. 1 Existují formalizované výpočetní procesy realizovatelné např. na TS s orákulem (nápovědou), rozhodujícím atomicky nějaký Turingovsky nerozhodnutelný problém (např. problém zastavení), které ale nepovažujeme za efektivní výpočetní procesy. 100
- Page 49 and 50: KAPITOLA 3. REGULÁRNÍ JAZYKY 48 P
- Page 51 and 52: KAPITOLA 3. REGULÁRNÍ JAZYKY 50 3
- Page 53 and 54: KAPITOLA 3. REGULÁRNÍ JAZYKY 52 C
- Page 55 and 56: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 57 and 58: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 59 and 60: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 61 and 62: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 63 and 64: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 65 and 66: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 67 and 68: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 69 and 70: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 71 and 72: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 73 and 74: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 75 and 76: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 77 and 78: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 79 and 80: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 81 and 82: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 83 and 84: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 85 and 86: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 87 and 88: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 89 and 90: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 91 and 92: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 93 and 94: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 95 and 96: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 97 and 98: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 99: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 103 and 104: KAPITOLA 5. TURINGOVY STROJE 102 5.
- Page 105 and 106: KAPITOLA 5. TURINGOVY STROJE 104
- Page 107 and 108: KAPITOLA 5. TURINGOVY STROJE 106 L:
- Page 109 and 110: KAPITOLA 5. TURINGOVY STROJE 108 St
- Page 111 and 112: KAPITOLA 5. TURINGOVY STROJE 110 p
- Page 113 and 114: KAPITOLA 5. TURINGOVY STROJE 112
- Page 115 and 116: KAPITOLA 5. TURINGOVY STROJE 114 -
- Page 117 and 118: KAPITOLA 5. TURINGOVY STROJE 116 5.
- Page 119 and 120: KAPITOLA 5. TURINGOVY STROJE 118 D
- Page 121 and 122: KAPITOLA 5. TURINGOVY STROJE 120 5.
- Page 123 and 124: KAPITOLA 5. TURINGOVY STROJE 122 5.
- Page 125 and 126: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 127 and 128: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 129 and 130: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 131 and 132: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 133 and 134: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 135 and 136: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 137 and 138: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 139 and 140: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 141 and 142: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 143 and 144: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 145 and 146: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 147 and 148: KAPITOLA 7. SLOŽITOST 146 7.1.3 Sl
- Page 149 and 150: KAPITOLA 7. SLOŽITOST 148 Příkla
Kapitola 5<br />
Turingovy stroje<br />
Cílem kapitoly je formální vymezení Turingova stroje, stanovení pravidel a konvencí<br />
pro kompozitní vytváření Turingových strojů, pochopení mechanismu definice<br />
jazyka přijímaného a rozhodovaného Turingovým strojem a dokázání ekvivalence<br />
třídy jazyků typu 0 s třídou jazyků přijímaných Turingovými stroji. Cílem<br />
této kapitoly je také analýza vlastností příslušných jazyků a důležitá modifikace<br />
Turingova stroje specifikující kontextové jazyky.<br />
5.1 Základní koncepce Turingových strojů<br />
5.1.1 Churchova teze<br />
Churchova (Church-Turingova) teze: Turingovy stroje (a jim ekvivalentní<br />
systémy) definují svou výpočetní silou to, co intuitivně považujeme za efektivně<br />
vyčíslitelné.<br />
Churchova teze není teorém, nemůžeme formálně dokazovat, že něco odpovídá<br />
našim intuitivním představám, nicméně je podpořena řadou argumentů:<br />
• Turingovy stroje jsou velmi robustní – uvidíme, že jejich různé úpravy nemění<br />
jejich výpočetní sílu (determinismus x nedeterminismus, počet pásek, ...).<br />
• Byla navržena řada zcela odlišných výpočetních modelů (λ-kalkul, parciálně<br />
rekurzívní funkce, Minského stroje, ...), jejichž síla odpovídá Turingovým<br />
strojům.<br />
• Není znám žádný výpočetní proces, který bychom označili za efektivně vyčíslitelný<br />
a který by nebylo možné realizovat na Turingově stroji. 1<br />
5.1.2 Turingův stroj<br />
Turingův stroj se skládá z konečně stavové řídící jednotky, jednosměrně neohraničené<br />
pásky a čtecí/zapisovací hlavy. V jednom kroku výpočtu Turingův stroj nejprve<br />
přečte symbol pod hlavou. Následně v závislosti na čteném symbolu a stavu řídící<br />
jednotky může čtený symbol přepsat, změnit stav a posunout hlavu o jedno pole<br />
doprava nebo doleva. To vše podle konečné série pravidel – přechodové relace,<br />
která je součástí řídící jednotky. Výpočet je pak navazující sérií výpočetních kroků<br />
vycházející z počáteční konfigurace stroje, t.j. stavu řídící jednotky, obsahu pásky<br />
a pozice hlavy.<br />
1 Existují formalizované výpočetní procesy realizovatelné např. na TS s orákulem (nápovědou),<br />
rozhodujícím atomicky nějaký Turingovsky nerozhodnutelný problém (např. problém zastavení),<br />
které ale nepovažujeme za efektivní výpočetní procesy.<br />
100