Output. Input Automaton

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

Luento 1: Alue ja tavoitteet. ICS-C2000 Tietojenkäsittelyteoria. Tietojenkäsittelyteoria

ICS-C2000 Tietojenkäsittelyteoria

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Σ on numeroituvasti ääretön. Todistus. Muodostetaan bijektio f : N Σ seuraavasti. Olkoon

Tietojenkäsittelyteorian perusteet T/Y T /1002

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

Laskennan teoria

Täydentäviä muistiinpanoja laskennan rajoista

Laskennan teoria

5.3 Ratkeavia ongelmia

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

8. Kieliopit ja kielet

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

Rajoittamattomat kieliopit

Tietojenkäsittelyteorian alkeet, osa 2

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

Lisää pysähtymisaiheisia ongelmia

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

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

Johdatus matematiikkaan

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

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

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. 19. syyskuuta 2016

Ratkeavuus ja efektiivinen numeroituvuus

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Johdatus matemaattiseen päättelyyn

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

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

Muodolliset kieliopit

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

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

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

Säännöllisen kielen tunnistavat Turingin koneet

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

1. Universaaleja laskennan malleja

Cantorin joukon suoristuvuus tasossa

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

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

4.3. Matemaattinen induktio

MS-A0402 Diskreetin matematiikan perusteet

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

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

Rekursiiviset palautukset [HMU 9.3.1]

Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

Tehtävä 4 : 2. b a+1 (mod 3)

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

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

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

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

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

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

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

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

isomeerejä yhteensä yhdeksän kappaletta.

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

a) Mitkä seuraavista ovat samassa ekvivalenssiluokassa kuin (3, 8), eli kuuluvat joukkoon

8. Kieliopit ja kielet 1 / 22

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

Ensimmäinen induktioperiaate

Todistusmenetelmiä Miksi pitää todistaa?

Yhteydettömän kieliopin jäsennysongelma

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

Säännöllisten kielten sulkeumaominaisuudet

Ensimmäinen induktioperiaate

(2n 1) = n 2

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Miten osoitetaan joukot samoiksi?

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

ICS-C2000 Tietojenkäsittelyteoria

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

Automaatit. Muodolliset kielet

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

811120P Diskreetit rakenteet

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Pinoautomaatit. Pois kontekstittomuudesta

2. Laskettavuusteoriaa

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

Diskreetin Matematiikan Paja Ratkaisuhahmotelmia viikko 1. ( ) Jeremias Berg

Johdatus diskreettiin matematiikkaan (syksy 2009) Harjoitus 3, ratkaisuja Janne Korhonen

Formalisoimme nyt edellä kuvatun laskennan.

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

MS-A0401 Diskreetin matematiikan perusteet

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

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

Näin ollen saadaan tulos rad(g) diam(g). Toisaalta huomataan, että verkon G kaikilla solmuilla x ja y pätee kolmioepäyhtälön nojalla havainto

Äärellisten mallien teoria

Transkriptio:

