Algoritmai. Vytautas Kazakevičius

Σχετικά έγγραφα
Matematika 1 4 dalis

X galioja nelygyb f ( x1) f ( x2)

Dviejų kintamųjų funkcijos dalinės išvestinės

Vilniaus universitetas. Edmundas Gaigalas A L G E B R O S UŽDUOTYS IR REKOMENDACIJOS

ATSITIKTINIAI PROCESAI. Alfredas Račkauskas. (paskaitų konspektas 2014[1] )

Matematika 1 3 dalis

VILNIAUS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS PROGRAMŲ SISTEMŲ KATEDRA. Algoritmų teorija. Paskaitų konspektas

I dalis KLAUSIMŲ SU PASIRENKAMUOJU ATSAKYMU TEISINGI ATSAKYMAI

Temos. Intervalinės statistinės eilutės sudarymas. Santykinių dažnių histogramos brėžimas. Imties skaitinių charakteristikų skaičiavimas

Elektronų ir skylučių statistika puslaidininkiuose

1 Tada teigini Ne visi šie vaikinai yra studentai galima išreikšti formule. 2 Ta pati teigini galima užrašyti ir taip. 3 Formulė U&B C reiškia, kad

Matematinė logika. 1 skyrius Propozicinės formulės. žodį, Graikiškas žodis logos (λóγoς) reiškia

Spalvos. Šviesa. Šviesos savybės. Grafika ir vizualizavimas. Spalvos. Grafika ir vizualizavimas, VDU, Spalvos 1

Matematinės analizės konspektai

Įžanginių paskaitų medžiaga iš knygos

VIII. FRAKTALINĖ DIMENSIJA. 8.1 Fraktalinės dimensijos samprata. Ar baigtinis Norvegijos sienos ilgis?

MATEMATINĖ LOGIKA. Įžanginių paskaitų medžiaga iš knygos

Vilius Stakėnas. Kodavimo teorija. Paskaitu. kursas

ELEMENTARIOJI TEORIJA

AIBĖS, FUNKCIJOS, LYGTYS

Vilniaus universitetas Matematikos ir informatikos fakultetas Informatikos katedra. Gintaras Skersys. Mokymo priemonė

I.4. Laisvasis kūnų kritimas

2015 M. MATEMATIKOS VALSTYBINIO BRANDOS EGZAMINO UŽDUOTIES VERTINIMO INSTRUKCIJA Pagrindinė sesija. I dalis

1 Įvadas Neišspręstos problemos Dalumas Dalyba su liekana Dalumo požymiai... 3

2.5. KLASIKINĖS TOLYDŽIŲ FUNKCIJŲ TEOREMOS

LIETUVOS JAUNŲ J Ų MATEMATIKŲ MOKYKLA

Diskrečioji matematika

Specialieji analizės skyriai

IV. FUNKCIJOS RIBA. atvira. intervala. Apibrėžimas Sakysime, kad skaičius b yra funkcijos y = f(x) riba taške x 0, jei bet kokiam,

DISKREČIOJI MATEMATIKA

eksponentinės generuojančios funkcijos 9. Grafu

Statistinė termodinamika. Boltzmann o pasiskirstymas

III.Termodinamikos pagrindai

PNEUMATIKA - vožtuvai

5 klasė. - užduotys apie varniuką.

Remigijus Leipus. Ekonometrija II. remis

FDMGEO4: Antros eilės kreivės I

Analizės uždavinynas. Vytautas Kazakevičius m. lapkričio 1 d.

Modalumo logikos S4 kai kurios išsprendžiamos klasės

Rinktiniai informacijos saugos skyriai. 3. Kriptografija ir kriptografijos protokolai: Klasikinė kriptografija

JONAS DUMČIUS TRUMPA ISTORINĖ GRAIKŲ KALBOS GRAMATIKA

EUROPOS CENTRINIS BANKAS

Paprastosios DIFERENCIALINĖS LYGTYS

FUNKCIJOS. veiksmu šioje erdvėje apibrėžkime dar viena. a = {a 1,..., a n } ir b = {b 1,... b n } skaliarine sandauga

Laboratorinis darbas Nr. 2

TEORIJA. RINKTINIAI MATEMATIKOS SKYRIAI (Informatikos spec., 2 srautas, magistrantūra, 1 semestras) PROGRAMA. su skaidžia savybe skaičiu

ANALIZINĖ GEOMETRIJA III skyrius (Medžiaga virtualiajam kursui)

Paprastosios DIFERENCIALINĖS LYGTYS

TIKIMYBIU TEORIJA HAMLETAS MARK AITIS MYKOLO ROMERIO UNIVERSITETAS 2010

III. MATRICOS. DETERMINANTAI. 3.1 Matricos A = lentele žymėsime taip:

1 TIES ES IR PLOK TUMOS

4.3. Minimalaus dengiančio medžio radimas

0.1. Bendrosios sąvokos

II dalis Teisingas atsakymas į kiekvieną II dalies klausimą vertinamas 1 tašku g/mol

SIGNALAI TELEKOMUNIKACIJŲ SISTEMOSE

5 paskaita. 5.1 Kompaktiškosios aibės Sąvokos

Specialieji analizės skyriai

4.1 Skaliarinė sandauga erdvėje R n Tarkime, kad duota vektorinė erdvė R n. Priminsime, kad šios erdvės elementai yra vektoriai vektoriu

Paprastosios DIFERENCIALINĖS LYGTYS

FRANKO IR HERCO BANDYMAS

2009 m. matematikos valstybinio brandos egzamino VERTINIMO INSTRUKCIJA Pagrindinė sesija 1 6 uždavinių atsakymai

TEORIJOS PRADMENYS PROGRAMA

1. Įvadas. Laisvųjų dalelių kvantinės mechanikos elementai

Matematinės analizės egzamino klausimai MIF 1 kursas, Bioinformatika, 1 semestras,

