9. Matemaattisista koneista.

Samankaltaiset tiedostot
8.5. Jäsennyspuu 1 / 23

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

Automaatit. Muodolliset kielet

8. Kieliopit ja kielet

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

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

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

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

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

Turingin koneen laajennuksia

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

1. Universaaleja laskennan malleja

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

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

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

6.4. Järjestyssuhteet

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

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

811120P Diskreetit rakenteet

MS-A0402 Diskreetin matematiikan perusteet

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

Pinoautomaatit. Pois kontekstittomuudesta

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

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

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

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

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

Säännöllisen kielen tunnistavat Turingin koneet

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

Jäännösluokat. Alkupala Aiemmin on tullut sana jäännösluokka vastaan. Tarkastellaan

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

Johdatus graafiteoriaan

Yhteydettömän kieliopin jäsennysongelma

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

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

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

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Esimerkki 1: Kahviautomaatti.

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.

Kertausta 1. kurssikokeeseen

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

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

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

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

Rajoittamattomat kieliopit

5.3 Ratkeavia ongelmia

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

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

5. Laskutoimitukset eri lukujärjestelmissä

Äärettömät sanat. Aleksi Saarela. Matematiikan ja tilastotieteen laitos ja FUNDIM-keskus, Turun yliopisto. A. Saarela (TY) Äärettömät sanat 1 / 28

4.3. Matemaattinen induktio

11.4. Context-free kielet 1 / 17

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

Chomskyn hierarkia ja yhteysherkät kieliopit

8. Kieliopit ja kielet 1 / 22

Johdatus matemaattiseen päättelyyn

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

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

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 6 (8 sivua) OT. 1. a) Määritä seuraavat summat:

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

Täydentäviä muistiinpanoja laskennan rajoista

Lisää pysähtymisaiheisia ongelmia

Muodolliset kieliopit

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

Output. Input Automaton

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

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Matematiikan tukikurssi

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

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

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Tietojenkäsittelyteorian alkeet, osa 2

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Tietotekniikan valintakoe

Malliratkaisut Demot

Rekursiiviset palautukset [HMU 9.3.1]

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I

Äärellisten mallien teoria

MS-A0401 Diskreetin matematiikan perusteet

Transkriptio:

9. Matemaattisista koneista. Monia tietojenkäsittelytehtäviä, digitaalisia komponetteja, ohjelmia jne. voidaan mallintaa äärellistilaisella matemaattisella koneella. Matemaattinen kone on myös tietojenkäsittelijän malli. Se sisältää sekä syötön, äärellisen muistin, kontrollin ja mahdollisesti tulostuksen. Matemaattisia koneita on erityyppisiä. Yhteiset osat: Äärellinen tilojen joukko, alkutila, syöttöaakkosto, siirtofunktio, joka kuvaa miten kone siirtyy tilasta toiseen kohdatessaan syötön. Tarkasteltavat konetyypit Jonokone: Matemaattinen kone joka sisältää myös tulostuksen. Äärellinen automaatti: Matemaattinen kone, jonka tulostus rajoittuu syötön hyväksymiseen. Lopuksi tarkastellaan matemaattisia koneita, joiden muisti on ääretön.

