Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Samankaltaiset tiedostot
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

Kertausta 1. kurssikokeeseen

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Säännöllisten kielten sulkeumaominaisuudet

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Säännöllisten operaattoreiden täydentäviä muistiinpanoja

Yhteydettömän kieliopin jäsennysongelma

Automaatit. Muodolliset kielet

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Rekursiiviset palautukset [HMU 9.3.1]

Täydentäviä muistiinpanoja epädeterministisistä äärellisistä automaateista

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Rajoittamattomat kieliopit

Turingin koneen laajennuksia

Pinoautomaatit. Pois kontekstittomuudesta

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

Algoritmin määritelmä [Sipser luku 3.3]

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

DFA:n käyttäytyminen ja säännölliset kielet

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

1. Universaaleja laskennan malleja

uv n, v 1, ja uv i w A kaikilla

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

Lisää pysähtymisaiheisia ongelmia

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Formalisoimme nyt edellä kuvatun laskennan.

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

S BAB ABA A aas bba B bbs c

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla.

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Chomskyn hierarkia ja yhteysherkät kieliopit

Laskennan mallit

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Laskennan mallit

Laskennan mallit

Laskennan mallit. luennot syksyllä 2018, periodi I Jyrki Kivinen. tietojenkäsittelytieteen aineopintokurssi, pääaineopiskelijoille pakollinen

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI. 1. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on

Laskennan mallit

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Laskennan mallit

Täydentäviä muistiinpanoja laskennan rajoista

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M :=

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

ICS-C2000 Tietojenkäsittelyteoria

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

5.3 Ratkeavia ongelmia

Säännöllisen kielen tunnistavat Turingin koneet

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

ICS-C2000 Tietojenkäsittelyteoria

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

2. Laskettavuusteoriaa

1. Universaaleja laskennan malleja

Laskennan mallit

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}

Rajoittamattomat kieliopit (Unrestricted Grammars)

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Laskennan mallit

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

Ei-yhteydettömät kielet [Sipser luku 2.3]

Tietojenkäsittelyteorian alkeet, osa 2

Transkriptio:

582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on seuraava: Mikä on automaatin hyväksymä kieli? δ a b c ε q 0 { q 1, q 5 } q 1 { q 1, q 2 } { q 1 } { q 1 } q 2 { q 3 } { q 3 } q 3 { q 4 } q 4 { q 4 } { q 4 } { q 4 } q 5 { q 5 } { q 5 } { q 5, q 6 } q 6 { q 7 } { q 7 } q 7 { q 4 } Automaattia vastaava tilakaavio on: a,b,c a b, ε q1 q2 q3 q0 ε c q4 a,b,c ε c b, ε q5 q6 q7 a a,b,c Automaatin tunnistamaan kieleen kuuluvat merkkijonot, joilla on osajonona ac, abc, ca tai cba. 2. Olkoon aakkoston { 0, 1 } kieli A niiden merkkijonojen joukko, jotka loppuvat nollaan, ja kieli B niiden merkkijonojen joukko, jotka loppuvat 01. Nämä kielet voidaan tunnistaa seuraavilla epädeterministisillä automaateilla: 0, 1 0, 1 0 0 1 a b A B C (a) Muodosta kielen A B tunnistava NFA luennoilla kuvatulla konstruktiolla (ss. 81 82, Sipser ss. 60 61). Anna myös tuloksen formaali esitys.

Kielen A B tunnistava automaatti on seuraava: Automaatin formaali esitys on (Q, Σ, δ, a, F ), jossa Q = { a, b, A, B, C }, Σ = { 0, 1 }, F = { C } ja δ on seuraava: δ 0 1 ε a { a, b } { a } b { A } A { A, B } { A } B { C } C (b) Esitä syntyneen automaatin laskentapuu (luennot s. 61, Sipser s. 49) syötteellä 001101. Automaatin laskentapuu syötteellä 001101 on seuraava: Viimeisellä rivillä on kaksi kertaa lopputila C, eli automaatti voi hyväksyä merkkijonon 001101 kahdella eri tavalla. Mahdolliset tulkinnat ovat 0 01101 ja 00 1101. (c) Muodosta saman kielen tunnistava DFA luentojen konstruktiolla (ss. 71 73, Sipser ss. 55 56). 2

