skripta hudak 2002

152
TECHNICKÁ UNIVERZITA V KOŠICIACH Fakulta elektrotechniky a informatiky Prof.Ing.Štefan HUDÁK, DrSc. TEORETICKÁ INFORMATIKA: Katedra počítačov a informatiky FEI TU November 2002

Upload: bagican-krivulkos

Post on 03-Oct-2014

151 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: skripta hudak 2002

TECHNICKÁ UNIVERZITA V KOŠICIACHFakulta elektrotechniky a informatiky

Prof.Ing.Štefan HUDÁK, DrSc.

TEORETICKÁ INFORMATIKA:

Katedra počítačov a informatiky FEI TU

November 2002

Page 2: skripta hudak 2002

2

Page 3: skripta hudak 2002

Obsah

1 Úvod do informatiky 5

1.1 Jazyky a automaty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Modely algoritmov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.1 Rekurzívne schémy a funkcie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2.2 Turingove stroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Motivačné zdroje informatiky 17

2.1 Jazyky a ich reprezentácie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1.1 Základné otázky o formálnych jazykoch . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.2 Reprezentácia jazykov procedúrami . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2 Gramatiky a jazyky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.2.1 Formálne gramatiky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.2 Vybrané vlastnosti gramatík a jazykov . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Konečné automaty. 37

3.1 Konečné automaty s výstupom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.1.1 Konečné automaty s výstupom Mealy. . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.1.2 Konečné automaty s výstupom Moore. . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.1.3 Podobnosť konečných automatov Moore a Mealy . . . . . . . . . . . . . . . . . . . 47

3.2 Ekvivalencia konečných automatov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.2.1 Ekvivalencia stavov v konečnom automate. . . . . . . . . . . . . . . . . . . . . . . 54

3.3 Konečno-stavové akceptory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.3.1 Nedeterministické konečno-stavové akceptory. . . . . . . . . . . . . . . . . . . . . . 68

3.3.2 Determinizácia ndksa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.3.3 Determinizácia ndksa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.4 Regulárne gramatiky a konečno-stavové akceptory. . . . . . . . . . . . . . . . . . . . . . . 75

3.5 Analýza a syntéza ksa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.5.1 Regulárne výrazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.5.2 Analýza ksa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.5.3 Syntéza ksa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

3.5.4 Vlastnosti regulárnych jazykov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

3

Page 4: skripta hudak 2002

4 OBSAH

3.5.5 Algoritmické problémy regulárnych jazykov . . . . . . . . . . . . . . . . . . . . . . 97

4 Zásobníkové automaty a bezkontextové jazyky 99

4.1 Zásobníkové automaty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.2 Bezkontextové gramatiky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.2.1 Chomskeho tvar bezkontextových gramatík. . . . . . . . . . . . . . . . . . . . . . . 105

4.2.2 Greibachovej tvar bezkontextových gramatík. . . . . . . . . . . . . . . . . . . . . . 109

4.3 Jazyková ekvivalencia zásobníkových automatov a bezkontextových gramatík. . . . . . . . 117

4.4 Niektoré vlastnosti jazykov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

4.4.1 Stromy odvodenia v bezkontextových gramatikách. . . . . . . . . . . . . . . . . . . 122

4.4.2 Vlastnosti bezkontextových jazykov. . . . . . . . . . . . . . . . . . . . . . . . . . . 125

5 ZBYTOK 129

5.1 Uzáverové vlastnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Page 5: skripta hudak 2002

Kapitola 1

Úvod do informatiky

Informatika je vedný odbor, ktorý sa zaoberá prostriedkami a metódami reprezentácie, spracovania,uchovávania a v poslednej dobe aj použitím týchto prostriedkov a metód na prenos informácie. Je ne-rozlučne spojená s matematickými strojmi-počítačmi. Niekedy sa z toho dôvodu informatika volá ajpočítačovou vedou (computer science).

Vznik a vývoj elektronických číslicových počítačov preniesol aktivitu človeka od strojov, ktoré trans-formujú energiu k strojom na transformáciu a využitie informácie. Štúdium vlastností počítačov, metódich programovania predstavuje jednu z hlavných oblastí informatiky.

Vznik informatiky (1. polovica 20.storočia) mal niekoľko zdrojov, hovoríme im motivačné zdroje vznikua rozvoja informatiky:

1. metamatematika - upresnenie pojmu algoritmus;

2. technika a medicína - návrh a analýza zložitých systémov: reléové systémy, neurofyziologické sys-témy

3. jazykoveda - jazykový preklad

Na prvý pohľad sa zdá, že uvedené zdroje majú málo spoločného, avšak, ako v ďalšom ukážeme, tietooblasti a problémy v nich formulované (nie všetky sú dodnes uspokojivo vyriešené), priviedli k zrodunového vedného odboru - informatiky. Informatika predstavuje dnes významnú oblasť praktickej čin-nosti a nový rozmer kultúry súčasnej civilizácie. Spoločným menovateľom uvedených zdrojov bol objavkoncepcie abstraktných strojov na spracovanie informácie - automatov, ktoré predstavovali intelektuálnuvýzvu k skúmaniu a pochopeniu vlastností takých strojov v najširšom zmysle.

Abstraktné stroje a algoritmy Pojem abstraktného stroja na spracovanie informácií bol zavedený A. M.Turingom [?]v r. 1936, ktorý sa na jeho počesť volá Turingovým strojom. Turing použil koncepciuabstraktného stroja na upresnenie pojmu algoritmus , vážneho problému metodológie matematiky -metamatematiky, ktorý bol s plnou vážnosťou nastolený na začiatku 20. storočia (D. Hilbert). Turingpomocou svojich strojov dokázal, že čokoľvek, čo je možno považovať za algoritmicky riešiteľné dokáževypočítať Turingov stroj. To sa stalo základom pre tvrdenie, že Turingove stroje sú dobrým upresnenímpojmu algoritmus. Upresneniam pojmu algoritmus boli venované práce A. Churcha, ktorý definoval tzv.rekurzívne funkcie [14], E. Posta [3] - prepisovacie schémy a A. A. Markova [4] - algoritmy Marko-va. Ukázalo sa, že trieda funkcií vypočítateľných na Turingových strojoch a trieda rekurzívnych funkciíChurcha sú zhodné. Podobný vzťah bol ustanovený aj vo vzťahu k prepisovacím systémom a algorit-mom Markova. Bola sformulovaná tzv. Turing-Churchova téza , ktorá hlása, že čokoľvek je algoritmickyriešiteľné, je vypočítateľné na Turingových strojoch. Téza je vyjadrením limitných možností počítačov.Turingove stroje môžu byť považované za abstraktný model systémov s nekonečným počtom stavov.

5

Page 6: skripta hudak 2002

6 Úvod do informatiky

Automaty a zložité systémy Prvá polovica 20. storočia bola obdobím prudkého rozmachu elektrotech-niky a nástupom systémov zostrojených z reléových obvodov [5]. To vyvolalo potrebu teórie návrhua analýzy takých systémov. Typickými predstaviteľmi takých systémov boli telefónne centrály na elek-tromechanických relé. Pre opis správania a štruktúry reléových obvodov a systémov Američan C. E.Shannon [?] a sovietsky vedec V. I. Šestakov [?] nezávisle na sebe navrhli použitie tzv. boolovej algebry[6]. Angličan G. Boole v r. 1854 vo svojej práci ’Laws of Thoughts’ položil základy algebry, ktorádnes nesie jeho meno. Koncepcia boolovských funkcií C. E. Shannona je dnes základným aparátom naopis správania a štruktúry tzv. kombinačných a sekvenčných logických obvodov, ktoré sú abstraktnýmimodelmi počítačov na hardvérovej úrovni. Ide o abstraktné stroje s konečným počtom stavom, ktoré vo-láme konečnými automatmi . Súčasná prax a teória návrhu a analýzy takých strojov je určovaná prácouHuffmana [?] z r. 1954, ako aj ďalších vedcov (V. M. Gluškov [?], E.F. Moore [?], G.H. Mealy [?], E.J.McCluskey [?], B. A. Trachtenbrot [?]).V 40.rokoch 20.storočia skupina vedcov pod vedením amerického neurofyziológa F. Rosenblatta sa ve-novala štúdiu procesov v nervovom systéme živých organizmov. W.S. McCulloch a W. Pitts sú autormimodelu neurónu, základného stavebného prvku nervového systému (Obr. 1.1). Ako sa ukázalo modelnervového systému zostrojený z takých neurónov je konečným automatom.

Obrázok 1.1: Model neurónu

1.1 Jazyky a automaty

Vzťah medzi (abstraktnými) jazykmi a automatmi bol ustanovený S. C. Kleene [?] v r. 1956??. Jazykje možno interpretovať ako množinu ’viet’ zodpovedajúcim určitým vlastnostiam, alebo určitým pravid-lám vytvárania (konštrukčné pravidlá). Vety sú reťazce symbolov, ktoré sú vybraté z určitej konečnejmnožiny, ktorú voláme abecedou jazyka. Tak napríklad pod jazykom môžeme chápať množinu (všetkých)programov pre počítač v niektorom programovacom jazyku. Každý program je vetou v takom jazyku.

Page 7: skripta hudak 2002

1.2 Modely algoritmov 7

Ďalším príkladom jazyka môže byť množina všetkých reťazcov vytvorených zo symbolov ’0’ a ’1’, ktorévyhovujú určitým podmienkam; napríklad, že za každou ’1’ musí nasledovať ’0’. Kleene charakterizovaljazyk ako množinu viet (reťazcov), pričom takú množinu, že príslušnosť k takej množine môže byť testo-vaná niektorým abstraktným strojom, napríklad konečným automatom.

V jazykovede jedným zo základných problémov je problém prekladu z jedného jazyka (povedzme )do druhého jazyka (povedzme ). Podstata riešenia takého problému spočíva v pochopení podstatytakého javu, že človek je schopný správne formulovať a rozumieť vetám, ktoré predtým nikdy nevyslovil,alebo nepočul. Noam Chomsky [?, ?] v r. 1959 a 1963 publikoval práce , v ktorých boli zhrnuté výsled-ky výskumov pri riešení problému prekladu prirodzených jazykov. Tam boli ustanovené vzťahy medzihierarchiou (abstraktných) jazykov, automatov a gramatík. Táto hierarchia sa volá Chomského hierarchia

1.2 Modely algoritmov

Algoritmus je ústredný pojem v informatike, ale aj v matematike. Jestvuje mnoho definícií algoritmu.My budeme pod algoritmom rozumieť pojem v zmysle nasledujúcej definície.

Definícia1.1 Algoritmus je návod na riešenie problému, ktorý pozostáva z inštrukcií, intuitívny vý-znam ktorých je používateľovi návodu jasný, ako aj to ako jednotlivé inštrukcie mechanicky vykonať, aktorý (návod) má tieto vlastnosti:

1. konečnosť

2. diskrétnosť

3. hromadnosť

4. determinovanosť

5. sekvenčnosť

6. rezultatívnosť

Povieme si niečo bližšie o jednotlivých vlastnostiach.

konečnosť algoritmu znamená, že každá inštrukcia sa vykoná za konečný čas a algoritmus sa skladáz konečného počtu inštrukcií

diskrétnosť znamená, že každá inštrukcia predstavuje diskrétnu jednotku (zložku) v tele algoritmu(t.j. zaberá konečný priestor a je takto identifikovateľná)

hromadnosť znamená, že návod je určený na riešenie celej triedy úloh (presnejšie celej triedy inštan-cií prípadov úloh daného typu, napríklad algoritmus delenia čísel je vhodný na delenie akejkoľvekdvojice čísel)

determinovanosť znamená, že po vykonaní jednej inštrukcie je jednoznačne z povahy algoritmuurčené, ktorá inštrukcia sa vykoná ako nasledujúca

sekvenčnosť znamená, že v danom čase sa môže vykonať najviac jedna inštrukcia

rezultatívnosť znamená, že algoritmus na ľubovoľnej množine svojich vstupných dát za konečný časvydá výsledok

Page 8: skripta hudak 2002

8 Úvod do informatiky

V ďalšom budeme rozlišovať medzi návodmi podľa tejto definície, ktoré spĺňajú všetkých 6 podmienok- budú to algoritmy v úzkom zmysle , zatiaľ čo návody, ktoré spĺňajú iba prvých 5 podmienok, t.j. ktorénie sú rezultatívne, budeme volať procedúrami . Procedúru budeme niekedy volať nerezultatívnym algo-ritmom a algoritmus (v úzkom zmysle) rezultatívnou procedúrou.

Teraz uvedieme príklad na algoritmus v úzkom zmysle.

Príklad 1.1 Majme problém: ’Pre ľubovoľné prirodzené číslo n 1 rozhodnite, či n je prvočíslo’.

Návod na nájdenie prvočísla.

Krok: Inštrukcia1. Polož2. Ak je stop: n je prvočíslo3. Ak je celé číslo stop: n nie je prvočíslo4. Polož5. Návrat k 2. kroku

Nie je ťažké preveriť, že privedený návod má všetkých 6 vlastností a je teda algoritmom v úzkom zmysle.Previerka 6. vlastnosti (rezultatívnosť) predstavuje samostatný problém vo všeobecnosti, avšak v tomtoprípade je to jednoduché. Stačí si uvedomiť, že návod hľadá postupne počínajúc 2 deliteľov čísla n . Zanajviac n - 2 opakovaní algoritmus musí dospieť k výsledku.Na (obr. 1.2) je uvedená reprezentácia algoritmu v tvare vývojového diagramu.

Obrázok 1.2: Algoritmus na určenie prvočísla

Ďalší príklad je na ilustráciu povahy procedúr. Je z teórie čísel. Na začiatok uvedieme, že pod pojmomperfektné číslo budeme v ďalšom chápať také prirodzené číslo, ktoré je rovné súčtu svojich deliteľovzvýšenému o 1; tak napríklad 6 je perfektné číslo, pretože 1 2 3 6.

Page 9: skripta hudak 2002

1.2 Modely algoritmov 9

Príklad 1.2 Majme problém: ’Pre ľubovoľné prirodzené číslo n 1 rozhodnite, či existuje perfekt-né číslo väčšie ako n’.

Návod na nájdenie perfektného očísla.

Krok: Inštrukcia1. Polož2. Polož3. Polož4. Polož5. Ak je prechod k 8. kroku6. Ak je prechod k 2. kroku7. Stop: je perfektné číslo väčšie ako8. Ak nie je celé číslo prechod k 10. kroku9. Polož10. Polož11. Návrat k 5. kroku

Na (obr.1.3) je uvedená reprezentácia algoritmu v tvare vývojového diagramu. Je jednoduché sa ubez-

Obrázok 1.3: Procedúra nájdenia perfektného čísla

pečiť, že privedený súbor inštrukcií je návodom na hľadanie perfektného čísla väčšieho než n . Premennásum svojou hodnotou bude vyjadrovať súčet deliteľov zvýšený o 1 pre testované číslo - kandidáta naperfektné číslo. Pre každé také číslo sa testovanie skončí po konečnom počte opakovaní cyklov, ktoré

Page 10: skripta hudak 2002

10 Úvod do informatiky

návod obsahuje a ktoré sú zreteľnejšie z vývojového diagramu. Na rozdiel však od predchádzajúcehopríkladu nie je v danom prípade zaručená rezultatívnosť. Ide teda o nerezultatívny algoritmus. Poslednévyplýva z toho, že v teórii čísel nepoznáme výsledok, ktorý by nám zaručoval existenciu perfektného číslaväčšieho ako n pre ľubovoľné n.

1.2.1 Rekurzívne schémy a funkcie

Vyššie sme uviedli, že jedným z motivačných zdrojov informatiky bolo precizovanie pojmu algoritmus.Jedno z upresnení je spojené s pojmom rekurzívnych výpočtových schém a na ich základe definovanejtriedy tzv. rekurzívnych funkcií.

Schéma primitívnej rekurzie

V ďalšom budeme uvažovať premenné na obore prirodzených čísela s funkciami s hodnotovým oborom .

Symbolom budeme označovať n-árnu funkciu a takú, že ; akpotom

bude tzv. charakteristickou funkciou množiny A , t.j. C (x ) 1 ak x A a C (x ) 0 ak x A .Analogicky sa definuje C aj v prípade, že A . . . . Symbolom N (x ) označujemefunkciu nadobúdajúcu hodnotu 0 pre všetky hodnoty x ; S (x ) x 1 je tzv. následovníková funkciaa sa volá výberová funkcia.

Definícia 1.1 Majme funkcie ; potomak platí, že

hovoríme, že funkcia je vytvorená z funkcií akompozíciou

Pristúpime teraz k definícii schémy primitívnej rekurzie

Definícia 1.2 Majme úplne definované (totálne) funkcie a , potomak platí, že

hovoríme, že funkcia ,je vytvorená z funkcií aprimitívnou rekurziou

Teraz môžeme definovať primitívne - rekurzívnu funkciu

Definícia 1.3 Funkcia je primitívne - rekurzívna funkcia ak môže byťvytvorená z funkcií alebo použitím konečného počtu aplikácií kom-pozície a primitívnej rekurzie.

Page 11: skripta hudak 2002

1.2 Modely algoritmov 11

Z definície kompozície, primitívnej rekurzie a primitívne - rekurzívnej funkcie plynie, že primitívne -rekurzívna funkcia je vždy totálna funkcia.

Uvádzame teraz príklady primitívne - rekurzívnych funkcií.

Príklad 1.1

1. Súčet

FUNKCIA SCHÉMA

2. Súčet

FUNKCIA SCHÉMA

3. Exponenciálna funkcia

FUNKCIA SCHÉMA

4. Funkcia ’Predchodca(Predecessor)’ -jednotkový dekrement

FUNKCIA SCHÉMA

