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

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

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

Kertausta 1. kurssikokeeseen

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

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

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

Automaatit. Muodolliset kielet

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

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

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

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

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

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

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

5.3 Ratkeavia ongelmia

Chomskyn hierarkia ja yhteysherkät kieliopit

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

Algoritmin määritelmä [Sipser luku 3.3]

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, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Yhteydettömän kieliopin jäsennysongelma

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

Säännöllisen kielen tunnistavat Turingin koneet

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

Miten osoitetaan joukot samoiksi?

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Täydentäviä muistiinpanoja laskennan rajoista

Pinoautomaatit. Pois kontekstittomuudesta

Muodolliset kieliopit

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

Rekursiiviset palautukset [HMU 9.3.1]

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

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

7 Vapaus. 7.1 Vapauden määritelmä

Salausmenetelmät LUKUTEORIAA JA ALGORITMEJA. Veikko Keränen, Jouko Teeriaho (RAMK, 2006) 3. Kongruenssit. à 3.4 Kongruenssien laskusääntöjä

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla

MS-A0402 Diskreetin matematiikan perusteet

802320A LINEAARIALGEBRA OSA I

Matematiikan tukikurssi

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

Laskennan mallit

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

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

Diofantoksen yhtälön ratkaisut

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

1 Lineaariavaruus eli Vektoriavaruus

LUKUTEORIA johdantoa

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

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

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

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

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Formalisoimme nyt edellä kuvatun laskennan.

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)

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

Kanta ja Kannan-vaihto

Liittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (opetusmoniste, lauselogiikka )

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

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

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

Transduktorit ja rekisteritransduktorit

S BAB ABA A aas bba B bbs c

Transversaalit ja hajoamisaliryhmät

Regexp-hakujen toteuttaminen äärellisillä automaateilla

Tietotekniikan valintakoe

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

Matemaattisten työvälineiden täydentäviä muistiinpanoja

1. Universaaleja laskennan malleja

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Johdatus matemaattiseen päättelyyn

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

1 Lukujen jaollisuudesta

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

X R Matematiikan johdantokurssi, syksy 2016 Harjoitus 5, ratkaisuista

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Transkriptio:

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Timi Suominen, Riia Ohtamaa ja Pessi Moilanen Helsinki..01 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Äärellisten automaattien minimointi Minimaalisen automaatin määritelmä Kaksi automaattia, jotka tunnistavat täsmälleen saman kielen ovat keskenään ekvivalentteja. Äärellinen automaatti on minimaalinen, jos se on tilamäärältään pienin ekvivalenttien automaattien joukossa. Automaatti, jossa on enemmän tiloja kuin ekvivalentissa minimaalisessa automaatissa on redundantti. Miksi minimoida? Automaatteja muodostavat algoritmit eivät aina tuota minimaalista automaattia. Minimaalisen automaatin käsittely on tehokkaampaa kuin redundantin ja on helpompi selvittää, tunnistavatko kaksi annettua automaattia saman kielen. Lisäksi ylimääräisiä tiloja on turha tallentaa. Tunnettuja algoritmeja Tehokkain algoritmi on Hopcroftin algoritmi 1970-luvulta, jonka me tulemme myöhemmin kattavasti esittelemään Se näyttää wikipedian mukaan seuraavalta: Algoritmin rakenne: 1. turhien tilojen poisto: poista M:stä kaikki tilat, joita ei voida saavuttaa tilasta q0 millään syötemerkkijonolla.. 0-ekvivalenssi: Osita M:n jäljelle jääneet tilat kahteen luokkaan: ei-lopputiloihin ja lopputiloihin.. k-ekvivalenssi -> (k + 1)-ekvivalenssi: Tarkasta, siirrytäänkö samaan ekvivalenssiluokkaan kuuluvista tiloista samoilla merkeillä aina samanluokkaisiin tiloihin. Jos kyllä, algoritmi päättyy ja minimiautomaatin Mmin tilat vastaavat M:n tilojen luokkia.

Esimerkki Minimoidaan automaatti M:

Vaihe 1: Automaatin tiloihin 6, 7 ja 8 ei päästä alkutilasta millään syötteellä (kts. kuva ), joten ne voidaan poistaa (kuva ). Kuva : Poistettavat tilat korostettu punaisella. Kuva : Turhat tilat poistettu automaatista. Vaihe : Minimaalisen automaatin yksi tila esittää joukkoa DFA:n tiloja. Taulukoidaan siirtymät alkutilasta aakkoston kaikilla merkeillä. Nyt tilasta 1 pääsee merkillä a tilaan ja b puolestaan vie tilaan. Tilasta pääsee a:lla tilaan 4 ja b:llä tilaan. Jne. 1 4 4 1 4 Jaetaan jäljelle jääneet tilat lopputiloihin (ryhmä II) ja ei-lopputiloihin (ryhmä I) I: 1 II: 4, I 4, II, I 1, I, I, II 4, II