3. Kielen A tunnistavan äärellisen automaatin konstruktiossa (ss. 83 84, Sipser ss. 62 63) kielen A tunnistavaan automaattiin N 1 lisättiin uusi tila q 0, jonka tehtävänä on huolehtia, että tyhjä merkkijono ε tulee hyväksytyksi. Miksi tämän sijasta ei voi vain yksinkertaisesti tehdä automaatin N 1 alkutilasta hyväksyvää? Anna esimerkki. Ongelmana on, että alkutilaan voidaan palata myöhemmin, jolloin sen muuttaminen hyväksyväksi johtaisi ylimääräisten merkkijonojen hyväksymiseen. Yksinkertainen esimerkki saadaan seuraavasta automaatista, jonka tunnistama kieli L koostuu merkkiin 0 päätyvistä merkkijonoista: 1 0 0 a b 1 Jos tila a muutetaan hyväksyväksi (ja lisätään siirtymä δ(b, ε) = { a }), syntyvä automaatti hyväksyy esim. merkkijonon 111, joka ei kuulu kieleen L. 4. (Sipser Problem 1.38) Epädeterministinen automaatti hyväksyy syötteen, jos yksikin mahdollinen laskenta päätyy hyväksyvään tilaan. Määritellään uudenlainen automaatti, NFA, joka on muuten kuin NFA, mutta hyväksyy vain, jos kaikki mahdolliset laskennat päätyvät hyväksyvään tilaan. Osoita, että kieli voidaan tunnistaa NFA:lla, jos ja vain jos se on säännöllinen. Tehtävänä on osoittaa, että kieli on säännöllinen, jos ja vain jos se voidaan tunnistaa NFA:lla. Toinen suunta on ilmeinen: jos kieli on säännöllinen, se voidaan määritelmän mukaan tunnistaa DFA:lla, joka on (pieniä merkintäteknisiä seikkoja lukuunottamatta) NFA:n erikoistapaus. Olkoon toisaalta N = (Q, Σ, δ, q 0, F ) jokin NFA. Muodostamme DFA:n M, jolla L(M) = L(N); tämä osoittaa, että L(N) on säännöllinen. Muodostetaan ensin automaatista N DFA M = (P(Q), Σ, δ, q 0, F ) samalla konstruktiolla kuin luentojen sivuilla 71 73 (Sipser s. 55 56). Nyt tietysti M yleensä hyväksyy liikaa merkkijonoja, sillä sen hyväksyvien tilojen joukko F on valittu normaalin NFA:n hyväksymisehdon mukaan. Lopulliseksi DFA:ksi tulee M = (P(Q), Σ, δ, q 0, F ), missä tila X P(Q) (eli X Q) on hyväksyvä, jos q F kaikilla q X (eli X F ); voimme kirjoittaa tämän F = P(F ). Selvästi automaatin M laskennan viimeinen tila kuuluu joukkoon F, jos ja vain jos automaatin N kaikki laskennat päätyvät hyväksyvään tilaan. Siis L(M) = L(N), kuten haluttiin. Lisähuomio: Jos ollaan tarkkoja, voidaan kuitenkin havaita, että tehtävänmäärittely ei ollut täysin yksikäsitteinen, koska emme ole tarkalleen määritelleet, mikä on laskenta. Jos tarkastelemme esim. tehtävän 2(b) ratkaisussa annettua laskentapuuta, näemme sen pohjariviltä selvästi, että kaksi laskentaa on päätynyt hyväksyvään tilaan C ja yhteensä kolme laskentaa ei-hyväksyviin tiloihin a ja A. Mutta riviltä 4 havaitsemme myös, että yksi laskenta on jäänyt kesken (joutunut umpikujaan) tilassa C, joka on hyväksyvä. Lasketaanko tämä hyväksyvään tilaan päätymiseksi? Luonteva (ja tehtävänlaatijan tarkoittama) tulkinta on, että kesken jääneet laskennat eivät ole hyväksyvään tilaan päätyviä. Siis sovimme NFA:n hyväksymisehdoksi tarkemmin, että kaikilla siirtymäfunktion mukaisilla seuraajatilan valinnoilla automaatti käsittelee koko syötteen ja päätyy hyväksyvään tilaan. Edellä esitetty konstruktio ei noudata tätä sopimusta, koska kesken jääneistä laskennoista ei jää mitään jälkeä siihen, mikä tilajoukko laskentapuun pohjariville tulee. Ongelman ratkaisemiseksi muunnetaan ensin N sellaiseksi, että mikään laskenta ei jää kesken. Tätä varten olkoon N = (Q, Σ, δ, q 0, F ) jokin 3