{

5. Funkcia nezáporného rozdielu

FUNKCIA SCHÉMA

6. Funkcia ’Faktoriál’

FUNKCIA SCHÉMA

7. Funkcia

FUNKCIA SCHÉMA

Page 12: skripta hudak 2002

12 Úvod do informatiky

8. Funkcia

FUNKCIA SCHÉMA

(Koniec príkladu)

Schéma všeobecnej rekurzie

Prv než uvedieme schému všeobecnej rekurzie a definíciu čiastočných (všeobecných) rekurzívnych fun-kcií potrebujeme si definovať ešte jednu operáciu - minimizáciu .

Definícia 1.4 Majme dve totálne funkcie a ; ak platí, že

hovoríme, že je získaná z operáciou minimizácie

Za zmienku stojí, že pokým je totálna funkcia, výsledok minimalizácie, t.j. funkcianemusí byť vždy totálnou funkciou.

Definícia 1.5 (Výpočtová) schéma všeobecnej rekurzie je konečná postupnosť krokov výpočtov, pričomv každom kroku sa realizuje výpočet, ktorý je buď:

aplikáciou funkcie , alebo

aplikáciou funkcie , alebo

aplikáciou funkcie , alebo

aplikáciou funkcie , alebo

aplikáciou kompozície, alebo

aplikáciou primitívnej rekurzie, alebo

ak f,h sú po rade a árne funkcie (na obore prirodzených čísiel) a

bude aplikovaná minimizácia na výpočet h

Definícia 1.6 Funkcia je čiastočne rekurzívna funkcia ak môže byťvytvorená z funkcií , , , alebo , použitím konečného počtu aplikácií kom-pozície, primitívnej rekurzie a minimizácie

Ak funkcia získaná podľa definície 1.6 je totálna, voláme ju všeobecnou rekurzívnou funkciou. Ukáže-me teraz príklady niekoľkých rekurzívnych funkcií vytvorených podľa definície 1.6.

Page 13: skripta hudak 2002

1.2 Modely algoritmov 13

1. Celáá časť koreňa

FUNKCIA SCHÉMA

Z

and thus

2. Celá časť podielu

FUNKCIA SCHÉMA

and thus

1.2.2 Turingove stroje

Turingov stroj (TS) je abstraktný výpočtový stroj - abstraktný automat, ktorý si môžeme predstaviťako mechanizmus, ktorý je uvedený na obr. 1.4TS (budeme ho označovaťM ), ako vidno z obrázku, sa skladá z týchto častí: riadiaca jednotka M , páskap a čítacia a zapisovacia hlava h . Riadiaca jednotka M predstavuje stavový mechanizmus, ktorý jev každom čase charakterizovaný stavom q a na základe informácie poskytovanej mu čítacou a zapisova-cou hlavou h (ďalej len hlavou) môže tento stav zmeniť na (povedzme) stav q . Páska t je nekonečnázľava i zprava lineárne usporiadaná postupnosť buniek , pričom v každom čase iba konečne veľa týchtobuniek sú neprázdne, t.j. obsahujú niektorý (vo všeobecnosti každá iný) symbol z niektorej konečnejmnožiny symbolov Sigma - vstupnej abecedy pásky TS; ostatné bunky pásky sú prázdne, čo sa vyjadrujeprítomnosťou v takých bunkách špeciálneho symbolu B . Hlava je mechanizmus so schopnosťou vidieťpráve obsah jednej bunky na páske p a to práve tej nad ktorou sa nachádza (aktuálna bunka) a realizovaťjednu z troch činností: čítať symbol nachádzajúci

Obrázok 1.4: Turingov stroj

Page 14: skripta hudak 2002

14 Úvod do informatiky

sa v aktuálnej bunke (obsah aktuálnej bunky), prepísať obsah aktuálnej bunky, pohyb hlavy o jednubunku doľava, alebo doprava. TS má schopnosť vykonávať určité elementárne činnosti - kroky, ktorémožno charakterizovať takto: na základe obsahu aktuálnej bunky - s (ktorý vníma hlava v čase t napáske p ), stavu v ktorom sa nachádza riadiaca jednotka TS M - q , TS prepíše obsah aktuálnej bunky(prostredníctvom h ) na (povedzme) s´ , zmení polohu h o jednu bunku doľava, alebo doprava, prípadnenechá ju na pôvodnom mieste a riadiaca jednotka M prejde do stavu (povedzme) q . Opísaná činnosťpredstavuje krok činnosti TS a dá sa vyjadriť formálnejšie ako inštrukcia TS v tvare

Inštrukčný kód I Inštrukčný kód II

Pre úplnosť sú privedené dva súbory inštrukcií: súbor I a II. Interpretácia (p ) pre D R je: ak je Mv stave q , v aktuálnej bunke sa nachádza s , TS prepíše s na s , M prejde do q a hlava sa presunie ojednu bunku doprava. Je jasné, že (p ) pri D L bude označovať krok s pohybom doľava a ostatné častikroku budú totožné s predošlou inštrukciou. Inštrukčný súbor II pozostáva z inštrukcií pozostávajúcichzo 4 častí, oproti 5 častiam inštrukcie (p ). Ich význam je jasný. Tak napríklad (p : q s s q )znamená, že ak je M v stave q , v aktuálnej bunke sa nachádza s , TS prepíše s na s , M prejdedo q (a hlava zostáva nepohnutá). Inštrukcia (p : q s Rq ) znamená, že ak je M v stave q ,v aktuálnej bunke sa nachádza s , hlava sa presunie o jednu bunku doprava (a obsah aktuálnej bunkyzostáva nezmenený). Vykonanie kroku TS podľa inštrukcie (p , i 1,2,3) voláme aplikáciou inštrukcie(p ,i 1,2,3).

ľubovoľná konečná postupnosť inštrukcií je program TS. Nie je ťažké ukázať, že inštrukčné súbory Ia II sú rovnocenné v tom zmysle, že ľubovoľný program v inštrukčnom súbore I sa dá vyjadriť v inšt-rukčnom súbore II a tak, že TS sa bude správať rovnako na rovnakej vstupnej páske. Pristúpime terazk upresneniu toho, čo budeme rozumieť pod správaním TS.

Najprv sa dohodneme, že situáciu na obr.1.1.2 vyjadríme reťazcom symbolov

, t.j. že aktuálna bunka obsahuje symbol , TS M je v stave q a že obsah vstupnej pásky naľavo odaktuálnej bunky je u a obsah vstupnej pásky napravo od aktuálnej bunky je v . V teórii TS takú situáciunazývame konfigurácia TS a označujeme to

Definícia 1.7

O dvoch konfiguráciach c a c’ hovoríme, že c´ je dosiahnuteľná z c v TS M za jeden krok, aplikáciouinštrukcie p , označujeme to ,

práve vtedy, ak platí

i=1 a a

i=2 a , a

i=3 a , a

kde p : q s s q označujeme meno a tvar inštrukcie s menom pO postupnosti konfigurácií c ,c ,c ,...,c takých, že pre všetky j 0, 1,...,m potomhovoríme, že c je dosiahnuteľná z c a symbolicky to označujeme .

Page 15: skripta hudak 2002

1.2 Modely algoritmov 15

TS M možno definovať aj formálne [?], ako niektorú usporiadanú 5-icu

Definícia 1.8 TS je usporiadaná 5-ica M (K, , , , q ), kde- K je konečná množina stavov- je konečná množina symbolov vstupnej pásky, tzv. vstupná abeceda- je konečná množina symbolov pásky TS, t.j.- : K ( ) 2 je prechodová funkcia TS M, D R, L- q K je tzv. počiatočný stav TS M

Definícii TS zodpovedá inštrukčný kód II a naviac tvar funkcie predpokladá nedeterministické sprá-vanie, t.j. také, že v jednej konfigurácii môžu byť aplikovateľné 2 a viac inštrukcií. V deterministickomprípade bude mať prechodová funkcia tvar

Uvedieme teraz príklad TS.

Príklad 1.2

(Koniec príkladu.)

O TS M hovoríme, že má (končiaci) výpočet na vstupnej páske x , ak existuje postupnosť konfiguráciíc , c ,. . .c a pritom taká, že , a , pričom a

je taká konfigurácia v ktorej nie je aplikovateľná žiadna inštrukcia TS M .Dohodneme sa teraz na určitom spôsobe reprezentácie prirodzených čísel na páske TS s abecedou 0,1 .Prirodzené číslo n budeme symbolicky reprezentovať reťazcom pozostávajúcim z n 1 symbolov 1,a takú symbolickú reprezentáciu budeme označovať , t.j.

︸ ︷︷ ︸; niekedy taký reťazec budeme

vyjadrovať ako . Majme m- icu prirodzených čísel n ,n ,. . .,n ; potom takú m-icu (n , nn ) budeme vyjadrovať symbolicky ako Majme ďalej symbolický výraze , pozostávajúci zo symbolov z 1,B , potom symbol e vyjadruje počet jednotiek v e , t.j. napríklad

. Ak a sú dve konfigurácie TS Z a ,

budeme volať výsledkom TS Z z a označovať to ako , alebo formálnejšie

Nech teraz TS Z má výpočet . Definujeme teraz n - árnu funkciu pre TS Z takto: pre

každú m -icu (n , n n ) takú, že má z konfigurácie výpočet

a teda bude hodnota definovaná, a stáva sa hodnotou takej funkcie pre argument. Formálnejšie

Page 16: skripta hudak 2002

16 Úvod do informatiky

Teraz sme pripravení uviesť definíciu Turingovsky vypočítateľnej funkcie

Definícia 1.9 Funkcia je čiastočne (Turingovsky) vypočítateľná, ak existuje TS Z taký,že

Vtedy hovoríme, že TS Z počíta . Ak navyše je totálna, hovoríme, že je(Turingovsky) vypočítateľná.

Tak napríklad TS z príkladu 1.2 počíta funkciu . Skutočne, uvažujme prípustnúpostupnosť konfigurácií pre TS Z z príkladu 1.2:

Počet symbolov ’1’ v poslednej konfigurácii - je rovný m m a je podľa definície hodnotoufunkcie. Všimnime si, že konfigurácia je mŕtva konfigurácia, t.j. že nie je v nej aplikovateľná žiadnainštrukcia programu TS príkladu ??. Označenie znamená viacnásobné opakované použitie inštrukciep .Podobným spôsobom je možno dokázať vypočítateľnosť ľubovoľnej čiastočne, alebo úplnej (všeobecnej)rekurzívnej funkcie. Turing s použitím jemných techník, vrátane techniky podprogramov [1] , dokázal žetrieda funkcií typu a trieda rekurzívnych funkcií sú totožné. Tento záver je vlastnezákladom pre hypotézu o tom, že všetko čo bolo je a bude algoritmicky riešiteľné bude vypočítateľnéniektorým Turingovým strojom. Posledné je vlastne hypotéza Turinga - Churcha .

Page 17: skripta hudak 2002

Kapitola 2

Motivačné zdroje informatiky

2.1 Jazyky a ich reprezentácie

Jazyk je možno definovať viacerymi spôsobmi. Ako príklad môže poslúžiť definícia, ktorá vymedzuje ja-zyk ako niektoré teleso slov a metód ich kombinovania, ktoré sú pochopiteľné pre významnú časť určitejspoločnosti. Taká definícia je vcelku pochopiteľná, ale málo užitočná pre účely konštruovania formálnejteórie jazykov. V informatike pracujeme s pojmom formálny jazyk, k definícii ktorého teraz pristúpime.

Abecedou voláme ľubovoľnú konečnú množinu symbolov. Príkladom abecedy môžu slúžiť tieto množinysymbolov:

Významnou abecedou je množina symbolov tvoriaca tzv. ASCII kód, ktorý predstavuje množinu sym-bolov a znakov používaných určitou časťou spoločenstva žijúcej na planéte Zem.

Majme teraz dve abecedy . Symbolom budeme označovať množinu prvkov s nasledujúcouvlastnosťou

Symbol označuje operáciu zreťazenia (konkatenácie) a prvok je reťazec pozostávajúci z dvoch symbo-lov; na prvom mieste a po ňom nasleduje . Počet symbolov v reťazci určuje jeho dĺžku, čo budemeoznačovať ako . Podobne, ak máme tri abecedy budeme symbolom označovaťmnožinu reťazcov dĺžky 3

V ďalšom vynechávame symbol operácie zreťazenia a píšeme jednoducho . Uvažujme terazabecedu a definujme si -násobné zreťazenie abecedy , ktoré označíme . Teda máme

Prvky budú reťazce dĺžky na abecede V (ďalej ak bude jasné o akú abecedu ide, budeme hovoriťjednoducho reťazec dĺžky ). Majme reťazec, potom je symbol reťazca a

je predpona reťazca dĺžky .

Príklad 2.1 Majme ;

17

Page 18: skripta hudak 2002

18 Motivačné zdroje informatiky

Definujeme teraz induktívne ; , kde označuje prázdny reťazec, t.j. taký reťazec, ktorýneobsahuje žiadny symbol, a a napokon definujeme

univerzálnu množinu reťazcov nad abecedou , tzv. tranzitívny uzáver V. Množinu všetkých neprázdnychreťazcov nad abecedou označujeme a voláme kladným uzáverom , t.j. . Budemepoužívať označenie - zrkadlový obraz reťazca , ktorý definujeme takto

{ifif

Definícia 2.1 Formálnym jazykom nad abecedou voláme ľubovoľnú podmnožinu univerzálnej mno-žiny reťazcov , t.j.�

Uvedieme niekoľko príkladov jazykov. Najprv sa však dohodneme na niektorých označeniach. Nechje reťazec a , potom vyjadruje počet výskytov symbolu v ; bude vyjadrovať

reťazec︸ ︷︷ ︸

.

Príklad 2.2

- Je to nekonečný jazyk pozostávajúci z reťazcov, každý z ktorých pozostávaz predpony dĺžky zloženú z ’0’ a nasleduje prípona rovnakej dĺžky zložená z ’1’.

- konečný jazyk

- nekonečný jazyk, sú slová z tohto jazyka

- je nekonečný jazyk

Uvažujme v ďalšom niektorú abecedu a budeme predpokladať, že symboly abecedybudú lineárne usporiadané tak ako sme ich uviedli pri ich vymenovaní vo vyššie, t.j. budeme

považovať, že je pred akonáhle sa v uvedenom vymenovaní vyskytuje pred vo . Tútoskutočnosť budeme vyjadrovať takto: a je to možné aj formálne vyjadriť, t.j.

. Dohodneme sa, že platí pre každý prvok . Zafixujeme toto usporiadanie prvkovabecedy (podobne ako v slovenskej abecede je považované za ustálené, že ) a najeho základe definujeme teraz tzv. lexikografické usporiadanie reťazcov.

Page 19: skripta hudak 2002

2.1 Jazyky a ich reprezentácie 19

Definícia 2.2 Majme dva reťazce a na abecede , t.j. ; potom hovoríme, že u jelexikograficky menšie ako v, symbolicky , ak platí že reťazce a majú totožné predpony dĺžky

a zodpovedajúce prvky reťazcov a (povedzme) a nasledujúce za predponamia sú také, že ; formálnejšie

Všimnime si, že usporiadanie použité pri tvorbe telefonného zoznamu je lexikografické usporiadanie.

Príklad 2.3 Nasledujúce reťazce sú lexikograficky usporiadané

2.1.1 Základné otázky o formálnych jazykoch

Teória a prax používania počítačov stavajú pred teóriu formálnych jazykov v tom zmysle, ako sme ichdefinovali vyššie, niekoľko fundamentálnych otázok. Je potrebné si uvedomiť (viď príklad 2.2), že jazykmôže byť konečnej, ale aj nekonečnej povahy. V prípade konečného jazyka otázka jeho reprezentácienepredstavuje vážnejší problém. Posledné je problémom v prípade, že jazyk je nekonečnej povahy. Tietootázky je možno sformulovať takto:

1. Jestvuje konečná reprezentácia nekonečných jazykov?

2. Akú povahu majú jazyky s konečnou reprezentáciou?

3. Existujú jazyky pre ktoré nejestvuje konečná reprezentácia?

Pod konečnou tu rozumieme takú reprezentáciu, ktorá je konečnej povahy, t.j. že zaberá konečný priestor(vyžaduje napríklad konečnú pamäť, dá sa vyjadriť ako reťazec konečnej dĺžky).

V ďalšom sa pokúsime dať odpoveď na tieto 3 otázky. Zatiaľ čo prvé dve otázky potrebujú k svojmuzodpovedaniu určité poznatky a výsledky, tretia otázka môže byť zodpovedaná bezprostredne s tým, žeako pracovnmú prijmeme hypotézu o existencii konečných reprezentácii jazykov, a k tomu teraz pristú-pime.

V ďalšom sa budeme zaoberať otázkou 3 vo vzťahu k jazykom nad abecedou , ktorú budeme po-važovať za pevne danú. Predpokladajme, že disponujeme spôsobom ako vytvoriť konečnú reprezentáciupre ľubovoľný jazyk nad abecedou , ktorú označíme . O predpokladáme, že bude reťazcomnad niektorou abecedou , na ktorej je definovaná relácia lineárneho usporiadania , čo ďalej indukujeexistenciu lexikografického usporiadania na reťazcoch nad abecedou a teda aj nad -konečnýmireprezentáciami jazykov nad . Lineárne usporiadanie konečných reprezentácií bude aj lineárnym uspo-riadaním jazykov. Inými slovami povedané, . ďalej, aby sme zjednodušili

Page 20: skripta hudak 2002

20 Motivačné zdroje informatiky

V

......

......

......

......

......

......

......

......

......

Obrázok 2.1: Konečné reperezentácie jazykov - ’Myšlienkový experiment’

výklad, budeme jednoducho písať namiesto . Pristúpime teraz k ’myšlienkovému experimentu’,ktorý je vyjadrený na obrázku 2.1

V tabuľke na obr. 2.1 použité symboly majú nasledujúci význam:

{

Vytvoríme teraz nový jazyk vyhovujúci podmienke, že slovo bude patriť do práve vtedy,ak ; formálnejšie

(2.1)

Pokúsime sa teraz jazyk zaradiť do tabuľky na obr. 2.1. Predpokladajme, že jazyk má konečnúreprezentáciu-povedzme a je teda . Predpoložme teraz, že ; podľa definície 2.1

a pretože máme, že . Formálnejšie

(2.2)

Reťazec ekvivalencií (2.2) je vlastne sporom a dokazuje, že predpoklad o možnosti zaradiť do tabuľkyjazykov s konečnou reprezentáciou je nesprávny a je príklad jazyka, pre ktorý nejestvuje konečnáreprezentácia. Máme teda

Veta 2.1 Existuje aspon jeden jazyk na abecede , pre ktorý nejestvuje konečná reprezentácia.

Veta 2.1 je vlastne odpoveďou na 3. otázku o formálnych jazykoch.

2.1.2 Reprezentácia jazykov procedúrami

Majme jazyk (na abecede ), t.j. a predpokladajme, že sme našli procedúru s nasledovnýmivlastnosťami:

1. vstupom pre procedúru je ľubovoľný reťazec na abecede ;

2. procedúra je návod na rozpoznávanie toho, či reťazec na vstupe je reťazec patriaci do jazyka;

3. ak je na vstupe reťazec , procedúra za konečný počet krokov (za konečný čas) rozhodne,že patrí do ;

4. ak procedúra má na vstupe reťazec , ktorý nie je reťazcom jazyka , môže, ale nemusí, zakonečný počet krokov (za konečný čas) rozhodnúť, že nie je prvkom jazyka

Page 21: skripta hudak 2002

2.1 Jazyky a ich reprezentácie 21

Procedúru s uvedenými vlastnosťami budeme považovať za rozpoznávač jazyka a označovať to. je vo vyššie uvedenom zmysle konečnou reprezentáciou . Spôsob reprezentácie jazyka po-

mocou procedúry voláme reprezentáciou jazyka rozpoznávaním. Ako uvidíme v ďalšom, existujeešte iný spôsob reprezentácie jazyka a tým je reprezentácia jazyka generovaním.

Vráťme sa ešte k reprezentácii jazyka rozpoznávaním. Vďaka poslednej vlastnosti sa môže sprá-vať na vstupoch nepredvídateľne, t.j. napríklad, že nemusí vôbec skončiť a teda môže byťnerezultatívnou. Posledné je rozlišovacím kritériom pre jazyky. Inými slovami, jazyky rozlišujeme podľatoho, či majú ako svoj rozpoznávač iba nerezultatívnu procedúru , alebo majú rezultatívnu rozpoz-návajúcu procedúru. Vlastnosťou rezultatívnej procedúry na rozpoznanie jazyka je, že taká procedúraje povinná na ľubovoľnom vstupnom reťazci za konečný počet krokov (za konečný čas) doručiťbuď kladnú ( ), alebo zápornú odpoveď ( ). Teda rezultatívna procedúra na rozpoznaniejazyka musí mať tieto vlastnosti:

1. vstupom pre procedúru je ľubovoľný reťazec na abecede ;

2. procedúra je návod na rozpoznávanie toho, či reťazec , na vstupe je reťazec patriacim dojazyka ;

3. ak je na vstupe reťazec , procedúra za konečný počet krokov (za konečný čas) rozhodne,že patrí do ;

4. ak je na vstupe reťazec , procedúra za konečný počet krokov (za konečný čas) rozhodne,že nepatrí do .

Jazyky je možno charakterizovať pomocou ich reprezentantov ako to uvádzajú nasledujúce definície.

Definícia 2.3 Majme jazyk a jeho rozpoznávač ; jazyk je rekurzívne-prečísliteľnýak je procedúra. Ak je algoritmus (rezultatívna procedúra) potom jazyk je rekurzívny.

Procedúru budeme znázorňovať tak, ako je to na obr. 2.2b.

Obrázok 2.2: Reperezentácie jazyka rozpoznávaním R(L) a generovaním G(L)

Reprezentácia jazyka generovaním.

Page 22: skripta hudak 2002

22 Motivačné zdroje informatiky

Uvažujme opäť niektorý jazyk a procedúru . Budeme hovoriť, že procedúra reprezentujegenerovaním, ak má nasledujúce vlastnosti:

1. procedúra nemá žiadny vstup a má iba jeden výstup (obr. 2.2a);

2. procedúra generuje na svojom výstupe v ľubovoľnom poradí iba reťazce patriace do jazyka ažiadne iné;

3. niektorý reťazec môže generovať aj viackrát;

Pre jazyk procedúra s uvedenými vlastnosťami sa bude volať reprezentantom generovaním, alebojednoducho generátorom a budeme ju označovať . Grafická reprezentácia je na obr. 2.2a.

Medzi reprezentáciami jazykov rozpoznávaním a generovaním existuje tesný vzťah, k ustanoveniu kto-rého teraz pristupujeme.

Vzťah medzi reprezentáciami jazykov rozpoznávaním a generovaním

Predpokladajme najprv, že pre niektorý jazyk máme jeho generátor . V duchu Turing-Churchovej tézy nie je problém si predstaviť úpravu generátora tak, aby proces generovania slovjazyka bol riadený niektorou procedúrou, dajme jej meno , ktorá na svojom výstupe vydávahodnotu , ktorá je inkrementovanou hodnotou jej vstupnej premennej. Upravíme procedúru

tak, aby na svojom výstupe, na základe hodnoty na výstupe procedúry , povedzme , vy-dala reťazec jazyka v usporiadaní, podľa ktorého generuje reťazce jazyka . Takto upravenúprocedúru označíme . Opäť, s odvolaním sa na Turing-Churchovu tézu nie je ťažké zostrojiť rezul-tatívnu procedúru, ktorá porovnáva a ustanovuje totožnosť dvoch reťazcov na svojom vstupe; označmetakú procedúru . Na základe procedúr vytvoríme štruktúru, ako je uvedenéna obrázku 2.3

Obrázok 2.3: Konštrukcia podľa

Činnosť procedúry prebieha takto: pre hodnotu vydá na svoj výstup reťazec , ktorý jereťazcom jazyka a je i. reťazec v poradí, v ktorom generuje reťazce . Reťazec je vstupomprocedúry , spolu s reťazcom , príslušnosť ktorého k jazyku chceme ustanoviť. Procedúraza konečný čas vydá buď odpoveď ’Zno’, ak a teda , alebo ’Nie’, ak a teda .

Page 23: skripta hudak 2002

2.1 Jazyky a ich reprezentácie 23

V prípade, že vydá výstup ’NIE’, ktorý iniciuje zvýšenie hodnoty generovanej na výstupe, ktorá je impulzom pre na generovanie nového reťazca jazyka , ktorý je generovaný

v poradí ako i+1. reťazec a proces sa opakuje. Všimnime si, že usporiadanie procedúr na obr. 2.3 je nováprocedúra, ktorá má správanie ako procedúra . Skutočne, ak reťazec potom procedúravydá ako v poradí j. reťazec a teda po konečnom počte krokov, presnejšie po krokoch vydá na výstupe’ZNO’ o tom potvrdenie, že . Výstup ’ZNO’ procedúry je preto stotožnený s výsledkom

. Všimnime si však, že ak reťazec procedúra obr. 2.3 nikdy neskončí a je teda nerezultatívna.

Majme teraz procedúru -rozpoznávač jazyka . Pokúsime sa zostrojiť pre generátor jazyka .Prvá predstava o procedúre je na obrázku 2.4

Obrázok 2.4: Konštrukcia podľa :intuitívna predstava

Na obr. 2.4 procedúra je určená na vytvorenie kópie reťazca na svojom vstupe, ktorým jepráve vygenerovaný reťazec na abecede procedúrou , ktorá je generátorom jazyka . truktúraobr. 2.4, môže byť považovaná za procedúru avšak iba s ”ručením obmedzeným”. Skutočne,generuje, podobne ako v predošlom prípade, iba jeden reťazec a to práve ten, ktorý podľa usporia-dania vlastného procedúre zodpovedá hodnote na vstupe , t.j. hodnote výstupu procedúryINC(i), povedzme, že je to reťazec . Reťazec je podaný na vstup procedúry a súčasne navstup procedúry . Ak procedúra je povinná za konečný čas vydať na výstupe’ÁNO’ o tom informáciu, ktorá je vstupom pre procedúru , ktorá vydá kópiu na svoj výstup,ktorý je vlastne výstupom generátora . Výstup ’ZNO’ je zároveň aj vstupom pre , ktorejvýstup iniciuje generovanie ďalšieho reťazca - vstupu pre . Tento proces, ako aj správanienašej procedúry bude prebiehať naznačeným spôsobom do doby, kedy vy generuje na svojomvýstupe prvý taký reťazec , ktorý nie je reťazcom jazyka a na ktorom procedúra nemá rezul-tatívne správanie a teda môže pracovať neobmedzene dlho. Vonkajší pozorovateľ procedúry však nemánikdy, počas takého správania sa procedúry istotu, či ide o správanie, ktoré povedie k výsledku, t.j.rozpoznaniu testovaného reťazca, alebo ide o nerezultatívny proces. Toto predstavuje ’Achillovu pätu’navrhnutej procedúry a spomínané obmedzenie. Musíme preto urobiť určité úpravy navrhnutej konšt-rukcie, aby sme eliminovali takú ’patológiu’ v správaní. Východiskom je zavedenie určitých obmedzenína prípustnú dĺžku výpočtu, ktorú dovolíme procedúre pri rozpoznávaní aktuálneho reťazca na jejvstupe; inými slovami, pre každý reťazec dovolíme rozpoznávať ho iba určitý čas, povedzmečasových jednotiek ( krokov). Ak za takú dobu rozpozná, že COPY vygeneruje navýstupe a prejdeme na generovanie ďalšieho v poradí reťazca. V prípade, že sa tak nestane, procedúra

prestane pracovať nad rozpoznávaním a prejde k rozpoznávaniu nového reťazca, povedzmes novou prípustnou hranicou dĺžky výpočtu (procesu rozpoznávania), povedzme . Stratégia bude maťúspech, ak nájdeme spôsob systematického prehľadávania priestoru dvojíc . Ako ukážemetaký systematický spôsob sa dá nájsť.

Page 24: skripta hudak 2002

24 Motivačné zdroje informatiky

Spomínaný systematický spôsob je založený na existencii 1-1 a na kódovacích zobrazení (bijekcie)zobrazujúcich dvojice prirodzených čísel do oboru prirodzených čísel, ako kódov takých

dvojíc.

Uvažujme zobrazenie

Označme ; potom nasledujúce úpravy slúžia k dosiahnutiu vyjadrenia pre hľadané kódovaciezobrazenie.

(2.3)

Pri ďalších úpravách použijeme tieto označenia: - označuje najväčšie celé číslo také, že je menšie,alebo rovné ,a - označuje najmenšie celé číslo také, že je väčšie, alebo rovné . Nie je ťažké vidieť,že

(2.4)

Vzťah (2.4) vyjadruje ohraničenie výrazu zdola. Po určitých výpočtoch možno nájsť ajohraničenie výrazu zhora

Page 25: skripta hudak 2002

2.1 Jazyky a ich reprezentácie 25

(2.5)

. . . alej možno uskutočniť tieto úpravy:

(2.6)

Zavedieme si označenie

(2.7)

Z nerovnosti ( 2.6) hore plynie, že

(2.8)

Rovnicu (2.3) môžeme s použitím označenia (2.8) prepísať

(2.9)

Pravú stranu (2.9) označíme ako , t.j.

(2.10)

Napokon dostaneme sústavu dvoch rovníc

Riešenie sústavy je

(2.11)

(2.12)

Pravé strany (2.11) a (2.12) označujme ako , resp. , t.j.

(2.13)

(2.14)

Nie je ťažké sa presvedčiť, že zobrazenia sú bijektívne zobrazenia. Tabuľka naobr. 2.5 ilustruje povahu uvedených zobrazení

Page 26: skripta hudak 2002

26 Motivačné zdroje informatiky

Obrázok 2.5: Kódovacie zobrazenia

Teraz zorganizujeme procedúru generovania reťazcov jazyka podľa obr. ??. Povieme si niečo najprvo niektorých zložkách štruktúry na obr. ??.

Našu pozornosť si najprv zasluhujú tri komponenty: .

- je generátor jazyka upravený tak, že generuje iba jeden reťazec - podľa hodnoty vstup-nej premennej , a je to reťazec v lexikografickom usporiadaní reťazcov na abecede .

- je rozpoznávač jazyka , ktorý je rozšírený o mechanizmus riadenia dĺžky výpočtov ;procedúra má dovolené vykonať najviac krokov pri aktuálnom rozpoznávaní reťazca , pre

.

- je procedúra, ktorá vykonáva dve činnosti: inkrementuje hodnotu premennej - kód nie-ktorej dvojice prirodzených čísel a dekódovanie inkrementovanej hodnoty kódu, t.j. výpočet

a , ktoré sa stávajú aktuálnymi hodnotami premenných a - vstupných premennýchprocedúry a .

V zmysle Turing-Churchovej tézy také procedúry existujú a pri požiadaní ich vieme formálne opísať(vyjadriť). Navrhnutá procedúra pracuje takto:

1. inicializujeme ;

2. majme ; najprv inkrementuje , t.j. a vypočíta aktuálne hodnoty a , t.j.a pre aktuálnu hodnotu ;

3. vygeneruje reťazec , ktorý je vstupom ; procedúra má teraz dovolené začaťrozpoznávať , ale tento proces nesmie mať viac ako krokov. Tu môžu nastať dve situácie:procedúra rozpozná, že a vydá na výstup (prostredníctvom procedúry ),alebo nedospeje za krokov k výsledku a vtedy je jej činnosť prerušená, dochádza (na základevýstupu ’NIE’ procedúry ) k iniciovaniu procedúry .

Page 27: skripta hudak 2002

2.2 Gramatiky a jazyky 27

Obrázok 2.6: Procedúra generovania podľa

Je jasné, že každý reťazec bude rozpoznaný procedúrou , t.j. bude existovať taká dvojica, že a , kde je počet krokov, ktoré potrebuje procedúra (a teda aj )

na rozpoznanie reťazca . Existencia takej hodnoty je zaručená a plynie z definície . Bijektívnapovaha kódovacích zobrazení zaručuje požadovaný výber pre každý .

2.2 Gramatiky a jazyky

Gramatiky sú reprezentanti jazykov generovaním. Pojem formálnej gramatiky, v tom tvare ako ho uve-dieme nižšie, je spojený s menom známeho amerického lingvistu Noama Chomskeho a je založený nakoncepcii tzv. prepisovacích systémov amerického matematika E.Posta. Ako už bolo uvedené, ide ovýsledky riešenia problému prekladu prirodzených jazykov, napríklad preklad z angličtiny do slovenčiny.Tento problém nebol (a nie je dodnes) vyriešený, avšak pokus o formalizáciu tohto problému priviedolk vzniku teórie prekladu formálnych jazykov, predstaviteľmi ktorých sú programovacie jazyky - Fortran,Algol, Pascal, C, Ada, ML, Occam atp.

Problém rozkladu vety je nám dôverne známy zo základnej školy. Na obr. 2.7 je znázornený rozkladvety ’Eva má mamu’

Na najvyššej úrovni je vlastná veta pozostávajúca zo slov. Na nasledujúcej nižšej a ďalších úrovniachsa nachádzajú objekty, ktorými rozlišujeme povahu objektov na vyššej úrovni. Tak pod vlastnou vetousa nachádzajú tzv.slovné druhy, pod nimi sa nachádzajú vetné druhy, ďalej vetné časti, ktoré vytvárajúvetu. Objekty, alebo pojmy na všetkých úrovniach, okrem najvyššej, sú uvedené v zátvorkach (¡veta¿),zatiaľ čo slová vytvárajúce vetu sú bez zátvoriek. Týmto spôsobom sa rozlišujú objekty dvoch odlišnýchtypov: neterminálne symboly - objekty v zátvorkach a terminálne symboly - objekty bez zátvoriek. Procesvetného rozkladu na obr. 2.7 môžeme vyjadriť aj iným spôsobom, v tvare tzv. produkčných pravidiel.

Na najnižšej úrovni je vyjadrené to, že veta sa skladá z podmetovej a prísudkovej časti. To sa dávyjadriť takto:

podmetová časť prísudková časť (2.15)

Objekt ( 2.15) voláme produkčné pravidlo, alebo niekedy aj substitučné, nahradzovacie, alebo prepi-

Page 28: skripta hudak 2002

28 Motivačné zdroje informatiky

Obrázok 2.7: Vetný rozklad

sovacie pravidlo. Každé produkčné pravidlo pozostáva z troch častí: ľavá časť ( ), pravá časť( podmetová časť prísudková časť ) a symbol , ktorý hovorí, že ľavá časť môže byť nahradenápravou časťou. Vetný rozklad potom vyjadríme ako množinu produkčných pravidiel.

podmetová časť prísudková časťpodmetová časťprísudková časť prísudok

podstatné menoprísudok

podstatné menopodstatné menopodstatné meno

Substitučné pravidlá možno použiť na generovanie viet (fráz). Ukážeme to na príklade.

podmetová časť prísudková časť

prísudková časť

prísudok

podstatné meno

Ema prísudok

Ema

Ema má

Ema má podstatné meno

Ema má mamu

Page 29: skripta hudak 2002

2.2 Gramatiky a jazyky 29

Spôsob, ktorým sme demonštrovali použitie pravidiel sa volá odvodením; symbol znamená, že ideo krok odvodenia v ktorom je použité substitučné pravidlo . Teraz môžeme pristúpiť k formálnejšiemupopisu gramatík.

2.2.1 Formálne gramatiky

Formálne gramatiky, k definícii ktorých teraz pristúpime, sú predstaviteľmi jazykov generovaním. V ďa-lšom predpokladáme existenciu abecedy neterminálových symbolov - , abecedy terminálových symbolov- a potom môžeme definovať formálnu gramatiku takto:

Definícia 2.4 Formálna gramatika je daná 4 - icou

kde:

- je abeceda neterminálových symbolov

- je abeceda terminálových symbolov

- je štartovací symbol

- je množina substitučných pravidiel , t.j.

je ľavá strana pravidla pje pravá strana pravidla p

Uvažujme dva reťazce na abecede ; budeme hovoriť, že reťazec je odvoditeľnýza jeden krok z reťazca , ak platí, že a a gramatika má pravidlo .Niekedy hovoríme, že je odvoditeľný z za jeden krok použitím (pomocou) pravidla . Formálne tobudeme vyjadrovať takto: (alebo ak je jasné o ktorú ide, alebo jednoducho ak jepravidlo jasné, alebo nepodstatné). O dvoch reťazcoch na abecede budeme hovoriť,že reťazec je odvoditeľný z reťazca , ak platí, že existuje postupnosť reťazcovtakých, že pre všetky . Symbolicky to zapíšeme takto: . Budeme v ďalšomuvažovať iba také odvodenia, ktoré začínajú (vychádzajú) zo štartovacieho symbolu . Budeme volaťvetným tvarom alebo frázou gramatiky každý taký reťazec , že platí . Reťazec

o ktorom platí, že budeme volať vetou, alebo slovom gramatiky G. Množina všetkýchslov gramatiky je jazykom gramatiky , ktorý označujeme . Formálnejšie

Príklad 2.4 Majme gramatiku :

V je platné odvodenie

Vetné tvary gramatiky sú:

zatiaľ čo je slovom gramatiky a teda .

je ’zrkadlový’ obraz reťazca

Page 30: skripta hudak 2002

30 Motivačné zdroje informatiky

Gramatiky delíme podľa určitého kritéria, ktoré je dané vzťahmi medzi dĺžkami ľavých a pravých stránpravidiel. Konkrétnejšie: ak potom medzi ľavou a pravou stranou pravidla môže platiť

, alebo . Rozdelenie gramatík uvádza Tabuľka 2.1

Tabuľka 2.1: Rozdelenie gramatíkKritérium Typ gramatiky Názov gramatiky

0-gramatika frázová gramatika

1-gramatika kontextová gramatika

2-gramatika bezkontextová gramatika

pravidlá gramatikyvyhovujú schéme:

alebo

pre a

3-gramatika regulárna gramatika

Tabuľka 2.1: Rozdelenie gramatík

V príklade 2.4 je bezkontextová gramatika, o čom sa čitateľ môže jednoducho presvedčiť.

Budeme hovoriť, že

Jazyk je frázový ak je 0- gramatika a

Jazyk je kontextový ak je 1-gramatika a

Jazyk je bezkontextový ak je 2-gramatika a

Jazyk je regulárny ak je 3-gramatika a

Z definície formálnych gramatík a jazykov máme, že ak uvažujeme triedy jazykov nad rovnakou abe-cedou, povedzme , potom ak označíme triedu jazykov typu nad , potom platí,

.

Nasledujú príklady gramatík. Pri gramatikách používame ustálené označenia. Neterminálové symbolyoznačujeme veľkými písmenami A, B, S . . ., zatiaľ čo terminálové symboly sú malé písmená, alebo číslicea,b,c,. . .,0,1,. . .

Gramatika je regulárna gramatika o čom sa čitateľ presvedčí na základe porovnania definície regu-lárnych gramatík a tvaru pravidiel gramatiky . Skutočne, každé pravidlo vyhovuje schéme ,alebo . Podobne sa od čitateľa žiada určiť povahu jazyka , ktorý reprezentuje (generuje).

Page 31: skripta hudak 2002

2.2 Gramatiky a jazyky 31

Gramatika je bezkontextová gramatika pretože ľavá strana každého pravidla je neterminál a platí,že pravá strana každého pravidla nie je kratšia ako jeho ľavá strana. Podobne sa od čitateľa žiada určiťpovahu jazyka , ktorý reprezentuje (generuje).

Gramatika je kontextová gramatika, pretože ľavé strany niektorých pravidiel sú reťazce obsahujúceviac než iba neterminál (pravidlá ) a platí, že pravá strana každého pravidla nie je kratšiaako jeho ľavá strana. Od čitateľa sa žiada presvedčiť sa, že .

Všimnime si rozdiely medzi regulárnou ( ), bezkontextovou ( ) a kontextovou ( ). Názov po-slednej vyjadruje to, že povaha nahradzovania (substitúcie) závisí od okolia (kontextu) nahradzovanejčasti.

Uvedené rozdelenie gramatík a jazykov je základom pre tzv. Chomskeho hierarchiu jazykov.

Tabuľka 4.2.1: Chomskeho hierarchia jazykov (gramatík a automatov)Jazyky Gramatiky Akceptory Iné

Typ Názov Typ Názovrekurzívneneprečísliteľné

- - - -

0 frázové 0 frázovéTuringovestroje

-

1 kontextové 1 kontextové

LineárneohraničenéTuringovestroje

-

2 bezkontextové 2 bezkontextovéZásobníkovéautomaty

-

3 regulárne 3 regulárneKonečnéautomaty

Regulárnevýrazy

Tabuľka 2.2: Rozdelenie gramatík

Page 32: skripta hudak 2002

32 Motivačné zdroje informatiky

2.2.2 Vybrané vlastnosti gramatík a jazykov

Začneme jednou zaujímavou vlastnosťou gramatík.

Lemma 2.1 Ku každej gramatike sa nájde gramatikas vlastnosťou, že štartovací symbol sa nebude vyskytovať na pravej strane žiadneho pravidla v a

.

Majme gramatiku (typ nie je podstatný); podľa vytvoríme gramatikutýmto spôsobom:

ak je v potom je v

ak je v potom je v

Máme teda, že a .V gramatike máme nový štartovací symbol, ktorý sa nevyskytuje na pravej strane žiadneho pravidlav . Predpokladajme teraz, že máme slovo ; to znamená, že . Posledné odvodeniebude mať aspon jeden krok a preto ho možno predstaviť ako . V prvom kroku tohotoodvodenia bol urobený prvý krok s použitím pravidla z množiny pravidiel gramatiky. Podľa algoritmu konštrukcie gramatiky však potom v sa nachádza pravidlo , čo dovoľujevykonať v krok odvodenia . V druhej časti odvodenia slova v sa nevyskytuje a jerealizované s použitím pravidiel z , ktoré sa vyskytujú aj v , čo znamená, že v jestvuje odvodenie

. Toto spolu s prvým krokom dáva odvodeneie . Posledné odvodenie aledokazuje, že a máme teda, že .

Predpokladajme teraz, že slovo , čo znamená, že v máme odvodenie . Takako v predošlom prípade, toto odvodenie bude mať aspon jeden krok a preto ho možno predstaviť ako

. V prvom kroku tohoto odvodenia bol urobený prvý krok s použitímpravidla z množiny pravidiel gramatiky . Všimnime si, že reťazec neobsahuje ,čo implikuje, že v druhej časti odvodenia t.j. v nebude použité pravidlo s ľavou stranouobsahujúcou ; posledné znamená, v tejto časti odvodenia budú použité iba pravidlá gramatiky .Inými slovami .

Prvý krok odvodenia bol vykonaný s použitím pravidla z množiny pravidiel . Podľa algo-ritmu konštrukcie gramatiky však potom v sa nachádza pravidlo , čo dovoľuje vykonať vkrok odvodenia . To spolu s predošlým zabezpečuje existenciu odvodenia . Znamená tovšak, že a máme teda, že . Spolu s predchádzajúcou inklúziousme teda dokázali , že . �

Nasledujúci príklad objasňuje výsledok uvedený v Leme 2.2.2.

Page 33: skripta hudak 2002

2.2 Gramatiky a jazyky 33

Príklad 2.5

Jazyk , čo zaručuje Lema 2.2.2. Nie je ťažko sa presvedčiť, že .

Výsledok Lemy 2.2.2 nám dáva možnosť začleňovať prázdny reťazec do kontextových (a tým aj dobezkontextových a regulárnych) jazykov, prípadne ho odtiaľ aj odstrániť. K tomu aby sme mohli prázdnyreťazec začleniť do jazyka stačí upraviť jeho gramatiku tak ako to uvádza Lema 2.2.2. K novejgramatike pridáme jednoducho pravidlo . Naopak, predpokladajme žemáme (kontextový) jazyk s gramatikou a nech obsahuje prázdnyreťazec . Keďže je kontextová gramatika, jediný spôsob začlenenia do je prítomnosť pravidla

, pričom sa nevyskytuje na pravej strane žiadneho pravidla. Odstránenie z vykonámejednoducho odtránením pravidla . Vzniknutá takto nová gramatika bude generovať teraz jazykneobsahujúci prázdny reťazec , t.j. .

Rekurzívnosť kontextových jazykov

Úvodom pripomenieme, že podľa povahy rozpoznávačov jazykov rozlišujeme tzv.rekurzívne prečísliteľnéalebo rekurzívne jazyky podľa toho, či rozpoznávač je procedúrou alebo algoritmom (v úzkom zmysle).V tejto časti ukážeme, že každý kontextový (a teda aj bezkontextový a regulárny) jazyk je rekurzívny.Inými slovami, že trieda kontextových jazykov je triedou rekurzívnych jazykov. Z hľadiska praktickéhomá také konštatovanie vážny význam, lebo z neho plynie záver, že pre každý kontextový (a teda aj bez-kontextový a regulárny) jazyk bude existovať rezultatívna procedúra jeho rozpoznávania, ktorá umožňujekonštrukciu prekladača pre taký jazyk.

Začneme úvahou o povahe vetných tvarov, ktoré je možno odvodiť v niektorej kontextovej gramatike, ktorú pre ďalšie účely budeme považovať za pevne danú. Predpokladajme, že máme

postupnosť vetných tvarov ktoré sú odvoditeľné v . Inými slovami povedané nech

(2.16)

V odvodení( 2.16) je v každom kroku použité niektoré pravidlo gramatiky . Pretože v kontextovejgramatike o každom pravidle platí, že , potom v odvodení ( 2.16) dĺžky vetných tvarovvytvárajú monotónne neklesajúcu postupnosť, t.j. pre každé . Na druhej strane

Page 34: skripta hudak 2002

34 Motivačné zdroje informatiky

Algoritmus: Rozpoznávač kontextových jazykovVstup:Výstup: Áno, ak

Nie, akTelo algoritmu:1.krok: Vytvorte2.krok: Nech

Vytvorte:

3.krok: if thenbegin

goto 2.krokend

elsegoto 4.krok

4.krok:5.krok: if then

else4.krok: STOP.

Obrázok 2.8: Algoritmus na rzpoznávanie kontextových jazykov

a je konečná množina. Pre určitosť predpokladajme, žea uvažujme reťazce na abecede . Pre pevne dané máme, že existuje reťazcov dĺžky naabecede . Predstavme si odvodenie v gramatike vetného tvaru o dĺžke . Tvrdíme,že každý taký vetný tvar možno odvodiť niektorým odvodením, dĺžka ktorého nepresiahne určitú hranicu.Majme teda odvodenie

(2.17)

Nech

(2.18)

bude časťou odvodenia ( 2.17) obsahujúca iba reťazce dĺžky a je prvý vetný tvar dĺžky , ktorý savyskytuje v ( 2.17). Malo by byť jasné, že naľavo od sa v ( 2.17) nebude vyskytovať žiadny reťazecdĺžky a ak z je odvodený vetný tvar dĺžky väčšej než potom žiadny reťazec dĺžky sa nebudev ( 2.17) nachádzať ani napravo od . Predpokladajme na chvíľu, že dĺžka vybratej časti odvodenia( 2.18) prevyšuje . To ale znamená, že v ( 2.18) vyskytujú dva vetné tvary a a také,že a platí, že . Posledné nám umožňuje skrátiť časť odvodenia ( 2.18) a nahradiť hokratšou časťou

(2.19)

Tento postup môžeme opakovať dovtedy pokým časť odvodenia ( 2.19) nebude kratšia ako .Skracovanie možno uplatniť pre všetky časti odvodenia ( 2.17) pre všetky hodnoty . Výslednéodvodenie vetného tvaru potom nepresiahne hranicu

Na tomto poznatku o odvodeniach v kontextových gramatikách je založený algoritmus rozpoznávaniakontextového jazyka (Obr. 2.8).

Množina obsahuje všetky také vetné tvary, ktoré sú odvoditeľné v za najviac krokov a dĺžkaktorých nepresahuje . Spôsob tvorby v 3. kroku je založený na operácii (množinové zjednotenie),

Page 35: skripta hudak 2002

2.2 Gramatiky a jazyky 35

ktoré vylučuje tie vetné tvary, ktoré boli odvodené dlhšími odvodeniami než sú tie, ktoré produkujú vetnétvary a sú už obsiahnuté v .

Dokážeme teraz, že navrhnutá procedúra je rezultatívna. Všimnime si, že pre každé(2. krok). Pretože reťazcov konečnej dĺžky je konečne veľa a každý vetný tvar musí byť odvodený

niektorým odvodením s počtom krokov nepresahujúcim určitú hranicu, procedúra v 2. kroku nám zaručípre každý vetný s dĺžkou neprevyšujúcou , že bude v niektorom kroku vygenerovaný a bude prvkom

pre niektoré . Preveríme, že kritérium uplatňované v 3. kroku zaručí pri jeho negáciikorektné ukončenie procedúry. Skutočne, predpokladajme, že tomu tak nie je, t.j. ženie je vhodnou podmienkou pre ukončenie činnosti našej procedúry. To znamená, že sa

nájde taký index , že bude platiť toto:

(2.20)

Reťazec rovností ( 2.20) ale znamená, že v sa nájde taký reťazec , o ktorom platí, že sanevyskytuje v žiadnej z naľavo sa vyskytujúcich množín v ( 2.20) a . Na druhej strane to znamená,že v sa nájde taký reťazec , že . Z ( 2.20) ale okamžite máme, že pre každé

, a teda . Posledné implikuje, že , a to je spor s našim predpokladoma ( 2.20). Uzavierame preto, že je dobré kritérium na ukončenie činnosti procedúry a tátovždy skončí svoju činnosť s príslušným výsledkom (5. krok).

Dokázali sme tento výsledok:

Veta 2.2 Každý kontextový jazyk je rekurzívny jazyk, t.j. existuje rezultatívna procedúra ako rozpoz-návač , ktorú je možno na základe kontextovej gramatiky jazyka efektívne zostrojiť.

Algoritmus má tri parametre: kontextová gramatika

, a . Na obr. 2.9 je grafická reprezentácia algoritmu narozpoznávanie kontextových jazykov.

Obrázok 2.9: Rozpoznávač kontextových jazykov

Page 36: skripta hudak 2002

36 Motivačné zdroje informatiky

Na ilustráciu algoritmu uvedieme príklad.

Príklad 2.6 Majme gramatiku

G je kontextová gramatika

Reťazec testovaný na príslušnosť k L(G):

Realizácia algoritmu:

Výsledok testu na príslušnosť reťazca k jazyku je pozitívny. Tento reťazec sa nachádzav množine .

Page 37: skripta hudak 2002

Kapitola 3

Konečné automaty.

Koncepcia abstraktných konečno-stavových strojov má svoj zrod na konci 30. rokov 20. storočia. Tietostroje v ďalšom budeme volať konečnými automatmi. K pochopeniu podstaty tejto koncepcie prispelivedci z rôznych oblastí: architektúra reléových systémov a počítačov, neurofyziológia, matematika a lin-gvistika.

Prvotným stimulom k štúdiu konečných automatov bola potreba teórie analýzy a návrhu zložitýchtelefónnych reléových systémov. Vznik strojov na spracovanie informácií a ich použitie pre účely ko-munikačné a výpočtové sa vyznačovalo tým, že také systémy pracujú s diskrétnymi symbolmi (písmená,číslice), sú deterministickej povahy, čo znamená že sa vylučuje náhodné správanie (pri kódovaní správmusí kódovač transformovať daný symbol vždy rovnako; počítač interpretuje danú inštrukciu vždy rovna-ko). Také stroje sú vytvorené vzájomným prepojením veľkého počtu prvkov s obmedzeného počtu typov(logické obvody). Diskrétne symboly sú reprezentované hodnotami fyzikálnych veličín (prúd, napätie) zurčitého pevne daného intervalu, alebo kombinácií konečného počtu takých veličín. Ďalším významnýmtypom systémov, ktoré je možno modelovať takými strojmi sú napríklad nervové systémy, ktorými sú vy-bavené živé organizmy. K nemalému prekvapeniu sa ukázalo, že procesy z oblasti jazykovej (lingvistika)sú modelovateľné na takých strojoch. Ukázalo sa, že abstraktým modelom takých systémov sú konečnéautomaty.

3.1 Konečné automaty s výstupom.

Konečný automat je možno chápať ako určitý mechanizmus (Obr. 3.1) pozostávajúci z troch častí:riadiaci blok , vstupný kanál, výstupný kanál.

Obrázok 3.1: Mechanická predstava konečného automatu

Riadiaci blok sa vyznačuje okrem iného tým, že v každom čase (s výnimkou určitých časovýchmomentov-časových bodov) sa môže nachádzať v jednom z konečného počtu stavov. Vstupný kanálslúži na zavádzanie informácie z okolitého prostredia do , zatiaľ čo výstupný kanál slúži na vydávanieinformácie z do okolitého prostredia.

37

Page 38: skripta hudak 2002

38 Konečné automaty.

Činnosť konečného automatu je realizovaná v diskrétnom čase . Vo všeobecnosti, pridiskrétnom čase nás nezaujíma vzťah k reálnemu času, ale iba tá skutočnosť, že činnosť automatu v(diskrétnom) čase predchádza činnosť automatu v (diskrétnom) čase a nasleduje po činnostiautomatu v (diskrétnom) čase . Položme - hodnotu vstupnej informácie v konečnom automatev čase , - hodnotu výstupnej informácie v konečnom automate v čase , a - hodnotu

stavovej premennej v konečnom automate v čase . Musíme uviesť niekoľko poznámok k právedefinovaným hodnotám: zatiaľ čo a sú definované v časovom bode , hodnota je definovanáv (otvorenom) intervale a nie je definovaná v časových bodoch a . Činnosť konečnéhoautomatu sa skladá z krokov. Krok sa definuje v jednotlivých bodoch diskrétnej časovej osi (Obr. 3.2) apre bod to bude definované takto: , ktorý sa nachádza v stave a na vstupe má , prejdedo stavu a na výstupe vydá hodnotu .

Obrázok 3.2: Interpretácia kroku v diskrétnom čase

Symbolicky budeme krok činnosti konečného automatu vyjadrovať

Teraz pristúpime k formálnej definícii jednej triedy konečných automatov s výstupom- konečným au-tomatom Mealy.

3.1.1 Konečné automaty s výstupom Mealy.

Začneme s formálnou definíciou

Definícia 3.1 Konečný automat Mealy je daný 5 - icou kde- konečná množina stavov- vstupná abeceda- výstupná abeceda- prechodová funkcia- výstupná funkcia

Page 39: skripta hudak 2002

3.1 Konečné automaty s výstupom. 39

je úplne definovaný ak a sú totálne funkcie.je iniciálny konečný automat (Mealy) ak je vybratý tzv. iniciálny (počiatočný) stav , v ktoromzapočne svoju činnosť. V tom prípade sa definícia automatu rozšíri o tento počiatočný stav, t.j.

.

Argumenty a hodnoty funkcií a sa vzťahujú k diskrétnemu času a sú interpretované takto:a . O budeme hovoriť, že je s - nasledovní-

kom stavu a voláme odozvou v čase na vstupný stimul . Vzhľadom na konečnúpovahu sú konečné objekty a tým aj reprezentovateľné konečným spôsobom, napríklad ta-buľkou, alebo inou reprezentáciou (grafom).

Reprezentácie konečného automtu Mealy.

Automat Mealy môže byť reprezentovaný niekoľkými spôsobmi:

tabuľkami funkcií

prechodovou tabuľkou

stavovým diagramom

Tabuľka funkcií je matematickou reprezentáciou automatu Mealy. spočíva v zadaní tabuliekfunkcií (viď obr. 3.3). Vzhľadom na konečnú povahu týchto funkcií je to vždy možné. Na obr. 3.5a)je príklad tabuľkovej reprezentácie konkrétneho konečného automatu Mealy.

Obrázok 3.3: Tabuľková reperezentácia prechodovej a výstupnej funkcie automatu Mealy

Prechodová tabuľka. Prechodová tabuľka je vytvorená (obr. 3.4) z riadkov a stĺpcov( označuje počet prvkov v abecede ). Riadky(stĺpce) zodpovedajú symbolom abecedy ( ) akaždý riadok(stĺpec) je označený zodpovedajúcim symbolom abecedy ( ).

Obrázok 3.4: Reprezentácia automatu Mealy prechodovou tabuľkou

Page 40: skripta hudak 2002

40 Konečné automaty.

Obrázok 3.5: Reperezentácia konkrétneho automatu Mealy tabuľkou funkcií a prechodovou tabuľkou

Príklad prechodovej tabuľky je na obr. 3.5b). Všimnime si, že prechodová tabuľka na obr. 3.5b) atabuľková reprezentácia na obr. 3.5a) patria tomu istému konečnému automatu Mealy.