9.1. Jonokone Jonokone: Malli tietojenkäsittelijästä, joka pystyy muuntamaan syöttöä äärellisen muistinsa ja "ohjelmansa"avulla. Määritelmä Jonokone (finite-state machine)on järjestetty kuusikko M = (S, I, O, f S, f O, s 0 ), missä S = M:n tilojen (äärellinen) joukko, I = syöttösymbolien (äärellinen) joukko, O = tulostussymbolien (äärellinen) joukko, ja f S sekä f O kuvauksia f S : S I S ja f O : S I O, f S = (siirtofunktio) seuraavan tilan kuvaus (ja tämä riippuu edellisestä tilasta ja syötöstä (=input) f O = tulostusfunktio (outputfunktio) ja s 0 on alkutila.

Toiminta Jokaiseen tila, syöttösymboli pariin s, a liitetään tila f S (s, a) (=seuraava tila) ja tulostus f O (s, a). Jonokone aloittaa alkutilassa s 0 lukemaan syöttösanaa vasemmalta oikealle. Jokaisen syöttösymbolin lukemisen yhteydessä kone siirtyy senhetkisen tilan ja syöttösymbolin määräämään tilaan ja tulostaa jotain. Esimerkki 9.1. Olkoon jonokone missä M = ({s 0, s 1 }, {a, b}, {0, 1}, f S, f o, s 0 ), f S (s 0, a) = s o, f S (s 0, b) = f S (s 1, a) = f S (s 1, b) = s 1 ja f O (s 0, a) = f O (s 1, b) = 0, f O (s 0, b) = f O (s 1, a) = 1. Silloin syöttöön aabba liittyy tulostus... Jonokone taulukkona Taulukkomuodossa esitetään tila ja tulostusfunktiot kahtena taulukkona. Taulukko (todellisuudessa kaksi taulukkoa) määrittelevät funktiot f S ja f O.

Jonokoneen graafina Jonokoneeseen liittyvä suunnattu graafi (tarkasti painotettu suunnattu multigraafi) rakennetaan seuraavasti: Tilat merkitään solmuina. Nuoli viivojen solmujen s i ja s j välillä painona x, y tarkoittaa, että Syöttönä siis x ja tulostuksena y f S (s i, x) = s j ja f O (s i, x) = y. Esimerkki 9.2. Määrää Esimerkin 9.1 jonokoneen esitys tilataulukkona ja suunnattuna graafina. M = ({s 0, s 1 }, {a, b}, {0, 1}, f S, f o, s 0 ), missä f S (s 0, a) = s o, f S (s 0, b) = f S (s 1, a) = f S (s 1, b) = s 1 ja f O (s 0, a) = f O (s 1, b) = 0, f O (s 0, b) = f O (s 1, a) = 1.

Huomioita jonokoneesta Jonokoneen tilojen lukumäärä on äärellinen, joten ajanhetkeä ei voi käyttää tilana. Syöttömerkit ohjaavat konetta. Tyhjä sana λ ei voi olla syöttösana, koska silloin jonokone tekisi jotain ilman ohjetta. Toiminta on synkronoitu erillisiin ajanhetkiin 0, 1, 2,... (vrt. kellopulssi). Kone toimii deterministisesti eli jokaiseen tila syöttöpariin liitetään täsmälleen yksi seuraava tila ja tulostussymboli (f S ja f O ovat funktioita). Esimerkki 9.3. Kun kokonaisluku jaetaan kolmella, niin jaon mennessä tasan, jakojäännös on 0, ja kun jako ei mene tasan voi jakojäännös olla 1 tai 2. Laadi jonokone, joka syötetystä symboleja a ja b sisältävästä sanasta tulostaa aina siihen mennessä syötetyn a b jonon a:n lukumäärän 3:lla jakamisen antaman jakojäännöksen. Kerro koneen syötöt ja tulostukset, sekä selosta,mistä koneen tilat muodostuvat.

Esimerkki 9.4. Esimerkki 9.4. Määrää kahden binäärisen numeron yhteenlaskua suorittavan jonokoneen tilagraafi. Huomaa, että luvut voivat olla keskellä kahta pitkää binäärilukua. Mitkä ovat koneet syötöt, tulostukset ja koneen tilat. Kuinka lukujen esikäsittelyssä otetaan huomioon binäärilukujen mahdollinen erilainen pituus. Esimerkki 9.5. Televisioon oli mahdollista virittää täsmälleen 4 kanavaa ja virityksen jälkeen televisiota säädettiin pelkästään kaukosäätimellä. Virityksen jälkeen kanavapaikalla 1 näkyi ohjelma 1, kanavapaikalla 2 ohjelma 2 ja kanavapaikalla 3 ohjelma 3. Kanavapaikalla 4 näkyi vain "lumisadetta". Kaukosäätimessä on kolme ohjelmapainiketta V (virtapainike), E (eteenpäinpainike) ja T (taaksepäinpainike). Virta kytkettiin painamalla painiketta V, jolloin televisio alkoi näyttää ohjelmakanavan 2 ohjelmaa. Virran ollessa kytkettynä näppäimen V painaminen kytki virran pois ja kuva sammui. Virran ollessa kytkettynä ja television näyttäessä kanavapaikan i ohjelmaa, E:n painaminen ohjasi television näyttämään kanavapaikan i + 1 ohjelmaa (i = 1, 2, 3) ja kun TV näytti kanavapaikan 4 ohjelmaa, E:n painaminen ohjasi TV:n näyttämään kanavapaikan 1 ohjelmaa.

Vastaavasti virran ollessa kytkettynä ja television näyttäessä kanavapaikan j ohjelmaa, T:n painaminen ohjasi television näyttämään kanavapaikan j 1 ohjelmaa (j = 2, 3, 4) ja kun TV näytti kanavapaikan 1 ohjelmaa, T:n painaminen ohjasi TV:n näyttämään kanavapaikan 4 ohjelmaa. Kun virta ei ollut kytkettynä E:n ja T:n painamisella ei ollut vaikutusta TV:n näyttämään ohjelmaan. Laadi jonokone joka kuvaa ylläselostetun kaukosäätimen toimintaa. Selitä mistä muodostuvat jonokoneen syötöt, tulostukset ja tilat. Esimerkki 9.6. Tutkitaan amerikkalaista virvoitusjuoma-automaattia (tässä automaatti ei tarkoita matemaattista konetta nimeltä automaatti), joka 30:llä centillä (=c) antaa omenajuoman (OJ) tai appelsiinijuoman (AJ). Automaatti hyväksyy 5c:n, 10c:n ja 25c:n kolikot ja antaa välittömästi tarvittavat vaihtorahat ja syötetyt ylimääräiset rahat. Juomien tilaamista varten koneessa on painonapit O ja A omena- ja appelsiinijuomille. Määrää virvoitusjuoma-automaattiin liittyvän jonokoneen tilaverkko ja tilataulu. Selitä jonokoneen tilat, syötöt ja tulostukset.

Esimerkki 9.7. Sanoissa käytettäviä merkkejä ovat 0, 1, 2, 3; lisäksi on käytössä sanan loppumisen osoittava merkki x. Salakirjoitetaan sanoja seuraavasti: Lopetusmerkki säilyy ennallaan. Kun kirjoitettavana on 0, niin salaaja kirjoittaa sen sijasta 3:sen, kun kirjoitettavana on 1, niin salaaja kirjoittaa sen sijasta 2:sen, kun kirjoitettavana on 2, niin salaaja kirjoittaa sen sijasta 1:sen ja kun kun kirjoitettavana on 3, niin salaaja kirjoittaa sen sijasta 0:n Salakirjoitettavissa sanoissa ei koskaan ole kolmea samaa merkkiä peräkkäin. Laadi jonokone, joka avaa edelläkuvatulla tavalla salakirjoitetut sanat takaisin alkuperäisiksi sanoiksi. Lisäksi, jos avaaja löytää kolme samaa merkkiä peräkkäin, se tulostaa kolme sanan päättymismerkkiä ja siirtyy aloitustilaan. Kone on suunniteltava siten, että se kykenee avaamaan useita peräkkäisiä sanoja. Piirrä jonokoneen tilaverkko ja selitä sen tilat, syötöt ja tulostukset. 9.2. Äärellinen deterministinen automaatti Matemaattisten koneiden sovelluksia: Kielen sanojen tunnistaminen. Kääntäjien suunnittelu ja konstruointi Tietoliikennesovellukset Koodaus Jonokonetta voidaan käyttää kielen sanojen tunnistamiseen: Jonokoneen tulostaa symbolin 1 aina kun siihen mennessä luettu sana on halutun kielen sana ja symbolin 0 muulloin. Hyväksyminen voidaan kuitenkin tehdä myös ilman tulostusta äärellisen automaatin avulla. Tulostuksen sijasta äärellinen automaatti hyväksyy/hylkää syötön.

Määritelmä Deterministinen äärellinen automaatti on järjestetty viisikko M = (S, I, f, s o, F ), missä S = M:n tilojen (äärellinen)joukko I = inputsymbolien (äärellinen) joukko eli syöttöaakkosto f = siirtofunktio, f : S I S (seuraava tila funktio) joka määrää jokaiseen edellinen tila input yhdistelmään kuuluvan seuraavan tilan s o alkutila (s o S) F S lopputilojen/hyväksyvien tilojen joukko. Tilagraafi ja taulukkoesitys Huom. Kuten jonokone, myös automaatti (eli siirtofunktio f ) voidaan esittää suunnatun graafin (=tilagraafin, tarkasti painotettu suunnattu multigraafi) tai taulukon avulla. Tilagraafissa lopputilan solmut esitetään kaksinkertaisina ympyröinä. Esimerkki 9.8.Olkoon M = ({s 0, s 1, s 2 }, {a, b}, f, s 0, {s 2 }) automaatti, missä f (s 0, a) = s 1, f (s 0, b) = s 0, f (s 1, a) = s 2, f (s 1, b) = s 1 ja f (s 2, a) = f (s 2, b) = s 2. Määrää automaatin tilagraafi ja taulukkoesitys.

Siirtofunktion laajennus f on funktio f : S I S: Jokaista tila, syöttösymboli paria vastaa täsmälleen 1 seuraava tila eli automaatti on deterministinen. Laajennetaan f kuvaukseksi S I S seuraavasti: f (s, λ) = s kaikilla s S, f (s, a 1 a 2 a n ) = t n, jos on olemassa sellainen jono tiloja t i S, että f (s, a 1 ) = t 1, f (t 1, a 2 ) = t 2,..., f (t n 1, a n ) = t n. Esimerkki 9.9.Esimerkin 9.8 automaatille on f (s 0, baba) = s 2, sillä f (s 0, b) = s 0, f (s 0, a) = s 1, f (s 1, b) = s 1 ja f (s 1, a) = s 2. Eli f (s 0, baba) = f (s 0, aba) = f (s 1, ba) = f (s 1, a) = s 2. Automaatin hyväksymä kieli Automaatti M = (S, I, f, s o, F ) hyväksyy (=tunnistaa) sanan w, jos f (s 0, w) F. Toisin sanoen w hyväksytään, jos lähdettäessä alkutilasta ja luettaessa sana w vasemmalta oikealle loppuun asti automaatti pysähtyy lopputilaan. Automaatin M hyväksymä (=tunnistama) kieli on L(M) = {w f (s 0, w) F } eli kaikkien automaatin hyväksymien sanojen muodostama kieli. Kieli L on tunnistettavissa deterministisellä automaatilla, jos on olemassa sellainen deterministinen automaatti M, että L = L(M).

Esimerkki 9.10. Määrää Esimerkin 9.8. automaatin hyväksymä kieli. Ratk. M = ({s 0, s 1, s 2 }, {a, b}, f, s 0, {s 2 }) missä f (s 0, a) = s 1, f (s 0, b) = s 0, f (s 1, a) = s 2, f (s 1, b) = s 1 ja f (s 2, a) = f (s 2, b) = s 2.... Tyhjän sanan hyväksyminen Huom. Tyhjä sana λ on automaatin M hyväksymä sana täsmälleen silloin kun automaatin alkutila on myös lopputila.

Esimerkki 9.11. Rakenna äärellinen deterministinen automaatti, joka hyväksyy kaikki aakkoston {a, b} sanat, jotka eivät sisällä kirjainta a, ja hylkää muut. Esimerkki 9.12. Rakenna äärellinen deterministinen automaatti, joka hyväksyy 0, 1-jonoista täsmälleen ne, joissa ainakin kerran esiintyy 3 samaa merkkiä peräkkäin, ja hylkää muut.