Vaihe : Ekvivalenssiluokassa I on nyt kahden tyyppisiä tiloja ({1,} ja {}), joten ositusta täytyy hienontaa ja tarkastaa siirtymät uuden osituksen suhteen. Toisin sanoen ensimmäisessä luokassa a:lla pääsee sekä hyväksyvään että ei-hyväksyvään tilaan. I: 1 II: 4, I 4, II, I 1, I, I, II 4, II Ositetaan siirtymät uudestaan. I: 1, II, II II: 4, III, II III: 4 1, I, III 4, III Huomataan, että esimerkissämme samaan ekvivalenssiluokkaan kuuluvista tiloista siirrytään samoilla merkeillä aina samanluokkaisiin tiloihin. Algoritmi päättyy ja minimiautomaatin Mmin tilat vastaavat M:n tilojen luokkia. Minimiautomaatin muodostus Minimiautomaatin uusiksi tiloiksi tulevat vanhan automaatin ekvivalenssiluokat. Siirtymät löytyvät minimoinnissa syntyneestä taulukosta. Ekvivalenssitilasta I pääsee merkillä a tilaan II ja merkillä b tilaan I, tilasta II a:lla päästään tilaan III ja b:llä tilaan II, jne. I: 1, II, II II: 4, III, II III: 4 1, I, III 4, III Ja näin minimiautomaatti on muodostettu.

NFA:n minimointi [Sipser Thm. 1.9] Mille tahansa NFA:lle on olemassa DFA, joka tunnistaa saman kielen. NFA:n minimointialgoritmi 1. Muunna Sipserin lauseen 1.9 nojalla NFA DFA:ksi. Suorita esittelemämme minimointialgoritmi Todistus Todistetaan lopuksi, että esittelemämme algoritmi tuottaa minimaalisen automaatin. Oletetaan, että on olemassa A:sta riippumaton automaatti N, joka hyväksyy saman kielen kuin A ja M, mutta jossa on vähemmän tiloja kuin automaatissa M. Voimme myös olettaa, että M:n tilat ovat eriävät. Koska M ja N hyväksyvät saman kielen, ovat niiden alkutilat identtiset. Tiedetään, että jos tilat p ja q ovat identtiset, niin myös niiden vierustilat ovat. Näin ollen, koska M:n ja N:n alkutilat ovat identtiset, myös alkutilojen vierustilat ovat identtiset. M ja N eivät sisällä turhia tiloja, koska muutoin löytyisi vähemmän tiloja sisältävä minimiautomaatti. Tästä seuraa, että jokainen N:n tila on identtinen ainakin yhden M:n tilan kanssa. Valitaan jokin M:n tila p ja N:n tila q. Syötteellä a1a...ak päästään alkutilasta tilaan p ja samalla syötteellä alkutilasta myös tilaan q. Aloitustilat ovat identtiset => aloitustiloja seuraavat tilat syötteellä a1 ovat identtiset ja näitä tiloja seuraavat tilat syötteellä a ovat identtiset jne. => tilat p ja q ovat identtiset. N:ssä on vähemmän tiloja kuin M:ssä => M:ssä on kaksi tilaa p1 ja p, jotka ovat identtiset jonkin N:n tilan q1 kanssa. => p1 ja p ovat identtiset. Oletuksena oli etteivät M:n tilat ole identtisiä keskenään => RISTIRIITA => ei voi olla olemassa automaattia N joten M on A:n minimiautomaatti.

Säännöllisten lausekkeiden minimointi Usein lähtökohtana lyhyen säännöllisen lausekkeen muodostamiselle on äärellinen automaatti. Silloin työjärjestys on seuraava: 1. automaatti minimoidaan,. muutetaan säännölliseksi lausekkeeksi ja. lauseke jälkikäsitellään. Varsinainen lausekkeen minimointi tapahtuu viimeisessä vaiheessa, jolloin sille etsitään lyhyempi esitysmuoto. Laaksosen mukaan tähän on olemassa algoritmeja, jotka etsivät suuren määrän minimaalisia lausekkeita sisältävästä tietokannasta lyhyitä vastineita lausekkeen osille. Vaiheeseen on olemassa muun muassa seuraavanlaisia tapoja Tilanpoistomenetelmä Kyseisessä menetelmässä tiloja aletaan harventaa ja niiden tilalle laitetaan säännöllisiä lausekkeita. Tämä menetelmä on kurssilta tuttu. Reitinhakumenetelmä Muuten samanlainen kuin tilanpoistomenetelmä, mutta tiloja ei poisteta laisinkaan. Floyd- Warshall-algoritmi muistuttaa kyseistä menetelmää. Yhtälömenetelmä Säännöllinen lauseke muodostetaan yhtälöryhmän avulla. Vaiheessa käytämme lyhennysalgoritmia Lyhennysalgoritmi käyttää apunaan tietokantaa, joka sisältää lyhyempiä vastikkeita erilaisille säännöllisille lausekkeille. Algoritmi pyrkii korvaamaan lauseen osia tietokannasta löytyvillä lyhyemmillä vastineilla. Esimerkiksi ( a b aa bb)* vastaa lauseketta ( a b )*. Algoritmin toimintatapa on Laaksosen mukaan seuraava: 1. Jos tietokannassa on lyhennettävän lausekkeen kuvaama kieli, palauta suoraan tietokannasta saatava lyhin lauseke.. Kerää listaan kaikki lyhennettävän lausekkeen osalausekkeet, joita voi muuttaa muusta lausekkeesta riippumattomasti.. Poista listasta saman lausekkeen toistuvat esiintymät. 4. Etsi listassa oleville osalausekkeille lyhyempiä vastineita tietokannasta.. Korvaa osalausekkeiden esiintymät lyhennettävässä lausekkeessa tietokannasta saaduilla lausekkeilla.

Lähteet Antti Laaksonen, C-010-1, Säännöllisten lausekkeiden minimointi www.tcs.hut.fi/studies/t-79.148/tekstit/luento04.pdf cs.joensuu.fi/pages/whamalai/tepe04/tepe.pdf Sipser, Introduction to the Theory of Computation, 00