Stavové diagramy. Stavový diagram je orientovaný graf, vrcholy ktorého sú označené stavmi automatua hrany sú označené dvojicou symbolov pričom tak, že hrana

bude označená dvojicou práve vtedy ak a (obr. 3.6)). Počiatočnémustavu zodpovedá vrchol označený , do ktorého vedie z odnikiaľ vedúca hrana (ovšem do počiatočnéhostavu môžu viesť aj hrany z iných stavov(vrcholov)). Príklad stavového diagramu automatu, ktoréhoreprezentácia je privedená na obrázkoch ( 3.5 a 3.28) je uvedený na obr.( 3.8)).

Obrázok 3.6: Stavový diagram automatu Mealy

Pre niektoré účely, ktoré nám budú jasné pozdejšie, potrebujeme definíciu tzv. zovšeobecnenej pre-chodovej a výstupnej funkcie automatu Mealy.

prázdny symbol

prázdny symbol

Obrázok 3.7: Zovšeobecnené funkcie automatu Mealy .

Konečno-automatové zobrazenia.

Page 41: skripta hudak 2002

3.1 Konečné automaty s výstupom. 41

Každému automatu Mealy môžeme priradiť zobrazenie , ktorédefinujeme takto:

(3.1)

Zobrazenie podľa definície ( ??) voláme konečno-automatovým zobrazením, alebo jednoduchoautomatovým zobrazením automatu Mealy .

Teraz poukážeme na niektoré vlastnosti automatových zobrazení . Budeme hovoriť o dvochreťazcoch , že je predponou(prefixom) reťazca - symbolicky , ak platí, že preniektorý reťazec . O ľubovoľnom zobrazení hovoríme, že zachováva dĺžku, ak platí

. Ak pre ľubovoľné zobrazenie platí, že implikuje ,potom hovoríme, že je sekvenčné zobrazenie. Platí táto veta.

Theorem 3.1 Majme automat Mealy a automatové zobrazenie , potomplatí, že zobrazenie je sekvenčné a zachovávajúce dĺžku zobrazenie.

Dôkaz: Najprv dokážeme, že zachováva dĺžku. V ďalšom predpokladáme, že automat Mealyje úplne definovaný automat. Nie je ťažké vidieť, že z úplnej definovanosti

plynie totálnosť . Dôkaz vedieme indukciou podľa dĺžky reťazcov.Báza indukcie. . V takom prípade a tvrdenie platí. Podobne pretvrdenie platí. Skutočne, predpokladajme že a ; potom . Pretože

pre niektoré platí .Hypotéza indukčného kroku. Predpokladajme, že pre všetky reťazce také, že platí, že

. Majme teraz reťazec a nech . Reťazec sa dá vyjadriť akopričom .

Uvažujme teraz . Podľa definície( 3.7)

Podľa definície( 3.1) a hypotézy indukčného kroku máme, že

(3.2)

(3.3)

Podľa definície ( 3.1) a ( 3.3) máme a hypotéza indukcie platí aj prea dostávame výsledok.

Majme teraz reťazce také, že , t.j. máme reťazec pre ktorý platí, že .Nasledujúce rovnosti vyplývajú z definície funkcií a

kde

Máme teda, že

(3.4)

Dokázali sme, že je sekvenčné a zachovávajúce dĺžku zobrazenie.

Page 42: skripta hudak 2002

42 Konečné automaty.

Príklad 3.1 Na obr. 3.8 je uvedený stavový diagram konečného automatu Mealy . Iné rereprezentácietohoto automatu sú na obr. 3.5 a 3.28. Automat má 3 stavy , jeho vstupná a výstupná abecedasú totožné . Automat na svojom vstupe prijíma reťazec ; po prijatísymbolu na vstupe (v čase ) automat bez ohľadu na to, v ktorom stave sa nachádza (v čase )zotrváva v tomto stave (v čase ). Naopak, po prijatí symbolu na vstupe (v čase ) automatprechádza (v čase ) do stavu (resp. alebo ), ak sa nachádzal (v čase ) v stave (resp.

alebo ). Odozvy, ktoré vydáva na svojom výstupe sa dajú charakterizovať takto: symbolje odozvou , ak následovníkovým stavom je , ináč je odozva . Označme si - počet výskytovv reťazci (analogicky pre počet výskytov ), potom môžeme povedať, že ’ráta’

. Skutočne, bude (v čase ) v stave ak , t.j. počet v reťazcije deliteľný bez zvyšku; bude (v čase ) v stave ak ,

t.j. počet v reťazci je deliteľný so zvyškom ; ; bude (v čase ) v staveak , t.j. počet v reťazci je deliteľný so zvyškom . Na

tomto základe systém, ktorý sa správa tak, ako sme práve popísali, teda ako , sa zvykne vo výpočtovejtechnike označovať ako počítadlo modulo 3.

Obrázok 3.8: Stavový diagram konečného automatu Mealy - počítadlo modulo 3

Činnosť automatu Mealy sa dá vyjadriť výpočtom. Majme postupnosť stavov

(3.5)

O postupnosti( 3.5) hovoríme, že je prípustnou postupnosťou stavov (pps) v konečnom automate Me-

aly (vzhľadom na reťazec a odozvu ) , ak platí, že. Tento fakt zvykneme vyjadrovať

(3.6)

a hovoriť, že automat má výpočet , alebo, že inicialny konečný automat Mealy má navstupný reťazec odozvu , pričom tomuto výpočtu zodpovedá pps( 3.5).

O stave v iniciálnom automate hovoríme, že je nedosiahnuteľný v právevtedy, ak neexistuje žiadna prípustná postupnosť stavov vedúca z do . Inými slovami a formálnejšie

Na druhej strane o stave v iniciálnom automate hovoríme, že je pascovýstav, ak platí, že z neexistuje prechod do žiadneho iného stavu v v automate . Inými slovamia formálnejšie

Page 43: skripta hudak 2002

3.1 Konečné automaty s výstupom. 43

Výpočet automatu sa dá charakterizovať aj pomocou zobrazenia .

(3.7)

Príklad 3.2Pre automat z obr.( 3.8) privedieme teraz niekoľko výpočtov, aby sme ilustrovali zavedené pojmy a čin-nosť samotného automatu.

3.1.2 Konečné automaty s výstupom Moore.

Poznáme dva typy konečných automatov s výstupom. S automatom Mealy sma sa zoznámili v predo-šlej kapitole. V tejto sa budeme venovať automatom Moore. Automat Moore sa odlišuje od automatuMealy v tom, že jeho odozva na výstupe (v čase ) je určená jednoznačne jeho stavom (v čase ). Všetkyostatné pojmy sú totožné s automatom Mealy.

Definícia 3.2 Konečný automat Moore je daný 5 - icou kde- konečná množina stavov- vstupná abeceda- výstupná abeceda- (zovšeobecnená) prechodová funkcia- výstupná funkcia

je úplne definovaný ak a sú totálne funkcie.je iniciálny konečný automat (Moore) ak je vybratý tzv. iniciálny (počiatočný) stav , v ktoromzapočne svoju činnosť. V tom prípade sa definícia automatu rozšíri o tento počiatočný stav, t.j.

.

Argumenty a hodnoty funkcií a sa vzťahujú k diskrétnemu času a sú interpretované rovnako akosme to uviedli pri definícii automatu Mealy, t.j. . Výstupná funkciaa to znamená, že automat Moore má, na rozdiel od automatu Mealy, definovanú odozvu aj v čase ,pretože jeho odozva závisí iba od stavu .

Reprezentácie konečného automtu Moore.

Automat Moore, podobne ako automat Mealy, môže byť reprezentovaný niekoľkými spôsobmi:

tabuľkami funkcií

prechodovou tabuľkou

stavovým diagramom

Page 44: skripta hudak 2002

44 Konečné automaty.

Tabuľka funkcií je matematickou reprezentáciou automatu Moore a spočíva v zadaní tabuliekfunkcií . Vzhľadom na konečnú povahu týchto funkcií je to vždy možné. Na obr. 3.9a) je príkladtabuľkovej reprezentácie automatu Moore. Všimnime si stĺpec funkcie , v ktorom rovnakému cieľovémustavu zodpovedajú rovnaké odozvy.

Obrázok 3.9: Reperezentácia automatu Moore pomocou tabuliek funkcií, resp. tabuľkou prechodov

Prechodová tabuľka. Prechodová tabuľka je vytvorená (obr. 3.9b)) z riadkov astĺpcov ( označuje počet prvkov v abecede ). Riadky zodpovedajú symbolom abecedy a každýriadok je označený zodpovedajúcim symbolom abecedy . Zvláštnosťou prechodovej (stavovej) tabuľkyautomatu Moore je, že v poli je iba následovník a odozva, vzhľadom na povahu výstupnej funkcie

, je uvedená nad menom stavu, ktorý označuje daný stĺpec. To znamená, že v automate Mooremá odozva rovnakú povahu, ako stavová premenná. Inými slovami, v automate Moore hodnotavstupnej premennej je definovaná v čase , zatiaľ čo premenné a sú definované naotvorenom intervale .

Stĺpce prechodovej tabuľky automatu Moore sú označené stavmi automatu , ale v skutočnosti ide ooznačenie prvkami ; prvok stojaci nad menom stavu je hodnota výstupnej funkcie . Prechodovátabuľka automatu Moore môže byť predstavená aj v tvare podobnom pre automat Mealy (obr. 3.10 ).

Obrázok 3.10: Reprezentácia automatu Moore prechodovou tabuľkou v tvare Mealy

Príklad prechodovej tabuľky automatu Moore je na obr. 3.11. Všimnime si, že prechodová tabuľka v

Page 45: skripta hudak 2002

3.1 Konečné automaty s výstupom. 45

príklade zodpovedá tabuľkovej reprezentácii na obr. 3.9.

Obrázok 3.11: Prechodová tabuľka automatu Moore

Stavové diagramy. Stavový diagram automatu Moore je orientovaný graf,vrcholy ktorého sú označené dvojicou , kde . Hrany sú označené symbolmi abecedypričom tak, že hrana bude označená práve vtedy ak a a(obr. 3.12)). Počiatočnému stavu zodpovedá vrchol označený , do ktorého vedie z odnikadiaľ vedúcahrana (ovšem do počiatočného stavu môžu viesť aj hrany z iných stavov(vrcholov)).

Obrázok 3.12: Stavový diagram automatu Moore

Príklad stavového diagramu automatu, ktorého reprezentácia je privedená na obrázku ( 3.11) je uvedenýna obr.( 3.13b)).

Činnosť automatu Moore sa dá, podobne ako v prípade automatu Mealy,vyjadriť výpočtom. Majme postupnosť stavov

(3.8)

O postupnosti( 3.8) hovoríme, že je prípustnou postupnosťou stavov (pps) v konečnom automate Moore

(vzhľadom na reťazec a odozvu ) , ak platí, že. Tento fakt zvykneme vyjadrovať

(3.9)

a hovoriť, že automat má výpočet , alebo, že inicialny konečný automat Moore má navstupný reťazec odozvu , pričom tomuto výpočtu zodpovedá pps ( 3.8). Všimnime si rozdiel vcharaktere odozvy , dĺžka ktorej je pretože automat Moore má odozvu aj v stave

Page 46: skripta hudak 2002

46 Konečné automaty.

Obrázok 3.13: Príklad stavového diagramu automatu Moore

. Aby sme mohli vyjadriť pomery v automate Moore pomocou koncepcie konečno - automatovéhozobrazenia, tak ako sme to robili v prípade automatu Mealy, definujeme si výstupnú funkciu atomatuMoore v upravenom tvare, ktorý pripomína definíciu výstupnej funkcie pra automat Mealy. Všimnimesi, že výstupná funkcia automatu Moore

(3.10)

Argument možno vyjadriť pomocou prechodovej funkcie

(3.11)

ak dosadíme ( 3.11) do ( 3.10)

(3.12)

ľavú stranu ( 3.12) vyjadríme teraz ako funkciu argumentov

(3.13)

Funkcie a možno chápať definovanými na obore . Teraz môžemedefinovať zobrazenie pre automat Moore .

(3.14)

V ( 3.14) predpokladáme, že .

Výpočet automatu Moore sa dá charakterizovať takto:

(3.15)

(3.16)

(3.17)

Príklad 3.3Pre automat Moore z obr.( 3.11) privedieme teraz niekoľko výpočtov, aby sme ilustrovali zavedené

Page 47: skripta hudak 2002

3.1 Konečné automaty s výstupom. 47

pojmy a činnosť samotného automatu.

Všimnime si povahu odozvy v čase , ktorá je v obidvoch pps rovnaká, pretože obidve začínajúv rovnakom stave - .

3.1.3 Podobnosť konečných automatov Moore a Mealy

Uvažujme teraz dva konečné automaty typu Mealy a Moore , resp.. Ukázali sme, že automatyMealy a Moore

realizujú určité zobrazenia resp. typu . I keď automaty amajú spoločné črty, majú aj určité odlišnosti. Zavedieme teraz reláciu podobnosti

medzi dvomi typmi automatov.

Definícia 3.3 Majme dva úplne definované konečné automaty typu Mealy a Moore ,resp. . Budeme hovoriť, že je podobný (a naopak je podobný )práve vtedy ak

kde .

Nie je ťažké sa presvedčiť, že automaty na obr.( 3.8) a ( 3.13) sú podobné. Platí nasledujúci výsledok,ktorý dokážeme.

Theorem 3.2 Ku každému automatu Moore sa nájde podobný automat Mealy a naopak, kukaždému automatu Mealy sa nájde podobný automat Moore .

Dôkaz: (Moore Mealy )Majme automat Moore . Zostrojíme, na základe podobný automat Mealy

. Konštrukcia je relatívne jednoduchá (obr. 3.14) a bola nami už realizovanávyššie, pri definovaní funkcie .

Formálnejšie:

Tým je konštrukcia automatu zavŕšená. Zostáva dokázať, že je podobný .Dôkaz budeme viesť indukciou podľa dĺžky výpočtov .

Page 48: skripta hudak 2002

48 Konečné automaty.

Obrázok 3.14: Konštrukcia podobného automatu Moore

Báza indukcie:Očividne platí

(3.18)

(3.19)

Z ( 3.18) plynie, že . Na druhej strane z ( 3.19) máme, že . Toto spolu

dáva a tým je báza indukcie dokázaná.

Hypotéza indukcie:Predpokladajme, že platí

(3.20)

Inými slovami hypotéza ( 4.37) môže byť vyjadrená takto:

(3.21)

Uvažujme teraz výpočet v pre niektorý reťazec a nech

(3.22)

Výpočet ( 3.22) môže byť vyjadrený takto:

(3.23)

kde sa predpokladá, že a . Ľavá časť ( 3.23) spĺňa podmienky hypotézy ( ) apreto platí

(3.24)

Na druhej strane, posledný krok ( 3.23) implikuje . Toto spolu s ( 3.24) nám dáva, že

Page 49: skripta hudak 2002

3.1 Konečné automaty s výstupom. 49

(3.25)

Predpokladajme teraz, že v automate máme teraz výpočet pre niektorý reťazec a nech

(3.26)

Výpočet ( 3.26), podobne ako v predošlom prípade, môže byť vyjadrený takto:

(3.27)

kde sa predpokladá, že a . Ľavá časť ( 3.27) spĺňa podmienky hypotézy ( )a preto platí

(3.28)

a . Na druhej strane, posledný krok ( 3.27) implikuje . Toto spolu s ( 3.28) námdáva, že

(3.29)

Dokázali sme teda, že hypotéza indukčného kroku platí aj pre reťazce na vstupnej abecede dĺžky.

Mealy ( Moore )Konštrukcia podobného automatu Moore podľa automatu Mealy je zložitejšia oproti tomu, čosme videli pri dôkaze vety v smere (Moore ( Mealy).

Začneme konštrukciou automatu Moore podľa automatu Mealy . Nech automata automat Mealy . Potom

(3.30)

(3.31)

pre niektoré (3.32)

Týmto je konštrukcia automatu Moore zavŕšená. Všimnime si, že stavy automatu sú usporia-

dané dvojice . Jasnejšiu predstavu nám podáva obr.( 3.15). Vidíme, že jednému prechoduv automate Mealy zodpovedá celá množina prechodov pre všetky v automateMoore , ktoré majú tú vlastnosť, že majú spoločný -následovník , ktorého -predchodcamisú všetky stavy automatu Moore majúce prvú zložku stav , t.j. stavy pre každý .Kandidátom na počiatočný stav automatu je ktorýkoľvek stav pre ľubovoľný , t.j.existuje možných počiatočných stavov automatu .

Pristúpime k dôkazu podobnosti automatov.

Page 50: skripta hudak 2002

50 Konečné automaty.

Obrázok 3.15: Konštrukcia podobného automatu Moore podľa automatu Mealy

Dôkaz vedieme opäť matematickou indukciou podľa dĺžky výpočtov v automate .

Báza indukcie:

Uvažujme výpočet dĺžky v automate

(3.33)

Podľa ( 3.30) čo znamená že v existuje výpočet

(3.34)

Z ( 3.34) plynie, že , kde . Na druhej strane z ( 3.33) máme, že .

Toto spolu dáva a tým je báza indukcie dokázaná.

Hypotéza indukcie:Predpokladajme, že platí

(3.35)

kde

Hypotéza ( 3.35) môže byť vyjadrená takto:

(3.36)

kde a .

Predpokladajme teraz, že v automate máme teraz výpočet pre niektorý reťazec a nech

(3.37)

Výpočet ( 3.37) môže byť vyjadrený takto:

Page 51: skripta hudak 2002

3.1 Konečné automaty s výstupom. 51

(3.38)

kde sa predpokladá, že a . Ľavá časť ( 3.38) spĺňa podmienky hypotézy ( )a preto platí

(3.39)

kde a

Na druhej strane, posledný krok ( 3.38) implikuje, . Podľa ( 3.30) máme,že . To znamená, že v máme krok výpočtu

(3.40)

Toto spolu s ( 3.39) nám dáva, že

(3.41)

Dokázali sme teda, že hypotéza indukčného kroku platí aj pre reťazce na vstupnej abecede dĺžky.

Uvažujme teraz výpočet v pre niektorý reťazec a nech

(3.42)

Výpočet ( 3.42) môže byť vyjadrený takto:

(3.43)

kde sa predpokladá, že a a .

Ľavá časť ( 3.43) spĺňa podmienky hypotézy ( ) a preto platí

(3.44)

Na druhej strane, posledný krok ( 3.43) implikuje . Toto spolu s ( 3.44) nám dáva, že

(3.45)

Dokázali sme, že hypotéza indukčného kroku platí aj pre výpočty dĺžky . To znamená, že platí

(3.46)

V každom z dvoch analyzovaných prípadov sme boli schopní zostrojiť podobné automaty a teda tvr-denie vety platí.

Na obr.( 3.16) je uvedený príklad tvorby automatu Moore podľa automatu Mealy.

Page 52: skripta hudak 2002

52 Konečné automaty.

Obrázok 3.16: Konštrukcia podobného automatu Mealy podľa automatu Moore

Príklady systémov modelovateľných konečnými automatmi.

Uvedieme teraz príklady systémov, správanie ktorých sa dá opísať pomocou konečných automatov. Nakonečné automaty môžeme pozerať ako na abstraktné modely (stroje), ktoré vyjadrujú určitý druh sprá-vania sa, vlastných celej triede reálnych systémov. V praxi je veľmi dôležité vedieť rozpoznať situácie, prektoré sú modelmi práve konečné automaty. Príklady, ktoré teraz nasledujú, majú za úlohu toto tvrdenieilustrovať na niekoľkých konkrétnych situáciach.

Príklad 3.4Na obr.( 3.17) je schéma výpočtového stroja , ktorý pozostáva zo vstupu

Obrázok 3.17: Výpočtový stroj

Opis činnosti výpočtového stroja je daný rovnicami

(3.47)

(3.48)

kde . Operácia je operácia sčítania modulo 2 . Definícia je daná tabuľkou

0 0 11 1 0

Z rovnice (( 3.47)) máme, že výstupná hodnota závisí nielen od vstupu v čase , ale závisí tiež od’histórie’, t.j. od hodnôt . Podobne aj hodnota premennej v čase bude závisieť od

a . To navodzuje myšlienku, že abstraktný stroj (automat) ako model výpočtového strojamusí mať schopnosť ’zapamätať ’ si ’historické’ hodnoty premenných v čase . Také hodnotytvoria množinu , ktorá je zložená z prvkov, predstavujúcichvšetky možné kombinácie hodnôt dvojice premenných . Automat bude mať 4 stavy,každý zodpovedajúci jednej dvojici historických hodnôt. Nasledujúca tabuľka reprezentuje hodnoty

v závislosti na hodnotách a .

Page 53: skripta hudak 2002

3.1 Konečné automaty s výstupom. 53

Tabuľka:Výpočtový stroj

00 01 10 11

00 01 11 10

11 10 00 01

Tabuľka môže byť považovaná za prechodovú tabuľku konečného automatu. Stavový diagram na obr.( 3.17b)) je alternatívnou reprezentáciou správania opísaného tabuľkou ’Výpočtový stroj’.