NFA kuten edellä. Muodostetaan Q = Q { q reject }, missä q reject Q on uusi tila. Määrittelemme N = (Q, Σ, δ, q 0, F ), missä δ (q, x) = δ(q, x) jos q Q ja δ(q, x) δ (q, x) = { q reject } jos q Q ja δ(q, x) = δ (q reject, x) = { q reject } kaikilla x Σ. Nyt N tunnistaa saman kielen kuin N, mutta ei jätä mitään laskentaa kesken. Edellä esitetty konstruktio sovellettuna automaattiin N tuottaa DFA:n M, joka tunnistaa saman kielen kuin NFA N. 5. (Sipser Problem 1.31) Määritellään kielen A käänteiskieli A R = { w R w A }. Väite: Jos aakkoston Σ kieli A on säännöllinen, niin myös kieli A R on. Todistus: Olkoon A säännöllinen ja M = (Q, Σ, δ, q 0, F ) sen tunnistava DFA. Muodostetaan NFA kääntämällä DFA:n M siirtymien suunnat ja lisäämällä alkutila, josta on ε-siirtymät DFA:n hyväksyviin tiloihin. Täsmällisemmin olkoon N = ( ˆQ, Σ, ˆδ, ˆq, ˆF ), missä ˆq Q on uusi tila ˆQ = Q { ˆq } ˆF = { q 0 } siirtymäfunktio on seuraava: ˆδ(ˆq, ε) = F ˆδ(ˆq, a) = kun a Σ ˆδ(q, ε) = kun q Q ˆδ(q, a) = { r δ(r, a) = q } kun q Q ja a Σ. Selvästi N tunnistaa kielen A R. Tunnetusti jos kieli voidaan tunnistaa NFA:lla, se on säännöllinen. Edellä esitetty on riittävä vastaus tehtävään. Jos haluaa perustella tarkemmin, miksi L(N) = A R, sen voi tehdä seuraavasti: Olkoon ensin v A R. Siis v = w R jollakin w = w 1... w n A, missä w i Σ. Koska M hyväksyy merkkijonon w, siinä on tilat r 0,..., r n, missä r 0 = q 0 r n F ja r i = δ(r i 1, w i ) kun i = 1,..., n. Muodostetaan jono s 0,..., s n+1 tiloja NFA:ssa N, missä s 0 = ˆq ja s i = r n i+1 kun i = 1,..., n + 1. Muodostetaan lisäksi jono y = (y 1,..., y n+1 ) Σ n+1 ε, missä y 1 = ε ja y i+1 = w n i+1 kun i = 1,..., n. Nyt y 1 y 2 y 3... y n+1 = εw n w n 1... w 1 = v. Lisäksi s 0 = ˆq on automaatin N alkutila s 1 = r n F, joten s 1 ˆδ(ˆq, ε) = ˆδ(s 0, y 1 ) kaikilla i = 1,..., n pätee s i = r n i+1 = δ(r n i, w n i+1 ) = δ(s i+1, y i+1 ), joten s i+1 ˆδ(s i, y i+1 ). 4