16 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite on matemaattinen abstraktio Yleisellä tasolla suunniteltu automaatti voidaan toteuttaa eri tavoin: esim sähköpiirinä, mekaanisena laitteena tai (tavallisimmin) tietokoneohjelmana B Tällä kurssilla keskitytään pääosin automaatteihin, joiden: 1 syötteet ovat äärellisiä, diskreettejä merkkijonoja 2 tulokset ovat muotoa hyväksy / hylkää ( syöte OK / syöte ei kelpaa ) Yleistyksiä: äärettömät syötejonot ( reaktiiviset järjestelmät, Büchi-automaatit) funktioautomaatit ( Moore- ja Mealy-tilakoneet, Turingin funktiokoneet) Peruskäsitteitä ja merkintöjä Aakkosto (engl alphabet, vocabulary): äärellinen, epätyhjä joukko alkeismerkkejä t symboleita Esim: binääriaakkosto {0, 1; latinalainen aakkosto {A,B,,Z Merkkijono (engl string): äärellinen järjestetty jono jonkin aakkoston merkkejä Esim: 01001, 0000 : binääriaakkoston merkkijonoja; TKTP, XYZZY : latinalaisen aakkoston merkkijonoja tyhjä merkkijono (engl empty string) Tyhjässä merkkijonossa ei ole yhtään merkkiä; sitä voidaan merkitä ε:llä Merkkijonon x pituus x on sen merkkien määrä Esim: 01001 = 5, = 4, ε = 0 Merkkijonojen välinen perusoperaatio on katenaatio eli jonojen peräkkäin kirjoittaminen Katenaation operaatiomerkkinä käytetään joskus selkeyden lisäämiseksi symbolia Esim KALA KUKKO = KALAKUKKO; jos x = 00 ja y = 11, niin xy = 0011 ja yx = 1100; kaikilla x on xε = εx = x; kaikilla x, y, z on (xy)z = x(yz); kaikilla x, y on xy = x + y

Aakkoston Σ kaikkien merkkijonojen joukkoa merkitään Σ :lla Esimerkiksi jos Σ = {0, 1, niin Σ = {ε, 0, 1, 00, 01, 10, Mielivaltaista merkkijonojoukkoa A Σ sanotaan aakkoston Σ (formaaliksi) kieleksi (engl formal language) Automaatit ja formaalit kielet Olkoon M automaatti, jonka syötteet ovat jonkin aakkoston Σ merkkijonoja, ja tulos on yksinkertaisesti muotoa syöte hyväksytään / syöte hylätään (Merk lyhyesti 1/0) Merkitään M:n syötteellä x antamaa tulosta M(x):llä ja M:n hyväksymien syötteiden joukkoa A M :llä, so A M = {x Σ M(x) = 1 Sanotaan, että automaatti M tunnistaa (engl recognises) kielen A M Σ Automaattiteorian (yksi) idea: automaatin M rakenne heijastuu kielen A M ominaisuuksissa Kääntäen: olkoon annettuna jokin toivottu I/O-kuvaus f : Σ {0, 1 Tarkastelemalla kieltä A f = {x Σ f(x) = 1 saadaan vihjeitä siitä, millainen automaatti tarvitaan kuvauksen f toteuttamiseen Vakiintuneita merkintöjä Em matemaattisille käsitteille käytetyt merkinnät ovat periaatteessa vapaasti valittavissa, mutta esityksen ymmärrettävyyden parantamiseksi on tapana pitäytyä tietyissä käytännöissä Seuraavat merkintätavat ovat vakiintuneet: Aakkostot: Σ, Γ, (isoja kreikkalaisia kirjaimia) Esim binääriaakkosto Σ = {0, 1 Aakkoston koko (tai yleisemmin joukon mahtavuus): Σ Alkeismerkit: a, b, c, (pieniä alkupään latinalaisia kirjaimia) Esim: Olkoon Σ = {a 1,,a n aakkosto; tällöin Σ = n Merkkijonot: u, v, w, x, y, (pieniä loppupään latinalaisia kirjaimia) Merkkijonojen katenaatio: x y tai vain xy Merkkijonon pituus: x Esimerkkejä: Tyhjä merkkijono: ε abc = 3; olkoon x = a 1 a m, y = b 1 b n ; tällöin xy = m + n Merkkijono, jossa on n kappaletta merkkiä a: a n Esimerkkejä: a n = aa {{ a ; n a i b j c k = i + j + k Merkkijonon x toisto k kertaa: x k Esimerkkejä: (ab) 2 = abab; x k = k x Aakkoston Σ kaikkien merkkijonojen joukko: Σ Esim: {a, b = {ε, a, b, aa, ab, ba, bb, aaa, aab,

Merkkijonoinduktio Automaattiteoriassa tehdään usein konstruktioita induktiolla merkkijonon pituuden suhteen Tämä tarkoittaa, että määritellään ensin toiminto tyhjän merkkijonon ε (tai joskus yksittäisen aakkosmerkin) tapauksessa Sitten oletetaan, että toiminto on määritelty kaikilla annetun pituisilla merkkijonoilla u ja esitetään, miten se tällöin määritellään yhtä merkkiä pitemmillä merkkijonoilla w = ua Esimerkki Olkoon Σ mielivaltainen aakkosto Merkkijonon w Σ käänteisjono (engl reversal) w R määritellään induktiivisesti säännöillä: 1 ε R = ε; 2 jos w = ua, u Σ, a Σ, niin w R = a u R Induktiivista ( rekursiivista ) määritelmää voidaan tietenkin käyttää laskujen perustana; esim: (011) R = 1 (01) R = 1 (1 0 R ) = 11 (0 ε R ) = 110 ε R = 110 ε = 110 Tärkeämpää on kuitenkin konstruktioiden ominaisuuksien todistaminen määritelmää noudattelevalla induktiolla Esimerkki: Väite Olkoon Σ aakkosto Kaikilla x, y Σ on voimassa (xy) R = y R x R Todistus Induktio merkkijonon y pituuden suhteen 1 Perustapaus y = ε: (xε) R = x R = ε R x R 2 Induktioaskel: Olkoon y muotoa y = ua, u Σ, a Σ Oletetaan, että väite on voimassa merkkijonoilla x, u Tällöin on: 17 Numeroituvat ja ylinumeroituvat joukot Määritelmä 110 Joukko X on numeroituvasti ääretön, jos on olemassa bijektio f : N X Joukko on numeroituva, jos se on äärellinen tai numeroituvasti ääretön Joukko, joka ei ole numeroituva on ylinumeroituva Intuitiivisesti sanoen joukko X on numeroituva, jos sen alkiot voidaan järjestää ja indeksoida luonnollisilla luvuilla: X = {x 0, x 1, x 2,,x n 1, (xy) R = (xua) R = a (xu) R [R:n määritelmä] = a (u R x R ) [induktio-oletus] = (a u R )x R [ :n liitännäisyys] = (ua) R x R [R:n määritelmä] = y R x R jos X on n-alkioinen äärellinen joukko ja X = {x 0, x 1, x 2,, jos X on numeroituvasti ääretön Numeroituvan joukon kaikki osajoukot ovat myös numeroituvia (HT), mutta ylinumeroituvilla joukoilla on sekä numeroituvia että ylinumeroituvia osajoukkoja Siten ylinumeroituvat joukot ovat jossain mielessä isompia kuin numeroituvat

Lause 111 Minkä tahansa aakkoston Σ merkkijonojen joukko Σ on numeroituvasti ääretön Todistus Muodostetaan bijektio f : N Σ seuraavasti Olkoon Σ = {a 1, a 2,,a n Kiinnitetään Σ:n merkeille jokin aakkosjärjestys ; olkoon se a 1 < a 2 < < a n Joukon Σ merkkijonot voidaan nyt luetella valitun aakkosjärjestyksen suhteen kanonisessa t leksikografisessa järjestyksessä (engl canonical t lexicographic order) seuraavasti: ensin luetellaan 0:n mittaiset merkkijonot (= ε), sitten 1:n mittaiset (= a 1, a 2,,a n ), sitten 2:n mittaiset jne; kunkin pituusryhmän sisällä merkkijonot luetellaan aakkosjärjestyksessä Bijektio f on siis: 0 ε 1 a 1 2 a 2 n a n n + 1 a 1 a 1 n + 2 a 1 a 2 2n a 1 a n 2n + 1 a 2 a 1 3n a 2 a n n 2 + n a n a n n 2 + n + 1 a 1 a 1 a 1 n 2 + n + 2 a 1 a 1 a 2 Itse asiassa millä tahansa ohjelmointikielellä kirjoitetut ohjelmat ovat kielen perusaakkoston (esim C-kielessä ASCII-merkistön) merkkijonoja Lauseen 111 mukaan minkä tahansa aakkoston merkkijonojen joukko on numeroituvasti ääretön, joten myös millä tahansa ohjelmointikielellä mahdollisten ohjelmien joukko on numeroituva Seuraavaksi todistetaan, että kaikkien formaalien kielten joukko on ylinumeroituva Formaaleja kieliä on siis enemmän kuin mahdollisia tietokoneohjelmia, ja siksi millään ohjelmointikielellä ei voida laatia tunnistusautomaatteja kaikille formaaleille kielille (Tai toisin sanoen: on olemassa periaatteessa mahdollisia I/O-kuvauksia, joita ei voida toteuttaa tietokoneella) Lause 112 Minkä tahansa aakkoston Σ kaikkien formaalien kielten perhe on ylinumeroituva Todistus (ns Cantorin diagonaaliargumentti) Merkitään aakkoston Σ kaikkien formaalien kielten perhettä P(Σ ) = A Tehdään vastaoletus: oletetaan, että olisi olemassa kaikki Σ:n formaalit kielet kattava numerointi: A = {A 0, A 1, A 2, Olkoot Σ :n merkkijonot kanonisessa järjestyksessä x 0, x 1, x 2, Määritellään em numerointeja käyttäen formaali kieli Ã: à = {x i Σ x i / A i Koska à A ja A:n numerointi oletettiin kattavaksi, pitäisi olla à = A k jollakin k N Mutta tällöin Ã:n määritelmän mukaan x k à x k / A k = à Saatu ristiriita osoittaa, että vastaoletus on väärä

à A 0 A 1 A 2 A 3 x 0 1 0 0 0 1 x 1 0 x 2 1 1 x 3 0 0 0 0 1 0 0 0 1 1 1 0 Kuvallisesti todistuksen idea voidaan esittää seuraavasti Muodostetaan kielten A 0, A 1, A 2, ja merkkijonojen x 0, x 1, x 2, insidenssimatriisi, jonka rivin i sarakkeessa j on arvo 1 jos x i A j ja muuten 0 Tällöin kieli à poikkeaa kustakin kielestä A k matriisin diagonaalilla : 18 *Ekskursio: Turingin pysähtymisongelma Lauseiden 111 ja 112 mukaan on siis olemassa formaaleja kieliä (I/O-kuvauksia), joita ei voida toteuttaa esim C-ohjelmilla Entä jokin konkreettinen esimerkki tällaisesta? Tunnetuin esimerkki on ns Turingin pysähtymisongelma (Alan Turing, 1936) C-ohjelmia käyttäen tulos voidaan muotoilla seuraavasti: Väite Ei ole olemassa C-funktiota halt(p,x), joka saa syötteenään mielivaltaisen C-funktion tekstin p ja tälle tarkoitetun syötteen x ja tuottaa tuloksen 1, jos p:n suoritus pysähtyy syötteellä x, ja 0 jos p:n suoritus x:llä jää ikuiseen silmukkaan Todistus Oletetaan väitteen vastaisesti, että tällainen funktio halt voitaisiin laatia Muodostetaan tätä käyttäen toinen funktio confuse Merkitään funktion confuse ohjelmatekstiä c:llä ja tarkastellaan funktion confuse laskentaa tällä omalla kuvauksellaan void confuse(char *p){ Saadaan ristiriita: int halt(char *p, char *x){ confuse(c) pysähtyy /* Funktion halt runko */ halt(c,c) == 1 if (halt(p,p) == 1) while (1); confuse(c) ei pysähdy Ristiriidasta seuraa, että oletettua pysähtymistestausfunktiota halt ei voi olla olemassa Samansukuisia ns ratkeamattomia ongelmia on itse asiassa paljon Asiaan palataan kurssin loppupuolella