Ďalší príklad pochádza z neurofyziológie. Ide o popis činnosti tzv. neurónu a mechanizmov vytvorenýchz takých prvkov, ktoré označujeme ako neurónové siete.

Príklad 3.5Na obr. 3.18 je zobrazená schéma neurónovej siete, ktorá pozostáva z dvoch neurónov.

Obrázok 3.18: Schéma neuróna a jeho konečno-stavový model

Z popisu činnosti neuróna plynie, že výstupná hodnota neuróna v čase , povedzme je totožná shodnotou stavovej premennej neuróna, ktorá môže byť jednou z hodnôt a závisínielen od stavu neuróna v čase , ale aj od hodnôt budiacich a brzdiacich vstupov neuróna v časea prahu neuróna. Všetko toto sa dá vyjadriť tabuľkou (viď. tab. 3.1).

Tab. 3.1 môže byť považovaná za prechodovú tabuľku konečného automatu. Stavový diagram na obr. 3.18bje alternatívnou reprezentáciou správania opísaného tab. 3.1.

Page 54: skripta hudak 2002

54 Konečné automaty.

Tabuľka( 3.1)

00 01 10 11

00 00 00 00

01 11 00 00

Tabuľka 3.1: Činnosť neurónovej siete

3.2 Ekvivalencia konečných automatov

V tejto kapitole budeme študovať vlastnosti relácie ekvivalencie definovanej na triede konečných au-tomatov rovnakého typu, povedzme automatov Mealy. Majme dva konečné automaty Mealy

. Automaty a majú rovnaké vstupné a výstupné abecedy a , takžes nimi asociované automatové zobrazenia a sú zobrazeniami rovnakej povahy, patriacej do

triedy zobrazení . Je prirodzené považovať dva konečné automaty Mealy a za ekvivalentné( ) ak realizujú rovnaké zobrazenia, t.j. platí

(3.49)

Definícia( 3.49) môže byť vyjadrená tak, ako je to uvedené na obr.( 3.19). Na obr.( 3.19) je zapojeniedvoch automatov a , ktoré majú spojené vstupy. Ustanovenie platnosti definície ( 3.49) znamenávykonanie experimentu, ktorý bude pozostávať v postupnom podávaní vstupných reťazcov navstupy a a vyhodnocovanie výstupných reťazcov (odoziev) na výstupe automatov. Ak prekaždý odozvy automatov a budú rovnaké (avšak vo všeobecnosti rôzne pre rôzne ),potom také dva automaty budú ekvivalentné. Taký experiment je korektný, avšak nie je realizovateľný zakonečný čas, pretože počet reťazcov je nekonečný. Také experimenty (ale aj definície typu( 3.49))sa preto označujú ako nekonštruktívne. Definícia( 3.49) neumožňuje zostrojiť algoritmus rozhodovaniavlastnosti ekvivalencie na triede konečných automatov (Mealy). Napriek tomu však definícia ( 3.49) jereláciou ekvivalencie v matematickom zmysle. Skutočne, nie je ťažké ukázať, že táto relácia je reflexívna( ), symetrická ( ) a tranzitívna ( ).Platnosť týchto vlastností čitateľ môže ľahko overiť vytvorením zodpovedajúcich spojení automatov vzmysle obr.( 3.19) a realizovaním zodpovedajúcich myšlienkových experimentov.

V snahe nájsť algoritmus rozhodovania problému ekvivalencie konečných automatov, musíme použiťiný prístup.

Obrázok 3.19: Ekvivalencia konečných automatov

3.2.1 Ekvivalencia stavov v konečnom automate.

Problém hľadania algoritmu rozhodovania vlastnosti ekvivalencie začneme z analýzy vlastnosti ekviva-lencie stavov v konečnom automate (Mealy). Majme automat Mealy a dva stavy

. Automat je iniciálny automat s počiatočným stavom . môže byť inicializovaný aj

Page 55: skripta hudak 2002

3.2 Ekvivalencia konečných automatov 55

v inom stave než je , napríklad v , alebo . Vytvoríme teda dve kópie a to takto:

(3.50)

(3.51)

Teraz môžeme definovať ekvivalenciu dvoch stavov v

Definícia 3.4 Majme konečný automat Mealy . O dvoch stavoch budemehovoriť, že sú ekvivalentné práve vtedy ak platí, že sú ekvivalentné a (t.j. ).

Definícia ( 3.4) je nekonštruktívna, pretože je založená na nekonštruktívnej ekvivalencii dvoch auto-matov, ktoré predstavujú kópie jedného a toho istého automatu Mealy, inicializované v rôznych stavoch.Východisko sa ponúka definovaním tzv. konečnej ekvivalencie, o čom hovorí nasledujúca definícia.

Definícia 3.5 Majme konečný automat Mealy . O dvoch stavoch budemehovoriť, že sú k-ekvivalentné práve vtedy ak platí

(3.52)

Inými slovami povedané, dva stavy sú k-ekvivalentné ak automaty a majú rovnaké odozvy navšetky a také, že (avšak vo všeobecnosti rôzne pre rôzne ).

Nie je ťažké sa presvedčiť, že k-ekvivalencia stavov je relácia ekvivalenie v matematickom zmysle. Platítakéto tvrdenie

Lemma 3.1 Majme automat Mealy a stavy , potom platí, že

(3.53)

Dôkaz:

( ) Majme automat a nech platí . Posledné sa dá vyjadriť takto:

(3.54)

Ľavá strana ( 3.54) sa dá vyjadriť

(3.55)

Podobne aj pravá strana ( 3.54) sa dá vyjadriť

(3.56)

Z porovnania pravých strán ( 3.55)a ( 3.56) dostávame

(3.57)

(3.58)

Rovnosť ( 3.57) ale znamená, že a rovnosť ( 3.58) znamená, že . Ak vezmeme do úvahyto, že a a , dostaneme, že . Dokázali sme teda, že

(3.59)

Page 56: skripta hudak 2002

56 Konečné automaty.

( )

Dôkaz implikácie v opačnom smere sa vykoná analogicky a preto ho prenechávame ako cvičenie prečitateľa.

Je jasné, že platí

(3.60)

Z algebry je známy fakt o povahe rozkladu množiny , ktorý je indukovaný reláciou ekvivalenciedefinovanej na tejto množine.

Fact 3.1 Majme reláciu ekvivalencie na množine , potom rozbíja na množinu podmnožíns týmito vlastnosťami:

1.⋃

(úplnosť rozkladu)

2. (dizjunktnosť rozkladu)

Množinu voláme rozkladom podľa relácie ekvivalencie R a označujeme ju ,t.j.

(3.61)

Niekedy hovoríme, že je rozklad indukovaný reláciou .

Majme dva rozklady a množiny indukované reláciami ekvivalencie a a nech

(3.62)

(3.63)

O rozklade ( 3.62) budeme hovoriť, že je zjemnením rozkladu ( 3.63) ak platí

(3.64)

a budeme to označovať .

Teraz pristúpime ku konštrukcii algoritmu rozkladu množiny stavov automatuna triedy ekvivalentných stavov. Náš postup bude založený na postupnej tvorbe rozkladov , ,

, atď. Malo by byť jasné, že také rozklady vždy existujú a naviac platí

(3.65)

Posledné tvrdenie vyplýva z toho, že platí

Lemma 3.2 Majme automat Mealy a stavy . Potom

(3.66)

Dôkaz: ( ) Predpokladajme, že ; to znamená, že. Podľa definície výstupnej funkcie máme, že ,

Page 57: skripta hudak 2002

3.2 Ekvivalencia konečných automatov 57

a , čo inými slovami povedané znamená, že a . Nadruhej strane, očividne platí

(3.67)

a preto máme tento výsledok

(3.68)

( ) Implikácia v opačnom smere sa dokáže úplne analogicky. Skutočne, predpokladajme, že máme

Podľa ( 3.67)

(3.69)

a dostávame

(3.70)

Tvrdenie lemy je dokázané.

Teraz sme pripravení vytvoriť algoritmus rozkladu množiny stavov konečného automatuna triedy ekvivalentných stavov. Algoritmus je založený na postupnom vytváraní tried

k-ekvivalencie, postupná tvorba ktorých je založená na tvrdení Lemmy 3.5 a menovite na( 3.66).

Algoritmus: Rozklad množiny stavov .

Algoritmus na obr.( 3.20) je určite procedúrou. Zostáva dokázať, že je aj algoritmom v úzkom zmysle,t.j. že je to rezultatívna procedúra. K tomu si stačí uvedomiť, že v každej iterácii druhého kroku jevytvorený na základe rozkladu (triedy i-ekvivalencie) nový rozklad (triedy i+1-ekvivalencie).

je zjemnením , t.j. a pretože je konečná množina, algoritmus vždy skončí, t.j. pourčitom počte krokov . Otázkou zostáva to, či kritérium je korektné kritérium naukončenie procedúry. Predpokladajme, že platí nasledujúce:

(3.71)

Tvrdenie ( 3.71) znamená, že v rozklade sa nájde taká trieda ekvivalentných vzťahova v nej dva také stavy , že o nich platí pre niektoré

a . To znamená, že a sú také stavy, ktoré sú ekvivalentné, ale nie

sú ekvivalentné. Z ľavej časti ( 3.71) ale plynie, že v bude existovať triedaobsahujúca stavy s popísanou vlastnosťou, čo implikuje, že nebudú už ani ekvivalentné ateda a to je spor. Z toho vyplýva, že kritérium je korektné kritérium na ukončenieprocedúry a rozklad je rozkladom na triedy ekvivalentných stavov.

Dokázali sme nasledujúci výsledok

Theorem 3.3 Pre každý konečný automat Mealy existuje algoritmus rozkladu mno-žiny stavov na triedy ekvivalentných stavov.

Uvedieme teraz príklady použitia algoritmu rozkladu

Page 58: skripta hudak 2002

58 Konečné automaty.

Vstup: konečný automatVýstup: rozklad množiny stavov na triedy ekvivalentných stavov

Telo algoritmu:

1.krok: Vytvorteje trieda rozkladu podľa

t.j.

2.krok: Nech je už vytvorený rozklad podľaa nech

potom:

3.krok: if thenbegin

goto 2.krokend

elsegoto 4.krok

4.krok:

STOP.

Obrázok 3.20: Algoritmus rozkladu.

Príklad 3.6 Majme konečný automat , ktorý je zadaný (stavovou) prechodovou ta-buľkou a jeho stavový diagram je na obr.( 3.21)

Prechodová tabuľka

A B C D E F G H I J

B/1 B/0 A/0 E/1 E/0 A/0 H/1 D/0 J/1 I/1

G/1 F/0 B/1 D/1 C/0 A/1 F/1 E/1 I/0 J/0

Vytvoríme teraz rozklady na triedy ekvivalencie :

Ako je vidieť a preto je výsledný rozklad na triedy ekvivalentných stavov. Iba dva stavyv automate sú ekvivalentné.

Príklad 3.7 Majme konečný automat , ktorý je zadaný (stavovou) prechodovou ta-buľkou a jeho stavový diagram je na obr.( 3.22)

Page 59: skripta hudak 2002

3.2 Ekvivalencia konečných automatov 59

Obrázok 3.21: Stavový diagram

Obrázok 3.22: Stavový diagram

Prechodová tabuľka

A B C D E F G H J

B/0 C/1 D/0 C/1 F/1 G/0 F/1 J/1 H/1

C/0 D/1 E/0 B/1 E/1 C/0 G/1 B/0 D/0

Vytvoríme teraz rozklady na triedy ekvivalencie :

V tomto prípade a preto je výsledný rozklad na triedy ekvivalentných stavov. V automatemáme teraz tri dvojice ekvivalentných stavov: . Príklad ilustruje použitie algoritmua poukazuje na skutočnosť, že rozpoznanie ekvivalencie stavov na základe reprezentácie automatu (stavovýdiagram, alebo prechodová tabuľka) nie je jednoduchý problém.

Redukované konečné automaty.

Po tom, ako sme pochopili problematiku ekvivalencie stavov v konečnom automate a zostrojili algo-ritmus na zisťovanie takých stavov, je na mieste otázka: akú úlohu majú ekvivalentné stavy v konečnom

Page 60: skripta hudak 2002

60 Konečné automaty.

automate, alebo ináč potrebujeme mať v konečnom automate ekvivalentné stavy? Ukazuje sa, že od-stránenie z automatu ekvivalentných stavov nahradením každej triedy ekvivalentných stavov niektorýmstavom a príslušnou úpravou definícii zložiek automatu dospejeme k automatu, ktorý realizuje rovnakézobrazenie ako pôvodný automat. Taký automat, ktorý neobsahuje ekvivalentné stavy zvykneme volaťredukovaným konečným automatom, alebo jednoducho reduktom.

Definícia 3.6 Majme konečný automat Mealy ; o automate hovoríme, že je vredukovanom tvare ak platí, že automat neobsahuje žiadne ekvivalentné stavy, t.j. platí

(3.72)

V takom prípade o hovoríme, že je redukovaný automat, alebo redukt.

Podobná definícia platí aj pre konečný automat Moore . V dôsledku známehovzťahu medzi automatmi Mealy a Moore budeme sa v ďalšom zaoberať len automatmi Mealy. Získanévýsledky budú v plnom rozsahu platné aj pre automaty Moore.

Dokážeme teraz tento zaujímavý výsledok

Theorem 3.4 Ku každému konečnému automatu Mealy sa nájde ekvivalentnýredukovaný konečný automat , t.j. že platí

(3.73)

Dôkaz:

Začneme konštrukciou redukovaného automatu podľa konečného automatu.

1. Vytvoríme rozklad množiny stavov na triedy ekvivalentných stavov aplikáciou algoritmurozkladu na . Nech

(3.74)

je získaný rozklad. Pripomenieme, že ( 3.74) má tieto vlastnosti:

pre

2. Na základe ( 3.74) vytvoríme teraz konečný automat takto:

(3.75)

(3.76)

a

(3.77)

(3.78)

Konštrukcia automatu je zavŕšená. Prv než pristúpime k dôkazu ekvivalenie automatov a ,povedzme si niekoľko vysvetľujúcich poznámok k algoritmu konštrukcie automatu .

i. stavmi automatu sú triedy ekvivalentných stavov(viď 3.75). To má svojím dôsledkom to, žeautomat nebude mať ekvivalentné stavy a preto je redukovaný automat.

Page 61: skripta hudak 2002

3.2 Ekvivalencia konečných automatov 61

ii. definícia prechodovej funkcie ( 3.76) je založená na definícii relácie ekvivalencie, t.j. že s-následovník každého stavu z triedy sa musí nachádzať v niektorej triede (avšak vo všeobecnostirôznej pre rôzne s).

iii. definícia výstupnej funkcie ( 3.77) odráža skutočnosť, že v triede ekvivalencie sú všetky stavyekvivalentné, t.j. teda majú rovnakú odozvu na rovnakývstup a preto a platí to aj pre každé .

iv. definícia počiatočného stavu hovorí, že počiatočným stavom v automate bude tá trieda ekvi-valencie, ktorá obsahuje počiatočný stav automatu . Taká trieda je jediná.

Pristúpime teraz k dôkazu ekvivalencie automatov a matematickou indukciou podľa dĺžkyvýpočtov n.Báza indukcieMajme automaty a ; predpokladajme, že , kdeje trieda ekvivalencie obsahujúca . Majme , že

(3.79)

podľa konštrukcie máme, že

a a naopak (3.80)

Máme teda, že

a (3.81)

Automaty a sú 1-ekvivalentné.

Hypotéza indukcie

Predpokladajme, že automaty a sú k-ekvivalentné, t.j.

a (3.82)

Tvrdenie hypotézy indukčného kroku môže byť vyjadrené aj pomocou výstupných funkcií

(3.83)

Uvažujme teraz výpočet v o dĺžke

a platí, že a (3.84)

( 3.84) možno vyjadriť

(3.85)

Ľavá časť ( 3.85) vyhovuje hypotéze indukčného kroku, čo znamená, že platí

a (3.86)

Pravá časť ( 3.85) znamená, že

(3.87)

Page 62: skripta hudak 2002

62 Konečné automaty.

Algoritmus konštrukcie reduktu (viď ( 3.76)) implikuje

(3.88)

( 3.88) a ( 3.86) dávajú

a (3.89)

čo dokazuje, že hypotéza platí aj pre výpočty dĺžky a teda tvrdenie platí vôbec. Dokázali sme, žeredukovaný automat je ekvivalentný automatu .

Algoritmická rozhodnuteľnosť ekvivalencie konečných automatov.

Vrátime sa teraz k problému ekvivalencie konečných automatov. Ukážeme, že na základe algoritmurozkladu na triedy ekvivalencie množiny stavov konečného automatu, je možno zostrojiť algoritmus narozhodovanie ekvivalencie dvoch (a viac) konečných automatov.

Definícia 3.7 Majme dva konečné automaty Mealy ; súčtovýmautomatom budeme volať konečný automat definovaný takto:

{akak

{akak

Súčinovým (karteziánskym) automatom budeme volať konečný automatdefinovaný takto:

Na obr.( 3.23) je uvedená reprezentácia súčtového automatu a na obr.( 3.24) reprezen-tácia súčinového automatu .

Všimnime si, že súčtový automat z pôvodných dvoch automatov získame tak, že jeho stavový diagrambude vytvorený zo stavových diagramov a ich ”postavením” vedľa seba. Správanie automatu jevnímané pozorovateľom podľa toho v ktorom zo stavových diagramov ”sa v danom momente nachádza”.Na druhej strane súčinový automat vznikne fyzickým spojením vstupov a a pozorovateľ vnímanový mechanizmus (automat) ”súčasne”, t.j. stav ako dvojicu stavov vytvárajúcich automatov a podobneaj výstup ako dvojicu výstupov vytvárajúcich automatov.

Na triede konečných automatov je možno definovať ďalšie vzťahy pomocou zobrazení. Predpokla-dajme, že máme triedu konečných automatov (Mealy) na abecedách a majme dva automaty

a . Definujeme teraz zobrazenie takto:

(3.90)

(3.91)

(3.92)

Zobrazenie, ktoré vyhovuje podmienkam ( 3.90),( 3.90)a ( 3.90) voláme morfizmom konečných automatov( ). V súlade s klasifikáciou zobrazení [?] budeme hovoriť, že

a. je monomorfizmom ak je injekcia.

Page 63: skripta hudak 2002

3.2 Ekvivalencia konečných automatov 63

b. je epimorfizmom ak je surjekcia.

c. je izomorfizmom ak je bijekcia.

Malo by byť intuitívne jasné, že medzi izomorfizmom a ekvivalenciou konečných automatov (Mealy)existuje určitý vzťah. Skutočne, platí

Theorem 3.5 Ak sú dva konečné automaty Mealy aizomorfné, potom sú aj ekvivalentné.

Dôkaz: Predpokladajme, že je bijektívne zobrazenie s týmito vlastnosťami:

(3.93)

(3.94)

(3.95)

Okrem toho, pretože je bijekcia, existuje inverzné k zobrazenie , ktoré je taktiež bijektívnezobrazenie s týmito vlastnosťami:

(3.96)

(3.97)

(3.98)

a platí .

Dokážeme teraz tvrdenie vety indukciou podľa dĺžky výpočtov .Báza indukcie:

Predpokladajme, že v automate máme výpočet o dĺžke

(3.99)

Z definície izomorfizmu ( 3.93),( 3.94) a ( 3.95) a ( 3.99) máme

(3.100)

Na obr.( 3.25) je zobrazená podstata konštrukcie vyjadrenej v ( 3.99)a ( 3.100).

V dôsledku vlastnosti izomorfizmu a existencie inverzného zobrazenia je triviálne ukázať, že( 3.100)bude implikovať ( 3.99). Máme teda

(3.101)

alebo ináč

(3.102)

Hypotéza indukcie: Nech pre všetky výpočty dĺžky nanajvyš platí

(3.103)

Page 64: skripta hudak 2002

64 Konečné automaty.

Predpokladajme teraz, že máme v výpočet dĺžky

(3.104)

Výpočet ( 3.104) môžeme vyjadriť ako zložený z dvoch častí

(3.105)

Ľavá časť výpočtu ( 3.105) vyjadruje výpočet o dľžke , teda vyhovujúci hypotéze indukcie a pretomôžeme predpokladať existenciu výpočtu v

(3.106)

Pravá časť výpočtu ( 3.105) je ekvivalentná tvrdeniu, že

(3.107)

Definícia izomorfizmu dáva

(3.108)

Z ( 3.107) a ( 3.108) máme

(3.109)

V dôsledku vlastnosti izomorfizmu a existencie inverzného zobrazenia je triviálne ukázať ( 3.109)bude implikovať ( 3.104). Máme teda

(3.110)

Hypotéza indukčného kroku platí teda aj pre všetky výpočty dĺžky (výber bol dostatočnevšeobecný) a teda tvrdenie platí pre všetky výpočty v automatoch a ľubovoľnej dĺžky. Inýmislovami

(3.111)

Tvrdenie ( 3.111) je ale tvrdenie, že automaty a sú ekvivalentné. Formálnejšie

(3.112)

Tvrdenie vety je tým dokázané.

Vzťah medzi ekvivalenciou a izomorfizmom je o niečo komplikovanejší. Máme tým na mysli to, že nieľubovoľné dva konečné automaty, ktoré sú ekvivalentné, budú aj izomorfné. Vlastnosť izomorfizmu kladiena ekvivalentné automaty doplňujúce požiadavky. Povahu týchto požiadaviek upresňuje nasledujúca veta,ktorú teraz sformulujeme a dokážeme.

Theorem 3.6 Ak sú dva iniciálne konečné automaty (Mealy) aredukované, neobsahujúce nedosiahnuteľné stavy, potom ak sú ekvivalentné sú aj

izomorfné.

Dôkaz: Nech a sú dva konečné automaty Me-aly, ktoré vyhovujú podmienkam vety. Vytvoríme teraz podľa a súčtový konečný automat

definovaný svojimi zložkami , ktoré sú definované v súlade s definíciousúčtového konečného automatu (viď 3.7).

Page 65: skripta hudak 2002

3.3 Konečno-stavové akceptory 65

Aplikujeme teraz na algoritmus rozkladu množiny stavov . Nech výsledný rozklad na triedyekvivalentných stavov súčtového automatu je

(3.113)

Tvrdíme, že rozklad ( 3.113) má špecialny tvar, menovite, že pre každú platí, žea ak pre ľubovoľnú triedu , potom a , alebo naopak.

Predpokladajme najprv, že tomu tak nie je a nech existuje taká trieda ekvivalencie , že

a nech (3.114)

Situácia ( 3.114) je však sporom s predpokladom, že automat je redukt. Ľubovoľná iná distribúciastavov medzi a privádza k sporu s týmto predpokladom. To isté platí o prípade, že .

Predpokladajme, že a . Pretože neobsahuje nedosiahnuteľné stavyje dosiahnuteľný v , t.j.

(3.115)

Keďže podľa predpokladu vety , potom má taktiež výpočet

(3.116)

Povaha ekvivalencie stavov implikuje, že stavy a patria do jednej triedy ekvivalencie a to je spor. Takátrieda sa nemôže v rozklade ( 3.113) vyskytovať. Preto skutočne platí, že triedy rozkladu ( 3.113)majú tvar

(3.117)

Definujeme si teraz zobrazenie takto:

(3.118)

Zobrazenie ( 3.118) je bijekcia, čo zaručuje povaha rozkladu ( 3.117).

Dokážeme, že ( 3.118) je morfizmus automatov a .

Ďalej máme

Pretože a sú ekvivalentné ako iniciálne automaty, to implikuje, že

Zobrazenie je teda izomorfizmom automatov a a veta je tým dokázaná.

3.3 Konečno-stavové akceptory

Konečno-stavové akceptory (ksa) sú konečné automaty bez výstupu. V tejto kapitole sa budeme ve-novať štúdiu tejto triedy konečných automatov. Konečno-stavové akceptory sú určené k reprezentácii

Page 66: skripta hudak 2002

66 Konečné automaty.

jednej triedy formálnych jazykov rozpoznávaním. Túto triedu jazykov, ako to dokážeme v tejto kapitole,možno stotožniť s triedou jazykov, ktoré generujú tzv. regulárne gramatiky. Preto túto triedu jazykovbudeme volať regulárnymi jazykmi, alebo niekedy aj konečno-stavovými jazykmi.

Medzi hlavné ciele tejto kapitoly patria:

1. štúdium povahy jazykov rozpoznateľných ksa.

2. ustanovenie vzťahu medzi regulárnymi gramatikami a ksa, ako rozpoznávačmi rovnakej triedy for-málnych jazykov.

3. ustanovenie vzťahu medzi jazykmi reprezentovanými (generovanými) regulárnymi gramatikami ajazykmi reprezentovanými (rozpoznateľnými) ksa.

Pojmy zavedené pre konečné automaty s výstupom sa takmer všetky vzťahujú aj na konečno-stavovéakceptory. V ďalšom preto budeme predpokladať znalosť týchto pojmov a uvedieme na príslušných mies-tach iba odchýlky v interpretovaní týchto pojmov v súvislosti práve s ksa.

Definícia 3.8 Konečno-stavový akceptor je daný 5 - icou kde

- konečná množina stavov- vstupná abeceda- prechodová funkcia- počiatočný stav- množina finálových stavov

Reprezentácie konečno-stavového akceptora sú rovnaké, ako u konečných automatov s výstupom. Tedaksa môže byť reprezentovaný :

tabuľkou prechodovej funkcie

prechodovou (stavovou) tabuľkou

stavovým diagramom

Tabuľka prechodovej funkcie je matematickou reprezentáciou ksa Na obr. 3.26 je príklad tabuľkovejreprezentácie konečno-stavového akceptora.

Prechodová tabuľka. Prechodová tabuľka je vytvorená (obr. 3.27) z riadkov astĺpcov ( označuje počet prvkov v abecede ). Riadky(stĺpce) zodpovedajú symbolom abecedy( ) a každý riadok(stĺpec) je označený zodpovedajúcim symbolom abecedy ( ). V políčku o súradnici

sa nachádza s-následovník stavu , t.j. .

Príklad prechodovej tabuľky ksa je na obr. ??. Všimnime si, že prechodová tabuľka v príkladezodpovedá tabuľkovej reprezentácii na obr. 3.26.

Stavové diagramy. Stavový diagram je orientovaný graf, vrcholy ktorého sú označené stavmi automatua hrany sú označené symbolom pričom tak, že hrana bude označená

práve vtedy ak (viď obr. 3.6a)). Počiatočnému stavu zodpovedá vrchol označený ,do ktorého vedie z odnikiaľ vedúca hrana (ovšem do počiatočného stavu môžu viesť aj hrany z inýchstavov(vrcholov)). Finálové stavy je zaužívané označovať dvojitým kruhom. Príklad stavového diagramuautomatu, ktorého reprezentácia je privedená na obrázkoch ( 3.26 a ??) je uvedený na obr.( 3.29b)).

Podobne ako v prípade konečných automatov s výstupom potrebujeme definíciu tzv. zovšeobecnenejprechodovej funkcie konečno-stavového akceptora .

prázdny symbol

Page 67: skripta hudak 2002

3.3 Konečno-stavové akceptory 67

Činnosť konečno-stavového akceptora sa dá vyjadriť výpočtom. Najprv zavediemeoznačenie

(3.119)

Majme postupnosť stavov

(3.120)

O postupnosti( 3.120) hovoríme, že je prípustnou postupnosťou stavov (pps) v konečno-stavovom ak-

ceptore (vzhľadom na reťazec ) , ak platí, že .Tento fakt zvykneme vyjadrovať

(3.121)

a hovoriť, že ksa má výpočet zo stavu do stavu pričom tomuto výpočtu zodpovedápps( 3.120).

Pojmy (ne)dosiahnuteľného, resp. pascového stavu sú vhodnou modifikáciou rovnomenných pojmovpre konečné automaty s výstupom. Tak o stave v iniciálnom ksa hovoríme, žeje nedosiahnuteľný v práve vtedy, ak neexistuje žiadna prípustná postupnosť stavov vedúca z do. Na druhej strane o stave v iniciálnom ksa hovoríme, že je pascový stav, akplatí, že z neexistuje prechod do žiadneho iného stavu v v ksa . Inými slovami a formálnejšie

Pre ksa sa prirodzeným spôsobom definuje jazyk akceptovaný ksa .

Definícia 3.9 Majme ksa ; potom jazykom akceptovaným ksa budeme volaťmnožinu všetkých takých reťazcov , že pre každý taký sa nájde v prípustná postupnosť stavov

a platí, že . Formálnejšie

(3.122)

Uvedieme teraz príklad

Príklad 3.8 Na obr.( ??) je uvedený ksa

Nie je ťažké pochopiť správanie vyjadrené ksa . Skutočne, vidíme, že ksa prechádza pri každomvýskyte ’1’ do iného stavu (1-následovníka aktuálneho stavu), zatiaľ čo pri výskyte ’0’ zotrváva v pôvodnomstave. Stav je počiatočným a súčasne jediným finálovým stavom ksa . Z sa znovu ocitne vpo ’prijatí’ na svojom vstupe ľubovoľného reťazca takého, ktorý obsahuje počet výskytov

symbolu ’1’, ktorý je deliteľný bez zvyšku tromi a pritom môže obsahovať ľubovoľný počet výskytov symbolu’0’. Systém s takýmto správaním sa zvykne v teórii automatov (a diskrétnych systémov) nazývať počítadlomodulo 3. Formálnejšie

(3.123)

Niekedy je vhodné ”simulovať” činnosť ksa niektorým simulačným konečným au-tomatom Moore, k definícii ktorého teraz prejdeme.

Majme ksa ; o automate Moore budeme hovoriť, žesimuluje ksa práve vtedy ak platí

a posledný symbol (3.124)

Page 68: skripta hudak 2002

68 Konečné automaty.

Prípad uvedený v ( 3.124) má miesto zrejme vtedy a len vtedy ak platí, že v automate je funkciadefinovaná tak, že

(3.125)

Inými slovami povedané, sa získa z ksa jednoducho tak, že stavy z sa označia symbolom astavy z sa označia . Posledné je ilustrované obr.( 3.31).

3.3.1 Nedeterministické konečno-stavové akceptory.

Definícia ksa uvedená v kapitole( 3.3) predpokladá deterministické správanie sa automatov. O tomsvedčí prechodová funkcia , ktorá definuje pre každú dvojicu najviac jedens-následovníkový stav. Ako sa ukazuje, taká definícia nie je jedine možná a navyše ani nie je účelná z hľa-diska ustanovenia vzťahu s regulárnymi gramatikami. Posledné majú nedeterminizmus zahrnutý vo svojejdefinícii; na niektorý vetný tvar je možno aplikovať jedno z viacerých substitučných (odvodzovacích) pra-vidiel pri odvodzovaní a použitie ktoréhokoľvek z takých pravidiel (na daný vetný tvar) je možné(legálne).Teraz uvedieme definíciu nedeterministickéko ksa, ktorý bude mať nedeterministické správanie. Ako uká-žeme, taká definícia nezvyšuje akceptačnú silu takto definovanej triedy nedeterministických ksa (ndksa),t.j. triedy jazykov reprezentovaných deterministickými ksa (dksa) a nedeterministickými ksa (ndksa) sútotožné (je to trieda tzv. regulárnych jazykov).