Siis (s 0,..., s n+1 ) on eräs mahdollinen automaatin N tilajono syötteellä v. Koska lisäksi s n+1 = r 0 = q 0 ˆF, niin N hyväksyy merkkijonon v. Olkoon toisaalta v = v 1... v n jokin merkkijono, jonka N hyväksyy. Määritelmän mukaan on olemassa m n, jono (y 1,..., y m ) Σ m ε ja jono (s 0,..., s m ) ˆQ m+1, missä v = y 1..., y m s 0 = ˆq s i+1 ˆδ(s i, y i+1 ) kun i = 0,..., m ja s m ˆF. Koska automaatissa N ei ole siirtymiä alkutilaan ˆq eikä muita ε-siirtymiä kuin alkutilasta lähtevät, voidaan päätellä m = n + 1, y 1 = ε ja y i+1 = v i kun i = 1,..., n. Määritellään r i = s n+1 i kun i = 0,..., n. Koska s n+1 ˆF = { q 0 }, pätee r 0 = q 0. Koska s 1 ˆδ(s 0, y 1 ), pätee r n = s 1 ˆδ(s 0, y 1 ) = ˆδ(ˆq, ε) = F. Koska s i+1 ˆδ(s i, y i+1 ), pätee s i = δ(s i+1, y i+1 ) eli r n+1 i = δ(r n i, v i ) kaikilla i = 1,..., n. Toisin sanoen r j+1 = δ(r j, v n j ), kun j = 0,..., n 1. Siis tilajono (r 0,..., r n ) osoittaa, että M hyväksyy merkkijonon w = v n v n 1... v 1, joten w A. Koska voidaan kirjoittaa v = w R, missä w A, pätee v A R. Olemme osoittaneet, että N hyväksyy merkkijonon v, jos ja vain jos v A R. 6. (a) Sanotaan, että merkkijono w on merkkijonon x alkuosa, jos jollakin merkkijonolla z pätee x = wz. Kun A on aakkoston Σ kieli, määritellään sen alkuosien joukko PREFIX(A) = { w Σ wz A jollakin z Σ }. Väite: Jos kieli A on säännöllinen, niin myös PREFIX(A) on. Todistus: Olkoon A säännöllinen kieli ja M = (Q, Σ, δ, q 0, F ) sen tunnistava DFA. Olkoon F niiden tilojen joukko, joista johtaa siirtymäketju johonkin hyväksyvään tilaan: F = { q Q jollakin z Σ pätee δ (q, z) F }, missä δ on luentojen sivuilla 27 28 määritelty yleistetty siirtymäfunktio. Muodostetaan automaatti M = (Q, Σ, δ, q 0, F ). Ainoa ero alkuperäiseen automaattiin M on siis hyväksyvien tilojen joukon laajentuminen. Selvästi M tunnistaa kielen PREFIX(A). Edellä esitetty on riittävä vastaus tehtävään. Jos haluaa perustella tarkemmin, miksi L(M ) = PREFIX(A), sen voi tehdä esim. seuraavasti: Olkoon w PREFIX(A). Siis on olemassa sellaiset x A ja z Σ, että x = wz. Merkitään q = δ (q 0, w). Koska x A, niin δ (q 0, x) F. Toisaalta δ (q 0, x) = δ (δ (q 0, w), z) = δ (q, z). Siis δ (q, z) F, joten q F ja w L(M ). Olkoon toisaalta w L(M ). Merkitään q = δ (q 0, w). Koska q F, on olemassa z, jolla δ (q, z) F. Tällöin δ (q 0, wz) = δ (q, z) F, joten wz A ja siis w PREFIX(A). (b) Sanotaan, että merkkijono w on merkkijonon x loppuosa, jos jollakin merkkijonolla z pätee x = zw. Kun A on aakkoston Σ kieli, määritellään sen loppuosien joukko SUFFIX(A) = { w Σ zw A jollakin z Σ }. Väite: Jos kieli A on säännöllinen, niin myös SUFFIX(A) on. 5