= γ. v = 2Fe(k) O(g) k[h. Cheminė kinetika ir pusiausvyra. Reakcijos greičio priklausomybė nuo temperatūros. t2 t

KADETAS (VII ir VIII klasės)

APRAŠOMOJI STATISTIKA

ŠVIESOS SKLIDIMAS IZOTROPINĖSE TERPĖSE

DISPERSINĖ, FAKTORINĖ IR REGRESINĖ ANALIZĖ Laboratorinis darbas Nr. 2

1 iš 15 RIBOTO NAUDOJIMO

V skyrius ĮVAIRŪS PALŪKANŲ APSKAIČIAVIMO KLAUSIMAI

MONTE KARLO METODAS. Gediminas Stepanauskas IVADAS Sistemos Modeliai Modeliavimas ir Monte-Karlo metodas...

PAPILDOMA INFORMACIJA

2008 m. matematikos valstybinio brandos egzamino VERTINIMO INSTRUKCIJA Pagrindinė sesija

0.1. Bendrosios sąvokos

1.4. Rungės ir Kuto metodas

Ekonometrija. Trendas ir sezoninė laiko eilutės komponentė

Balniniai vožtuvai (PN 16) VRG 2 dviejų eigų vožtuvas, išorinis sriegis VRG 3 trijų eigų vožtuvas, išorinis sriegis

Donatas Surgailis Finansų matematika

Atsitiktinių paklaidų įvertinimas

1. Individualios užduotys:

Integriniai diodai. Tokio integrinio diodo tiesiogin įtampa mažai priklauso nuo per jį tekančios srov s. ELEKTRONIKOS ĮTAISAI 2009

Įvadas į laboratorinius darbus

Pav1 Žingsnio perdavimo funkcija gali būti paskaičiuota integruojant VIPF. Paskaičiavus VIPF FFT gaunamo amplitudinė_dažninė ch_ka.

!"#$ %"&'$!&!"(!)%*+, -$!!.!$"("-#$&"%-

Arenijaus (Arrhenius) teorija

BRANDUOLINĖS ENERGETIKOS FIZIKINIAI PAGRINDAI

Nauji dviejų vamzdžių sistemos balansavimo būdai

Laißkas moteriai alkoholikei

Atomų sąveikos molekulėje rūšys (joninis ir kovalentinis ryšys). Molekulė mažiausia medžiagos dalelė, turinti esmines medžiagos chemines savybes.

EKONOMETRIJA 1 (Regresinė analizė)

Rotaciniai vožtuvai HRB 3, HRB 4

TERMODINAMIKA. 1. Pagrindinės sąvokos ir apibrėžimai

2 laboratorinis darbas. TIKIMYBINIAI MODELIAI

Papildomo ugdymo mokykla Fizikos olimpas. Mechanika Dinamika 1. (Paskaitų konspektas) 2009 m. sausio d. Prof.

Praeita paskaita. Grafika ir vizualizavimas Atkirtimai dvimatėje erdvėje. Praeita paskaita. 2D Transformacijos. Grafika ir vizualizavimas, VDU, 2010

Skalbimo mašina Vartotojo vadovas Πλυντήριο Ρούχων Εγχειρίδιο Χρήστη Mosógép Használati útmutató Automatická pračka Používateľská príručka

Puslaidininkių fizikos laboratoriniai darbai

1. Įvadas į sistemas ir signalus. 1. Signalas, duomenys, informacija ir žinios

Turininga informatikos mokymosi medžiaga pradinukams ir vyresniems

Transcript:

Algoritmai Vytautas Kazakevičius September 2, 27

2

Turinys Baigtiniai automatai 5. DBA.................................. 5.. Abėcėlė............................ 5..2 Automatai.......................... 5..3 Automato vaizdavimas diagrama.............. 6..4 Pratimai............................ 7.2 NBA...................................2. Apibrėžimai...........................2.2 DBA ir NBA ekvivalentumas.................2.3 Pratimai............................ 3.3 Reguliarios kalbos.......................... 5.3. Veiksmai su kalbomis.................... 5.3.2 Reguliarios kalbos...................... 5.3.3 Pompos lema......................... 9.3.4 Pratimai............................ 9.4 Reguliarieji reiškiniai......................... 2.4. Apibrėžimas.......................... 2.4.2 Apibendrintieji baigtiniai automatai............ 22.4.3 Pagrindinė teorema...................... 23.4.4 Reguliariu kalbu struktūra.................. 24 3

4 TURINYS

skyrius Baigtiniai automatai. Deterministiniai baigtiniai automatai.. Abėcėlė Visame skyriuje Σ raide žymėsiu fiksuotą netuščią baigtinę aibę. Ją vadinsiu abėcėle, o jos elementus raidėmis. Raides žymėsiu a, b, c raidėmis. Σ n aibės elementai vadinami žodžiais. Žodžius žymėsiu x, y, z, w raidėmis. Taigi kiekvienas w Σ n yra (a i i n) pavidalo šeima; čia a i Σ. n vadinamas tokio žodžio ilgiu ir žymimas w. Tačiau paprastai, norint įvesti pažymėjimus žodžio raidėms, rašoma tiesiog w = a... a n. Egzistuoja vienintelis žodis, kurio ilgis. Jis vadinamas tuščiuoju žodžiu ir žymimas ε. Žodžiai iš vienos raidės sutapatinami su ta raide: rašoma w = a. Jei x Σ m, y Σ n, tai xy simboliu žymimas žodis iš Σ m+n, gaunamas x žodžiui iš dešinės parašius y žodį. Taigi jei x = a... a m, y = b... b n, tai xy = a... a m b... b n. Formaliai xy žodžio raidės c i apibrėžiamos taip: { a i, kai i m; c i = b i m, kai m + i m + n. Apibrėžta operacija su žodžiais yra asociatyvi, o ε neutralus jos atžvilgiu elementas: (xy)z = x(yz), εx = xε = x. Vietoje x... x rašysiu x k (jei x pasikartoja k kartų). Taigi x = ε, x = x, x 2 = xx ir t.t. Aišku, kad x k+l = x k x l. Visu žodžiu aibė žymima Σ. Taigi Σ = n Σ n. Σ aibės poaibiai vadinami kalbomis. Kalbas žymėsiu L raidėmis...2 Automatai Deterministiniu baigtiniu automatu (sutrumpintai DBA) virš Σ vadinamas ketvertas M = (Q, δ, q start, F ); čia 5

6 SKYRIUS. BAIGTINIAI AUTOMATAI Q yra baigtinė aibė, kurios elementai vadinami būsenomis; δ yra funkcija iš Q Σ į Q, vadinama perėjimo funkcija; q start yra Q aibės elementas, vadinamas pradine būsena; F yra Q aibės poaibis, kurio elementai vadinami priėmimo būsenomis. Automatas M skaito žodžius, sudarytus iš Σ abėcėlės simboliu ir juos arba priima, arba atmeta. Smulkiau, bet vis dar neformaliai, automato veikimas aprašomas taip: iš pradžiu automatas yra būsenoje q start ; kiekvienu laiko momentu automatas perskaito vieną žodžio raidę ir pereina iš vienos būsenos į kitą; jei automatas buvo būsenoje q ir perskaitė raidę a, jis pereina į būseną q = δ(q, a); jei q n yra būsena, į kurią automatas perėjo perskaitęs paskutinę žodžio raidę, tai žodis priimamas, kai q n F ir atmetamas, kai q n F. Formalus aprašymas skamba taip. Tuščias žodis priimamas tada ir tik tada, kai q start F. Žodis w = a... a n priimamas tada ir tik tada, kai egzistuoja tokios būsenos q,..., q n, kad su visais i =,..., n q i = δ(q i, a i ) ir q = q start, q n F. Visu žodžiu, kuriuos priima automatas M, aibė vadinama M automato kalba ir žymima L(M). Bet kokia kalba L vadinama reguliaria, jei egzistuoja toks automatas M, kad L(M) = L. Tokiu atveju dar sakome, kad M automatas atpažįsta L. Pagrindiniai klausimai ar kokia nors kalba L reguliari ir jei taip, tai koks automatas ją atpažįsta? Įsivaizduoti reikia taip: mes turime kalbą L ir norime sukonstruoti automatą, kuris atpažintu tuos kalbos žodžius (ir tik juos). (Jei automatas priima žodį, jis tvirtina, kad žodis taisyklingas, t.y. priklauso kalbai; jei atmeta, jis tvirtina, kad žodis netaisyklingas.)..3 Automato vaizdavimas diagrama Paprastų automatu veikimą galima iliustruoti diagramomis; pavyzdžiui, tokia: q q 2 Galimos būsenos vaizduojamos skrituliukais su būsenos vardu viduje. Priėmimo būsenos apvedamos dvigubu apskritimu, pradinę būseną parodo rodyklė iš niekur. Jei iš vienos būsenos galima pereiti į kitą, perskaičius kokią nors raidę, diagramoje atitinkami skrituliukai sujungiami rodykle, virš kurios parašoma ta raidė.

.. DBA 7 b a q q 2 a b (a) M q 3 a b q 2 b q a b a q 3 q a 4 (b) M 2 b. pav. Jei į kokią nors būseną pereinama, perskaičius bet kokią raidę, virš rodyklės aš nerašau nieko. Jei perskaičius bet kokią raidę liekama toje pat būsenoje, aš nebrėžiu ir rodyklės. Jei būsenos vardas nesvarbus, jo taip pat nerašau. Pavyzdžiui, aukščiau nupiešta diagrama vaizduoja automatą, kuris turi dvi būsenas, q ir q 2 ; čia q yra pradinė būsena, o q 2 priėmimo būsena. Automatas skaito žodžius, sudarytus iš ir simboliu, o perėjimu funkcija δ aprašoma tokia lentele: q q q 2 q 2 q q 2 Automatas veikia taip: kol skaitomi, jis lieka pradinėje būsenoje; perskaitęs, jis pereina į q 2 ir lieka joje, kol skaitomi ; perskaitęs, vėl grįžta į q ir procesas kartojasi. Taigi automatas baigs darbą q 2 būsenoje, jei paskutinis perskaitytas simbolis bus. Kitaip tariant, automatas atpažįsta kalbą, kurios visi žodžiai baigiasi simboliu...4 Pratimai... pav. pavaizduoti du automatai. Atsakykite į klausimus. Kokia pradinė M būsena? Ats. q. Kokios M priimančios būsenos? Ats. q 2. Kokia M 2 pradinė būsena? Ats. q. Kokios M 2 priimančios būsenos? Ats. q, q 4. Kokias būsenas praeis M, skaitydama žodį aabb? Ats. q q 2 q 3 q q. Ar M priims žodį aabb? Ats. Ne. Ar M 2 priima tuščią žodį ε? Ats. Taip..2. Aprašykite formaliai mašinas M ir M 2 iš praeito pratimo. Ats. M = (Q, δ, q, F ), M 2 = (Q 2, δ 2, q, F 2 ); čia Q = {q, q 2, q 3 }, Q 2 = {q, q 2, q 3, q 4 }, F = {q 2 }, F 2 = {q, q 4 }, o perėjimo funkcijos užrašomos lentelėmis:

8 SKYRIUS. BAIGTINIAI AUTOMATAI δ a b q q 2 q q 2 q 3 q 3 q 3 q 2 q 4 δ 2 a b q q q 2 q 2 q 3 q 4 q 3 q 2 q q 4 q 2 q.3. Formalus mašinos M aprašymas yra toks: M = ({q, q 2, q 3, q 4, q 5 }, δ, q 3, {q 3 }), o δ duodama lentele u d q q q 2 q 2 q q 3 q 3 q 2 q 4 q 4 q 3 q 5 q 5 q 4 q 5 Nupieškite M mašinos diagramą. Ats. u q d u q 2 d u q 3 d u q 4 d u q 5 d.4. Nupieškite diagramas mašinu, atpažįstančių duotas kalbas (visais atvejais abėcėlė yra Σ = {, }). a. Aibė žodžiu, kurie prasideda ir baigiasi. b. Aibė žodžiu, kuriuose yra ne mažiau triju. c. Aibė žodžiu, kuriuose yra. d. Aibė žodžiu, kuriu trečia raidė yra. e. Aibė žodžiu, kurie prasideda ir yra nelyginio ilgio arba prasideda ir yra lyginio ilgio. f. Aibė žodžiu, kuriuose nėra. g. Aibė žodžiu, kuriu ilgis 5. h. Aibė visu žodžiu, išskyrus ir. i. Aibė visu žodžiu, kuriu nelyginės raidės yra. j. Aibė žodžiu, kuriuose yra ne mažiau dvieju ir ne daugiau vieno. k. {ε, }. l. Aibė žodžiu, kuriuose yra lyginis skaičius arba lygiai du. m.. n. Visi žodžiai, išskyrus ε. Ats. Žr..2.3 pav.

.. DBA 9 4 2 3 (b) 2 3 (a) 2 Y X (d) N (c) R (f) (e) 2 3 4 5 (g) X Y (h) N (i) P X (j) (k).2 pav.

SKYRIUS. BAIGTINIAI AUTOMATAI P (l) (m) (n).3 pav..2 Nedertiministiniai baigtiniai automatai.2. Apibrėžimai Šiame skyrelyje ɛ žymės tam tikrą fiksuotą simbolį, nepriklausantį Σ abėcėlei. Tada Σ ɛ = Σ {ɛ}. Simboliu ε, kaip ir anksčiau, žymėsiu tuščią žodį. Taigi ε ir ɛ yra skirtingi žodžiai: pirmas yra tuščias, antras susideda iš vienos raidės ɛ. P (Q) žymi visu Q poaibiu aibę. Nedeterministiniu baigtiniu automatu (sutrumpintai NBA) vadinamas ketvertas N = (Q, δ, q start, F ); čia Q yra baigtinė aibė, kurios elementai vadinami būsenomis; δ yra funkcija iš Q Σ ɛ į P (Q), vadinama perėjimo funkcija; q start yra Q aibės elementas, vadinamas pradine būsena; F yra Q aibės poaibis, kurio elementai vadinami priėmimo būsenomis. Jei w = b... b n yra koks nors Σ ɛ abėcėlės žodis, tai sakysiu, kad automatas jį paprastai priima, kai egzistuoja tokie q,..., q n Q, kad (i) q i δ(q i, b i ) su visais i =,..., n; (ii) q = q start ir q n F. Jei w = a... a m yra koks nors Σ abėcėlės žodis, tai sakysiu, kad automatas jį priima, kai jis paprastai priima kokį nors w = ɛ j a ɛ j... ɛ jm a m ɛ jm pavidalo žodį; čia j,..., j m. Kiekvieną NBA taip pat galima pavaizduoti diagrama. Kiekviena būsena vaizduojama skrituliuku, priėmimo būsena skrituliuku su dvigubu kraštu. Kiekvienam simboliui y Σ ɛ ir kiekvienai būsenai q δ(q, a) brėžiama rodyklė iš q į q su etikete a. (Jei δ(q, a) =, nėra jokios rodyklės; jei δ(q, a) = Σ, etiketės nerašau.) Pradinė būsena vaizduojama rodykle iš niekur. Diagrama suprantama taip. Tegu w yra koks nors Σ abėcėlės žodis. Iš pradžiu automatas yra pradinėje būsenoje. Jei iš jos eina kelios ɛ-rodyklės, automato veikimas išsiskaido į keletą lygiagrečiu procesu. Visos būsenos į kurias rodo ɛ-rodyklės, tampa pradinėmis atitinkamo proceso būsenomis. Jei iš tu būsenų dar eina ɛ-rodyklės, šakojimasis tęsiasi. Galu gale gauname tiek procesu,

.2. NBA kiek yra būsenu, į kurias galima nueiti iš pradinės būsenos, einant tik ɛ-rodykliu kryptimi. Jei w yra tuščias žodis, automatas jį priima, jei bent vienas procesas priima tuščią žodį, t.y. jei bent vieno proceso pradinė būsena yra priimančioji. Jei w netuščias, kiekvienas procesas skaito pirmą w žodžio raidę a. Jei iš to proceso pradinės būsenos nėra a -rodyklės, procesas sustoja, nepriimdamas žodžio. Jei yra kelios a-rodyklės, procesas išsišakoja į keletą paprocesiu, kuriu kiekvienas prasideda toje būsenoje, į kurią rodo y-rodyklė, arba būsenoje, į kurią galima patekti iš tos būsenos, einant ɛ-rodykliu kryptimis. Jei a yra vienintelis w simbolis, automatas priima w, kai bent viena procesas jį priima, o procesas priima, jei bent vienas paprocesis jį priima, t.y. yra priimančioje būsenoje. Jei žodyje yra daugiau raidžiu, skaitoma kita raidė ir viskas kartojasi. Štai pavyzdys:, 2,ɛ 3 4, Aišku, kad tuščio žodžio automatas nepriima. Jei žodis netuščias, bet prasideda, automatas lieka pradinėje būsenoje. Taigi visi... pavidalo žodžiai nepriimami. Kai perskaitomas pirmas, darbas išsišakoja į tris procesus, prasidedančius, atitinkamai,, 2 ir 3 būsenoje. Nė viena iš tu būsenu nėra priimančioji; todėl jei žodis yra... pavidalo, jis nepriimamas. Jei po pirmo vienetuko vėl stovi, trečias procesas pereina į 4 būseną ir ten pasilieka visą laiką. Taigi visi... pavidalo žodžiai priimami. Jei po pirmo stovi, pirmas procesas lieka būsenoje, antras procesas pereina į 3 būseną, o trečias procesas nutrūksta. Jei po to perskaitomas dar vienas, nutrūksta ir antras procesas; jei perskaitomas, antras procesas pereina į 4 būseną ir lieka joje amžinai. Taigi...... pavidalo žodžiai nepriimami, o... pavidalo priimami. Jei tarp pirmu dvieju vienetuku yra tarpas iš 2 nuliukų, prieš nuskaitant antrąjį yra likęs vienas procesas pradinėje būsenoje; taigi visa žodžio pradžia ignoruojama. Išvada: automatas priima visus žodžius, kuriuose yra arba pavidalo dalis..2.2 DBA ir NBA ekvivalentumas Du baigtiniai automatai (DBA arba NBA) vadinami ekvivalenčiais, jei jie atpažįsta tą pačią kalbą.. teorema. Kiekvienam DBA egzistuoja jam ekvivalentus NBA ir kiekvienam NBA jam ekvivalentus DBA. Įrodymas. Tegu M = (Q, δ, q start, F ) yra DBA, o N = (Q, δ, q start, F ); čia { {δ(q, a)}, kai a ɛ; δ(q, a) =, kai a = ɛ.

2 SKYRIUS. BAIGTINIAI AUTOMATAI Aišku, kad N yra NBA. Įrodysiu, kad jis ekvivalentus M. Tegu w = a... a m yra žodis, kurį priima M. Randu tokius q,..., q m Q, kad q i = δ(q i, a i ) su i =,..., n ir q = q start, q m F. Aišku, jog tada q i {q i } = δ(q i, a i ); todėl N priima (netgi paprastai) w. Atvirkščiai, tegu N priima w. Tada N paprastai priima tam tikrą w = ɛ j a ɛ j... ɛ j m a m ɛ j m pavidalo žodį; čia j,..., j m. Kadangi δ(q, ɛ) =, N nepriima jokio žodžio, kuriame yra bent vienas ɛ. Todėl w = w. Randu tokius q,..., q m Q, kad q i δ(q i, a i ) ir q = q start, q m F. Tada q i {δ(q i, a i )}; q i = δ(q i, a i ). Reiškia, M taip pat priima w. Tegu dabar N = (Q, δ, q start, F ) yra bet koks NBA. Sukonstruosiu jam ekvivalentu DBA. Su kiekvienu q Q ir bet kokia A Q apibrėžiu [q] = {q q,..., q n (q = q, q n = q, i q i δ(q i, ɛ))}, [A] = [q]. q A Kitaip tariant [q] yra aibė visu būsenu, į kurias galima patekti iš q, einant ɛ- rodykliu kryptimis. Pats q taip pat priklauso tai aibei (tereikia paimti n = ). Toliau su bet kokia A Q ir a Σ apibrėžiu [ ] δ(a, a) = δ(q, a) ir F = {F Q F F }. q A Įrodysiu, kad M = ( P (Q), δ, [q start ], F ) yra DBA, ekvivalentus N. Tegu w = a... a m yra bet koks žodis, kurį priima N. Tada atsiras toks žodis w = ɛ j a ɛ j... ɛ jm a m ɛ jm = b... b n ir tokie q,..., q n, kad q j δ(q j, b j ) su j =,..., n ir q = q start, q n F. Pažymiu A = [q ] ir A i = δ(a i, a i ) su i =,..., m. Akivaizdu, kad [q ] = A ; todėl q j q j + δ(q j, a ) q A δ(q, a ). Kadangi q j++j [q j+], iš čia išplaukia, kad q j+j + δ(a, a ) = A. Pakartojęs šiuos samprotavimus dar m kartą, gaunu q n A m. Kadangi q n F, aibė A m kertasi su F ir, reiškia, priklauso F sistemai. Taigi M priima w. Tegu dabar w = a... a m yra bet koks žodis, kurį priima M. Tada atsiras tokie poaibiai A = [q start ], A,..., A m, kad A m kertasi su F ir su i =,..., m. A i = δ(a i, a i )

.2. NBA 3 Randu r m A m F. Kadangi r m δ(a [ ] m, a m ) = δ(q, a m ), q A m atsiras r m A n ir q m δ(r m, a m ), su kuriais r m [q m ]. Pastarasis sąryšis reiškia, kad su tam tikrais q m,..., q mjm q mj δ(q m,j, ɛ) su j =,..., j m ir q mjm = r m. Panašiai samprotaudamas su i =,..., m randu r i A i ir q i,..., q iji, su kuriais q i δ(r i, a i+ ), q ij δ(q i,j, ɛ), kai j =,..., j i, q iji = r i+. Galiausiai iš r A = [q ] išplaukia, kad su tam tikrais q = q ir q,..., q j q j δ(q,j, ɛ), q j = r. kai j =,..., j, ir Dabar aišku, kad N paprastai priima ɛ j a ɛ j... a m ɛ j m žodį. Reiškia, jis priima a... a m = w..2.3 Pratimai.5. Sukonstruokite NBA su nurodytu skaičiumi būsenu, kuris atpažintu duotą kalbą. a. Aibę žodžiu, kurie baigiasi ; su 3 būsenomis. b. Aibę žodžiu, kuriuose yra ; su 5 būsenomis. c. Aibę žodžiu, kuriuose yra lyginis skaičius arba lygiai du ; su 6 būsenomis. d. Aibę {}; su dviem būsenomis. e. Aibę žodžiu, tenkinančiu sąlygą: žodis prasideda serija, po to eina serija, po to vėl serija (serijos gali būti ir tuščios) ir baigiasi ; su 3 būsenomis. f. Aibę {ε}; su viena būsena. g. Aibę žodžiu, kuriuose nėra ; su viena būsena. Ats. Žr..4 pav..6..5 pav. pavaizduoti du NBA. Sukonstruokite jiems ekvivalenčius DBA. Ats. Žr..6 pav.

4 SKYRIUS. BAIGTINIAI AUTOMATAI, (a),, (b) ɛ ɛ (d) (c),ɛ (e) (f) (g).4 pav. a a,b b (a) 2 ɛ a 2 a a,b 3 b (b).5 pav.

.3. REGULIARIOS KALBOS 5 b a 2 b (a) a 2 b b a 23 2 a b 23 a (b).6 pav..3 Reguliarios kalbos.3. Veiksmai su kalbomis Primenu, kad kalba vadinama bet kokia abėcėlės žodžiu aibė L. Apibrėžiu tris operacijas su kalbomis. Junginys L L 2 įprastas aibiu junginys. Sandauga (konkatenacija) L L 2 aibė visu x x 2 pavidalo žodžiu ; čia x L, x 2 L 2. L = k Lk ; čia L = {ε}, L = L, L 2 = LL, L 3 = LLL ir t.t. Be to, kiekvienas abėcėlės žodis sutapatinamas su kalba, susidedančia iš to vieno žodžio, o kiekvienas simbolis su žodžiu, susidedančiu iš to vieno simbolio. Taigi 3 reiškia, o žymi kalbą, susidedančią iš žodžiu, kuriuose yra tik simbolis: = {ɛ,,,,... }. Žvaigždutės operacija turi aukščiausią prioritetą, sandauga žemesnį, o junginys žemiausią. Jei operaciju atlikimo tvarką norime pakeisti, naudojame skliaustus. Sandauga yra asociatyvi operacija; todėl ją užrašant skliaustu nereikia. Pavyzdžiui, L = () kalba susideda iš dvieju tipu žodžiu. Pirmieji prasideda bet kokia nuliukų serija, baigiasi vienetuku serija, o tarp tu seriju yra. Antrieji susideda iš lyginio skaičiaus nuliukų..3.2 Reguliarios kalbos Priminsiu, kad kalba vadinama reguliaria, jei ją atpažįsta koks nors DBA. Iš. teoremos matyti, kad kiekvienam NBA egzistuoja ekvivalentus DBA, o kiekvienam DBA ekvivalentus paprastas NBA, t.y. NBA be ɛ-rodykliu. Paprastas NBA priima tik žodžius be ɛ simboliu ir kiekvieną tokį žodį jis priima paprastai. Taigi reguliarias kalbas galima apibrėžti ir kaip kalbas, kurias atpažįsta

6 SKYRIUS. BAIGTINIAI AUTOMATAI paprasti NBA; NBA. Įrodysiu, kad reguliariu kalbu aibė uždara visu aukščiau apibrėžtų operaciju atžvilgiu..2 teorema. Jei L ir L 2 yra reguliarios kalbos, tai L = L L 2 taip pat reguliari. Įrodymas. Tegu N = (Q, δ, q, F ) ir N 2 = (Q 2, δ 2, q 2, F 2 ) yra du paprasti NBA, atpažįstantys, atitinkamai, L ir L 2. Nemažindamas bendrumo, galiu laikyti, kad Q Q 2 =. Tegu q Q Q 2 ir Su q Q ir a Σ ɛ apibrėžiu Q = {q } Q Q 2. δ (q, a), kai q Q ; δ 2 (q, a), kai q Q 2 ; δ(q, a) =, kai q = q ir a ɛ; {q, q 2 }, kai q = q ir a = ɛ. Tegu N = (Q, δ, q, F F 2 ). Įrodysiu, kad N atpažįsta L. Tegu w = a... a n L. Kadangi N paprastai priima w, atsiras tokios būsenos q 2,..., q n+, kad q n+ F ir q i+ δ (q i, a i ) su i =,..., n. Tada q δ(q, ɛ); q i+ δ(q i, a i ) su i =,..., n; todėl N paprastai priima ɛa... a n. Reiškia, N priima w. Panašiai įrodoma, kad N priima ir bet kokį L 2 kalbos žodį. Dabar įrodysiu, kad kiekvienas žodis, kurį priima N, priklauso arba L, arba L 2 kalbai. Tegu N priima w = a... a m ; tada atsiras toks w = ɛ j a ɛ j... a m ɛ j m = b... b n pavidalo žodis ir tokios būsenos q = q, q,..., q n, kad q j δ( q j, b j ) su j =,..., n ir q n F F 2. Kadangi q F F 2, w netuščias. Tada iš q δ(q, b ) išplaukia, kad b = ɛ ir q {q, q 2 }. Tarkime, q = q (kitas atvejis nagrinėjamas panašiai). Tada q j Q su j = 2,..., n, q j δ ( q j, b j ) su j = 2,..., m ir q n F. Taigi N priima žodį b 2... b m = ɛ j a ɛ j... a m ɛ j m. Reiškia, N priima ir w..3 teorema. Jei L ir L yra reguliarios kalbos, tai L = L L taip pat reguliari.

.3. REGULIARIOS KALBOS 7 Įrodymas. Tegu N = (Q, δ, q, F ) ir N = (Q, δ, q, F ) yra du paprasti NBA, atpažįstantys, atitinkamai L ir L kalbą. Vėl galiu laikyti, kad Q ir Q nesikerta. Tegu Q = Q Q, δ (q, a), kai q Q \ F ir kai q F, a ɛ; δ(q, a) = {q }, kai q F, a = ɛ; δ (q, a), kai q Q. Įrodysiu, kad N = (Q, δ, q, F ) atpažįsta L. Tegu w = a... a m L, w = a... a n L ir w = w w. Randu tokius q,..., q m Q, kad q i δ (q i, a i ), kai i =,..., m, ir q m F. Po to tokius q,..., q n Q, kad ir q n F. Tada q i δ (q i, a i ), kai i =,..., n, q i δ(q i, a i ), kai i =,..., m, q δ(q m, ɛ), q i δ(q i, a i ), kai i =,..., n; todėl N paprastai priima w ɛw ir, reiškia, priima w. Atvirkščiai, tegu N priima w = a... a m. Randu tokį žodį ir tokius q = q, q,..., q n Q, kad w = ɛ j a ɛ j... a m ɛ j m = b... b n q j δ(q j, b j ) su j =,..., n ir q n F. Tegu k yra pirmas indeksas, su kuriuo q k Q. Tada k n, nes q Q, o q n Q. Kadangi q j Q su j =,..., k, q j δ (q j, b j ) su j =,..., k ir joks iš b,... b k nėra ɛ. Iš q k Q, q k δ(q k, b k ) ir q k Q išplaukia, kad b k = ɛ, q k F ir q k = q. Tada q j δ (q j, b j ) su j = k +,..., n ir joks iš b k+,..., b m nėra ɛ. Taigi w yra w ɛw pavidalo su w L ir w L. Iš čia išplaukia, kad w = w w L L..4 teorema. Jei L reguliari, tai L taip pat reguliari.

8 SKYRIUS. BAIGTINIAI AUTOMATAI Įrodymas. Tegu N = (Q, δ, q, F ) yra paprastas NBA, atpažįstantis L. Apibrėžiu { δ(q, a), kai q F arba q F, a ɛ; δ(q, a) = {q }, kai q F, a = ɛ. Įrodysiu, kad Ñ = (Q, δ, q, F ) atpažįsta LL kalbą (kuri yra L kalba, tik, gal būt, be tuščio žodžio). Tegu w = w... w k su k ir w,..., w k L. Tegu w j = a j... a jnj. Su j =,..., k randu tokius q j,..., q jnj, kad q j = q, q jnj F ir Tada q ji δ(q j,i, a ji ) su i =,..., n j. q ji δ(q j,i, a ji ) su i =,..., n j ; q j δ(q j,nj, ɛ) su j = 2,..., k. Reiškia, Ñ paprastai priima w ɛw 2... ɛw k žodį. Taigi ji priima w. Atvirkščiai, tegu w = a... a m yra koks nors žodis, kurį priima Ñ. Randu tokį žodį ir tokius q,... q n, kad q m F ir w = ɛ j a ɛ j... a m ɛ jm = b... b n q j δ(q j, b j ) su j =,..., n. Kadangi y j = ɛ, tai q j = q su j =,..., j. Todėl Ñ priima ir a ɛ j... a n ɛ jn žodį. Todėl toliau laikysiu j =. Kadangi b j = ɛ, kai j = n j m +,..., n, tai q n jm F. Taigi Ñ priima ir a ɛ j... ɛ j m a m žodį. Todėl toliau laikysiu j m =. Jei koks nors j k > ir s = j + +j k +k, tai iš b j = ɛ su j = s+,..., s+j k gaunu q s+ = = q s+jk = q. Jei j k >, tai tas įmanoma tik tada, kai q F. Bet tada q s+jk δ(q s+, ɛ); todėl Ñ priima ir žodį a ɛ j... ɛ j k a k ɛa k+ ɛ j k+... ɛ j m a m. Todėl toliau laikysiu, kad visi likę j i yra arba, arba. Taigi w yra w ɛw 2... ɛw k pavidalo; čia w j žodžiai be ɛ simbolio. Aišku, kad w = w... w k. Jei w = a... a s, tai iš a i ɛ gaunu q j δ(q j, a j ) su j =,..., s. Jei k =, tai s = m ir q s F. Jei k 2, tai iš q s+ δ(q s, ɛ) išplaukia q s F, o q s+ = q. Reiškia, w L, o Ñ priima w 2ɛ... ɛw k. Samprotaudamas taip ir toliau, gaunu, kad w i L su visais i. Taigi w LL. Įrodžiau, kad LL reguliari. Kadangi {ɛ} reguliari, junginys L = {ɛ} LL taip pat reguliarus.

.3. REGULIARIOS KALBOS 9.3.3 Pompos lema Kai norime įrodyti, kad kokia nors kalba nėra reguliari, remiamės teiginiu, kuris vadinamas pompos lema. Ji tvirtina, kad bet kokį pakankamai ilgą reguliarios kalbos žodį galima kiek norima pripumpuoti ir jis vis tiek liks tos kalbos žodis..5 teorema. Jei L reguliari, tai egzistuoja toks p, kad bet kokį žodį w L, kurio ilgis p, galima užrašyti w = xyz pavidalu taip, kad (i) y, xy p; (ii) xy i z L su visais i. Įrodymas. Tegu L yra reguliari kalba ir M = (Q, δ, q, F ) ją atpažįstantis DBA. Tegu p yra M mašinos būsenu skaičius. Paimu bet kokį žodį w = a... a n ; čia n p, o a i Σ. Randu tokias būsenas q,..., q n, kad q i = δ(q i, a i ) su i =,..., n ir q n F. Kadangi būsenu q,..., q n yra n + > p, bent dvi iš ju yra vienodos. Tegu q k ir q l yra pirmos sutampančios būsenos. Tada q,..., q l būsenos skirtingos; todėl l p. Pažymiu x = a... a k, y = a k+... a l, z = a l+... a n. Skaitydamas dalį y automatas iš q k būsenos patenka vėl į q l = q k būseną. Perskaitęs dar kartą y, jis vėl atsidurs q k būsenoje. Taigi perskaitęs bet kokį xy i z žodį jis atsidurs toje pat q n būsenoje, kaip ir perskaitęs xyz. Todėl M priima xy i z, o tai ir reiškia, kad xy i z L..3.4 Pratimai.7. Sukonstruokite NBA, atpažįstančius nurodytas kalbas. a. L L 2 ; čia L yra kalba, aprašyta.4 pratimo (a) dalyje, o L 2 (b) dalyje. b. L L 2 ; čia L yra kalba, aprašyta.4 pratimo (c) dalyje, o L 2 (f) dalyje. c. L L 2 ; čia L yra kalba, aprašyta.4 pratimo (g) dalyje, o L 2 (i) dalyje. d. L L 2 ; čia L yra kalba, aprašyta.4 pratimo (b) dalyje, o L 2 (m) dalyje. e. L ; čia L yra kalba, aprašyta.4 pratimo (b) dalyje. f. L ; čia L yra kalba, aprašyta.4 pratimo (m) dalyje. Ats. Žr..7 pav..8. Kiekvienai iš duotu kalbų nurodykite keturis žodžius: du priklausančius ir du nepriklausančius kalbai.

2 SKYRIUS. BAIGTINIAI AUTOMATAI ɛ ɛ (a) ɛ ɛ (b) ɛ (c) ɛ (d) (f) ɛ (e).7 pav.

.4. REGULIARIEJI REIŠKINIAI 2 a. a b. Ats. ε, a; ba, bab. b. a(ba) b. Ats. ab, abab; aa, b. c. a b. Ats. a, bb; ab, baa. d. (aaa). Ats. ε, aaa; a, b. e. Σ aσ bσ aσ. Ats. aba, aabb; ab, aa. f. aba bab. Ats. aba, bab; ab, baba. g. (ɛ a)b. Ats. b, ab; a, bb. h. (a ba bb)σ. Ats. aba, bab; ε, b..9. Įrodykite, kad duotos kalbos nereguliarios. a. { n n 2 n n }. b. {www w (a b) }. c. {a 2n n }. Ats. a. Tariu priešingai, kalba reguliari, ir tegu p yra pompos tūris. Žodis p p 2 p priklauso kalbai; užrašau jį xyz pavidalu su xy p ir y taip kad xy i z priklauso kalbai su visais i. Tada y yra k pavidalo. Pumpuojant ir 2 simboliu skaičius žodyje nesikeičia, o didėja. Reiškia, gautas žodis nebepriklauso kalbai. b. Tariu priešingai, kalba reguliari, ir tegu p yra pompos tūris. Žodis a p ba p ba p b priklauso kalbai; užrašau jį xyz pavidalu su xy p ir y taip kad xy i z priklauso kalbai su visais i. Tada y yra a k pavidalo. Pumpuojant prieš pirmą b atsiranda daugiau a simboliu, negu tarp pirmo ir antro b. Jei tokį žodį užrašyčiau www pavidalu, tai kiekviename w būtu vienas b ir pačiame gale. Reiškia, pirmame w bus daugiau a raidžiu negu antrame. Gaunu prieštarą. c. Tariu priešingai, kalba reguliari, ir tegu p yra pompos tūris. Paimu bet kokį 2 n > p. Žodis a 2n priklauso kalbai; užrašau jį xyz pavidalu su xy p ir y taip kad xy i z priklauso kalbai su visais i. Aišku, kad y = a k su tam tikru k. Tada xy i z = a 2n k+ik ; taigi 2 n + (i )k = 2 m i su visais i 2 ir tam tikrais m i > n. Paėmęs i = 2, gaunu kad k (mod 2). Kita vertus, paėmęs i = 2 n +, gaunu k = 2 m n su tam tikru m > n. Gavau prieštarą..4 Reguliarieji reiškiniai.4. Apibrėžimas Reguliariais reiškiniais (sutrumpintai RR) vadinami žodžiai, sudaryti iš Σ abėcėlės raidžiu bei, ɛ,,, (, ) simboliu ir gaunami pagal tokį rekursinį apibrėžimą:

22 SKYRIUS. BAIGTINIAI AUTOMATAI kiekviena Σ abėcėlės raidė ir, ɛ simboliai yra RR; jei R yra RR, tai (R ) taip pat RR; jei R ir R 2 yra du RR, tai (R R 2 ) ir (R R 2 ) taip pat RR. Kiekvienas RR žymi tam tikrą reguliarią kalbą: RR iš vienos Σ abėcėlės raidės a kalbą, susidedančią iš vieno žodžio a; RR tuščią kalbą; RR ɛ kalbą, susidedančią iš tuščio žodžio; RR (R ), (R R 2 ) ir (R R 2 ) kalbas, gaunamas atlikus atitinkamas operacijas su kalbomis, žymimomis RR R, R, R 2. Skliaustai naudojami tik operaciju eilei nurodyti; todėl paprastai daugumą ju galima praleisti, susitarus, kad žvaigždutės operacija turi aukščiausią, o junginio operacija žemiausią prioritetą. Visu RR aibę žymėsiu R. Toliau šiame skyrelyje ruošiuosi įrodyti, kad bet kuri reguliari kalba gali būti užrašyta tam tikru reiškiniu iš R..4.2 Apibendrintieji baigtiniai automatai Apibendrintuoju baigtiniu automatu (sutrumpintai ABA) vadinamas ketvertas (Q, δ, q start, q accept ); čia Q yra baigtinė aibė, kurios elementai vadinami būsenomis; δ yra funkcija iš Q Q į R; q start yra būsena iš Q, vadinama pradine būsena; q accept yra būsena iš Q, vadinama priėmimo būsena. ABA taip pat vaizduojami diagramomis: būsenos vaizduojamos skrituliukais, pradinę būseną parodo rodyklė iš niekur, priėmimo būseną skrituliukas dvigubu kraštu. Jei δ(q, q ) = R, iš q į q brėžiama rodyklė, virš kurios parašomas žodis R. Štai vienas pavyzdys: ABA veikimą neformaliai galima aprašyti taip. Automatas iš pradžiu yra pradinėje būsenoje ir gauna žodį w. Po to jis skaito žodžio pradžią ir jei ji priklauso kalbai, žymimai RR virš kokios nors rodyklės iš pradinės būsenos, automatas pereina į būseną, į kurią rodo ta rodyklė. Jei yra galimybė nueiti keliomis kryptimis, veikimas išsišakoja į kelis lygiagrečius procesus. Jei nėra jokios galimybės pajudėti, automatas baigia darbą. Perėjus į kitą būseną, viskas kartojasi. Procesas priima žodį, jei jam pasibaigus automatas yra priėmimo būsenoje. Automatas priima žodį, jei bent vienas procesas jį priima. Formalus veikimo aprašymas skamba taip: žodis w priimamas, jei egzistuoja tokie žodžiai w,..., w k ir tokios būsenos q,..., q k, kad w = w... w k ; w i δ(q i, q i ) su i =,..., k; q = q start, q k = q accept.

.4. REGULIARIEJI REIŠKINIAI 23 Pavyzdžiui, aukščiau pavaizduotas ABA priima, nes perskaitęs, automatas pereina į antrą būseną; perskaitęs, jis lieka antroje būsenoje; perskaitęs, jis pereina į trečią būseną; perskaitęs, jis grįžta į antrą būseną; perskaitęs, jis lieka antroje būsenoje, kuri yra priėmimo būsena..4.3 Pagrindinė teorema Du ABA vadinami ekvivalenčiais, jei jie atpažįsta tą pačią kalbą..6 teorema. Kiekvienas ABA ekvivalentus tam tikram ABA, turinčiam tik q start ir q accept būsenas. Įrodymas. Tegu (Q, δ, q start, q accept ) yra koks nors ABA ir q jo būsena, nesutampanti nei su q start, nei su q accept. Pakanka parodyti, kad toks automatas ekvivalentus automatui su būsenu aibe Q \ {q }. Sukonstruosiu tą automatą. Jo pradinė ir priėmimo būsenos bus tos pačios q start ir q accept, o perėjimo funkciją δ apibrėšiu taip: δ (q, q ) = R R 2 R 3R 4 ; čia R = δ(q, q ), R 2 = δ(q, q ), R 3 = δ(q, q ), R 4 = δ(q, q ). Įrodysiu, kad naujasis automatas ekvivalentus senajam. Tegu w yra žodis, kurį priima senasis automatas. Randu tokius w,..., w n ir tokius q,..., q n, kad w = w... w n, q = q start, q n = q accept ir w i δ(q i, q i ) su i =,..., n. Jei tarp q,..., q n būsenu nėra q, tai w i δ (q i, q i ) su visais i, nes δ(q i, q i ) δ (q i, q i ). Reiškia, naujasis automatas taip pat priima w. Tegu dabar q k q, q k+ = = q l = q, q l+ q. Tada w k+ δ(q k, q ), w k+2... w l δ(q, q ), w l+ δ(q, q l+ ); todėl w k+... w l+ δ (q k, q l+ ). Analogiškai suklijuojami kiti blokai žodžiu, kuriuos atitinka q būsenų blokai. Taigi naujasis automatas priima w. Tegu dabar w yra žodis, kurį priima naujasis automatas. Užrašau jį w... w n pavidalu taip, kad su tam tikrais q = q start, q,..., q n, q n = q accept w i δ (q i, q i ), kai i =,..., n. Jei w i δ(q i, q i ), žodžio w i nekeičiu, t.y. pažymiu k i = ir w i = w i. Priešingu atveju w i δ(q i, q ) [ δ(q, q ) ] δ(q, q i ); todėl jį galima užrašyti w i = w i... w iki pavidalu su Taigi w i δ(q i, q ), w i,..., w i,ki δ(q, q ), w iki δ(q, q i+ ). w = w... w k... w n... w nkn ir aukščiau parašytos lygybės rodo, kad senasis automatas priima w.

24 SKYRIUS. BAIGTINIAI AUTOMATAI.4.4 Reguliariu kalbu struktūra