Uvedieme formálnu definíciu ndksa.

Definícia 3.10 Nedeterministický konečno-stavový akceptor (ndksa) je daný 5-icou ,kde

- konečná množina stavov- vstupná abeceda- relácia na množine stavov a vstupnej abecede- množina počiatočných stavov- množina finálových stavov

Definícia ndksa potrebuje určitý komentár.

prechodová funkcia je v definícii ( 3.10) nahradená reláciou , ktorá je daná množinou 3-íc. Ak niektorá 3-ica je z , to znamená, že v jestvuje prechod zo stavu pod

do stavu . V stavovom diagrame (viď obr.( ??)) automatu bude tomu zodpovedať príslušnýprechod. V ndksa môže však vo všeobecnosti existovať viac než jedna 3-ica s rovnakou prvoua druhou zložkou, napríklad a . V takom prípade (viď obr.( ??)) automatbude mať zo stavu pod vstupom dva možné prechody, jeden do stavu (zodpovedajúci

), alebo do stavu (zodpovedajúci . To, ktorý z prechodov sa bude realizovaťnie je vopred dané, avšak v danej situácii sa uskutoční iba jeden z nich. Zodpovedajúca ”voľba” jeponechaná na samotný ndksa a v tom spočíva vlastne jav (fenomén) nedeterminizmu. Realizáciaktoréhokoľvek z možných prechodov je považovaná za legitímnu (prípustnú), avšak realizovať sa vdanom čase môže iba jeden z možných prechodov.

ndksa môže mať vo všeobecnosti viac než jeden stav, ako počiatočný stav. To vyjadruje prí-tomnosť položky v definičnej 5-ici. Prípustná postupnosť stavov v ndksa bude každá takápostupnosť stavov, ktorá začína v ľubovoľnom stave a je pps v zmysle definície pps( 3.5) predksa. Inými slovami povedané, pri definícii pps v ndksa budeme uvažovať s možnými (i keď nierealizovanými) prechodmi a symbolom budeme vyjadrovať práve túto možnosť,t.j.

môže prejsť z do stavu pod vstupom

symbolom pre ľubovoľné budeme vyjadrovať fakt, že môže mať výpočet zo stavudo stavu pod . Množina všetkých možných výpočtov ndksa začínajúcich v počiatočnom

Page 69: skripta hudak 2002

3.3 Konečno-stavové akceptory 69

stave (v niektorom z možných) a končiacich v niektorom finálovom stave (v jednom z možných),definuje , jazyk akceptovaný ndksa , t.j.

(3.126)

3.3.2 Determinizácia ndksa.

Ako už bolo uvedené, rozšírenie definície konečno-stavových akceptorov o jav nedeterminizmu v ichsprávaní sleduje cieľ ustanoviť vzťah medzi gramatikami regulárnych jazykov a konečno-stavovými ak-ceptormi. Spomenuli sme tiež, že toto rozšírenie nevedie k zvýšeniu akceptačnej sily, t.j. že tieda jazykovreprezentovaná triedou ndksa je totožná s triedou jazykov reprezentovaných deterministickými ksa. Vtejto kapitole sa zameriame na dôkaz posledného tvrdenia o jazykovej rovnomocnosti tried determinis-tických a nedeterministických konečno-stavových akceptorov.

Náš výklad začneme najprv možnými interpretáciami fenoménu nedeterminizmu v definícii ndksa.Poznáme tri možné interpretácie nedeterminizmu pozorovateľom, ktorý uplatňuje sekvenčný princíp uva-žovania a pozorovania.

1.interpretácia nedeterminizmu: sieť automatov.

Podľa tejto interpretácie je možno si správanie ndksa predstaviť pomocou správaniasiete automatov vytvorenej z kópií ndksa podľa nasledovného postupu (viď obr.( 3.32)). Začnemeso sieťou pozostávajúcou z kópií automatu , ako je to na obr.( 3.32a)), kde sa predpokladá, že

a kópie sú inicializované každá v inom počiatočnom stave z . Automaty majúspoločný vstup a pozorovateľ môže registrovať odozvy jednotlivých kópií na vstupný reťazec podávanýna vstupe siete.

Predpokladajme, že na vstupnom reťazci má každý z automatov

deterministické správanie, t.j. má jedinú pps a nech automat je ten, ktorý sa ocitolv stave v ktorom ndksa má možných prechodov pod symbolom , ktorý je symbolom navstupe siete, t.j.

... (3.127)

Na základe ( 3.127) pridáme k sieti automatov kópií ndksa každá

iniciovaná v inom s-následovníkovom stave . Všimnime si, že úlohu automatu iniciovaného v staveplní kópia , ktorá bola pôvodne inicializovaná v a po prijatí reťazca sa nachádza v stave. Tento krok rozšírenia siete zopakujeme vždy a v prípade ľubovoľnej kópie ndksa nachádzajúcej

sa v sieti, kedykoľvek nastane situácia, že daná kópia sa nachádza v stave, z ktorého ndksa má viacnež jeden možný prechod. Po prijatí reťazca každý automat výslednej siete bude sanachádzať v ”cieľovom” stave pps, ktorú taký automat reprezentuje a počet automatov vo výslednej sietibude reprezentovať počet možných pps, ktoré ndksa môže mať pre slovo . Ak asponjeden z automatov siete sa ocitne v stave potom slovo môžeme považovať za slovo, ktoré ndksaakceptuje a je teda slovom jazyka .

Page 70: skripta hudak 2002

70 Konečné automaty.

2.interpretácia nedeterminizmu: strom dosiahnuteľných stavov.

Pri interpretácii nedeterminizmu ndksa stromom dosiahnuteľných stavov postu-pujeme nasledovne. Predpokladajame, že máme slovo a chceme preskúmať všetky možnésprávania ndksa na . Zvolíme si jeden z počiatočných stavov, povedzme a urobíme ho”koreňom” grafovej štruktúry, ktorej dáme meno strom dosiahnuteňých stavov (v ndksa pre slovo)(viď obr.( 3.33)).

Strom dosiahnuteľnosti je modifikáciou stavového diagramu v tom zmysle, že dva vrcholy stromudosiahnuteľnosti sú incidentné, t.j. sú spojené orientovanou hranou práve vtedy, ak .Cesta v strome dosiahnuteľnosti vedúca zo stavu do stavu je označená reťazcom právevtedy ak v ndksa existuje pps

Predpokladajme, že sme vytvorili strom dosiahnuteľnosti pre predponu reťazca a nechje stav dosiahnuteľný pod . Môžu nastať dve principiálne odlišní situácie.

ndksa má jediný stavu

ndksa má niekoľko stavu

V prvom prípade pridáme k jednu orientovanú hranu v strome dosiahnuteľnosti(obr.( 3.33b))). V druhom prípade pridáme toľko hrán ku , koľko s-následovníkov má ndksa vstave (obr.( 3.33c))). Po uplatnení uvedeného postupu pre celé slovo obdržíme stromdosiahnuteľnosti pre stav a slovo s týmito vlastnosťami:

1. každý list stromu má rovnakú hĺbku - , t.j. strom je úplne vyvážený

2. každý list stromu reprezentuje posledný stav (povedzme ) niektorej možnej pps v ndksa (prestav a reťazec ). Inými slovami, ak platí, že v strome je list označený potom v ndksa jemožný výpočet (je možná pps)

3. každá cesta v strome dosiahnuteľnost (pre stav a reťazec ) vedúca z koreňa do ľubovoľnéholistu je označená .

4. ak existuje aspon jeden list v strome dosiahnuteľnosti (pre počiatočný stav a reťazec )potom taký reťazec je slovo jazyka .

3.interpretácia nedeterminizmu:makrostavová.

Pri tejto interpretácii predpokladáme, že máme automat, ktorý sa môže nachádzať súčasne vo viacerychstavoch. Taký ”kolektívny” stav zvykneme označovať akomakrostav. Koncepcia makrostavu nám umožnízohľadniť všetky možné prechody, ktoré ndksa pripúšťa pri nedeterministickej definícii prechodov preniektorý stav a vstupný symbol . Pojem makrostavu sa pokúsime definovať formálnejšie a pozdejšieho budeme ilustrovať na príklade ndksa, stavový diagram ktorého je na obr.( 3.34).

Majme teraz všeobecne niektorý ndksa a uvažujme najprv situáciu, keď mámestav a taký, že pre niektoré máme

...

Page 71: skripta hudak 2002

3.3 Konečno-stavové akceptory 71

Množina stavov sa volá s-dosiahnuteľnou množinou stavov zo stavu a budeme juoznačovať . Majme teraz niektorú množinu stavov . Symbolom označímemnožinu s-dosiahnuteľných stavov zo stavov množiny , t.j.

(3.128)

Uvažujme teraz niektorý reťazec a pokúsime sa nájsť množinu stavov dosiahnuteľných zo stavuv ndksa . To sa dá urobiť induktívne

(3.129)

V termínoch výpočtov v ndksa sa to dá vyjadriť aj takto:

(3.130)

Zaujímavý prípad predstavujú množiny stavov dosiahnuteľné v ndksa z množiny počiatočnýchstavov . Také dosiahnuteľné množiny budeme označovať jednoducho pre , t.j. formálnejšie

(3.131)

Hodnota sa vypočíta podľa ( 3.129). Dosiahnuteľné množiny stavov pre ľubovoľnévoláme makrostavy. Na obr.( 3.34) sú odvodené makrostavy-množiny stavov dosiahnuteľné z množinypočiatočných stavov (v danom prípade je ). To, že (viď obr.( 3.34b))) je dôsledoktoho, že v ndksa máme výpočty

(3.132)

(3.133)

(3.134)

Analogicky, to že znamená, že v existujú dva možné výpočty pre reťazec a to

(3.135)

(3.136)

Podobným spôsobom sa definujú ostatné dosiahnuteľné množiny stavov v , resp. makrostavy. Zrejmeproces generovania makrostavov možno ukončiť, ak na ktorejkoľvek ceste v grafe makrostavov je vygene-rovaný už predtým (a nielen na tejto ceste) vygenerovaný makrostav. Proces generovania makrostavovje konečný, pretože počet makrostavov je konečný.

Je treba povedať, že interpretácia nedeterminizmu ndksa pomocou makrostavov leží v základe algo-ritmu determinizácie ndksa. Zmyslom takého algoritmu je tvorba dksa pre niektorý ndksa svlastnosťou, že .

3.3.3 Determinizácia ndksa.

Pristúpime teraz k návrhu algoritmu konštrukcie jazykovo ekvivalentného dksa k ndksa .

Algoritmus uvedieme ako postupnosť krokov, v ktorých vytvoríme definičné zložky dksa podľadefiničných zložiek ndksa .

Zostrojili sme konštrukciou jednotlivých definičných zložiek . Všimnime si, že vstupnáabeceda pre je rovnaká, ako pre ndksa . Uvedieme teraz niekoľko poznámok, ku konštrukcii .

Page 72: skripta hudak 2002

72 Konečné automaty.

1. stavmi dksa sú všetky dosiahnuteľné možiny stavov z množiny počiatočných stavov, t.j. makro-stavy. V prípade, že ndksa nie je úplne definovaný automat, potom bude definovaný zvláštny stav,označený ako s vlastnosťou, že pre každé také, že neexistuje v ndksa možná pps pre, bude hodnotou prechodovej funkcie . Inými slovami

a

(3.137)

Ako plynie z( 3.137) stav je vlastne pascovým stavom.

2. počiatočný stav je vlastne dosiahnuteľná množina stavov , kde je prázdnyreťazec. Skutočne, dosiahnuteľná množina stavov z množiny počiatočných stavov je vlastnesamotná množina .

3. definícia množiny finálových stavov vychádza z prvých dvoch interpretácií nedeterminizmu. Tamsme predpokladali, že daný reťazec bol považovaný za akceptovaný v ndksa vtedy, akjestvovala aspoň jedna pps s cieľovým stavom z množiny .

Dokážeme teraz jazykovú ekvivalenciu automatov a , posledný zostrojený podľa algorit-mu( 3.35). Dôkaz povedieme matematickou indukciou podľa dĺžky výpočtov .

Báza indukcie: n=1

Predpokladajme, že v ndksa máme výpočet dĺžky 1

(3.138)

Z ( 3.138) a definície makrostavov plynie, že

(3.139)

Podľa definície prechodovej funkcie platí , čo implikuje, že v bude krok výpočtu

(3.140)

(3.141)

Je triviálne dokázať, že existencia výpočtu( 3.140) v bude implikovať existenciu výpočtu( 3.138) v. Tým je báza indukcie dokázaná.

Hypotéza indukcie: predpokladajme, že pre všetky výpočty o dĺžke platí

Uvažujme teraz reťazec a a nech v ndksaexistuje výpočet

(3.142)

Výpočet ( 3.142) môže byť vyjadrený

(3.143)

Ľavá časť výpočtu ( 3.143) vyhovuje hypotéze indukčného kroku, čo znamená, že práve vtedy vexistuje výpočet

(3.144)

Page 73: skripta hudak 2002

3.3 Konečno-stavové akceptory 73

Na druhej strane pravá časť( 3.143) znamená, že

(3.145)

Podľa definície makrostavov a na základe ( 3.144) a ( 3.145) máme, že . Podľa definícieprechodovej funkcie potom , čo znamená existenciu výpočtu v

(3.146)

Jednoducho sa dokazuje implikácia aj v opačnom smere, t.j. že z existencie výpočtu ( 3.146) vplynie existencia výpočtu ( 3.143) v . Hypotéza indukcie platí preto aj pre všetky výpočty o dĺžke

a teda všeobecne platí

(3.147)

Predpokladajme teraz, že máme reťazec . To znamená, že v máme výpočet

(3.148)

Podľa dokázaného výsledku o korešpondencii výpočtov v a ( 3.147) máme, že práve vtedy vbude existovať výpočet

(3.149)

Pretože a súčasne , máme , čo znamená, že ( ??) je akceptačnýmvýpočtom pre , t.j. a preto . Platí teda, že . Je jasné, že platíaj opačné tvrdenie.

Skutočne, majme teraz . Z definície jazyka plynie

(3.150)

Z toho, že máme, že

Podľa ( 3.147) máme

(3.151)

Je teda ( 3.151) akceptačný výpočet v , a . Dokázali sme teda, že

(3.152)

a tým je dokázaná jazyková ekvivalencia a . Môžeme teraz sformulovať tvrdenie, ktoré smepráve dokázali.

Theorem 3.7 Ku každému ndksa sa nájde dksa s vlastnosťou, že .

Teraz uvedieme príklad na ilustráciu práve dokázaného výsledku, v ktorom vytvoríme k ndksajazykovo mu ekvivalentný dksa (obr.( ??)).

Page 74: skripta hudak 2002

74 Konečné automaty.

3.4 Regulárne gramatiky a konečno-stavové akceptory.

Cieľom tejto kapitoly je ustanoviť vzťah medzi regulárnymi gramatikami a konečno-stavovými ak-ceptormi, presnejšie medzi triedami jazykov, ktoré reprezentujú regulárne gramatiky a konečno-stavovéakceptory.

Pripomeňme si najprv základné fakty o regulárnych gramatikách (viď kapitolu ( 2.2.1)). Gramati-ka je regulárna ak jej pravidlá vyhovujú nasledujúcej schéme. Majme regulárnugramatiku

kde: neterminálová abecedaterminálová abecedamnožina pravidiel

štartovací symbol

pričom pre pravidlá v platí

alebo (3.153)

kde a . Forma pravidiel ( 3.153) je vlastne schémou pravidiel akejkoľvekregulárnej gramatiky. Oproti pôvodnej definícii, čisto z technických príčin, predpokladáme ďalej špeciálnepravidlo, ktoré nemení povahu generovaného jazyka

ak potom

Príklad regulárnej gramatiky uvádzame nižšie

Príklad 3.9

Definičné zložky sú: . Pravidlá gramatiky vyhovujú schéme ( 3.153).

Teraz pristúpime k dôkazu jazykovej ekvivalencie regulárnych gramatík a konečno-stavových akcepto-rov.

Theorem 3.8 Ku každej regulárnej gramatike sa dá zostrojiť ndksas vlastnosťou, že .

Dôkaz: Dôkaz vykonáme konštruktívne, t.j. zostrojíme algoritmus konštrukcie ndksa podľa regulárnejgramatiky (reg) a potom dokážeme jazykovú ekvivalenciu a . Najprv vytvoríme algoritmus.

Uvedieme niekoľko poznámok k algoritmu.

1. v 1.kroku každé pravidlo definuje vlastne svojou pravou stranou ( ) počiatočný stavndksa . To vysvetľuje zavedenie tohoto typu pravidiel, ktoré sa vyskytujú tiež pri konštrukcii(regulárnej) gramatiky ekvivalentnej niektorým dvom (regulárnym) gramatikám [?].

Page 75: skripta hudak 2002

3.4 Regulárne gramatiky a konečno-stavové akceptory. 75

2. 2. krok poukazuje na príbuznosť regulárnych gramatík a ndksa; reg v každom kroku odvodeniageneruje jeden terminálový symbol, čomu v ndksa zodpovedá prechod pod rovnakým symbolom.V reg sa môžu vyskytovať vo všeobecnosti viac než jedno pravidlo s rovnakou ľavou stranou(povedzme ) a tomu musí zodpovedať príslušná množina nedeterministických prechodov v .To vysvetľuje rozšírenie definície ksa o jav nedeterminizmu, ktorý sme vykonali vyššie. V prípade,že pravidlo má tvar zodpovedajúci prechod v vedie do (jediného) finálového stavuv (3.krok).

3. pravidlo sa v reg bude vyskytovať práve vtedy, keď . Prítomnosť takéhopravidla bola zdôvodnená v dôkaze lemy( 2.2.2). To vysvetľuje opodstatnenosť 4.kroku a začlenenie(jediného) finálového stavu ndksa do množiny finálových stavov .

Pristúpime teraz k dôkazu jazykovej ekvivalencie reg a ndksa .

Medzi odvodeniami v reg a výpočtami v platí nasledujúci vzťah:

(3.154)

Ponechávame na čitateľa dôkaz ( 3.154). Je jednoduchý, a podobne ako už viackrát doteraz, vedie samatematickou indukciou podľa dĺžky odvodení (v ), resp. výpočtov (v ).

Predpokladajme teraz, že máme . To znamená, že platí

(3.155)

Odvodenie( 4.64) je možno reprezentovať takto

(3.156)

Z odvodenia( 3.156) máme, že

(3.157)

(3.158)

(3.159)

Pravé strany ekvivalencií ( 3.157), ( 3.158) a ( 3.159) implikujú existenciu výpočtu v ndksa

(3.160)

ktorý možno zapísať v tvare

(3.161)

Ak si uvedomíme ( 3.157), že je počiatočný stav, potom výpočet ( 3.161) je akceptačný a .Uvedený záver platí pre ľubovoľné a preto platí, že .

Majme teraz slovo . To znamená, že ndksa má akceptačný výpočet

(3.162)

Výpočet ( 3.162) možno teraz vyjadriť takto

(3.163)

Page 76: skripta hudak 2002

76 Konečné automaty.

Výpočet ( 3.163) a algoritmus konštrukcie ndksa podľa reg implikujú nasledujúce ekvivalencie

(3.164)

(3.165)

(3.166)

Pravé strany ekvivalencií ( 3.164), ( 3.165) a ( 3.166) zaručujú existenciu odvodenia v

(3.167)

Odvodenie ( 3.167) je odvodením slova patriaceho jazyku a teda . To dokazuje,v dôsledku všeobecnej povahy vybraného slova , že .

Dokázali sme teda

(3.168)

a výsledok vety platí.

Uvedieme na záver príklad na použitie výsledku vety( 3.8).

Príklad 3.10 Na obr.( 3.38) je uvedený stavový diagram ksa zostrojeného na základe algoritmu ve-ty( 3.8) podľa reg uvedenej v príklade ( 3.9).

3.5 Analýza a syntéza ksa

3.5.1 Regulárne výrazy

Stavové diagramy konečno-stavových akceptorov a súbor pravidiel ľubovoľnej regulárnej gramatiky(alebo gramatiky samotná) sú nepriamymi formami reprezentácie regulárnych jazykov. Vyvstáva otázka,či existuje iná - ”priama” forma reprezentácie jazyka a ovšem taktiež konečná. Je vhodné vyjadrovaťjazyk explicitne v termínoch jednoduchých množín reťazcov symbolov zo zadanej abecedy. Tento cieľbudeme sledovať v tejto časti.

V predošlých kapitolách sme definovali operácie zreťazenia (konkatenácie) a tranzitívneho uzáverumnožín a preto poznáme, aký zmysel má výraz

Budeme rozlišovať dve veci:

1. reťazec symbolov, ktorý vytvára výraz tohto typu sa bude volať regulárnym výrazom; za symbolypovažujeme všetky symboly, t.j. aj (, ),

2. reťazec symbolov, ktoré výraz tohto typu definuje voláme regulárnou množinou

Dva rozdielne regulárne výrazy môžu určovať rovnakú regulárnu množinu.

Výrazy a opisujú regulárnu množinu zloženú zo všetkých možných postupností 0, 1takých, že 0 a 1 sa v nich prísne striedajú a naviac každá postupnosť začína a končí 1.

Pristúpime k formálnej definícii regulárnych výrazov.

Page 77: skripta hudak 2002

3.5 Analýza a syntéza ksa 77

Definícia 3.11 Nech V je konečná abeceda a majme množinu

Regulárnymi výrazmi (r.v.) sú reťazce z definované takto:

1. je r.v.

2. je r.v.

3. je r.v.

Nech sú r.v., potom

4. ( ) je r.v.

5. ( ) je r.v.

6. je r.v.

Definícia 3.12 Ak je regulárny výraz pre V potom - množina, ktorú definuje sa volá hodnotouregulárneho výrazu

1. ak

2. ak sú r.v. a A, B zodpovedajú ich hodnoty, potom

Definícia 3.13 Dva regulárne výrazy sú ekvivalentné vtedy a len vtedy ak platí, že

kde sú hodnoty r.v.

Formálne

Definícia 3.14 Každému r.v. na V v zmysle definície 3.11 je možné jednoznačne priradiť celé čísloh( ) takto:

1.

2. ak sú r.v. a sú im zodpovedajúce celé čísla, potom

Page 78: skripta hudak 2002

78 Konečné automaty.

číslo sa volá hĺbka r.v.

Regulárny výraz určuje teda v zmysle definície 3.12 jednoznačne niektorú množinu . Zátvorky vregulárnych výrazoch môžu byť vynechané, ak to nevedie k nedorozumeniu.

Podľa definície 3.13 dva r.v. sú ekvivalentné ak množiny reťazcov (slov) nimi definované sú rovnaké.

Platí nasledujúca veta.

Veta 3.1 Ak sú r.v. na V potom platia tieto vzťahy:

Platnosť vzťahov 1-8 vyplýva priamo z vlastností operácií a konkatenácie. Verifikácia týchtovzťahov je ponechaná čitateľovi!

Definícia 3.15 Ak je r.v. na V, potom pod zrkadlovým (obráteným) výrazom budeme chápať

1. ak

2. ak

( )

3. ak

( )

4. ak

Tvrdenie: Pre ľubovoľný regulárny výraz na V je taktiež r.v.

Dôkaz: Budeme viesť dôkaz indukciou po hĺbke r.v.

Ak

Page 79: skripta hudak 2002

3.5 Analýza a syntéza ksa 79

tvrdenie triviálne platí.

Predpoklad indukcie: Nech tvrdenie platí pre .

Majme výrazy také, že . V zmysle definície, ak , potoma teda je r.v. a .

Podobne pre je( )

regulárnym výrazom a( )

. Podobne preje

( ). A tvrdenie platí pre

( ), teda tvrdenie platí vôbec.

Príklad 3.11 Nech

( )

( )

(( ) ( ))

je zrejme r.v.

Každý zo vzťahov 1-15 z vety 3.1 platí aj pre prípad zrkadlových r.v.

3.5.2 Analýza ksa

Koncové množiny stavov

Definícia 3.16 Nech M = (Q, S, P, I, F) bude KSA. Koncovou množinou E(q) stavu q automatu Mbude súbor všetkých takých vstupných reťazcov, pre ktoré v M existuje pre každý z nich niektorá prípustnástavová postupnosť prevádzajúca M z q do niektorého finálového stavu, t.j.

{ ∣∣∣

}

(3.169)

Príklad 3.12 Uvažujeme KSA podľa obr.(3.12)

Koncová množina E(A) je množina reťazcov zložených z 0,1 a takých, že prvým symbolom je vždy ”1”,za ktorou nasleduje ľubovoľný počet dvojíc ”00” končí sa opäť ”1” – teda prevádza M z A do D, ktorýje jediným finálovým stavom. Ináč: E(A) bude pozostávať z ”1”, za ktorým nasleduje niektorý reťazec,ktorý prevádza M zo stavu B do stavu D (symbol “.” znamená operáciu reťazenia a nie násobenia):

(3.170)

Podobne reťazce z E(c) budú obsahovať ako prvý symbol 0, za ktorou bude nasledovať niektorý reťazecz E(B), teda:

(3.171)

Napokon reťazcom v E(B) môže byť reťazec začínajúci 0, za ktorým nasleduje niektorý reťazec z E(c),alebo jednoducho 1, teda

Page 80: skripta hudak 2002

80 Konečné automaty.

(3.172)

Vzťahy (3.170),(3.171) a(3.172) vytvárajú systém množinových rovníc, ktorému musia vyhovovať kon-cové množiny akceptora M.

Jazyk, ktorý M rozpoznáva, môže byť vyjadrený pomocou jeho koncových množín.

V našom príklade L(M) je množina reťazcov (slov), ktoré sú obsiahnuté v koncovej množine počiato-čného stavu.

L(M)=E(A)

Všimnime si, že koncová množina stavu D je , pretože D je akceptujúcim stavom (finálovýmstavom) a neexistuje žiadny prechod z tohoto stavu. Teda vzťah (3.172) môžeme prepísať do tvaru:

Týmto príkladom sme ilustrovali spôsob, ktorým môžeme odvodiť sústavu množinových rovníc preľubovoľný automat M bez výstupu. Prv než pristúpime k zovšeobecneniu tohoto spôsobu, preskúmameniektoré základné vlastnosti koncových množín.

Vlastnosti koncových množín:

1. Malo by byť jasné, že koncová množina E(q) pre vždy obsahuje prázdny reťazec

2. Naopak, ak q nie je finálovým stavom, potom nepatrí do E(q), pretože aspoň jeden symbol jepotrebný k tomu, aby M prešiel z q do niektorého iného stavu a teda aj do finálového stavu.

3. Predpokladajme, že . Potom musí existovať prípustná postupnosť stavovpre taká, že obsahuje aspoň jeden prechod. Ak prvým symbolom je s potom

, kde

Z toho vyplýva, že musí existovať stav v M taký, že

a( )

Podobne platí aj opačné tvrdenie.

4. Napokon reťazec je akceptovaný M vtedy a len vtedy, ak existuje taká prístupná postupnosťstavov , že

kde q a q´ sú počiatočným, resp. finálovým stavom. Teda L(M) je množinovým súčtom koncovýchmnožín požadovaných stavov automatu M.

Na základe poznatkov, ktoré sme doteraz získali o koncových množinách môžeme vysloviť tieto tvrde-nia:

Tvrdenie 1:

Nech M = (Q, S, P, I, F) bude KSA a E(q) je koncová množina stavu q. Potom

Page 81: skripta hudak 2002

3.5 Analýza a syntéza ksa 81

1. vtedy a len vtedy ak

2. ak , potom vtedy a len vtedy ak( )

je prechodom v M

pre niektoré

3.⋃

Tvrdenie 2:

Koncové množiny KSA M = (Q, S, P, I, F) vyhovujú sústave pravo-lineárnych množinových rovníc:

pre každý

⋃( ) ( )

kde

( ) {

má}