Todistus: Olkoon w = w 1... w n mielivaltainen merkkijono. Todetaan ensin, että w SUFFIX(A) on olemassa merkit z 1,..., z k Σ joilla z 1... z k w 1... w n A on olemassa merkit z 1,..., z k Σ joilla w n... w 1 z k... z 1 A R w R PREFIX(A R ). Siis SUFFIX(A) = (PREFIX(A R )) R. Olkoon nyt A säännöllinen. Tehtävän 5 nojalla A R on säännöllinen. Tästä seuraa edelleen kohdan (a) nojalla, että PREFIX(A R ) on säännöllinen. Soveltamalla uudestaan tehtävää 5 nähdään, että (PREFIX(A R )) R on säännöllinen. Edellä todetun mukaisesti (PREFIX(A R )) R on sama kieli kuin SUFFIX(A). 7. Koostukoon kieli A n niistä aakkoston { a, b } merkkijonoista, joiden n:nneksi viimeinen merkki on a. (a) Anna kielen A n tunnistava NFA, jossa on enintään n + 1 tilaa. Kielen A n tunnistava epädeterministinen n + 1-tilainen automaatti on seuraava nlai- nen: a,b 1 a a,b a,b a,b a,b 2 3 n n+1 Automaatin formaali esitys on M = (Q, {a, b}, δ, 1, {n + 1}), missä automaatin tiloina on joukko Q = {1, 2,..., n + 1} ja siirtymät ovat: δ(1, a) = {1, 2}, δ(1, b) = {1} ja δ(i, a) = δ(i, b) = {i + 1} kaikilla i = 2, 3,..., n. Aloitustilana on tila 1 ja ainut hyväksyvä tila on tila n + 1. (b) Väite: Missä tahansa kielen A n tunnistavassa DFA:ssa on ainakin 2 n tilaa. Todistus: Olkoon M = (Q, Σ, δ, q 0, F ) DFA, missä Q < 2 n. Väitämme, että L(M) A n. Erilaisia tasan n merkin mittaisia merkkijonoja aakkostossa { a, b } on 2 n kappaletta. Koska Q < 2 n, kyyhkyslakkaperiaatteen mukaan on olemassa kaksi eri merkkijonoa u ja v, jotka ovat tasan n merkin mittaisia ja joilla δ (q 0, u) = δ (q 0, v). Koska u ja v poikkeavat ainakin yhden merkin osalta, voimme valita u = u 1... u i 1 au i+1 u n ja v = v 1... v i 1 bv i+1 v n jollain 1 i n. Merkitään nyt δ (q 0, u) = δ (q 0, v) = q 1 ja δ (q 1, 0 i 1 ) = q 2. Siis q 2 = δ (q 0, u0 i 1 ) = δ (q 0, v0 i 1 ). Jos q 2 F, niin M hyväksyy merkkijonon v0 i 1, vaikka v0 i 1 A n. Jos q 2 F, niin M hylkää merkkijonon u0 i 1, vaikka u0 i 1 A n. Tämä voidaan taas nähdä esimerkkinä tehtävän 2.4 relaatiosta L sovellettuna tapaukseen L = A n. Jos 1 j n ja kaksi merkkijonoa x ja y poikkeavat toisistaan j:nneksi viimeisen merkin osalta, ne ovat A n -erottuvia ja erottuvuuden osoittaa mikä tahansa n j merkin mittainen z. Tämän jälkeen ratkaisun logiikka on sama kuin tehtävässä 2.4. 6