a{

(prázdna množina) v ostatných prípadoch

Každý koeficient( )

je množinou obsahujúcou tie a len práve tie symboly, pre ktoré M má

prechod z q do .

Lineárne množinové rovnice sú analógiou lineárnych algebraických rovníc. Aritmetické operácie zlože-nia, násobenia v lineárnych algebraických rovniciach zodpovedajú operáciam množinového súčtu a kon-katenácie (zreťazenia). Rovnice sú skutočne lineárne, pretože koncové množiny, ktoré tu vystupujú akoneznáme veličiny môžu sa vyskytovať v každom terme iba jediný raz. Prívlastok pravolineárny má svojpôvod v tom, že neznáme koncové množiny stoja v každom terme zprava. V ďalšom uvidíme ako tietorovnice môžu byť riešené a že riešením týchto rovníc je vždy tzv. regulárny výraz.

Všimnime si, že pri vytváraní množinových rovníc termy zodpovedajúce tzv. pascovým stavom nebudúsa vyskytovať na pravej strane rovníc, pretože pre ľubovoľný pascový stav.

Podobná úvaha platí pre nedosiahnuteľné stavy, pretože ak napr. je nedosiahnuteľný zo žiadneho

počiatočného stavu potom rovnica pre( )

, ako aj všetky výskyty termov s( )

môžu byť

odstránené zo sústavy bez vplyvov na L(M). Doporučujeme čitateľovi vykonať tieto úvahy detailnejšie.

Ak M je KSA s prechodom

potom na základe tvrdenia (3.170) reťazec vždy vtedy ak( )

, alebo formálnejšie( ) ( )

1

Odtiaľ vyplýva, že môžeme písať

( )

(3.173)

1symbol tu označuje implikáciu

Page 82: skripta hudak 2002

82 Konečné automaty.

Riešenie sústavy množinových rovníc

Ukázali sme, že pre každý konečný akceptor (ksa) je možné zapísať sústavu pravo-lineárnych množinovýchrovníc typu

⋃ ⋃

- koncová množina stavu{ ∣

∣∣

( )}

{

v ostatných prípadoch

Pre niektoré K a j bude prázdna a v tom prípade príslušné členy z rovníc vypadnú. Riešeniamitejto sústavy budú koncové množiny a zostáva nám dokázať, že tieto množiny sú jediným riešením takejsústavy.

Spôsob riešenia takejto sústavy lineárnych množinových rovníc je analogický spôsobu riešenia obyčaj-ných lineárnych algebraických rovníc a je založený na postupnej redukcii počtu premenných pomocounahradzovania (substitúcie). Ináč povedané, najprv si vyjadríme napr. ako funkciu .Dosadením do zbývajúcich rovníc obdržíme sústavu o n-1 prvkoch . Podobne postu-pujeme až kým neobdržíme jedinú rovnicu, povedzme ako funkciu ”konštánt” .

Pokúsime sa toto urobiť systematicky.

V prípade uvedenej sústavy

⋃ ⋃

⋃ ⋃

...⋃ ⋃

začneme s vyjadrením množiny . Zrejme rovnica pre môže mať tvar

Problém je v tom, že stojí na oboch stranách tejto rovnice.

Aby , musí platiť jedna z týchto podmienok

1.⋃ ⋃

2.

Povedané, je možné ilustrovať na nasledujucom pseudo-grafe 3.5.2, v ktorom spojnice sú označenémnožinami a nie jednoduchými symbolmi. Ďalším abstrahovaním dostaneme z toho pseudo-grafu graf3.5.2.

kde

⋃ ⋃

Podľa definície koncových množín je pre tento prípad jasné, že

(3.174)

Page 83: skripta hudak 2002

3.5 Analýza a syntéza ksa 83

,

kde X má význam koncovej množiny stavu X.

Z grafu 3.5.2 je možné odvodiť riešenie

⋃ ⋃ ⋃ ⋃

čo je ľahko verifikovateľné, ak máme na zreteli to, že

Riešenie 3.174 je známe ako tzv. Ardenovo pravidlo.

Ak teda použijeme 3.174 na rovnicu pre dostaneme

⋃ ⋃

Dosadením do zbývajúcich rovníc sustavy namiesto dostaneme

⋃(⋃ ⋃

)

(⋃ ⋃

)⋃(⋃ ⋃

)

⋃ ⋃ ⋃ ⋃

Ak označíme

}

potom

⋃ ⋃

pre K = 2, . . . n

Podobným postupom môžeme eliminovať ostatné neznáme . Procedúra riešenia sústavykončí odvodením rovnice pre

a z toho plynie, že

kde sú označením pre niektorý regulárny výraz odvodený v priebehu riešenia.Skutočne, výsledný výraz je vytvorený pomocou operácií

⋃z konštantných

množín a sú teda regulárnymi výrazmi.

Príklad 3.13 Majme akceptor, ktorý je zobrazený obr.3.5.2. Vyjadrenia jeho koncových množín môžemezapísať takto:

Page 84: skripta hudak 2002

84 Konečné automaty.

⋃ ⋃

⋃ ⋃

Koncové množiny tu označujeme priamo menami stavov, teda A = E(A). Postup pri redukcii je na-sledovny:

⋃ ⋃

⋃ ⋃

⋃ ⋃ ⋃

( ⋃ ⋃ )

Z obr.3.5.2 a z uvedených vzťahov je možné konštatovať, že

( ⋃ ( ⋃ ) )

Poznámka: Poradie redukcie stavov nie je určené a zložitosť redukcie závisí niekedy od vhodnéhovýberu poradia. Výsledky rôznych redukcií jedného a toho istého akceptora môžu všeobecne povedanépriviesť k rôznym r.v. avšak tieto rôzne reg. výrazy budú opisovať jeden a ten istý jazyk (ak ovšem súodvodené pre jeden a ten istý stav!)

Jednoznačnosť riešenia sústavy

V predošlej časti sme uviedli, že riešením rovnice

Je toto riešenie jediné?

Najprv ukážeme detailnejšie, že je to skutočne riešením

Ak ale nie je ťažko ukázať, že ak , potom existuje aj iné riešenie a to .

Skutočne

Z definície ”súčinu” množín vyplýva, že jej prvkami sú reťazce také, že .Ak potom a teda . Keďže platí, že

a teda je skutočne riešením, ak .

Ďalej budeme predpokladať, že

Page 85: skripta hudak 2002

3.5 Analýza a syntéza ksa 85

Veta 3.2 Nech P a Q sú ľubovoľné dve podmnožiny reťazcov v abecede V. Potom

a tieto riešenia sú jediné ak .

Dôkaz: Dôkaz budeme robiť pre prípad rovnice⋃

. Druhý prípad je analogický.

Vieme už že je riešenie. Predpokladajme, že nie je jediné, a že existujú dve odlišné riešenia

To znamená, že

Potom riešením bude aj⋃

⋃ ⋃ ⋃ ⋃

⋃ ⋃

Nech⋃

potom jedna z množín alebo musí byť vlastnou podmnožinou , nechvytvorme rozdiel

Je jasné, že⋃ ⋂

Pretože⋃

je riešením rovnice

⋃ ⋃ ⋃

⋃ ⋃

Vytvoríme prienik obidvoch strán posledného vzťahu s A

⋃ ⋂ ⋃ ⋂

⋂ ⋃ ⋂ ⋂ ⋃ ⋂

Stade ⋂

(3.175)

Nech je najkratší reťazec v A, potom podľa 3.175.

Teda kde keďže je čo je protirečenie,pretože je najkratším reťazcom v A. Teda a riešenie je jediným riešenímrovnice typu

⋃.

Veta 3.3 Nech M = (Q, S, P, I, F) je konečno-stavovým akceptorom s množinou stavov

a nech

{ ∣∣∣

( ) }

Page 86: skripta hudak 2002

86 Konečné automaty.

{

Potom systém pravo-lineárnych množinových rovníc

⋃ ⋃

(3.176)

má jediné riešenie také, že

kde sú koncovými množinami pre M

Dôkaz:

Koncové množiny sú definované vzťahom{ ∣

∣∣ pre niektoré

}

Bolo dokázané, že koncové množiny automatu M môžu byť riešeniami systému rovníc 3.176.Predpokladajme, že sú podmnožiny množiny , ktoré sú niektorým riešením systému 3.176.Využijeme výsledok vety 3.2 k tomu, aby sme dokázali, že každé (K = 1, . . . n) je jediným riešením.Žiadny z koeficientov neobsahuje prázdny symbol (pretože akceptor nemá - prechody a ).Teda ani v rovnici pre neobsahuje a teda podľa vety 3.2 vzťah

⋃ ⋃

musí platiť medzi množinami . Ak nahradíme v ostatných rovniciach systému 3.176dostaneme rovnice typu

⋃ ⋃

kde sú výrazy podobné tým, ktoré sme odvodili vyššie. Vytvorený redukovaný systémje opäť pravo-lineárny a žiadne neobsahuje a teda pre platí

⋃ ⋃

a je v zmysle vety 3.2 jediným riešením. Opakovaním tohto kroku až dovtedy pokým nebude systémzredukovaný na jedinú rovnicu pre , ktorá bude vyriešená vzhľadom k tým istým spôsobom azískané riešenie bude opäť jediným podľa vety 2 a bude predstavovať niektorú konštantnú množinu danúzodpovedajúcim regulárnym výrazom.

Pri redukcii sústavy 3.176 nás vôbec nezaujímali otázky ”zloženia” množín , podstatnýmbolo to, že sú riešením sústavy. V každom kroku v zmysle vety 3.2 riešenia (K = 1, . . .n) boli jediné.

Teda výraz pre je jedinou možnou ”hodnotou” pre neznáme pri ľubovoľnom poradí elimináciepremenných pre jeden a ten istý systém. Ináč povedané, pri rôznych spôsoboch výberu poradia prvkov

Page 87: skripta hudak 2002

3.5 Analýza a syntéza ksa 87

z pri redukcii systému, získané riešenia, t.j. výrazy pre budú reprezentovať vkaždom z týchto prípadov jedny a tie isté množiny.

Pretože poradie číslovania stavov je nepodstatné, podobne ako aj výber poradia redukcie, tento argu-ment je možné preniesť na ľubovoľné K = 1, . . . n.

Jazyk⋃

A tento jazyk je daný jednoznačne práve vykonanou redukciou. Tvrdenie je dokázané!

Výsledkom takejto procedúry redukcie sú regulárne množiny ako riešenia pre každé (K = 1, . . .n). Obdržali sme teda 1.časť známeho tvrdenia dokázaného Kleene pre prípad konečných automatov(akceptorov).

Veta 3.4 Každý konečno-stavový akceptor M určuje niektorý regulárny výraz, ktorý opisuje jazyk rozlí-šiteľný (rozpoznateľný) M.

3.5.3 Syntéza ksa

V tejto časti dokážeme, že pre ľubovoľný r.v. existuje ksa, ktorý rozpoznáva jazyk daný týmto r.v. .Syntéza takého ksa je urobená takým spôsobom, že najprv konštruujeme akceptory pre časti r.v. a potomkombináciou týchto ksa vytvárame akceptor pre celý r.v. (rekurzívny postup).

Východzím bodom je konštrukcia ksa pre r.v. typu a pre ľubovoľné .

Majme ksa ktoré rozpoznávajú ľubovoľné regulárne množiny .

Ako je možné skonštruovať M pre⋃

?

Je účelné predpokladať, že ksa sú takej povahy, že:

1. majú jediný počiatočný stav (každý z nich môže mať iný) pre ktorý neexistuje prechodpre žiadne S a žiadne

2. majú jediný finálový stav (každý z nich môže mať iný taký stav) pre ktorý neexistuje prechod

pre žiadne S a žiadne

Za týchto podmienok je konštrukcia M možná. Príkladom budeme ilustrovať nemožnosť zostrojeniatakého M v prípade, že aspoň jedna z podmienok 1, 2 je narušená.

Príklad: ksa sú dané obrázkom

Obrázok

Obr.5

Aby sme obdržali M pre⋃

prirodzeným sa zdá stotožnenie počiatočných stavova finálových stavov . Podobne pre získanie M takého, že sa zdá

prirodzeným stotožnenie finálového stavu s počiatočným stavom a považovať za počiatočný stavM počiatočný stav a za finálový stav M finálový stav .

-ksa

Ekvivalencia -ksa a ksa

Page 88: skripta hudak 2002

88 Konečné automaty.

Kleeneho veta o syntéze ksa

3.5.4 Vlastnosti regulárnych jazykov

Nerodove ekvivalencie a ich použitie

Nech S je abeceda a je množina všetkých reťazcov nad S. Budeme volať reláciu R nad reláciouekvivalencie ak R vyhovuje podmienke reflexívnosti, symetrie a tranzitívnosti.

Reláciu ekvivalencie voláme pravým invariantom (pi) ak pre

Analogicky sa definuje ľavý invariant (li)

Relácia R je kongruenciou , ak R je súčasne pi aj li

Lema 1: Majme R kongruenciu nad ; potom xRy, zRw platí xzRyw

D: xRy xzRyz(R je pi)

zRw yzRyw(R je li)

xzRyz, yzRyw xzRyw (R je ekvivalencia a preto . . .)

Relácia ekvivalencie R bude reláciou konečného indexu nad ak je konečný rozklad

Veta 3.5 Nerodove ekvivalencie

Nech je množina reťazcov, je množina všetkých jazykov akceptovateľných ksa na S (t.j. M pre LL = L(M), M = (Q, S, , q, F) , L nech je nejaký ksa jazyk. Potom nasledujúce tvrdenia sú ekvivalentné

1. ( t.j. )

2. L je zjednotením konečného počtu tried ekvivalencie niektorej relácie R nad piki

3. Relácia ekvivalencie E nad definovaná explicitne takto

xEy je piki

Dôkaz: 1 2

Nech L = L(M), M = (Q, S, F). Definujeme R takto:

R je ekvivalencia: xRx pre

Ukážeme, že R je pravý invariant (pi)

Page 89: skripta hudak 2002

3.5 Analýza a syntéza ksa 89

Nech xKy: uvažujme

- je konečný rozklad

je reprezentáciou stavu

Pretože Q je konečná, plynie⋃

takých tried je konečne veľa

2 3

Majme R definované podľa M

Definujeme

Nech xRy pretože L je zjednotením konečného počtu tried tzn.

E je triv. Pi a s Ki

3 1

Majme E piKi

Definujeme M pomocou

( )

Dôsledok:

nie je ksa j.

D: vyberme

no vieme, že L (podľa vety) je zjednotením K tried ekvivalencie.

Potom

spor!

Uzáverové vlastnosti na triede regulárnych jazykov

Uzáverové vlastnosti pre regulárne j.

Page 90: skripta hudak 2002

90 Konečné automaty.

1.spôsob:∑

Podľa Kleeneho vety

⋃ ⋃

2.spôsob: Nech∑potom existujú ksa

∑i = 1, 2

Vytvoríme M = (Q,∑

F)

⋃ ⋃

⋃[ ]

( ∑ )

∑ všade definovaných ksa

Page 91: skripta hudak 2002

3.5 Analýza a syntéza ksa 91

1. spôsob: cez regulárne výrazy

2. spôsob:∑

i = 1,2

⋃ ⋂

1. spôsob

∑ ∑

2. spôsob

obrázok

(∑

)

Uvažujme

⋂ ( )

Page 92: skripta hudak 2002

92 Konečné automaty.

∑ ∑

{

(substitúcia)∑je abecedaX je abeceda

∑ ∑

Def.: Trieda L:∑je uzavretá na substitúciu

∑L

Veta: Treida reg. jazyka je uzavretá na substitúciu

D: G = (N, T, P, S)L(G) = L S T

Nech je substitúcia pre t.j. musí existovať reg. gram

Definujeme teraz novú gramatiku

⋃ ⋃

⋃(⋃

)

Nech

Page 93: skripta hudak 2002

3.5 Analýza a syntéza ksa 93

∑{

∑}

{ }

∑ ⋂

( )

∑{

∑}

{ }

∑ ⋂

( )

( )

Uvažujme:∑

Vytvorme∑

{∑

}

{ }

- koncová substitúcia

Uvažujme∑ ⋂ ∑ ⋃ ∑

Nech∑ ∑ ⋃ ∑

homomorfizmus

( )

Analogicky pre

gsm zobrazenie:

Zobrazenie x, y abecedy je substitúciou ak platí:

Substitúcia je konečná ak je koncové pre .

Všimnime si, že vo všeobecnosti je jazyk (a snáď aj ne. . .)

je homomorfizmus ak platí pre

Teda je homomorfizmus, ak je reťazec pre .

Budeme označovať symbolom⋃

Hovoríme, že trieda jazykov L na abecede∑je uzavreté na substitúciu ak z toho, že

L plynie L

Page 94: skripta hudak 2002

94 Konečné automaty.

Majme . . .:

Tvorba jazyka L je uzavretá pod substitúciou ak pre ľubovoľný jazyk∑z tejto triedy a pre

ľubovoľnú substutúciu takú, že L pre všetky∑platí, že L.

Veta 1: Trieda∑je uzavretá na substitúciu.

D: Majme reg. jazyk∑a G = (N, T, P, S) je jeho regulárna gramatika.

Majme substitúciu a nech platí, že

(∑)

Majme ďalej i = 1, . . . K reg. gramatiky také, že

Vytvoríme novú gramatiku( )

s týmito zložkami

⋃(⋃

)

{

Je jasné, že

je regulárna gramatika alebo môže byť tak urobená

3.5.5 Algoritmické problémy regulárnych jazykov

Page 95: skripta hudak 2002

3.5 Analýza a syntéza ksa 95

Obrázok 3.23: Súčtový konečný automat

Page 96: skripta hudak 2002

96 Konečné automaty.

Obrázok 3.24: Súčinový konečný automat

Page 97: skripta hudak 2002

3.5 Analýza a syntéza ksa 97

Obrázok 3.25: Izomorfizmus automatov

Page 98: skripta hudak 2002

98 Konečné automaty.

Obrázok 3.26: Tabuľková reperezentácia konečno-stavového akceptora

Obrázok 3.27: Reprezentácia konečno-stavového akceptora prechodovou (stavovou) tabuľkou

Obrázok 3.28: Prechodová tabuľka konečno-stavového akceptora

Page 99: skripta hudak 2002

3.5 Analýza a syntéza ksa 99

Obrázok 3.29: Stavový diagram konečno-stavového akceptora

Obrázok 3.30: Ksa počítadlo modulo 3

Obrázok 3.31: Simulačný konečný automat Moore pre ksa-počítadlo modulo 3

Obrázok 3.32: Sieť automatov

Obrázok 3.33: Interpretácia nedeterminizmu stromom dosiahnuteľnosti

Obrázok 3.34: Nedeterministický konečno-stavový akceptor

Page 100: skripta hudak 2002

100 Konečné automaty.

Algoritmus: Determinizácia ndksaVstup: ndksa

konečná množina stavovkonečná množina vstupných symbolov (vstupná abeceda)

relácia ndksa (program ndksa )množina počiatočných stavovmnožina finálových stavov

Výstup: dksakonečná množina stavovkonečná množina vstupných symbolov (vstupná abeceda)

prechodová funkcia dksapočiatočný stav dksamnožina finálových stavov dksa

Telo algoritmu:

Vytvorte:

Obrázok 3.35: Algoritmus determinizácie ndksa.

Obrázok 3.36: Determinizácia ndksa

Page 101: skripta hudak 2002

3.5 Analýza a syntéza ksa 101

Algoritmus: Konštrukcia ndksa podľa reg .Vstup:regulárna gramatika

abeceda neterminálovabeceda terminálovkonečná množina pravidiel gramatikyštartovací symbol gramatiky

Výstup:ndksa

konečná množina stavov ndksavstupná abeceda ndksa

množina prechodov - relácia ndksamnožina počiatočných stavov ndksamnožina finálových stavov ndksa

Telo algoritmu:

platí v1. krok

2. krok

3. krok

4. krok

platí v

Obrázok 3.37: Algoritmus konštrukcie ndksa podľa reg .

Obrázok 3.38: Konštrukcia ndksa podľa reg G

Obrázok 3.39: KSA pre jazyk 1(00)*1

Page 102: skripta hudak 2002

102 Konečné automaty.

Page 103: skripta hudak 2002

Kapitola 4

Zásobníkové automaty abezkontextové jazyky

V tejto kapitole sa budeme venovať novému typu automatov, tzv. zásobníkovým automatom (push-downautomata - (pda)). Bude nás zaujímať vzťah týchto automatov k formálnym jazykom. Z tohoto dôvodunás budú zaujímať predovšetkým zásobníkové akceptory, ako reprezentanti určitej triedy formálnych ja-zykov. Ukážeme, že pôjde o triedu tzv. bezkontextových (context - free) jazykov. Posledné predstavujúteoretický model pre realistické programovacie jazyky (Pascal, C atp.). Budeme venovať pozornosť ajštúdiu vlastností bezkontextových gramatík a ustanovíme vzťah jazykovej ekvivalencie medzi zásobníko-vými automatmi (pda) a bezkontextovými gramatikami (cfg). Zodpovedajúce algoritmy prevodu pda nacfg a naopak predstavujú teoretický základ prekladu programov (prekladačov), špeciálne časti nazývanejsyntaktická analýza.

4.1 Zásobníkové automaty

Začneme s intuitívnou predstavou zásobníkového automatu, ktorú ilustruje obr.( 4.1).

Obrázok 4.1: Zásobníkový automat - mechanický model

Model na obr.( 4.1) pozostáva z piatich častí:

103

Page 104: skripta hudak 2002

104 Zásobníkové automaty a bezkontextové jazyky

riadiaca jednotka (konečný automat)

vstupná páska

pamäťová páska (zásobník)

čítacia hlava vstupnej pásky

(čítacia a zapisovacia) hlava zásobníka

Vstupná páska predstavuje jednorozmerný útvar, rozprestierajúci sa neobmedzene doľava a doprava,lineárne usporiadaných buniek, každá z ktorých môže obsahovať jeden symbol, patriaci do niektorej ko-nečnej množiny symbolov, tzv. vstupnej abecedy. V danom čase iba konečne veľa buniek bude obsahovaťtaké symboly a zvyšok (nekonečne veľa ) buniek budú prázdne, čo sa bude vyjadrovať tak, že tieto prázd-ne bunky budú obsahovať špeciálny symbol .

Zásobník (pamäťová páska) predstavuje jednorozmerný útvar, rozprestierajúci sa od určitého miesta -dna zásobníka, neobmedzene nahor, lineárne usporiadaných buniek, každá z ktorých môže obsahovať je-den symbol, patriaci do niektorej konečnej množiny symbolov, tzv. abecedy zásobníka (pamäťovej becedy). V danom čase iba konečne veľa buniek bude obsahovať také symboly a zvyšok (nekonečne veľa ) buniekbudú prázdne, čo sa bude vyjadrovať tak, že tieto prázdne bunky budú obsahovať špeciálny symbol .

Vstupná hlava pda predstavuje mechanizmus so schopnosťou ”čítať” obsah bunky nad ktorou sa hlavav danom čase nachádza, tzv.aktuálnej bunky. Po prečítaní obsahu bunky (týmto aktom sa obsah bun-ky nemení) sa vstupná hlava posunie o jednu bunku doprava, ktorá sa stáva novou aktuálnou bunkou.Vstupná hlava nemá možnosť pohybu doľava, ani nemôže meniť obsah akejkoľvek bunky na vstupnejpáske. To vysvetľuje, prečo sa tejto hlave hovorí ”čítacia hlava”.

Hlava zásobníka pda predstavuje mechanizmus so schopnosťou ”čítať” obsah aktuálnej bunky zásobní-ka nad ktorou sa hlava v danom čase nachádza a po prečítaní obsahu tento obsah buď vymaže (nahradípôvodný obsah prázdnym obsahom, ktorý je reprezentovný špeciálnym symbolom ), alebo ho vymaže ado zásobníka, počínajúc aktuálnou bunkou smerom nahor, zapíše niektorý reťazec pozostávajúci zo sym-bolov zásobníkovej abecedy a hlava sa nastaví na poslednej neprázdnej hornej bunke, ktorá bude novouaktuálnou bunkou zásobníka (novým vrcholom zásobníka). Aktuálna bunka zásobníka sa volá vrcholomzásobníka.

Riadiaca jednotka pda je modifikovaný konečný automat s výstupom (sekvenčný stroj) s vlastno-sťami, ktoré sme opísali a študovali v kapitole ( 3.1). Vstupom pre je dvojica symbolov , resp., kde je obsah aktuálnej bunky na vstupnej páske a je obsah aktuálnej bunky (vrchola) zásobníka.

Činnosť pda sa realizuje v jednotlivých krokoch. Každý krok je determinovaný 3-icou s týmtovýznamom: ak sa riadiaca jednotka nachádza v stave a aktuálne bunky vstupnej pásky a zásobníkaobsahujú symboly , resp. potom krok pda spočíva v posune hlavy zásobníka smerom nahor, a vnahradení v zásobníku reťazcom (obr.( 4.1)), posunom vstupnej hlavy o jednu bunku doprava aprechodom do nového stavu (povedzme) . Toto zvykneme vyjadrovať inštrukciou pda, ktorá mátvar

(4.1)

Význam inštrukcie ( 4.1) bol práve opísaný vyššie a jej efekt na zmenu situáciu v pda ilustrujeobr.( 4.2).

Pristúpime teraz k formálnej definícii zásobníkového automatu.

Definícia 4.1 Zásobníkový automat je daný 7 - icou , kde

Page 105: skripta hudak 2002

4.1 Zásobníkové automaty 105

Obrázok 4.2: Efekt vykonania inštrukcie v zásobníkovom automate

PROGRAM Tabuľka funkcie

a) b)

Obrázok 4.3: Deterministický zásobníkový automat.

- - konečná množina stavov

- - abeceda vstupnej pásky (vstupná abeceda)

- - abeceda zásobníka

- - symbol dna zásobníka

- - počiatočný stav

- - množina finálových stavov

je prechodová funkcia pda , ktorá je definovaná takto:

nedeterministický pda

deterministický pda

V nedeterministickom pda je prechodová funkcia vlastne reláciou, t.j. ,čo sa dá vyjadriť ako konečná postupnosť 5-íc , ktorú budeme volať programom pda .Rovnako sa dá vyjadriť aj v prípade deterministického pda . V tomto prípade bude mať programtú zvláštnosť, že nebude obsahovať dve 5-ice s rovnakými prvými tromi zložkami. Na obr.( 4.3) jeuvedený príklad deterministického pda, ktorý je reprezentovaný alternatívne: programom (obr.( 4.3a)))a tabuľkovou reprezentáciou prechodovej funkcie (obr.( 4.3b))).

Všimnime si, program pda na obr.( 4.3a)) má tú vlastnosť, že neobsahuje 3-ice s rovnakými prvýmitromi zložkami. Ide teda o deterministický pda, čoho dôkazom je tabuľková reprezentácia . Obr.( 4.4)je príkladom zásobníkového automatu, program ktorého nespĺňa uvedenú požiadavku. Ide o nedetermi-nistický pda.

Všimnime si, že inštrukcie a majú rovnakú 3-icu prvých zložiek ; analogicky aj inštrukciea majú rovnakú 3-icu prvých zložiek . Na obr. ( 4.4) máme teda program nedeterminis-

tického zásobníkového automatu.

Na vyjadrenie situácie, v ktorej sa pda v danom čase nachádza zavediemenový pojem, tzv. konfigurácie pda .

Page 106: skripta hudak 2002

106 Zásobníkové automaty a bezkontextové jazyky

PROGRAM

::::::::::

Obrázok 4.4: Nedeterministický zásobníkový automat.

Konfigurácia vyjadruje situáciu pda , ktorého vstupná hlava stojí nad aktuálnoubunkou s obsahom a obsah neprázdnej časti vstupnej pásky pda bezprostredne napravo od aktuálnejbunky je . Obsah zásobníka je , pričom je symbol na vrchole zásobníka (na ktorý je nastavenáv danom čase hlava zásobníka) a obsah zásobníka pod vrcholom smerom ku dnu zásobníka je (viďobr.( 4.5)). Z hľadiska formálneho je konfigurácia . Definujeme si teraz významnékonfigurácie. Hovoríme, že konfigurácia je

- počiatočná konfigurácia ak , kde je obsah celej neprázdnej časti vstupnej pásky

- finálová konfigurácia ak , kde

- prázdna konfigurácia ak , kde

- prázdna finálová konfigurácia ak , kde

Obrázok 4.5: Konfigurácia zásobníkového automatu

Krok výpočtu pda vedúci z konfigurácie do konfigurácie, čo symbolicky označujeme ako , je daný nasledujúcou

definíciou

(4.2)

Majme teraz postupnosť konfigurácií , kde je počiatočná konfigurácia. O tejto postup-nosti budeme hovoriť, že je prípustná postupnosť konfigurácií (ppk) v pda , ak platí, že

Tento fakt potom formálne vyjadrujeme takto:

alebo alternatívne

Page 107: skripta hudak 2002

4.1 Zásobníkové automaty 107

kde . Teraz sme pripravení definovať jazyk, ktorý zásobníkový automat môže akcep-tovať. Rozlišujeme niekoľko spôsobov akceptovania reťazcov zásobníkovým automatom:

- akceptovanie finálovou konfiguráciou

- akceptovanie prázdnou konfiguráciou

Budeme hovoriť, že pda akceptuje slovo finálovou konfiguráciou akexistuje prípustná postupnosť konfigurácií

a pre niektoré

Množinu všetkých reťazcov akceptovaných finálovou konfiguráciou budeme označovať

(4.3)

Budeme hovoriť, že pda akceptuje slovo prázdnou konfiguráciou(prázdnym zásobníkom) ak existuje prípustná postupnosť konfigurácií

Množinu všetkých reťazcov akceptovaných prázdnou konfiguráciou (prázdnym zásobníkom) budemeoznačovať

(4.4)

V ďalšom budeme používať spojenie ’akceptovanie prázdnou konfiguráciou’ a spojenie ’akceptovanieprázdnym zásobníkom’, ako rovnocenné.

Zásobníkový automat, ktorý akceptuje prázdnym zásobníkom nebude potrebovať množinu finálovýchstavov a preto ju urobíme prázdnou množinou a taký pda budeme definovať ako 7-icu

Na obr.( 4.3) sme uviedli program zásobníkového automatu. Je jednoduché sa presvedčiť, že tentozásobníkový automat akceptuje prázdnou konfiguráciou ( prázdnym zásobníkom) a jeho jazyk

(4.5)

Skutočne, všimnime si, že inštrukcia nahradí symbol na dne zásobníka symbolom a inštrukcioupostupne číta zo vstupnej pásky symboly a odpamätáva si ich do zásobníka. Predpokladáme, že na

vstupnej páske je reťazec, ktorý začína predponou zloženou zo samých symbolov (povedzme, že takápredpona bude obsahovať takých symbolov) za ktorými nasleduje prípona zložená výlučne zo symbolov(bude obsahovať takých symbolov). Čítanie prípony zloženej zo symbolov môže byť robené iba

použitím inštrukcie , ktorá predpokladá, že na vstupnej páske v aktuálnej bunke sa nachádza ana vrchole zásobníka sa nachádza . Pokým taká situácia trvá, aplikuje sa a pri tom sa zakaždýmvymaže zo zásobníka symbol z vrchola zásobníka. Tento proces môže trvať dovtedy, kým je zásobníkneprázdny. Zrejme dosiahnutie konfigurácie znamená, že na vstupnej páske sa nachádza reťazec

pre ľubovoľné . Máme teda, že pda má prípustnú postupnosť konfigurácií, končiacu prázdnoukonfiguráciou práve vtedy, ak na vstupnej páske je reťazec pre ľubovoľné . Formálnejšie

Zaviedli sme dva spôsoby akceptovania slov zásobníkovými automatmi: finálovou konfiguráciou aprázdnym zásobníkom. Ukazuje sa, že ide iba o dve (snáď technicky motivované) definície, ktoré zá-sadným spôsobom nemenia akceptačnú silu zásobníkového automatu. Inými slovami, dá sa dokázaťplatnosť nasledujúceho výsledku.

Page 108: skripta hudak 2002

108 Zásobníkové automaty a bezkontextové jazyky

Veta 4.1 Ku každému zásobníkovému automatu ktorý akceptuje finálovoukonfiguráciou, sa nájde zásobníkový automat s vlastnosťou, že

a naopak, ku každému zásobníkovému automatu ktorý akceptujeprázdnou konfiguráciou, sa nájde zásobníkový automat s vlastnosťou, že

.

Dôkaz: Majme zásobníkový automat . Dokážeme, že vieme zostrojiť jazykovoekvivalentný pda . Uvedieme najprv algoritmus tvorby pda podľa .

Algoritmus FP:

platí v bude platiť v

krok

krok

krok

simuluje činnosť pda vďaka tomu, že do zásobníka si hneď na začiatku zapíše symbol dna zásobníkapda (1.krok) a že časť programu je totožná s programom pda (2.krok). Symbol je

uložený nad symbolom dna zásobníka pda , čo zaručuje, že nebude akceptovať slová ,ktoré automat privádzajú do konfigurácie pre . Také slová nepatria do , ale bypatrili do , ak by sa nenachádzal pod ! Časť programu definovaná v 3.kroku zabezpečujevyprázdnenie zásobníka pda po dosiahnutí finálovej konfigurácie v pda .

Pristúpime teraz k formálnemu dôkazu jazykovej ekvivalencie pda a . Majme . Toznamená, že

(4.6)

Na základe algoritmu FP a (4.6) v pda máme výpočet

(4.7)

Výpočet (4.7) je akceptačným výpočtom v pda pre slovo a to znamená, že , čímsme dokázali, že .

Nie je ťažké dokázať, a ponecháme to na čitateľa, že existencia výpočtu (4.7) v pda , implikujeexistenciu výpočtu (4.6) v pda a teda, že platí , čo spolu s predtým dokázanouinklúziou znamená, že .

Majme teraz pda . Vytvoríme pda a dokážemejeho jazykovú ekvivalenciu s . Najprv uvedieme algoritmus tvorby pda podľa .

Page 109: skripta hudak 2002

4.2 Bezkontextové gramatiky 109

Algoritmus PF:

platí v bude platiť v

krok

krok

krok

Pristúpime k formálnemu dôkazu jazykovej ekvivalencie pda a , zostrojeného podľa algoritmuPF. Majme . To znamená, že

(4.8)

Na základe algoritmu PF a (4.8) v pda máme výpočet

(4.9)

Výpočet (4.9) je akceptačným výpočtom v pda pre slovo a to znamená, že , čímsme dokázali, že .

Nie je ťažké dokázať, a ponecháme to opäť na čitateľa, že existencia výpočtu (4.9) v pda , implikujeexistenciu výpočtu (4.8) v pda a teda, že platí , čo spolu s predtým dokázanouinklúziou znamená, že . Tvrdenie o jazykovej ekvivalencii zásobníkových automatovakceptujúcich finálovou konfiguráciou a prázdnym zásobníkom je tým dokázané a veta platí.�

4.2 Bezkontextové gramatiky

V tejto kapitole budeme študovať niektoré vybrané vlastnosti bezkontextových gramatík (cfg). Bez-kontextové gramatiky sú gemerátormi bezkontextových jazykov, ktoré predstavujú teoretické modelypre programovacie jazyky. Ukážeme, že bezkontextové gramatiky sú jazykovo-ekvivalentné zásobníko-vým automatom. Zaujímavou vlastnosťou bezkontextových gramatík je to, že majú tzv. kanonickétvary:Chomskeho tvar a Greibachovej tvar. To znamená, že každá cfg môže byť reprezentovaná vľubovoľnom z týcto tvarov. V tejto kapitole sa naučíme ako sa k cfg vytvorí príslušný kanonickýtvar. Táto časť vytvára základné predpoklady pre chápanie ďalších koncepcií programovacích techník aprogramovacích jazykov (napr. prekladače).

4.2.1 Chomskeho tvar bezkontextových gramatík.

Bezkontextové gramatiky sme definovali v kapitole 2.2.1. Vieme, že každá cfgsa vyznačuje tým, že jej pravidlá majú tvar

Page 110: skripta hudak 2002

110 Zásobníkové automaty a bezkontextové jazyky

G:

Obrázok 4.6: Bezkontextová gramatika v Chomskeho tvare.

kde (4.10)

Ukážeme, že je možné naložiť určité obmedzenia na tvar pravidiel bezkontextových gramatík, ktorépritom zachovávajú triedu jazykov reprezentovaných bezkontextovými gramatikami.

Majme cfg a nech pravidlá majú tvar

alebo (4.11)

kde (4.12)

a

Potom hovoríme, že cfg je v Chomskeho tvare. Na obr.(4.6) je uvedený príklad cfg v Chomskehotvare.

Dokážeme, že obmedzenie na pravidlá bezkontextovej gramatiky neznižujú vyjadrovaciu silu bezkon-rextových gramatík. Inými slovami ukážeme, že platí tento výsledok.

Veta 4.2 Ku každej bezkontextovej gramatike sa nájde bezkontextová gramatikas vlastnosťou, že , t.j. že a sú jazykovo-ekvivalentné cfg.

Dôkaz: Majme bezkontextovú gramatiku , ktorá je vo všeobecnom tvare, t.j. jejpravidlá majú tvar (4.13)

(4.13)

Cfg vytvoríme z nahradením pravidiel, ktoré nevyhovujúschéme (4.11) a (4.12). Budeme predpokladať, že v nebudú tzv. neproduktívne pravidlá, t.j. pravidlátvaru

kde

Také pravidlá sa dajú z odstrániť, bez narušenia jazyka [?] avšak taká metóda vychádza zarámec tohoto textu a preto budeme jednoducho pracovať s predpokladom, že neproduktívne pravidlá sav nevyskytujú. Potom pravidlá, ktoré podliehajú úprave na Chomskeho tvar sú také, že

(4.14)

Každé pravidlo (4.14) nahradíme množinou pravidiel

Page 111: skripta hudak 2002

4.2 Bezkontextové gramatiky 111

... (4.15)

a navyše akalebo ak

V (4.15) sú zavedené nové neterminálové symboly

a je jasné, že .

Presvedčme sa, že pravidlá v množine (4.15) sú pravidlá v Chomskeho tvare. Gramatika bude tedabezkontextovou gramatikou, ak takou je . Zostáva ukázať, že zavedená náhrada pravidiel cfg vnemení jazyk , t.j. že .

Je jasné, že množina pravidiel (4.15) generuje reťazec - pravú stranu nahradeného pravidla. Na druhej strane, kedykoľvek v cfg je odvoditeľný z neterminálu reťazec

použitím pravidiel (4.15), vtedy v cfg sa nachádza pravidlo .

Matematickou indukciou podľa dĺžky odvodení v dokážeme existenciu korešpondencie medziodvodeniami v a , t.j. že platí

(4.16)

Báza indukcie: n=1 Platí triviálne na základe algoritmu nahradenia pravidiel cfg podľa (4.15).

Hypotéza indukcie. Predpokladáme, že pre všetky odvodenia v cfg o dĺžke platí

(4.17)

a

Majme odvodenie v cfg o dĺžke

(4.18)

Odvodenie (4.18) možno vyjadriť takto

Page 112: skripta hudak 2002

112 Zásobníkové automaty a bezkontextové jazyky

Bezkontextová gramatika Bezkontextová gramatikavo všeobecnom tvare. v Chomskeho tvare.

G: G’:

Obrázok 4.7: Konštrukcia cfg v Chomskeho tvare.

kde (4.19)

ak a

ak

Dĺžka odvodení a také odvodenia vyhovujú hypotéze indukčného kroku. Toimplikuje existenciu odvodení

(4.20)

Prvý krok odvodenia (4.19) je vykonaný pomocou pravidla cfg . Existencia takéhopravidla v predpokladá, že v je množina pravidiel

... (4.21)

a navyše akalebo ak

Povedané znamená, že korešpondencia (4.16) platí aj pre odvodenia v cfg o dĺžke , t.j.

(4.22)

To znamená, že korešpondencia (4.16) platí pre všetky odvodenia v cfg a .

Vyberme niektorý reťazec . Pre jestvuje v cfg odvodenie . Podľa (4.16) v cfgmáme odvodenie , čo znamená, že a máme, že . Úplne analogicky

sa dokáže, vďaka ekvivalencii (4.16), inklúzia v opačnom smere, t.j. že . Dokázali sme, žea veta platí. �

Na obr.4.6 je uvedený príklad konštrukcie cfg v Chomskeho tvare.

Všimnime si, že pravidlo je nahradené pravidlami , pravidlo je nahradené pravidlami, a pravidlá a sú nahradené pravidlami a . Neterminál je jednoducho a novým

Page 113: skripta hudak 2002

4.2 Bezkontextové gramatiky 113

neterminálom sú priradené pravidlá resp. . Gramatika je skutočne cfg a je v Chomskehotvare. Dôkaz vety 4.2.1 zaručuje, že .

4.2.2 Greibachovej tvar bezkontextových gramatík.

Bezkontextová gramatika je v Greibachovej tvare, ak každé pravidlo má tvar, kde a . Podobne ako v predošlom prípade ukážeme, že to-

to obmedzenie na tvar pravidiel bezkontextových gramatík zachováva triedu jazykov reprezentovanýchbezkontextovými gramatikami. Naviac ide o kanonický tvar, t.j. pre každú cfg sa nájde cfg vGreibachovej tvare a .

Prv než pristúpime k dôkazu kanonickej povahy Greibachovej tvaru cfg, potrebujeme si zaviesť nieko-ľko pojmov.

Definícia 4.2 Majme cfg a nech je niektorý neterminálový symbol ;hovoríme, že

A je ľavo - rekurzívny symbol práve vtedy ak

A je pravo - rekurzívny symbol práve vtedy ak

A je rekurzívny symbol práve vtedy ak

pre niektoré neprázdne reťazce .

Majme v pravidlá

{

a ;

potom výsledkom transformácie pomocou substitúcie v pravidleje cfg definovaná takto:

i. pravidlo nepatrí do

ii. všetky ostatné pravidlá cfg patria do

iii. každé pravidlo patrí do

Majme cfg a odvodenie slova

(4.23)

O odvodení (4.23) hovoríme, že je ľavým odvodením, ak platí, že v každom kroku odvodenia je nahradzo-vaný najľavejší neterminálový symbol, t.j.

(4.24)

a

O odvodení (4.23) hovoríme, že je minimálnym ľavým odvodením, ak je ľavým odvodením a neobsahuježiadne dva rovnaké vetné tvary.O dvoch cfg a hovoríme, že sú:

Page 114: skripta hudak 2002

114 Zásobníkové automaty a bezkontextové jazyky

Príklad 4.1 Majme gramatiky a . Cfg je získaná z použitím substitúcie ľavéhoneterminálu v pravidle

Obrázok 4.8: Substitúcia pravidla v bezkontextovej gramatike.

1. ekvivalentné ( ) ak platí, že ;

2. silne ekvivalentné ( ) ak platí, že a pre každé slovo platí, že im zodpovedajúceminimálne ľavé odvodenia v a sú v 1-1 korešpondencii

O pravidle cfg hovoríme, že je užitočné, ak existuje aspoň jedno odvodenie niektoréhoslova , v ktorom je toto pravidlo použité, t.j.

Na obr.4.8 je uvedený príklad použitia substitúcie v zmysle uvedenej definície.

Použitie substitúcie zachováva jazyk pôvodnej gramatiky [?].

Majme cfg ; bez toho, aby bola porušená všeobecnosť ďalších záverov, môžemepredpokladať, že neobsahuje neproduktívne a neužitočné pravidlá a jej pravidlá môžu mať nasledovnýtvar:

V uvedenej schéme pravidiel iba 4.pravidlo nevyhovuje podmienke Greibachovej tvaru pre pravidlá(1. a 2.pravidlo sú výnimočné, lebo súvisia so zaradením do L(G) (1.pravidlo) a špeciálnou povahouštartovacieho symbolu ).

Uvažujme odvodenie v cfg , v ktorom sa používajú iba pravidlá 4.typu

(4.25)

Odvodenie (4.25) nemôže mať neobmedzenú dĺžku, ak nemá nastať situácia, že niektorý neterminálsa bude opakovať, ako najľavejší symbol (taký najľavejší symbol zvykneme nazývať rukoväť

vetného tvaru) aspoň v dvoch vetných tvaroch v (4.25). To by akiste znamenalo, že taký by bolľavo-rekurzívny, t.j.

(4.26)

Page 115: skripta hudak 2002

4.2 Bezkontextové gramatiky 115

a máme, že

(4.27)

V prípade, že nemá ľavo-rekurzívne symboly, odvodenie (4.25) bude produkovať vždy niektorý vetnýtvar s terminálovou rukoväťou. V takom prípade sa na (4.25) môžeme pozerať ako na opakovanú aplikáciusubstitúcie neterminálov v pravidlách

...

čo privedie k pravidlám bez neterminálových rukovätí. V prípade, že cfg má ľavo-rekurzívne symboly,uvedený postup nám neumožní odstrániť (všetky) pravidlá s neterminálovými rukoväťami a teda nebudemožné vytvoriť cfg v Greibachovej tvare silne ekvivalentnú s . To znamená, že hlavným problémompri transformácii cfg na Greibachovej tvar je problém odstránenia ľavo-rekurzívnych neterminálovýchsymbolov.

Skôr než prejdeme k riešeniu problému odstránenia ľavo-rekurzívnych neterminálových symbolov uve-dieme na ilustráciu príklad.

Príklad 4.2

Majme cfg , ktorú chceme transformovať na Greibachovej tvar použitím substitúcie (neľavo-rekurzívnych)neterminálových symbolov

G:

nemá ľavo-rekurzívne symboly. Teraz aplikujeme substitúciu neterminálu v pravidle a ne-terminálu v pravidle .

použitépoužité

použitépoužité

Dostaneme cfg s pravidlami

G’:

Nie je ťažko sa ubezpečiť, že pravidlá a sú neužitočné pravidlá a preto ich jednoducho vyra-díme a dostaneme (silne ekvivalentnú s (ale aj s )) cfg :

Page 116: skripta hudak 2002

116 Zásobníkové automaty a bezkontextové jazyky

V máme dve pravidlá, ktoré nemajú Greibachovej tvar:

Použijeme substitúciu ešte raz

použité

použité

použitépoužité

Napokon sme získali cfg :

G”:

je v Greibachovej tvare. Použité substitúcie, za predpokladu, že žiadna z gramatík neobsahujepôvodne pravidlo, ktoré je získané niektorou nasledujúcou substitúciou, zaručujú silnú ekvivalenciu vy-tváraných gramatík. a je teda silne ekvivalentná s pôvodnou cfg . � (Koniecpríkladu.)

V ďalšom budeme potrebovať jeden výsledok, ktorý teraz uvedieme bez dôkazu. Čitateľ si tento vý-sledok môže bez väčších problémov dokázať, prípadne sa za dôkazom obrátiť k [?].

Fact 4.1 Majme množiny reťazcov , kde je niektorá abeceda. Potom množinová rovnica

(4.28)

má jediné riešenie práve vtedy ak .

Analogicky, množinová rovnica

(4.29)

má jediné riešenia práve vtedy ak .

Page 117: skripta hudak 2002

4.2 Bezkontextové gramatiky 117

Fakt (4.1) využijeme pri dôkaze korektnosti nasledujúcej transformácie bezkontextových gramatík,ktorá rieši problém odstránenia ľavo-rekurzívnych symbolov.

Lemma 4.1 Majme bezkontextovú gramatiku a nech má pravidlá

kde .

Nech je gramatika získaná z nahradením pravidiel (I) množinou pravidiel

kde je nový neterminálový symbol. Potom , t.j. je silne ekvivalentná s .

Dôkaz: Kvôli zjednodušeniu označme si ako . Potom z (I) máme, že

(4.30)

Rovnica (4.30) vyhovuje podmienke existencie jediného riešenia (viď fakt 4.1 ) a preto

(4.31)

Uvažujme teraz jazyk , ktorý si označíme ako . Z množiny pravidiel (II) máme, že

(4.32)

(4.33)

Riešením (4.33) podľa (4.29) bude

(4.34)

Dosadením (4.34) do (4.32) dostaneme

bola získaná z nahradením iba - pravidiel (pravidiel s ľavou stranou ) a preto máme, že

.

a sú aj silne ekvivalentné, pretože každému odvodeniu

zodpovedá v jediné odvodenie

a naopak. Lema je dokázaná. �

Dve popísané transformácie

Page 118: skripta hudak 2002

118 Zásobníkové automaty a bezkontextové jazyky

substitúcia neterminálových rukovätí pravidiel a

nahradenie množiny pravidiel (I) množinou pravidiel (II)

tvoria základ algoritmu prevodu cfg do Greibachovej tvaru. To, že obidve transformácie zachovávajújazyk pôvodnej gramatiky a súčasne vytvárajú korešpondenciu medzi (minimálnymi ľavými) odvo-deniami, zaručuje, že výsledná cfg v Greibachovej tvare bude silne ekvivalentná s .

Definícia 4.3 Majme cfg a nech . Subgramatikou(gramatiky ) voláme niektorú cfg, ktorá má pravidlá

Inými slovami obsahuje iba tie pravidlá, ľavá strana ktorých patrí do . Dôsledkom definíciesubgramatiky je, že možno vybrať tak, že niektorý neterminál bude ľavo-rekurzívny v , ale nebude ľavo-rekurzívny v . Je jasné, že ak pravidlo je v potomneterminál nemôže patriť do , ak subgramatika nemá obsahovať ľavo-rekurzívne neterminályv . Uvedieme príklad.

Príklad 4.3

Majme cfg .

G:

Všimnime si, že neterminály sú ľavo-rekurzívne v .

Vytvoríme subgramatiku pre

G(A):

Neterminál nie je ľavo-rekurzívny v .

Vytvoríme subgramatiku pre

Neterminál nie je ľavo-rekurzívny v . � (Koniec príkladu.)

Algoritmus: Greibach

Page 119: skripta hudak 2002

4.2 Bezkontextové gramatiky 119

Vstup: bezkontextová gramatikapodmnožinasubgramatikakde nie je ľavo-rekurzívnyneterminál v

Výstup: bezkontextová gramatika v Greibachovej tvareTelo algoritmu:

I.časť:1.krok: Majme pravidlo

je ľavo-rekurzívny vNech - pravidlá (pravidlá s ľavou stranou ) sú

Nahraď pravidlo pravidlami

2.krok: Ak existuje pravidlo preopakuj 1.krok; ak nie prejdi k 2.časti

Gramatika získaná po skončení 1.časti bude

II.časť: */po skončení 1.časti -pravidlá majú tvar:*/

nemá rukoväť z

3.krok: nahraď (A) pravidlami:

kde je nový neterminálový symbolDostaneme cfg

4.krok: Vytvor a ; Stop

*/Subgramatika neobsahuje ľavo-rekurzívnesymboly v . Skutočne, v G” boli dodané

a pravidlá, ktoré nie sú ľavo-rekurzívnev . Naviac, sa nevyskytujú akorukoväte v žiadnom z pravidiel ;potom nie sú ľavo-rekurzívne ani v .To znamená, že subgramatika nemáľavo-rekurzívne odvodenia. */

5.krok: opakuj 1. a 2.časť pre všetky ľavo-rekurzívne symboly; ak také neterminály už neexistujú,

potom prechod k 6.kroku.

6.krok: použitím substitúcie neterminálových rukovätí pravidiel vvykonaj ich transformáciu na Greibachovej tvar.Výsledná cfg je v Greibachovej tvare.

7.krok: Stop.

� (Koniec algoritmu.)

Dosiahnuté výsledky môžeme teraz zhrnúť a sformulovať ako vetu.

Veta 4.3 Pre každú bezkontextovú gramatiku sa nájde bezkontextová gramatika

Page 120: skripta hudak 2002

120 Zásobníkové automaty a bezkontextové jazyky

a taká, že a je silne ekvivalentná s .

Na záver tejto kapitoly uvedieme príklad na konštrukciu Greibachovej gramatiky.

Príklad 4.4

Majme bezkontextovú gramatiku

Neterminály sú ľavo-rekurzívne v .

Aplikujeme algoritmus na cfg . Vyberáme

I. časť:

pravidlo pravidlo po substitúcii

II. časť:Množina -pravidiel po substitúcii

3.krok: Nahradenie množiny pravidiel (A):

Získavame gramatiku

V je ľavo-rekurzívny neterminál.Neterminál nie je viac ľavo-rekurzívny neterminál (v ).

Aktualizujeme vstupné veličiny pre algoritmus.

I. časť:

pravidlo pravidlo po substitúcii

Page 121: skripta hudak 2002

4.3 Jazyková ekvivalencia zásobníkových automatov a bezkontextových gramatík. 121

II. časť:Množina -pravidiel po substitúcii

3.krok: Nahradenie množiny pravidiel (A):

Získavame gramatiku

je výsledná gramatika v Greibachovej tvare.

(Koniec príkladu)

4.3 Jazyková ekvivalencia zásobníkových automatov a bezkon-textových gramatík.

V tejto kapitole budeme študovať vzťah medzi zásobníkovými automatmi (pda) a bezkontextovýmigramatikami (cfg). Bude nás zaujímať predovšetkým odpoveď na otázku v akom vzťahu sú triedy jazy-kov, ktoré sú reprezentované zásobníkovými automatmi na jednej strane a bezkontextovými gramatikamina strane druhej. Ukážeme, že ide o identické triedy jazykov a teda, že tak pda ako aj cfg sú reprezen-tantami triedy bezkontextových jazykov. Konštrukcie, ktoré budú zostrojené pri dôkaze tejto jazykovejekvivalencie pda a cfg, sú veľmi dôležité pre konštrukciu reálnych prekladačov programovacích jazykov.Konkrétne ide o významné zložky prekladačov kontrolujúce syntaktickú správnosť programov, tzv. syn-taktické analyzátory.

Začneme s konštrukciou pda pre cfg . Budeme predpokladať, že je v Greibachovej tvare, kčomu nás oprávňuje veta 4.3.

Predpokladajme, že máme cfg v Greibachovej tvare . Ako vieme pravidlá gramatikymajú tvar

Page 122: skripta hudak 2002

122 Zásobníkové automaty a bezkontextové jazyky

Konštrukcia pda bude vytvorená podľa nasledujúceho jednoduchého algoritmu.

Ak je v : Bude v :

(expanzia zásobníka)

Program pda zabezpečí nasledujúce správanie:

(1.) nahradí symbol na dne zásobníka štartovacím symbolom cfg - ,

(2.) pravidlu zodpovedá krok, v ktorom ak číta na vstupnej páske symbol (rukoväť ) a navrchole zásobníka sa nachádza (ľavá strana ), vymaže na vrchole zásobníka a zapíšedo zásobníka reťazec (zvyšok pravej strany ). Tento krok sa ináč volá aj expanziouzásobníka. Spôsob expanzie zodpovedá povahe kroku odvodenia v cfg : symbol bude symbolomslova odvodeného v , zatiaľ čo symboly budú nahradené pravými stranami

pravidiel (ak ), alebo budú časťou odvodeného slova (ak ), a vtedy budúidentifikované 4.inštrukciou,

(3.) pravidlu zodpovedá krok, v ktorom ak číta na vstupnej páske symbol (rukoväť ) a navrchole zásobníka sa nachádza (ľavá strana ), jednoducho vymaže na vrchole zásobníka.To zodpovedá kroku odvodenia v , v ktorom sa aplikáciou vygeneruje v odvodenom slovebez akéhokoľvek ďalšieho ’kontextu’ napravo od ,

(4.) ide o čítanie na vstupnej páske so súčasným výmazom symbolov v zásobníku, ak symboly v aktu-álnych bunkach vstupnej pásky a zásobníka sú totožné.

Ukážeme, že pda a cfg reprezentujú rovnaký jazyk. Začneme z ustanovenia korešpondenciemedzi odvodeniami v a výpočtami v metódou matematickej indukcie podľa dĺžky odvodení v .

Uvažujme odvodenie

a nechznamená, že ide o odvodenie o krokoch

Majme a nech . V takom prípade má pravidlo .Pravidlo má tvar . Podľa algoritmu konštrukcie pda je v programe inštrukcia

(4.35)

Aplikácia inštrukcie (4.43) v konfigurácii nám dáva

(4.36)

Zrejme je to aj naopak a teda máme, že

Vyslovíme teraz hypotézu, že platí

(4.37)

kde

Page 123: skripta hudak 2002

4.3 Jazyková ekvivalencia zásobníkových automatov a bezkontextových gramatík. 123

Uvažujme teraz odvodenie

a nech (4.38)

Odvodenie (4.38) môžeme vyjadriť aj takto:

(4.39)

Z (4.39) máme, že reťazec a jeho odvodenie majú tieto vlastnosti:

a

a naviac (4.40)

Odvodenia (4.40) vyhovujú hypotéze (4.37) a preto

(4.41)

Prvý krok odvodenia (4.40) implikuje prítomnosť pravidla

(4.42)

v gramatike . Podľa algoritmu konštrukcie pda je v programe inštrukcia

(4.43)

Aplikácia inštrukcie (4.43) v konfigurácii implikuje, že

(4.44)

a naopak. Z uvedeného potom vyplýva, že v pda bude výpočet

... (4.45)

Naopak, existencia výpočtu (4.45) bude implikovať existenciu odvodenia (4.38) v . To znamená, žehypotéza indukcie platí aj pre odvodenia dĺžky a teda platí pre odvodenia akejkoľvek dĺžky.

Majme teraz niektoré slovo . Potom to znamená, že v platí

(4.46)

Z existencie korešpondencie (4.37) máme, že práve vtedy v pda bude existovať výpočet

(4.47)

Podľa algoritmu konštrukcie pda podľa cfg - 1.krok v bude aj výpočet z počiatočnej konfigurácie

(4.48)

Výpočet (4.48) znamená, že . Pretože korešpondencia (4.37) je ekvivalencia platí, že

Dokázaný výsledok sformulujeme teraz ako vetu

Page 124: skripta hudak 2002

124 Zásobníkové automaty a bezkontextové jazyky

Uvedieme teraz príklad.

Príklad 4.5

Na obr.4.9 je bezkontextová gramatika a pda zostrojený podľa algoritmu uvedeného v dôkaze vety(4.4).

Obrázok 4.9: Konštrukcia pda podľa cfgČitateľ by sa mal ubezpečiť, že jazyk, ktorý generuje akceptuje je . � (Koniecpríkladu.)

Veta 4.4 Ku každej bezkontextovej gramatike sa nájde zásobníkový automats vlastnosťou, že

Pda sa dá podľa cfg efektívne zostrojiť.

Dokážeme teraz nasledujúcu vetu.

Veta 4.5 Ku každému zásobníkovému automatu sa nájde bezkontextovágramatika s vlastnosťou, že

Cfg sa dá podľa pda efektívne zostrojiť.

Dôkaz: Majme . Pristúpime k zostrojeniu cfgpodľa nasledujúceho algoritmu

Algoritmus cfgpda:

Ak je v bude v

Nemáme dostatok priestoru, aby sme podrobne objasnili princípy v pozadí tohoto algoritmu. Uvediemelen, že neterminálom cfg je 3-ica , ktorá vyjadruje fakt, že pda v stave nahradil symbolna vrchole zásobníka (reťazcom ) a v stave sa zásobníková hlava prvý raz po výmaze

dostane nad bunku, ktorá leží bezprostredne pod bunkou, kde sa pôvodne nachádzal . Tento pohybzásobníková hlava musí vykonať, pretože pda akceptuje prázdnym zásobníkom.

Najprv dokážeme existenciu korešpondencie medzi výpočtami v pda a (ľavými) odvodeniamiv cfg , t.j. že platí

(4.49)

Page 125: skripta hudak 2002

4.3 Jazyková ekvivalencia zásobníkových automatov a bezkontextových gramatík. 125

Dôkaz vedieme matematickou indukciou podľa dĺžky výpočtov v , ktorúoznačujeme ako .Báza indukcie. V danom prípade výpočet má jeden krok

(4.50)

V programe pda je inštrukcia , čo podľa algoritmu cfgpda znamená, že cfg mápravidlo a v máme odvodenie

(4.51)

Zrejme aj naopak, ak máme v odvodenie (4.51), to implikuje existenciu výpočtu (4.50).Hypotéza indukcie. Predpokladajme, že platí

(4.52)

Predpokladajme, že máme teraz v výpočet

(4.53)

a (4.53) má krokov.

Výpočet (4.53) môžeme vyjadriť aj takto:

(4.54)

Pretože pda akceptuje prázdnym zásobníkom, môžeme si akceptovanie v pravej časti (4.54) vyjadriť

... (4.55)

kde a z (4.55) máme, že

(4.56)

Je jasné, že odvodenia (4.56) majú najviac krokov a vyhovujú hypotéze indukčného kroku(4.52). Toznamená, že v máme

(4.57)

Prvý krok výpočtu (4.54) predpokladá v programe existenciu inštrukcie

(4.58)

Podľa algoritmu v cfg bude množina pravidiel

(4.59)

Odvodenia (4.57) a (4.59) umožňujú vytvoriť odvodenie

(4.60)

Naopak, existencia odvodenia (4.60) bude implikovať existenciu výpočtu (4.53) v . To znamená, žehypotéza indukcie platí aj pre výpočty dĺžky a teda platí pre výpočty akejkoľvek dĺžky.

Majme teraz niektoré slovo . Potom to znamená, že v máme výpočet

(4.61)

Page 126: skripta hudak 2002

126 Zásobníkové automaty a bezkontextové jazyky

Z existencie korešpondencie (4.52) máme, že práve vtedy v cfg bude existovať odvodenie

pre niektoré (4.62)

Podľa algoritmu konštrukcie cfg podľa pda - 3.krok ( ) v bude možnýaj krok

čo implikuje odvodenie

pre niektoré (4.63)

Odvodenie (4.63) znamená, že . Pretože korešpondencia (4.52) je ekvivalencia platí, že

Veta je dokázaná. �

4.4 Niektoré vlastnosti jazykov

V tejto kapitole rozoberieme niektoré vybrané vlastnosti formálnych jazykov. Výber vlastnosti je taký,aby objasnil niektoré výsledky, ktoré sú v ďalšom uvedené.

4.4.1 Stromy odvodenia v bezkontextových gramatikách.

Majme cfg a niektoré jej odvodenie

(4.64)

Odvodenie (4.64) je možné reprezentovať grafovou štruktúrou, ktorú nazývame stromom odvodenia. Vý-hodou takej reprezentácie je jej názornosť a z tohoto dôvodu sa často v teórii programovania a špeciálnev teórii gramatík a formálnych jazykov využíva.

Definícia 4.4 Majme cfg . Definujeme si strom odvodenia pre cfg takto:

1. je orientovaný a označený koreňový strom, t.j. , kde

- je množina vrcholov

- je množina hrán

- je koreň

- je značkovacie zobrazenie

2. pre každý nelistový vrchol - platí, že (t.j. nelist je označený niektorýmneterminálom cfg ),

3. pre každý listový vrchol - platí, že

4. v derivačnom strome , ak potom hovoríme, ’je synom’ , alebo, že ’je otcom’. Relácia ’je synom’, alebo alternatívne ’je otcom’ je reflexívna, antisymetrická a tranzitívna.

5. ak sú synovia vrchola (obr.4.10) v poradí ich výskytu v grafe , potom hovoríme,že je starší ako , je starší ako atď. a je najmladší syn . Niekedy to označujemetakto;

Page 127: skripta hudak 2002

4.4 Niektoré vlastnosti jazykov 127

6. relácia ’starší’, alebo alternatívne ’mladší’ je reflexívna, antisymetrická a tranzitívna.

7. Definujeme si tranzitívny uzáver relácie ’byť synom’ a nazveme ju ’byť (priamy) potomok’.

vedie cesta z do

kde je tranzitívny uzáver relácie ,

8. v derivačných stromoch platí, že ak , to implikuje, že . Inýmislovami: každý potomok mladšieho syna je mladší od ktoréhokoľvek potomka staršieho syna

9. ak je v derivačnom strome vrchol a jeho synovia usporiadaní podľa veku sú(viď obr.4.10 b)) a nech ďalej a je reťazec mien synov v danomusporiadaní, potom má pravidlo ,

10. v derivačnom strome nech sú listy usporiadané podľa veku. Potom akje reťazec mien listov nazývaný výsledkom derivačného

stromu , čo budeme označovať ,

11. v cfg môžeme definovať derivačný strom pre ľubovoľný neterminál potom ho označujeme. Koreň bude označený neterminálom

Obrázok 4.10: Derivačný strom

O užitočnosti derivačných stromov vypovedá tento výsledok

Veta 4.6 Majme bezkontextovú gramatiku a reťazec . Potom platí,že práve vtedy, ak existuje derivačný strom a

Dôkaz: ( ) Uvažujme odvodenie v cfg a nech je dĺžkaodvodenia. Dôkaz budeme viesť matematickou indukciou podľa .Báza indukcie: Odvodenie má jeden krok, čo znamená, že v je pravidlo .Kvôli konkrétnosti nech . Potom existuje derivačný strom , ktorý zodpovedá pravidlu, ako na obr.4.10. Ako je jasné, výsledok je .

Page 128: skripta hudak 2002

128 Zásobníkové automaty a bezkontextové jazyky

Hypotéza indukčného kroku. Nech pre všetky odvodenia o dĺžke platí, žeexistuje pre každé také odvodenie derivačný strom a . Majme teraz odvodenie

(4.65)

a nech odvodenie (4.65) má krokov. V takom prípade odvodenie (4.65) možno vyjadriť takto:

(4.66)

Z povahy odvodení v cfg plynie, že vetný tvar

(4.67)

a každé z odvodení (4.67) má najviac krokov a vyhovuje hypotéze indukčného kroku. To znamená, žepre každé také odvodenie (4.67) existuje derivačný strom s výsledkom (obr.??a)).

Na druhej strane prvý krok odvodenia (4.66) je uskutočnený použitím pravidla , čopredpokladá, že je možné zostrojiť derivačný strom , ako na obr.?? b). Výsledok je

. Teda hypotéza indukcie platí aj pre odvodenia o krokoch a preto všeobecne platí,že

(4.68)

( ) Majme teraz derivačný strom a nech počet jeho nelistových vrcholov je . Dôkaz vediemeopäť matematickou indukciou podľa počtu nelistových vrcholov v .Báza indukcie: V takom prípade má jediný nelistový vrchol a tým je koreň označený neter-minálom (viď obr.??). Koreň má synov s označním a teda jeho výsledok

. To implikuje, že v cfg máme pravidlo a teda má odvodenie. Báza je dokázaná.

Hypotéza indukčného kroku: Predpokladajme, že pre všetky derivačné stromy pre ľubovoľný neter-minál o počte nelistových vrcholov platí, že v cfg existuje odvodenie

Majme teraz derivačný strom , ktorý má nelistových vrcholov (viď obr.?? b)), ktorýmá výsledok . bude mať aspon jeden nelistový vrchol okrem svojhokoreňa, ktorý je jeho priamy potomok a je koreňom derivačného stromu, povedzme , ktorý budemať počet nelistových vrcholov a ktorý vyhovuje hypotéze indukčného kroku. Povedzme, žemá takých nelistov označených v usporiadaní podľa veku reťazcom (obr.?? b)) a z nichvychádzajúce podstromy s výsledkami (obr.?? b)). Zhypotézy indukčného kroku máme, že

(4.69)

. . . alej, zo štruktúry máme (obr.?? b)), že má pravidlo , ktoré zaručujeexistenciu odvodenia

(4.70)

Odvodenia (4.70) a (4.69) dávajú odvodenie

(4.71)

(4.72)

Dokázali sme, že hypotéza indukčného kroku platí aj pre derivačné stromy o nelistových vrcholocha teda platí všeobecne. Veta je dokázaná. �

Page 129: skripta hudak 2002

4.4 Niektoré vlastnosti jazykov 129

4.4.2 Vlastnosti bezkontextových jazykov.

Hlavnou motiváciou pre zaradenie tejto témy je poskytnúť poznatky, ktoré umožňujú skúmanie jazykovna príslušnosť k triede bezkontextových jazykov.

Začneme s otázkou: kedy je bezkontextový jazyk nekonečný? Alebo ďalšia: aké štruktúrne vlastnostimá bezkonečný bezkontextový jazyk? Odpoveď na tieto otázky nám dá nasledujúca veta.

Veta 4.7 Majme bezkontextový jazyk (cfl) . Potom

je nekonečný jazyk

Dôkaz: ( ) Nech je cfl generovaný cfg a platí, že má neterminály a odvodeniaako v podmienkach vety. Potom v máme odvodenie

(4.73)

Bez újmy na všeobecnosti našich záverov predpokladáme, že obsahuje iba užitočné pravidlá a neter-minály. To znamená, že v bude odvodenie

pre niektoré (4.74)

Odvodenia (4.73) a (4.74) dávajú odvodenie

pre niektoré (4.75)

Pomocou odvodenia (4.75) môžeme odvodiť nekonečný jazyk

(4.76)

a teda jazyk je skutočne nekonečný jazyk.

( ) Nech je nekonečný bezkontextový jazyk a cfg je gramatika, ktorágeneruje, t.j. . Pre určitosť predpokladajme, že obsahuje neterminálov. Keďže jenekonečný jazyk, bude obsahovať nekonečne veľa slov a teda pre ľubovoľne veľké prirodzené číslosa nájde v aspoň jedno slovo a také, že . Predpokladajme, že v cfg je

je pravidlo v

Inými slovami povedané (presnejšie ) vyjadruje najväčší počet symbolov, o ktorý sa môže rozšíriťvetný tvar generovaný v ktoromkoľvek kroku odvodenia v . Vyberme si teraz niektoré slovo ,dĺžka ktorého je prinajmenšom , kde a nech

(4.77)

je odvodenie v . Podľa vety 4.6 pre odvodenie (4.77) sa nájde derivačný strom s výsledkom(obr.??). Zvolíme si v strome najdlhšiu cestu z koreňa do niektorého listu. Z vlastnosti

cfg a dĺžky slova vyplýva, že na takej ceste sa musia vyskytovať aspoň dva rovnaké neterminály. Naobr.?? sú také neterminály vyznačené ( ), spolu s podstromami pre ktoré sú tieto neterminály značkamiich koreňov. truktúra derivačného stromu nám dáva (obr.??)

Veta je dokázaná. �

Veta4.7 je základom pre dôkaz významného výsledku, ktorý slúži ako nástroj na testovanie príslušnostijazykov k bezkontextovým jazykom.

Page 130: skripta hudak 2002

130 Zásobníkové automaty a bezkontextové jazyky

G:

Obrázok 4.11: Gramatika pre jazyk .

Veta 4.8 (Pumping Lemma resp. uvwxy veta) Majme nekonečný bezkontextový jazyk. Potom exis-tujú také dve prirodzené čísla , že každé slovo s dĺžkou možno predstaviť ako

a .

Dôkaz: Majme bezkontextový jazyk a je nekonečný. Nech ďalej je cfg a. Zvoľme si prirodzené čísla , , kde a .

Zvoľme si teraz slovo a nech . Podobne ako v dôkaze vety ?? pre slovo existuje derivačnýstrom ako na obr. ?? v ktorom sa bude vyskytovať aspoň jedna cesta z koreňa do niektorého listuna ktorej sa vyskytuje prinajmenšom jedna dvojica rovnakých neterminálov. Na obr. ?? je vyobrazenátaká cesta pre jednu dvojicu neterminálov . Zo štruktúry stromu na obr. ?? je zrejmé, že rozkladna päť reťazcov skutočne existuje a teda . Na zvolenej ceste si vyberieme

dvojicu rovnakých neterminálov, ktorá je najbližšie k listu, čo zaručuje, že na úseku cesty od hornéhovýskytu k listu sa vyskytuje najviac neterminálov. Taký výber vždy existuje. Z obr. ?? plynie, že

. Zo štruktúry derivačného stromu na obr. ?? máme, že

(4.78)

(4.79)

(4.80)

Odvodenie (4.79) možno zopakovať -krát a dostaneme

(4.81)

Záverom dostaneme, že

(4.82)

Na obr. ??b) je derivačný strom zodpovedajúci odvodeniu (4.82) a teda platí, že

(4.83)

Veta je dokázaná. �

Veta 4.8 je efektívny nástroj na zisťovanie príslušnosti jazykov k triede bezkontextových jazykov.Pristúpime k ilustrácii tohoto tvrdenia.

Príklad 4.6

Majme jazyk . Je jasné, že je nekonečný jazyk, avšak zatiaľ vieme iba, že je tokontextový jazk. Gramatika pre je na obr. 4.11 Predpokladajme na chvíľu, že je bezkontextovýjazyk. Jazyk spĺňa podmienky vety 4.8. Nech je cfg a .

Vyberieme si teraz slovo , ktoré vyhovuje podmienke vety 4.8. Potom musí existovať rozkladna päť reťazcov, t.j. . Pretože je z musí platiť, že

pre niektoré

Page 131: skripta hudak 2002

4.4 Niektoré vlastnosti jazykov 131

Urobme priradenie dvoch tvarov reťazca

︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸︷︷︸(4.84)

Iný zápis (4.84) je

︸︷︷︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸︷︷︸(4.85)

Podľa vety 4.8 aj reťazce pre akékoľvek musia patriť do . Zvoľme si avytvorme na základe rozkladu (4.85).

(4.86)

Tvar a konštatovanie v (4.86) privádzajú k sporu spredpokladom, že je bezkontextový jazyk.

Jazyk nepatrí do triedy bezkontextových jazykov. � (Koniec príkladu.)

Page 132: skripta hudak 2002

132 Zásobníkové automaty a bezkontextové jazyky

Page 133: skripta hudak 2002

Kapitola 5

ZBYTOK

5.1 Uzáverové vlastnosti

...

∑ ∑

133

Page 134: skripta hudak 2002

134 ZBYTOK

( ⋂ )

———-

⋃ ⋂

———-

Transdukcia:

(??):

Dopl 1

Patologické konfigurácie dpda´s.

Chytil:

p1. Čítanie prázdneho zásobníka

Page 135: skripta hudak 2002

5.1 Uzáverové vlastnosti 135

p2. - krokyi) nekonečná - postupnosť

ii) konečná - postupnosť

p3. - postupnosť cez finálové a nefinálové stavy.

SH MIT patologická klasifikácia.

S1: mŕtva konfigurácia (prázdny zásobník)

S2: mŕtva konfigurácia (neúplný program)

a)

b)

c) q nedefinuje žiadny prechod

S3:

Dopl 2

SH MIT defabologizácia dpda

S1: čítanie prázdneho zásobníka

potom ale

ak∑

Preto v MIT notácii urobíme toto

( )

( ⋃ ∑ ⋃ )

S2: mŕtva konfigurácia / neúplná definícia

je mŕtva konfigurácia

Potom

Aj

Preto ale ak je ako podľa (??)

Page 136: skripta hudak 2002

136 ZBYTOK

Dopl 3

S3: - konfigurácie

∣∣∣∣

∣∣∣∣

potom také, že

je

obrázky

Dopl 4

(( ) )

(( ) )

(( ) )

(( ) )

(( ) )

(( ) )

(( ) )

Dopl 5

Veta: Ku každému dpda M existuje dpda s vlastnosťou, že

Dôkaz: Predpokladajme, že dpda∑

nemôže mať neobmedzené postup-nosti konfigurácií (taký dpda M vždy môžeme predpokladať na základe lemy o odcyklovaní).

Page 137: skripta hudak 2002

5.1 Uzáverové vlastnosti 137

Pokúsime sa teraz zostrojiť - dpda akceptujúci doplnok k T(M) jednoduchým nahradením F z Q-F

Najprv musíme upraviť M tak, aby M preanalyzoval do konca obsah vstupnej pásky. Príčina, že tomutak nie je môže tkvieť vo výskyte týchto prípadov:

S1: prázdny zásobník

S2: neúplná definícia (t.j. existujú také∑že

V prípade (S1) ide o tieto situácie (alebo prípad S1 spôsobuje takéto situácie

Majme stav , ale ak zmeníme F na Q-F pretože v je

Túto situáciu odstránime ľahko. Vytvoríme

( ⋃ ∑ ⋃ )

( )

⋃ ∑

t.j.

Prípad S2 zrejme spôsobuje výskyt takejto situácie v M:

a je mŕtva konfigurácia t.j.

potom⋃ ∑

a také, že

Po odstránení defektu (S1) a (S2) je ešte jedna možná situácia v definícii M, ktorá bráni triviálnevytvoriť z M . Uvažujme situáciu

∣∣∣∣

∣∣∣∣

Nech

A nech

Potom ale

Preto postupujeme takto:

Nech

Page 138: skripta hudak 2002

138 ZBYTOK

{

Dopl 6

{

{

je definovaná ľubovoľne

ak potom

Ukážeme, že

Nech

Najprv ukážeme, že

Zrejme

Naopak, ak potom musí ecistovať ppk

potom ak

žiadny zo stavov nie je z F (v opačnom prípade by )

v existuje zrejme pp´k

Zrejme

Page 139: skripta hudak 2002

5.1 Uzáverové vlastnosti 139

Dôsledok: Trieda deterministických bezkontextových jazykov je uzavretá na doplnok.

Dopl 7

Nový dôkaz vety o doplnku. (??)

Veta: Trieda deterministických jazykov je uzavretá na doplnok.

D: Predpokladáme, že L je deterministický a∑

je dca a T(M) = L .

Bez straty na všeobecnosti môžeme predpokladať, že M je úplne definovaný, má odstránené k-cykly.

Vytvoríme za(

∑)

takto: M´ bude simulovať M s tým rozdielom,

že bude nachádzať informáciu o tom, či M po prečítaní posledného symbolu prešiel niektorou finálovoukonfiguráciou, alebo nie; k tomu účelu vytvoríme kde

Ak M je v konfigurácii potom M´bude v konfigurácii pričom ak K=pa M číta symbol a na vstupnej páske potom M´ prejde do a K´=n ak

Ak M číta symbol a zo stavu q, a M´ je v konfigurácii s K=n potom M´prešiel dokonfigurácie (q, f) a potom číta symbol a.

Poznáme:

1.ak

{

2. ak

{

je nedefinovaná

Ukážeme, že( )

Majme po prečítaní a M´ bude v konfigurácii.

Naopak, nech po prečítaní bude M v a M´ budev prípade, že M´má prečítať ďalší symbol na vstupnej páske, prejde do konfiguráciektorá je formátom pre x

Dopl 8

Z povedaného máme

Page 140: skripta hudak 2002

140 ZBYTOK

Cyk 1

Lema (o cykloch): (k dpda)

Ku každému dpda M existuje dpda s vlastnosťou, že je prostý od-cyklov.

Dôkaz: Nech∑

.

Predpokladajme, že definícia umožňuje - cykly t.j. takú ppk, že

pre ľubovoľné .

Situácia (*) môže mať dva podprípady

c1. zásobník neobmedzene narastá

c2. zásobník nikdy neprekročí určitú dĺžku

Predpokladajme pre určitosť, že

card Q = s

card∑= t

r = maximálny počet symbolov o ktoré sa môže zväčšiť zásobník.

Potom pristúpime k analýze podprípadu i.

i. tvrdíme, že zásobník narastá neobmedzene práve vtedy ak jeho dĺžka prekročí rst symbolov.

Ak zásobník narastá neobmedzene potom určite jeho dĺžka prekročí rst symbolov.

Naopak, predpokladajme, že dĺžka zásobníka má viac ako rst symbolov po realizácii určitej ppda

cyk 2

potom z (??) môžeme vybrať takú postupnosť

( ) ( )

že pre

∣∣∣

∣∣∣

Potom (??) a (??) implikujú, že medzi konfiguráciamiv (??) sa nájdu dve také, že

( ) ( )

Page 141: skripta hudak 2002

5.1 Uzáverové vlastnosti 141

ku

že

pretože platí

( ) ( )

a z toho, že

máme, že

( ) ( )

pre a zásobník neobmedzene narastá.

Náš dpda M upravíme pridaním k nemu počítadla 1, funkciu ktorého osvetlíme nižšie.

ii. Predpokladajme teraz, že zásobník robí nekonečnú - postupnosť avšak zásobník neprekročí určitúhranicu.

Podľa predchodzieho máme, že ak zásobník nepohneme pod určitú hranicu 4 a nepresiahne ju o viacnež rst vymbolov potom musí za takto prejsť cez dve rovnaké konfigurácie.

cyk 3

Posledné implikuje, že potom nasleduje nekonečný cyklus.

Upravíme preto na indikáciu druhého prípadu 2-čítač, ktorý bude sledovať tento fakt.

Povedané vyjadríme formálne:

( ⋃ ∑ )

{ }

Evidentne T(M´) = T(M)

218

Analogicky je možné dokázať, že taktiež nemôžu obsahovať (doporučuje sa to pre čitateľa).

Teda neobsahujú a jediná musí obsahovať .

Nech obsahuje .

Uvažujeme slovo

Page 142: skripta hudak 2002

142 ZBYTOK

Slovo

a platí že , alebo čo je spor.

Tvrdenie je dokázané a nie je bezkontextový jazyk.

Vlastnosť self-embedding-u bezkontextových gramatík.

Všimnime si, že bezkontextová gramatika, ktorá nie je pravo- ani ľavo-lineárna (teda nie je regulárna)môže generovať regulárny jazyk.

Príkad 14:

∑ ∑

219

Gramatiky majú vlastnosť self-embedding-u. Jazyk{ }

a je regulárny. nie je regulárna.

Definícia 9: Bezkontextová gramatika G má vlastnosť self-embedding-u (je fixujúca G) ak existuje takýneterminálový symbol A, že platí

kde

kde G = (N, T, P,∑)

neterminálový symbol A sa volá fixovací neterminálový symbol. Vlastnosť, ktorú sme vyššie opísali,má veľký význam a umožňuje testovať bezkontextové jazyky na regularitu, t.j. či daný jazyk je regulárny.Bez dôkazu privedieme takúto vetu.

Veta 8: (veta o self-embedding-u)

Bezkontextový jazyk je neregulárny vtedy a len vtedy ak každá bezkontextová gramatika, ktorá hogeneruje má vlastnosť self-embeddingu.

220

Algoritmické problémy:

Ako už vieme, hovoríme že daný problém je algoritmicky rozhodnuteľný, ak existuje algoritmus, ktorýv každom prípade dáva odpoveď na postavený problém.

Niekedy je vhodnejšie algoritmickú rozhodnuteľnosť formulovať takto: máme problém, ktorý môže maťľubovoľne mnoho konkrétnych reprezentácií (prípadov); môžeme teda hovoriť o akejsi triede problémov(konkrétnych). Ak existuje algoritmus, ktorý rozhoduje v každom jednom prípade daného problému o jehoriešení, alebo dáva konkrétnu odpoveď na postavený problém, potom je trieda problémov algoritmickyrozhodnuteľná.

Ako príklad môžeme uviesť problémy:

1. problém: ak x, y sú prirodzené čísla, je x y ?

Konkrétne prípady problému: 2 3 ?, 5 4 ? ap.

Page 143: skripta hudak 2002

5.1 Uzáverové vlastnosti 143

Jedným z algoritmov, ktorý rozhoduje postavený problém (triedu všetkých možných konkrétnych prí-padov problému) je tento:

obrázok

221

Iná reprezentácia:

( ) {

Algoritmus ”počíta” funkciu( )

pre ľubovoľné x, y. Tento problém je algoritmicky rozhod-

nuteľný.

Z matematickej logiky je známy takýto problém:

2. problém: zistiť, či ľubovoľný Turingov stroj zastaví, ak na jeho vstup podáme slovo y ( v príslušnomkóde). Ak máme na mysli niektorú z enumeračných procedúr pre slová z určitej abecedy, napr. godelovskúenumeráciu, ktorá je založená na godelovskej numerácii, potom môžeme všetky T. stroje usporiadať.Podobne môžeme usporiadať aj slová zo vstupnej abecedy Turingových strojov. Potom ak máme T.s.bude to znamenať, že jeho popis sa nachádza na x+1. mieste v zozname, ktorý je vytvorený enumeračnou(prečíslovaciou) procedúrou. Teda formálnejšie náš problém môžeme vyjadriť takto:

Majme popis T.s. a majme vstupné slovo y. Ďalej majme - čiastočne rekurzívnu funkciuprirodzenú . Inými slovami

222

Potom náš problém môžeme vyjadriť takto:

”Je definovaná pre dané y?”

Je známe, že tento problém nie je algoritmicky rozhodnuteľný.

Ináč povedané, neexistuje taká obecne-rekurzívny funkcia

{

Tento problém nosí názov ”problém zastavenia T.s.”, alebo ”halting problem”.

Tento problém je kanonický v tom zmysle, že sa darí ukázať pre ľubovoľný algoritmicky nerozhodnuteľnýproblém, že je ho možné previesť na problém zastavenia. Jeden taký príklad ukážeme ďalej, ktorý námpotom bude slúžiť ako nástroj pre skúmanie algoritmickej rozhodnuteľnosti rôznych problémov týkajúcichsa bezkontextovkých jazykov a gramatík.

Postov korešpondenčný problém (PCP).

Definícia 1: Majme konečnú abecedu T a dva konečné zoznamy reťazcov (slov) z A a B.Nech

Budeme hovoriť, že A, B predstavujú prípad Postovho korešpondenčného problému (PCP). SamotnýPCP spočíva v tomto: nájsť také

223

reťazce

Page 144: skripta hudak 2002

144 ZBYTOK

kde

aby platilo, že

pre niektoré n.

Riešením daného prípadu PCP (A, B) 1) je postupnosť indexov.

Príklad 1: Majme a zoznamy A, B sú dané tabuľkou

i Zoznam A Zoznam B

123

11011110

111100

Tento prípad PCP má riešenie: 2, 1, 1, 3.

Skutočne

1) PCP (AB) je symbolické označenie pre konkrétny prípad PCP daný zoznamami A, B.

224

Príklad 2: Majme takýto prípad PCP:

i Zoznam A Zoznam B

10011101

10111011

T = 0, 1

Ukážeme, že tento prípad PCP nemá riešenie. Je jasné, že ak by PCP (A, B) mal riešenie, potom, pretože sú jedinými reťazcami zoznamov, ktoré začínajú ”1”.

”Kandidátom” pre musí byť taký z reťazcov A, ktorý začína ”1”, teda a) alebo b)

a)

b)

Prípad a) ukazuje, že nemôže viesť k riešeniu, teda jediná možná voľba je . Podobnýargument sa uplatňuje aj v prípade atď.

Page 145: skripta hudak 2002

5.1 Uzáverové vlastnosti 145

Z toho vyplýva, že nikdy nedosiahneme žiadaného riešenia.

Definícia 2: Modifikovaným PCP voláme PCP ktorého riešenie musí byť v tvare

Ináč povedané, riešenie MPCP (A, B)

225

má tvar

Veta 1: Ak by bol rozhodnuteľný PCP, potom by bol rozhodnuteľný a MPCP.

Dôkaz: Majme MPCP pre tieto dva zoznamy

Ukážeme, ako je možné každý prípad MPCP previesť na niektorý prípad PCP, ktorý má riešenie vtedya len vtedy ak ho má daný prípad MPCP. Majme T - najmenšiu abecedu, ktorá obsahuje všetky symboly,ktoré sa vyskytujú v zoznamoch A a B. Teda

Nech ďalej budú dva symboly, ktoré nepatria do T.

Definujme si dva homomorfizmy na :

- prázdny symbol

Vytvoríme nové zoznamy C, D takto:

kde

226

pre

Zoznamy C, D vytvorené so zoznamov A, B príkladu sú:

Zoznam A Zoznam Bi123

11011110

111100

Page 146: skripta hudak 2002

146 ZBYTOK

C Di12345

Zoznamy C, D predstavujú prípad PCP (t.j. je to PCP (C,D)).

Môžeme vysloviť takéto tvrdenie: PCP (C, D) má riešenie vtedy a len vtedy ak MPCP (A, B) máriešenie.

Skutočne, ak je riešenie MPCP (A, B) potom je jasné, že PCP (C, D) má riešenie

Podobne, ak je riešením PCP (C, D) potom , pretože ibazačínajú tým istým symbolom ( ) a na druhej strane, sú jediné dva reťazce z C

a D, ktoré končia symbolom . Nech j je najmenšie celé číslo také, že . Potomje taktiež riešenie PCP (C,D) a pre žiadne je riešenímMPCP (A,B).

227

Ak by existoval algoritmus pre riešenie PCP, potom privedením každého MPCP na PCP by bolo možnérozhodnúť každý prípad MPCP. Veta je dokázaná.

Veta 2: Postov korešpondenčný problém je algoritmicky nerozhodnuteľný.

Dôkaz: Podľa vety 1 je teraz dostatočné ukázať, že ak by bol MPCP algoritmicky rozhodnuteľný,potom by bol takým aj problém zastavenia (halting problém) pre Turingove stroje. Pre každý T.s. Ma vstup W je možné skonštruovať MPCP, ktorý má riešenie vtedy a len vtedy ak M zastaví pri podaníslova W.

Majme T.s.

( ∑ )

a nech B je prázdny symbol (blank).

Význam jednotlivých zložiek v zadaní M je tento:

K - konečná množina stavov

- abeceda T.s. M∑- vstupná abeceda T.s.

- počiatočný stav

- množina finálových stavov.

228

Budeme predpokladať, že bude nedefinovaná pre všetky∑.

Konfiguráciu M budeme reprezentovať reťazcom

Page 147: skripta hudak 2002

5.1 Uzáverové vlastnosti 147

kde

Význam trojice ilustruje obr.47

Obrázok

Obr.47

Ak

Je reprezentácia možných pohybov M vyjadrená postupnosťou príslušných konfigurácií a ,potom bude existovať riešenie ku niektorému MPCP. Príslušné reťazce riešenie MPCP budú mať svojimipredponami reťazce

# je nový symbol, ktorý nepatrí ani K, ani .

Ináč povedané, pre každý T.s. M je možné skonštruovať MPCP.

Ukážeme ako sa to dá urobiť.

229

Predpokladáme, že máme daný T.s. M a slovo W:

Zoznamy budeme vytvárať bez ohľadu na indexy, ktoré tu nie sú podstatné. Ukážeme prvý pár slovv zoznamoch A a B. Ostatné páry sa tvoria v súlade s definíciou M a príslušnou prípustnou

postupnosťou konfigurácií.

Zoznam A Zoznam B

kritériumPrvý pár (i=1) #1. skupina: X

#X#

Pre

2. skupina Ak

3. skupina

4. skupina

O dvojici slov (x, y) budeme hovoriť, že je čiastočným riešením MPCP pre T.s. M a slovo W (skráteneMPCP(M, W) alebo pre zoznamy A, B dané tabuľkou (MPCP(A, B)) ak platí, že:

1) x je preponou y, t.j.

2) x, y sú zreťazením zodpovedajúcich si prvkov

230

zoznamov A a B.

3) ak xz=y , potom z je zbytkom (x, y)

Predpokladajme teraz, že M má postupnosť pohybov v konfigurácii (alebo viď obr. 47)

Page 148: skripta hudak 2002

148 ZBYTOK

a žiadny zo stavov

nepatrí do F.

Potom tvrdíme, že existuje čiastočné riešenie

Pre T.s. M a slov W.

Naviac je možné ukázať, že je to jediné čiastočné riešenie, ktorého dlhší reťazec z (x, y) je taký dlhýako . Všimnime si, že T.s. M je deterministický. ( je funkcia)

Ukážeme, že tvrdenie platí, indukciou podľa K. Tvrdenie platí triviálne pre K = 0, pretože prvoudvojicou je a pretože je to MPCP(A, B) platí, že

(Hypotéza indukčného kroku): predpokladajme, že tvrdenie platí pre niektoré K a .

Teda

a

231

(podľa tabuľky zoznamov A, B (1.skupina, 2. skupina) dostávame

)

Podľa tabuľky zoznamov A, B dostávame

kde

Teda existuje čiastočné riešenie aj pre K+1 a tvrdenie platí. Jedinečnosť riešenia vyplýva z toho, že vkonfigurácii je dosiahnuteľná najviac jedna konfigurácia .

Ak potom nie je ťažko vidieť, že s použitím tabuľky zoznamov A, B (1., 3. a 4. skupina) jemožné skonštruovať (doplniť) (x, y) na (x´, y´) také že zbytok (x´, y´) bude prázdny a teda (x´, y´)bude riešením MPCP (M,W)

Teda, MPCP (M, W) má riešenie ak T.s. M so vstupom W dosiahne finálovej konfigurácie. Naopak,ak tejto konfigurácie nedosiahne, potom ľubovoľné čiastočné riešenie bude mať neprázdny zbytok.

Na tomto základe môžeme urobiť záver, že MPCP (M, W) má riešenie vtedy a len vtedy ak M zastavína vstupnom W. V dôsledku ľubovoľnosti výberu M a W je tento problém algiritmicky rozhodnuteľný

Page 149: skripta hudak 2002

5.1 Uzáverové vlastnosti 149

232

vtedy ak by bol rozhodnuteľný problém zastavenia Turingových strojov. Preto MPCP je algoritmickynerozhodnuteľný a aj PCP je algoritmicky nerozhodnuteľný (veta 1)

Veta je dokázaná.

Riešenie problémov bezkontextových gramatík.

V tejto časti preilustrujeme techniku použitia PCP k riešeniu niektorých závažných problémov bez-kontextových gramatík.

Ukážeme, podobne ako tomu bolo v predošlom prípade, akým spôsobom je možné PCP reprezentovaťv termínoch bezkontextových gramatík. Potom konkrétny problém bezkontextových gramatík sa vyjadríako PCP. Na tomto princípe budeme môcť rozhodnúť o tom, či konkrétny problém je algoritmickyrozhodnuteľný.

Majme dva zoznamy A, B z abecedy . Nech

je množina K rozličných symbolov ktoré nepatria do T.

Definujme si dve gramatiky:

kde⋃

233

:množinu pravidiel typu

:množinu pravidiel typu

Označíme si

Nie je ťažké ukázať, že

Veta 3: Je algoritmicky nerozhodnuteľné, či prienik dvoch ľubovoľných bezkontextových jazykov jeprázdny.

Dokaz: Majme jazyky . Ak by bol algoritmicky rozhodnuteľný problém, či

potom by bol algotilmicky rozhodnuteľný aj PCP. Veta je dokázaná

Page 150: skripta hudak 2002

150 ZBYTOK

Majme zoznamy A, B ako predtým nad T a . Nech c je symbol, ktorý nepatrí K aniT.

Označme si jazyky.

sú deterministické jazyky. Máme teda algoritmus, ako nájsť jazyk

je bezkontextový.

Veta 4: vtedy a len vtedy ak PCP (A,B) nemá žiadne riešenie.

Dôkaz: Všimnime si, že

vtedy a len vtedy ak

Predpokladajme, že PCP (A,B) má riešenie. Potom musí existovať reťzec

a teda

Naopak, predpokladajme, že . Vezmime reťazec ; x musí mať tvar

, kde y patrí do .

Teda PCP (A, B) má riešenie.

Dôsledok vety 4: Je algoritmicky nerozhodnuteľné, či ľubovoľná bezkontextová gramatika generujemnožinu všetkých reťazcov svojej terminálovej abecedy.

235

Veta 5: Je algoritmicky nerozhodnuteľné, či ľubovoľná bezkontextová gramatika G a ľubovoľná regu-lárna množina R spĺňajú tieto podmienky:

1. L(G) = R

2.

3.

Dôkaz: Nech , t.j. a A, B sú zoznamy. Položme

Potom (??), (??) a (??) sú pravdivé vtedy a len vtedy ak PCP (A,B) nemá žiadne riešenie.

Veta 6: Pre ľubovoľné dve bezkontextové gramatiky je algoritmicky nerozhodnuteľné či:

1. je bezkontextový jazyk

2. je bezkontextový jazyk

3. je regulárna množina

Page 151: skripta hudak 2002

5.1 Uzáverové vlastnosti 151

Dôkaz: 1. Nech sú bezkontextové gramatiky, ktoré generujú zodpoveda-

júco. je prázdny vtedy a len vtedy ak PCP (A, B) nemá žiadne riešenie. Je možné

ukázať, že je bezkontextový vtedy a len vtedy ak je prázdny. Teda bezkontextová povaha

jazyka je algoritmicky nerozhodnuteľná pre ľubovoľné A, B.

Je je triv. dfl.

Naopak: nech je neprázdny dfl; potom pre ľubovoľný reťazec je

problém alg. rozhodnuteľný

to je ale spor, pretože PCP je alg. nerozhodnuteľný a preto je dfl iba ak je .

236

2. Nech . je bezkontextový vtedy a len vtedy, ak , t.j. prípad PCP (A,

B) nemá žiadne riešenie,

3. nech . je regulárny vtedy a len vtedy ak

Veta 7: Problém nejednoznačnosti ľubovoľnej bezkontextovej gramatiky je algoritmicky nerozhodnu-teľný.

Dôkaz: Majme zoznamy

nad abecedou T. Predpokladajme, že

Majme bezkontextovú gramatiku

a P obsahuje pravidlá :

a pre

G generuje jazyk .

Je ľahké ukázať, že G je nejednoznačné vtedy a len vtedy ak .

Pretože posledný problém je algoritmicky nerozhodnuteľný veta platí.

237

Záverom uvádzame výsledky štúdia algoritmickej rozhodnuteľnosti problémov teórie jazykov.

Page 152: skripta hudak 2002

152 ZBYTOK

GRAMATIKY (JAZYKY)Problém Regulárne LR(K) (de-

terministické)Bezkon-textové

Kontextové 0 - typ

1. Je L(G) prázdny? ko-nečný ? nekonečný?

R 1) R R N N

2.∑

R R N N N

3. R ? N N N

4. R N N N N

5. Je⋂

prázdny? konečný ?nekonečný?

R N N N N

6. Je L(G) = R, R je urči-tá reg. množina.

R R N N N

7. Je L(G) regulárna? T R⋃ ⋃ ⋃

8. Je prienik dvoch jazy-kov jedného typu tenistý typ?

T N N T T

9. Je doplnok ku jazykudaného typu ten istýtyp?

T T N Selepcie?

T

10. Je zreťazenie dvoch ja-zykov jedného typu tenistý typ?

T N T T T

11. Je zjednotenie dvochjazykov jedného typuten istý typ?

T N T T T

1)

R – rozhodnuteľný

N – nerozhodnuteľný

T – triviálne jasný

- terminálová abeceda gramatiky

? – odpoveď nie je známa

V závere uvedieme v tvare tabuľky