1 Kurssin asema opetuksessa

Koko: px
Aloita esitys sivulta:

Download "1 Kurssin asema opetuksessa"

Transkriptio

1 1 Kurssin asema opetuksessa Tietojenkäsittelytieteen pääaineopiskelijoille pakollinen aineopintokurssi (3 op). Esitietovaatimukset: Johdatus tietojenkäsittelytieteeseen (JTT): Laskennan, algoritmin ja tietokoneen käsitteet. Diskreetit rakenteet (DSR): Sovelletaan joitakin diskreetin matematiikan peruskäsitteitä, kuten puita ja verkkoja. Lisäksi molemmilla kursseilla lähestymistapa ja ajatusmaailma on matemaattinen (eikä esimerkiksi ohjelmointitekninen). Tietorakenteet 1 (TRA1): Käytetään joitakin siellä selostettuja perustietorakenteita, kuten pinoja ja puita. Lisäksi viitataan joihinkin siellä esiteltyihin käsitteisiin, kuten asymptoottiseen aikavaativuuteen. Kiinnostuneille lisää valinnaisilla syventävien opintojen jatkokursseilla: Algoritmien suunnittelu ja analyysi (ASA): Tätä kurssia laajemmat perustiedot ns. P? = NP-ongelmasta sekä teoreettisesta että algoritmisuunnittelun näkökulmasta. Laskennan teoria (LAT): Syvällisemmin tästä ongelmasta ja muistakin tällä kurssilla esitellyistä asioista. Tämä P? = NP-ongelma onkin tunnetuin esimerkki laskennan vaativuusteorian käsittelemistä ongelmista. Yksi (mutta ei läheskään ainoa!) tapa lukea se on: P = sellaiset laskentaongelmat, joiden vastaukset voi laskea tietokoneella tehokkaasti NP = sellaiset, joiden vastauksille on olemassa lyhyet perustelut. Silloin ongelma on: Onko olemassa ongelmia, joiden vastauksilla on kyllä olemassa lyhyet perustelut, mutta niin mutkikkaat ettei tietokoneella pysty niitä löytämään tehokkaasti? Tämä P? = NP-ongelma on osoittautunut teoriassa hyvin vaikeaksi ratkaista se on yhä avoin, ja on saatu tuloksia ainakaan menetelmällä X sitä ei voi ratkaista erilaisille lähestymistavoille X. käytännössä merkittäväksi, koska monet käytännön ongelmat ovat osoittautuneet ns. NP-koviksi, eli sellaisiksi että jos yksikin niistä voitaisiin ratkaista tehokkaasti (eli se kuuluisi luokkaan P) niin sen avulla ne kaikki muutkin voitaisiin ratkaista tehokkaasti. Clay Mathematics Institute onkin valinnut sen yhdeksi seitsemästä Millenniumongelmastaan, ja antaa sen ratkaisusta palkinnoksi USD! ( claymath.org/millennium/) Jo tietojenkäsittelijän yleissivistykseen kuuluu tuntea peruskäsitteet kuten laskentaongelma jne., ja tämän kurssin tavoitteena onkin tutustuttaa niihin. 1

2 Oppimateriaali Nämä luentokalvot tulevat kunkin luentoviikon lopulla Wikiin: tkt-wiki Kurssien kotisivuja - Course homepages LAP - Laskennan perusmallit ( , 3op). Luennot pohjautuvat Kimmo Fredrikssonin edellisiin luentoihin keväältä 2010, joissa hän puolestaan käytti materiaalia Wilhelmiina Hämäläisen aikaisemmilta luennoilta. Pelkät kalvot eivät välttämättä riitä itseopiskeluun, vaan voivat vaatia tuekseen joko luentojen tai jonkun oppikirjan seuraamista. Tällaisia oppikirjoja ovat mm. Hopcroft, John E., Motwani, Rajeev ja Ullman, Jeffrey D.: Introduction to Automata Theory, Languages and Computation, 2. painos. Addison Wesley, Lewis, Harry R. ja Papadimitriou, Christos H.: Elements of the Theory of Computation, 2. painos. Prentice-Hall, Sipser, Michael: Introduction to the Theory of Computation, 2. painos. Course Technology, Kurssin asema tietojenkäsittelytieteessä Erään määritelmän mukaan tietojenkäsittely tutkii 1. millaiset tietojenkäsittelytehtävät on mahdollista automatisoida ja 2. miten tämä automatisointi tulisi suorittaa. Peruskurssien (ja useimpien muidenkin kurssien) lähestymistapa on yleensä konstruktiivinen, eli kohta 2. Esimerkiksi TRA: Kehitetään annetun laskentaongelman tehokkaasti ratkaiseva algoritmi ja sen tarvitsemat tietorakenteet. Tällä kurssilla painoalue onkin kohdassa 1. Osoittautuu, että on olemassa erilaisia tehtäviä: 1. Tehtäviä, joita ei edes periaatteessa voi automatisoida minkäänlaista algoritmia ei voi olla olemassa. 2. Tehtäviä, jotka kyllä voi automatisoida, mutta vain tehottomasti tehokasta algoritmia ei voi olla olemassa. 3. Tehtäviä, jotka voi automatisoida ja tehokkaasti tehokaskin algoritmi on keksitty, edellä tehtäväluokka P. 4. Tehtäviä, joista emme vielä tiedä ovatko ne tyyppiä 2 vaiko 3 erityisesti edellä NP. 2

3 2.1 Historiaa Laskentaongelman käsitteen muotoilu sekä ongelmien erottelu automatisoitumattomiin (eli tyyppiin 1) ja automatisoituviin tehtiin 1930-luvulla. Siis jo ennen tietokoneita! (Ensimmäiset yleiskäyttöiset tietokoneet rakennettiin pian II maailmansodan jälkeen.) Motivaationa oli matematiikan filosofian ja formaalin logiikan kehitys: Haluttiin erottaa toisistaan sellaiset matemaattiset ja loogiset ongelmat, jotka vaativat aitoa luovuutta, sellaisista joihin riitti pelkkä laskeminen siis antaa tarkka formaali määritelmä arkikielen käsitteelle mekaaninen laskenta. Näin syntyi laskettavuuden teoria yhdeksi keskeiseksi osaksi matemaattista logiikkaa. Tällä kurssilla esitetään mekaaniselle laskennalle tarkka formaali määritelmä käyttäen ns. Turingin koneita tietokonepioneeri Alan M. Turingin vuonna 1936 esittämää abstraktia matemaattista mallia hypoteettiselle laskulaitteelle. Samaan aikaan oli muitakin loogikkojen ehdotuksia mekaanisen laskennan määritelmäksi, esimerkiksi: Kurt Gödel kehitti 1930-luvun alusta alkaen rekursiivisten funktioiden teoriaa osana kuuluisan (ensimmäisen) epätäydellisyyslauseensa todistusta. Ideana oli induktio: funktion seuraava arvo f(n+1) voidaan määritellä edellisen arvon f(n) avulla, jossa n N. Alonzo Church esitti vuonna 1936 oman λ-laskentansa. Ideana oli laskenta lausekkeen sievennyksenä. Nämä taas olivat tärkeitä ohjelmoinnin ja ohjelmointikielten kehitykselle. Tällä kurssilla niitä ei käsitellä, mutta kurssilla Johdatus funktionaaliseen ohjelmoitiin (FOH) sivutaan λ-laskentaa. Miksi valittiin Turingin laitelähtöinen lähestymistapa mekaanisen laskennan määritelmäksi eikä Gödelin tai Churchin ohjelmointilähtöistä? Eksplisiittinen laite joka kulkea raksuttaa kuin kello on konkreettisempi käsite kuin induktio tai sievennys joiden voisi epäillä sittenkin vaativan sitä aitoa luovuutta... Laskentaan kuluva aika ja tila on helpompi määritellä laitteen kuin siinä pyörivän ohjelman kautta. Tietokoneiden yleistymisen myötä alettiin huomata, että tämä mekaaninen laskenta jakautui edelleen vaivalloiseen (eli tyypin 2) ja vaivattomaan (eli tyypin 3) mekaaniseen laskentaan. Yksi tapa selventää tätä jakoa on tutkia vielä yksinkertaisempia laskulaitteita kuin Turingin kone. Tätä automaattien teoriaa on kehitetty 1960-luvulta lähtien. Tällä kurssilla tutustummekin sen keskeisiin käsitteisiin kuten äärellisiin ja pinoautomaatteihin. 3

4 Toinen tapa on asettaa resurssirajoja Turingin koneille. Tätä laskennan vaativuusteoriaa on kehitetty 1970-luvulta lähtien. Sen keskeinen ongelma on juuri edellä mainittu P? = NP. Vaativuusteoria kuitenkin jätetään valtaosin kursseille ASA ja LAT. 2.2 Kurssin sisältö tästä eteenpäin 1. Johdanto: Yleiskatsaus laskennan teoriaan, laskennan vaativuusteoriaan ja laskennan malleihin. Kurssilla käytettävien käsitteiden ja notaatioiden määritelmiä. 2. Säännölliset kielet: äärelliset automaatit ja säännölliset lausekkeet. Äärelliset automaatit ovat mahdollisimman yksinkertaisia laskulaitteita. Säännölliset kielet taas ovat sellaisia merkkijonojoukkoja, joihin kuuluminen voidaan ratkaista näillä laitteilla. Säännölliset lausekkeet taas ovat notaatio, jolla niitä voidaan kuvata lyhyesti. Kun esimerkiksi kirjoitat Linuxin komentoriville ls *.jar niin käytät säännöllistä lauseketta *.jar kuvailemaan säännöllisen kielen kaikki sellaiset ASCII-merkkijonot, jotka päättyvät merkkijonoon.jar ja kone listaa sinulle kaikki ne tämän hakemiston tiedostonimet, jotka tämän kielen tunnistava automaatti hyväksyy sen jäseniksi. Käytännössä niihin törmää esimerkiksi merkkijonoalgoritmeissa sekä hajautettujen järjestelmien mallintamisessa. 3. Kontekstittomat kielet ja kieliopit sekä pinoautomaatit. Vastaavasti pinoautomaatit ovat hieman mutkikkaampia laskulaitteita ja kontekstittomat kielet niitä, joita ne voivat tunnistaa. Ne ovat käytännössä tärkeitä rakenteisen syötteen käsittelyssä. Esimerkiksi HTML, XML sekä rakenteisella ohjelmointikielellä kirjoitettu lähdekoodi ovat rakenteisia syötteitä, koska niissä on mielivaltaisen mutkikkaita sisäkkäisyyksiä, joista syötettä lukevan ohjelman pitää ottaa selvää. Esimerkiksi HTML-syötettä lukevan ohjelman pitää löytää korostuksen aloittavalle tagille <em> juuri oikea sitä vastaava lopettava tag </em>, ja niiden välissä voi olla muita senkaltaisia tagpareja, jotka pitää samoin parittaa. Kontekstittomat kieliopit taas ovat näiden kielten kuvailutapa, vastaavasti kuin säännölliset lausekkeet ovat säännöllisille kielille. 4. Johdanto laskennan teoriaan, eli laskettavuuden teorian ja laskennan vaativuusteorian peruskäsitteisiin. Laskennallisesti vaativiin tai jopa kokonaan ratkeamattomiin ongelmiin törmää esimerkiksi tekoälyssä sekä ohjelmien ja järjestelmien formaalissa verifioinnissa. 4

5 3 Johdanto Laskennan teoria (theory of computation) käsittelee sitä, miten ongelma luokitellaan ratkeavuuden, vaikeuden ja tehokuuden perusteella ennen kuin se ratkaistaan. Se jaetaan perinteisesti kahteen osa-alueeseen: Laskettavuuden teoria (theory of computability) tutkii, mitä tietokoneella ylipäänsä voidaan ratkaista ja kuinka vaikea annettu ongelma on. Ongelmien vaikeus määritellään melko karkealla tasolla sen perusteella, kuinka monimutkaista laskennan mallia ratkaisussa tarvitaan. Lisäksi laskettavuuden teoria antaa hyviä eväitä itse ratkaisun laatimiseen. (LAP, LAT) Laskennan vaativuusteoria (theory of computational complexity) tutkii, kuinka tehokkaasti ongelma voidaan ratkaista. Laskennan vaativuusteoria muistuttaa algoritmien analyysia, mutta siinä ei määritellä yksittäisen ratkaisualgoritmin aika- tai tilavaativuutta, vaan itse ongelman pahimman tapauksen aika- ja tilavaativuusluokka. Laskennan vaativuusteoria antaa myös hyvät eväät ongelmien palauttamiseksi toisiin, jo tunnettuihin ongelmiin. (LAT, ASA) Tällä kurssilla käsitellään jonkin verran laskennan teorian ensimmäistä osa-aluetta eli laskettavuuden teoriaa. Aihepiirinä ovat laskennalliset ongelmat ja niiden ratkaisun mekaaniset mallit, joita kutsutaan laskennan malleiksi. Käsittelemme kahta eri laskennan mallia äärellisiä automaatteja ja pinoautomaatteja sekä tutkimme, mitä kullakin mallilla voidaan ratkaista. Kurssin loppupuolella esitellään lyhyesti myös Turingin koneet (joista enemmän kurssilla LAT). Laskettavuuden teoriasta Laskennan mekaaninen malli, automatisointi, tarkoittaa tämän kurssin kannalta algoritmin esittämistä. Intuitiivisesti algoritmi kuvaa tietojenkäsittelyprosessin niin täsmällisesti, että se voidaan tämän kuvauksen perusteella suorittaa mekaanisesti (ilman luovaa ajattelua ). Mekaanisen laskennan tarkemmaksi määrittelemiseksi, eli algoritmikäsitteen matemaattiseksi formalisoimiseksi, on kaksi lähestymistapaa: 1. Lähdetään liikkeelle tyhjästä ja mietitään, mitä voidaan pitää mekaanisena laskentana. 2. Otetaan lähtökohdaksi nykyiset tietokoneet, jotka selvästi suorittavat mekaanista laskemista, ja pelkistetään pois epäolennaisuudet. Koska mekaaninen laskenta on keskeistä matematiikan perusteiden tarkastelussa, matemaatikot ja loogikot miettivät asiaa paljon 1930-luvulla. He sovelsivat luonnollisesti lähestymistapaa 1 koska tietokoneita ei silloin vielä ollut. 5

6 Jos taas halutaan soveltaa tuloksia käytännön tietojenkäsittelyyn, lähestymistapa 2 tuntuisi lupaavammalta. Tämä on oleellisesti se tapa, jota käytettiin esimerkiksi kurssilla TRA, kun siellä laskettiin asymptoottisia resurssitarpeita eli O-arvioita. Onneksi osoittautuu, että lähestymistavat 1 ja 2 johtavat samaan algoritmikäsitteen formalisointiin. Siis matemattista logiikkaa ja tietokoneita koskevilla periaatteellisilla rajoituksilla on syvällinen yhteys. Laskettavuuden teoria tarkastelee näitä rajoituksia, eli sitä millaisille ongelmille on olemassa ratkaisualgoritmi. Automaattiteoria Kun on saatu valmiiksi abstrakti malli tietokoneelle, voidaan kysyä, mikä muuttuu, jos mallista jätetään jokin piirre pois. Rajoitettujen mallien tarkasteleminen auttaa ymmärtämään yleisempiä malleja. Äärellinen automaatti on hyvin yksinkertainen (abstrakti) laskentalaite, jolla kuitenkin voi tehdä mielenkiintoisia asioita. Teoreettisen mielenkiinnon lisäksi se on hyödyllinen käytännössä ohjelmointi- ja mallinnustekniikkana. Kontekstittomat kieliopit ovat hieman äärellisiä automaatteja ilmaisuvoimaisempi mekanismi, jolla on tärkeitä sovelluksia esimerkiksi ohjelmointikielten määrittelemisessä ja kääntämisessä ja luonnollisen kielen mallintamisessa. 3.1 Laskennalliset ongelmat Laskennallinen ongelma = mikä tahansa tehtävä, joka voidaan mallintaa ratkaistavaksi digitaalisella tietokoneella. (Kuva 1.) Laskennallisia ongelmia: kokonaislukujen kertolasku, kirjastokortiston aakkostaminen, yrityksen palkanlaskenta, yliopistollisen kurssin kurssitietojen ylläpito, kokonaislukujen järjestäminen, jne... Ei-laskennallinen ongelma: Onko oikein huijata tentissä? Ongelman ratkaiseva ohjelma on sen yksi esitystapa. Ongelman esitys Laskennallinen ongelma = kuvaus äärellisesti esitettävien tapausten joukosta äärellisesti esitettävien vastausten joukkoon Ongelmalla on potentiaalisesti ääretön joukko tapauksia ( syötteitä ). Ongelman ratkaisu on algoritmi, joka liittää kuhunkin tapaukseen sen oikean vastauksen ( tulosteen ). Jokaisen yksittäisen tapauksen ja sen vastauksen on oltava äärellisesti esitettäviä (muutenhan laskenta ei päättyisi). Esimerkki 1. Kokonaislukujen kertolaskuongelmassa (kuva 2) 6

7 ONGELMA EI LASKENNALLINEN ONGELMA LASKENNALLINEN ONGELMA RATKEAVA ONGELMA RATKEAMATON ONGELMA TEHOKKAASTI RATKAISTAVISSA TEHOKASTA RATKAISUA EI OLE MISSÄ NÄIDEN VÄLINEN RAJA KULKEE? OSITTAIN RATKEAVA TÄYSIN RATKEAMATON (useita eri asteita) Kuva 1: Ongelmien hyvin karkea luokittelu. tapaukset ovat kaikki mahdolliset kokonaislukuparit (p, q) (merkkijonoiksi koodattuna) vastaus annetulle tapaukselle on kyseisen lukuparin tulo p q (merkkijonoksi koodattuna) ratkaisu on mikä tahansa yleinen kertolaskualgoritmi (esimerkiksi se alakkain laskeminen jonka koulussa opimme). Äärellinen esitys Kaikki tietokoneen käsittelemä tieto on viime kädessä voitava koodata bittijonoiksi. On luontevaa sallia koodaukseen käytettävän myös muita merkkejä kuin bitit 0 ja 1 (koska nämä muut merkit voidaan tietenkin tarvittaessa edelleen esittää bittijonoina). Määritelmä: äärellinen esitys = äärellisen pituinen merkkijono (eli jono merkkejä) jossakin äärellisessä aakkostossa. Merkkijonoihin liittyviä peruskäsitteitä ja merkintöjä Aakkosto on äärellinen, epätyhjä joukko alkeismerkkejä eli symboleita. Esimerkiksi binääriaakkosto B = {0, 1} ja latinalainen aakkosto {A,B,C,...,Z}. 7

8 Syötteet Tulosteet π (1,1) (1,3)... (2,2) (2,4)... (1,2) (2,3) jne Kuva 2: Kertolaskuongelman syötteet ja tulosteet. Aakkosto voidaan määritellä ihan miten halutaan, esim: {HiiriVasenNappi, HiiriOikeaNappi, HiiriKeskiNappi, HiiriRullaYlös, HiiriRullaAlas}. Merkkijono on äärellinen järjestetty jono jonkin aakkoston merkkejä. Esim ja 000 ovat binääriaakkoston B merkkijonoja, ja LAP ja XYZZY ovat latinalaisen aakkoston merkkijonoja. Merkintä Σ tarkoittaa kaikkien niiden merkkijonojen joukkoa, jotka voidaan muodostaa annetun aakkoston Σ eli merkkien merkeistä. Siis B = {ε, 0, 1, 00, 01, 10, 11, 000,...}. Tyhjä merkkijono ε ei sisällä yhtään merkkiä. (Huom! Eri asia kuin välilyönti ). Merkkijonon x pituus x on siihen sisältyvien merkkien määrä. Esim = XYZZY = 5 ja ε = 0. Katenaatio on merkkijonojen kirjoittamista peräkkäin, esimerkiksi: jos x = 00 ja y = 11, niin xy = 0011 ja yx = 1100; kaikilla x on xε = εx = x; kaikilla x ja y on xy = x + y. Toisto eli merkkijonon katenaatio itsensä kanssa voidaan merkitä potenssina: a 3 = aaa (ab 2 ) 3 = (abb) 3 = abbabbabb. Itse asiassa merkintä (...) voidaankin lukea toisto mielivaltaisen (mutta äärellisen) monta kertaa. Käänteismerkkijono x R on merkkijono x kirjoitettuna takaperin. Esim. (abbc) R = cbba. 8

9 3.2 Päätösongelmat ja formaalit kielet Yleisesti laskennallinen ongelma π on kuvaus eli funktio π: Σ Γ jossa Σ ja Γ ovat aakkostoja: syöteaakkosto Σ on se jolla kysymys, ja tulosaakkosto Γ on se jolla vastaus kirjoitetaan. Päätösongelmat ovat laskennallisten ongelmien aliluokka, jossa kunkin ongelman tapauksen vastaus on kyllä tai ei. Formaalisti päätösongelma on muotoa π: Σ B. Esimerkiksi päätösongelma onko annettu kymmenjärjestelmän luku alkuluku? voidaan esittää syöteaakkoston Σ = {0, 1, 2,...,9} kuvauksena π: Σ B { 1 jos x on alkuluku, π(x) = 0 jos ei. Yleisesti, jokaista päätösongelmaa π : Σ {0, 1} vastaa merkkijonojoukko A π = {x Σ : π(x) = 1} eli niiden ongelman tapausten joukko, joihin vastaus on kyllä. Kääntäen, jokaista merkkijonojoukkoa A Σ vastaa päätösongelma (kuva 3) { 1, jos x A; π A : Σ {0, 1}, π A (x) = 0, jos x / A. Tätä π A kutsutaan joukon A karakteristiseksi funktioksi koska se kertoo kuuluuko annettu x Σ joukkoon A vaiko ei. Aakkoston Σ (formaali) kieli = mikä tahansa merkkijonojoukko A Σ Siis lyhyesti: olemme kiinnostuneita siitä, kuuluuko jokin annettu merkkijono annettuun merkkijonojoukkoon. Eli kuuluuko annettu sana annettuun kieleen. Kielen A Σ tunnistusongelma = merkkijonojoukkoon A liittyvä päätösongelma π A : Tässä on merkkijono x Σ. Onko x A vaiko ei? Jatkossa käsittelemme vain päätösongelmia. Huomaa että tämä ei periaatteessa ole rajoitus, koska monimutkaisemmat kysymykset voi aina pilkkoa joukoksi kyllä-ei -kysymyksiä... Esimerkiksi monimutkaisempi kysymys Mikä on lukujen x ja y tulo? voidaan pilkkoa kysymyksiin Onko lukujen x ja y tulo z vaiko ei? Esimerkki 2. Olkoon A aakkoston {+,,0,1,2,...,9} kieli, joka koostuu yksinkertaisista kokonaislukuvakioista (esim. Java-kielessä). Siis 0 A, A ja 32 A, mutta 2 +3 A. Tämä kieli A on esimerkki säännöllisestä kielestä. 9

10 Σ π A A 0 1 Kuva 3: Kielen A Σ päätös- eli tunnistusongelma π A. Esimerkki 3. Olkoon B aakkoston {+,,, (, ),0,1,2,...,9} kieli, joka koostuu laillisista kokonaislukulausekkeista. Esim B ja (1 +2+3) 4 5 B, mutta (1 +2)) B ja 3+ B. Tämä kieli B on esimerkki kontekstittomasta kielestä. Esimerkki 4. Muodostukoon ASCII-aakkoston kieli C niistä Java-kielisistä ohjelmista, jotka tyhjällä syötetiedostolla joutuvat ikuiseen silmukkaan. Kieli C on esimerkki ratkeamattomasta kielestä. Sitä siis ei voida tunnistaa millään tietokoneohjelmalla. Esimerkki 5. Kieli {a k k N} on säännöllinen; kieli {a k b k k N} on kontekstiton; kieli {a k b k c k k N} on kontekstillinen. Ongelman vaikeuden arviointi päätösongelmilla Minkä tahansa laskennallisen ongelman vaikeuden voi arvioida vastaavan päätösongelman avulla (kuva 4). Jos päätösongelma (komponentti M 3 ) on ratkeava niin ongelmakin on ratkeava ratkeamaton niin ongelmakin on ratkeamaton helppo (jossakin mielessä) niin ongelmakin on helppo (samassa mielessä) jne. Erityisesti, jos kieli A kuuluu säännöllisiin kieliin, niin sen tunnistusongelma π A voidaan ratkaista helposti rakentamalla sen ratkaiseva äärellinen automaatti; kontekstittomiin niin rakentamalla pinoautomaatti; rekursiivisiin niin rakentamalla Turingin kone. 10

11 input x M 1 M 3 Aseta Onko y = 0 π(x) = y on M 4 Tulosta ratkaisu y ei Generoi seuraava y M 2 Kuva 4: Laskentaongelma päätösongelmana. Jos kieli A ei kuulu edes rekursiivisiin kieliin, niin sen π A ei ole ratkeava lainkaan. Silloin se voi olla joko osittain ratkeava eli voidaan tehdä Turingin kone joka osaa vastata kyllä mutta ei -vastauksen sijasta voi myös jäädä ikuiseen silmukkaan, tai sitten vieläkin vaikeampi jolloin se ei enää ole tietojenkäsittelyn vaan esimerkiksi matemaattisen logiikan ongelma. Esimerkki 6. Tarkastellaan kokonaislukujen kertolaskuongelmaa: Mitä on pq, missä p, q Z? Merkitään kokonaisluvun x merkkijonoesitystä string(x). Nyt u = string(p) v = string(q) w = string(r). Lisäksi käytetään erottimina merkkejä ja =. Ongelma Päätösongelma Kuvaus Laske pq Onko pq = r? Syöte u v u v = w Tuloste w 0 tai 1 Päätösongelmaa vastaava formaali kieli A on joukko merkkijonoja u v = w, joille pätee pq = r: A = {u v = w: pq = r}. Nyt kertolaskuongelman vaikeus = kielen A vaikeusluokka. Kertolaskuongelman ratkaisu päätösongelmalla siis generoi (järjestyksessä) kaikki mahdolliset ratkaisut, ja kokeilee milloin saadaan vastaus 1. (Tämän voisi tehdä toisinkin...) Kielten vaikeusluokat Chomskyn kielihierarkia (kuva 5) määrittelee seuraavat kielten vaikeusluokat: Tyyppi 3: säännölliset kielet (erikoistapauksenaan äärelliset kielet). Tyyppi 2: kontekstittomat kielet (tai yhteysvapaat tai yhteydettömät ). 11

12 ratkeamattomat ongelmat tyyppi 0: rajoittamattomat kielet rekursiivisesti lueteltavat kielet tunnistus: universaali Turingin kone (pysähtyy "kyllä" tapauksessa) rekursiiviset kielet tunnistus: Turingin kone + riittävän mittainen työnauha (pysähtyy aina), RAM kone, ohjelmointikielet tyyppi 1: kontekstiset kielet tunnistus: Turingin kone + kohtuullisen (eli polynomisen) mittainen työnauha tyyppi 2: kontekstittomat kielet tunnistus: pinoautomaatti tyyppi 3: säännölliset kielet tunnistus: äärellinen automaatti vakiomäärä muistia äärelliset kielet Kuva 5: Chomskyn kielihierarkia. Tyyppi 1: kontekstilliset kielet (tai kontekstiset tai yhteyksiset ). Tyyppi 0: rajoittamattomat kielet = rekursiiviset rekursiivisesti lueteltavat (tai numeroituvat ) kielet. Noam Chomsky on erittäin merkittävä kielitieteilijä, ja hänen hierarkiassaan on vastaava näkökulma: esimerkiksi kontekstittomilla kielillä on suora yhteys tietynlaisiin formaaleihin kielioppeihin ja kontekstillisillä kielillä sellaisiin kielioppeihin, joissa huomioidaan myös lauseyhteys. Esimerkki 7. Joillekin yksinkertaisille ohjelmointikielille (kuten Pascal) pätee Leksikaalisesti oikeiden ( muodostuu oikeista sanoista ) ohjelmien joukko voidaan tuottaa säännöllisillä kielillä ( oikealle lineaarinen kielioppi ). Syntaktisesti oikeiden ( sanat järkevässä järjestyksessä ) ohjelmien joukko voidaan tuottaa kontekstittomilla kielillä. Kontekstilliset ja rekursiiviset kielet eivät kuulu kurssin alueeseen, mutta näillä voitaisiin kuvata ohjelman suorittama laskenta... Toisaalta kaikkien ohjelmien joukkoa jotka ratkaisevat jonkin ongelman ei voi kuvata kieliopilla. 12

13 Laskennalliset ongelmat Kaikki binäärijonot Σ={0,1} Päätösongelmat Lailliset konekieliohjelmat Ratkeavat päätösongelmat Päätösongelmien ratkaisuohjelmat Kuva 6: Laskennalliset ongelmat vs. ohjelmat. Rajoittamattomat kielet koostuvat rekursiivisista kielistä, joiden tunnistusongelma on ratkeava rekursiivisesti lueteltavista kielistä, joiden tunnistusongelma on osittain ratkeava. Sellaisella kielellä on ohjelma, joka tulostaa sen merkkijonot äärettömänä luettelona x 0, x 1, x 2, Laskennallisten ongelmien ratkeavuus Läheskään kaikkia laskennallisia(kaan) ongelmia ei voida ratkaista tietokoneella yksinkertaisesti jo siksi, että ongelmia on ylinumeroituvan monta ( yhtä monta kuin reaalilukuja R ) mutta ratkaisuohjelmia vain numeroituvan monta ( yhtä monta kuin luonnollisia lukuja N ). Perustelu Tietokoneohjelmat ovat merkkijonoja. 2. Minkä tahansa aakkoston merkkijonojen joukko on numeroituvasti ääretön (lause 1). 3. Ongelman ratkaisevia tietokoneohjelmia on korkeintaan numeroituva määrä. 4. Laskennallisia ongelmia on vähintään yhtä paljon kuin päätösongelmia. 5. Minkä tahansa aakkoston päätösongelmien joukko on ylinumeroituva (lause 2). 6. Laskennallisia ongelmia on ylinumeroituvan monta. 7. Jokaiselle laskennalliselle ongelmalle ei millään riitä sen ratkaisevaa tietokoneohjelmaa. 13

14 Aakkoston merkkijonoja on numeroituva määrä Lause 1. Minkä tahansa aakkoston Σ merkkijonojen joukko Σ on numeroituvasti ääretön. Todistus: Olkoon Σ = {a 1, a 2,...,a n }. Kiinnitetään merkeille jokin aakkosjärjestys, esim. a 1 < a 2 < < a n. Joukon Σ merkkijonot voidaan järjestää seuraavasti (kanoniseen järjestykseen): 1. Ensin luetellaan 0:n mittaiset merkkijonot (= ε), sitten 1:n (= a 1, a 2,...,a n ), sitten 2:n (= a 1 a 1, a 1 a 2, a 1 a 3,...,a 1 a n, a 2 a 1, a 2 a 2, a 2 a 3,...) jne. 2. Kunkin pituusryhmän sisällä merkkijonot luetellaan aakkosjärjestyksessä. Jokaiseen luonnolliseen lukuun n voidaan siis liittää Σ :n merkkijono ja päinvastoin, joten Σ on numeroituva. Vaadittu bijektio f : N Σ lauseessa 1 on: Päätösongelmia on ylinumeroituva määrä Lause 2. Minkä tahansa aakkoston Σ päätösongelmien joukko on ylinumeroituva. Todistus: Merkitään aakkoston Σ kaikkien päätösongelmien kokoelmaa Π = {π: π on kuvaus Σ {0, 1}}. Tehdään vastaväite: Oletetaan, että Π onkin numeroituva, eli että on olemassa numerointi Π = {π 0, π 1, π 2,...}. Olkoot Σ :n merkkijonot kanonisessa järjestyksessä lueteltuina x 0, x 1, x 2,... Muodostetaan uusi päätösongelma ˆπ: { 1, jos ˆπ : Σ πi (x {0, 1}, ˆπ(x i ) = i ) = 0; 0, jos π i (x i ) = 1. Koska oletuksen mukaan ˆπ Π (koska Π on kaikkien päätösongelmien joukko), niin ˆπ = π k jollakin k N. Tällöin { 1, jos πk (x ˆπ(x k ) = k ) = ˆπ(x k ) = 0; 0, jos π k (x k ) = ˆπ(x k ) = 1. Tämä on ristiriita. Siis vastaoletus, että joukko Π on numeroituva, on väärä. Todistus 2 kuvana: Ajatellaan (ääretöntä) taulukkoa ongelmista π 0, π 1, π 2,... ja merkkijonoista x 0, x 1, x 2,... Ongelma ˆπ poikkeaa kaikista muista ongelmista π i taulukon diagonaalilla, vaikka i kasvaisi äärettömään: ˆπ ց π 0 π 1 π 2 π 3 x x 1 0 x x

15 Suomeksi: ˆπ ei voi esiintyä taulukon millään sarakkeella, joten päätösongelmia (ja yleisemmin laskennallisia ongelmia) on ylinumeroituva määrä. (Eli ˆπ eroaa jokaisesta sarakkeesta ainakin yhdessä kohtaa.) Tämä todistustekniikka on ns. Cantorin diagonaaliargumentti jolla hän todisti, että reaalilukuja 0 x < 1 on aidosti enemmän kuin luonnollisia lukuja. Käytännössä tämä merkitsee sitä, että kaikista laskentaongelmista voidaan esimerkiksi Java-ohjelmilla ratkaista vain häviävän pieni osa: ylinumeroituvan joukon numeroituva osajoukko. Sama pätee kaikilla ohjelmointikielillä, sillä kaikki riittävän vahvat ohjelmointikielet määrittävät täsmälleen saman ratkeavien ongelmien luokan (ns. Churchin Turingin teesi). (Jotkut ovat spekuloineet kvanttikoneiden olevan aidosti vahvempia, mutta tätä ei ole todistettu...) Useimmat laskennalliset ongelmat ovat siis absoluuttisesti ratkeamattomia. Valitettavasti ratkeamattomat ongelmat käsittävät myös monia mielenkiintoisia / käytännöllisiä ongelmia, erityisesti pysähtymisongelman: jos on annettu ohjelma P ja sen syöte w, niin pysähtyykö ohjelman P laskenta syötteellä w vai jääkö se ikuiseen silmukkaan? (Tämä ongelma on kuitenkin osittain ratkeava...) Churchin Turingin teesi Churchin Turingin teesi väittää seuraavaa: Epäformaalin käsitteen funktio f on mekaanisesti laskettavissa oikea formaali vastine on f on laskettavissa Turingin koneella. Siis että on olemassa Turingin kone M f joka syötteellä x tulostaa sitä vastaavan arvon f(x) ja pysähtyy. Tämä on teesi eikä tulos: sitä ei voi todistaa, koska sehän väittää että nyt olemme löytäneet juuri sen oikean määritelmän tälle arkikielen käsitteelle. Teesin tueksi voi esittää seuraavaa: : Turingin koneet ovat niin yksinkertaisia laitteita, että jos f on laskettavissa koneella M f, niin silloin f on selvästi mekaanisesti laskettavissa. : Muutkin esitetyt yleisesti hyväksytyt vaihtoehtoiset määritelmät voidaan toteuttaa myös Turingin koneilla. Helppo suunta on näyttää, että annettu Turingin kone M voidaan toteuttaa jollakin tämän vaihtoehtoisen määritelmän mukaisella ohjelmana P M. Vaikea suunta on näyttää, että annettu tämän vaihtoehtoisen määritelmän mukainen ohjelma Q voidaan toteuttaa myös jollakin Turingin koneella M Q eli kääntäjä. Tällaisia muita vaihtoehtoisia malleja ovat esimerkiksi 15

16 edellä mainitut Gödelin ja Churchin omat ehdotukset RAM-koneet, jotka ovat idealisoitu malli nykyaikaiselle digitaaliselle tietokoneelle jopa kaksilaskurikoneet, joissa on vain kaksi muuttujaa x, y N sekä operaatiot kasvata/vähennä muuttujan arvoa yhdellä ja testi if muuttujan arvo on = 0 then... John Conwayn Life -peli, jne Pysähtymisongelman ratkeamattomuus Olemme edellä nähneet, että valtaosa päätösongelmista on ratkeamattomia laskemalla, että niitä on paljon enemmän kuin ratkaisualgoritmeja. Osoitetaan nyt yksi konkreettinen päätösongelma ratkeamattomaksi eli että ratkeamattomuus on joidenkin oikeidenkin ongelmien piirre, eikä pelkkä matemaattinen ilmiö. Kiinnitetään laskentamalliksemme vaikkapa C-ohjelmointikieli. Church Turingin teesin nojalla sama pätee myös muillakin yhtä ilmaisuvoimaisilla laskentamalleilla. Pysähtymisongelman C-kielinen tulkinta on: Ei ole olemassa totaalista (aina pysähtyvää) C-ohjelmaa, joka ratkaisisi, pysähtyykö annettu C-ohjelma P annetulla syötteellä w. Tehdään vastaoletus, että voitaisiinkin kirjoittaa totaalinen C-funktio bool h(char p[],char w[]) jonka syöteparametrit ovat p: merkkijono, joka sisältää tutkittavan C-kielisen ohjelman P lähdekoodin w: merkkijono, joka sisältää tutkittavan syötteen w ja jonka tulos on true jos ohjelman p suoritus syötteellä w pysähtyisi false jos se jäisi ikuiseen silmukkaan. Vastaoletusta käyttäen voitaisiin kirjoittaa toinen C-funktio void g(char p[]){ if (h(p,p)) while (true); } joka siis pysähtyy täsmälleen silloin, kun C-lähdekoodi p ei pysähtyisi saadessaan syötteenään oman itsensä. Olkoon q tämän funktion g lähdekoodi merkkijonona. 16

17 Mitä tapahtuu kutsussa g(q)? Saadaan haluttu ristiriita: g(q) pysähtyy h(q,q) palauttaa false g(q) ei pysähdykään! Niinpä tehty vastaoletus ei pädekään. Tässä todistuksessa istutetaan ns. valehtelijan paradoksi Tämä lause on valhetta! totuuden sijasta laskennan pysähtymiseen. Samaa ideaa käytti jo Kurt Gödel kuuluisissa epätäydellisyyslauseissaan istuttamalla se totuuden sijasta todistuvuuteen: Tällä väitteellä ei ole todistusta! Formalismista (Tietojenkäsittely)tieteessä on arvokasta, että laskenta saadaan esitetyksi täsmällisessä matemaattisessa muodossa. Jatkossa haluamme esittää väitteitä muotoa: Kaikki äärelliset automaatit toteuttavat ehdon p ja konstruktioita Mistä tahansa ehdon r toteuttavasta automaatista voidaan muodostaa automaatti, joka toteuttaa ehdon s. Onnistuu kyllä tiettyyn rajaan saakka piirtämällä kuvia ja heiluttamalla käsiä (kuten tällä kurssilla varmaan paljolti tullaan tekemään...), mutta uskottavuuden ja ymmärrettävyyden rajat tulevat melko pian vastaan. Matemaattinen formalismi on työkalu, jota on hyvä opetella käyttämään... 17

18 4 Säännölliset kielet ja äärelliset automaatit Äärellinen automaatti (englanniksi (Finite State Automaton, FSA) ) on hyvin yksinkertainen laskennan malli (eli abstrakti laskentalaite). Säännölliset kielet (englanniksi [(regular languages) ) on se luokka laskentaongelmia, jonka näin yksinkertaisella laitteella pystyy ratkaisemaan. Näillä tekniikoilla on sovelluksia esim. merkkijonoalgoritmeissa. Tavoitteet: oppia mitä ovat äärelliset automaatit ja säännölliset lausekkeet ja mikä on niiden välinen suhde muodostamaan yksinkertaisia äärellisiä automaatteja ja säännöllisiä lausekkeita (englanniksi (regular expressions) ) tekemään muunnoksia determinististen ja epädeterminististen äärellisten automaattien ja säännöllisten lausekkeiden välillä. osoittamaan kieli joko säännölliseksi tai epäsäännölliseksi. Esimerkki 8. Kahviautomaatti, joka ei anna vaihtorahaa, hyväksyy vain 50 sentin ja yhden euron kolikoita ja minimimaksu on 2 euroa. Millaisia syötejonoja kahviautomaatti hyväksyy? Kelvollisia syötejonoja ovat esim. seuraavat (yksikkönä snt): Ts. kahviautomaatti hyväksyy syötejonot, jotka ovat muotoa 1 euro + 1 euro + [0 tai useampia 50 sentin tai 1 euron kolikoita] 1 euro + 50 senttiä + [1 tai useampia 50 sentin tai 1 euron kolikoita] 50 senttiä + 1 euro + [1 tai useampia 50 sentin tai 1 euron kolikoita] jne... Kahviautomaatin toiminta voidaan kuvata äärellisenä automaattina. Automaatin syötteitä ovat 50 sentin ja 1 euron kolikot ja automaatti hyväksyy syötejonon, jos siihen sisältyvien rahojen summa on vähintään 2 euroa Automaatti voidaan esittää tilasiirtymäkaaviona (kuva 7). TRA-kurssin terminologialla se olisi suunnattu verkko jonka kaaret on painotettu syöteaakkosilla. Automaatilla on 18

19 50, q 0 q q , 100 q q 3 Kuva 7: Kahviautomaatti. q Tila q q 0 Alkutila Hyväksyvä tila Hylkäävä lopputila a q q Tilasiirtymä δ(q, a) = q Kuva 8: Tilasiirtymäkaavion merkinnät. tiloja (5 kappaletta), jotka on esitetty ympyröinä ja nimetty q 0,...q 4, siirtymiä jotka on esitetty tilojen välisinä kaarina; aakkosto jonka symboleilla siirtymät on merkitty; alkutila (tila q 0 ) joka on merkitty tyhjästä tulevalla kaarella; ja hyväksyvä tila (tila q 4 ) joka on rengastettu. Tilojen nimet ovat vapaavalintaisia, automaatin toimintaan ne eivät vaikuta. 4.1 Äärellisen automaatin esitystapoja Tilasiirtymäkaaviona eli kuvien 7 ja 8 mukaisena piirroksena. Tilasiirtymätaulukkona jossa 19

20 jokaisella tilalla on oma rivinsä jokaisella syöteaakkosella on oma sarakkeensa tilan p sarake c ilmoittaa sen tilan (eli rivin) jonne siirrytään tilasta p merkillä c. Kuvan 7 kahviautomaatin tilasiirtymätaulukko on yhtälönä (1). 50 snt 1 euro q 0 q 1 q 2 q 1 q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 4 q 4 q 4 q 4 (1) Esimerkki 9. Etumerkillisen kokonaisluvun tunnistaminen. Tilasiirtymäkaaviona (jossa d = {0, 1,..., 9} ovat 10-järjestelmän lukumerkit): d +, d q 0 q 1 q 2 d Tilasiirtymätaulukkona: d +, q 0 q 2 q 1 q 1 q 2 q 2 q 2 Taulukon puuttuvat kohdat vastaavat virhetilaa Error. Tehtävä 1. C-kielessä 0-alkuiset luvut tulkitaan oktaaliluvuiksi (jolloin merkkejä 8 ja 9 ei sallita lainkaan), ja alkuiset 10-kantaisiksi luvuiksi. Muuta esimerkin 9 automaattia siten, että nämä tapaukset erotellaan, eli että ne johtavat eri hyväksyviin tiloihin. Tehtävä 2. (Jatkoa tehtävään 1.) C-kielessä 0x-alkuiset luvut tulkitaan heksadesimaaliluvuiksi. Ota tämäkin huomioon. Ohjelmana tässä C-ohjelmointikielellä: int q=0; char c; while (c=fgetc(stdin)!= EOF) switch (q) { case 0: if (c== + c== - ) q=1; else if (isdigit(c)) q=2; else q=3; break; case 1: if (isdigit(c)) q=2; else q=3; break; 20

21 case 2: if (isdigit(c)) else break; case 3: break; } q=2; q=3; Esimerkki 10. C-kielen mukaisen etumerkittömän liukulukuvakion tunnistava automaatti: d. E,e +, d 2 3. d e,e 4 d e,e 5 d 7 d d +, 6 d 21

Laskennan perusmallit (LAP)

Laskennan perusmallit (LAP) Laskennan perusmallit (LAP) Pekka Kilpeläinen Tietojenkäsittelytieteen laitos, Itä-Suomen yliopisto sähköposti: pekka.t.kilpelainen@uef.fi Lukuvuosi 2013 14, III periodi Kurssin asema opetuksessa Tietojenkäsittelytieteen

Lisätiedot

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot syyslukukaudella 2003 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa esitiedot käytännössä

Lisätiedot

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa

Lisätiedot

582206 Laskennan mallit

582206 Laskennan mallit 582206 Laskennan mallit luennot syksylla 2006, periodit I{II Jyrki Kivinen tietojenkasittelytieteen aineopintokurssi, 6 op, paaaineopiskelijoille pakollinen esitietoina Tietorakenteet (ja sen esitiedot)

Lisätiedot

Esimerkki 1: Kahviautomaatti.

Esimerkki 1: Kahviautomaatti. Esimerkki 1: Kahviautomaatti. ÄÄRELLISET AUTOAATIT JA SÄÄNNÖLLISET KIELET 2.1 Tilakaaviot ja tilataulut Tarkastellaan aluksi tietojenkäsittelyjärjestelmiä, joilla on vain äärellisen monta mahdollista tilaa.

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

Lisätiedot

Muodolliset kieliopit

Muodolliset kieliopit Muodolliset kieliopit Luonnollisen kielen lauseenmuodostuksessa esiintyy luonnollisia säännönmukaisuuksia. Esimerkiksi, on jokseenkin mielekästä väittää, että luonnollisen kielen lauseet koostuvat nk.

Lisätiedot

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,

Lisätiedot

5.3 Ratkeavia ongelmia

5.3 Ratkeavia ongelmia 153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,

Lisätiedot

Output. Input Automaton

Output. Input Automaton 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

Lisätiedot

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

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Täydentäviä muistiinpanoja laskennan rajoista

Täydentäviä muistiinpanoja laskennan rajoista Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen

Lisätiedot

Muita vaativuusluokkia

Muita vaativuusluokkia Muita vaativuusluokkia Käydään lyhyesti läpi tärkeimpiä vaativuusluokkiin liittyviä tuloksia. Monet tunnetuista tuloksista ovat vaikeita todistaa, ja monet kysymykset ovat vielä auki. Lause (Ladner 1975):

Lisätiedot

Chomskyn hierarkia ja yhteysherkät kieliopit

Chomskyn hierarkia ja yhteysherkät kieliopit Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

Lisätiedot

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on rekursiivisesti numeroituva, mutta ei rekursiivinen. 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

Lisätiedot

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit Chomskyn hierarkia Noam Chomskyn vuonna 1956 esittämä luokittelu kieliopeille niiden ilmaisuvoiman mukaan tyyppi kieli kielioppi tunnistaminen 0 rekurs. lueteltava rajoittamaton Turingin kone 1 kontekstinen

Lisätiedot

Lisää pysähtymisaiheisia ongelmia

Lisää pysähtymisaiheisia ongelmia Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti

Lisätiedot

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

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen. Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,

Lisätiedot

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

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri } 135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

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

M = (Q, Σ, Γ, δ, q 0, q acc, q rej ) 6. LASKETTAVUUSTEORIAA Churchin Turingin teesi: Mielivaltainen (riittävän vahva) laskulaite Turingin kone. Laskettavuusteoria: Tarkastellaan mitä Turingin koneilla voi ja erityisesti mitä ei voi laskea.

Lisätiedot

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut Pisteytys on ilmoitettu välikoevaihtoehdon mukaan (joko tehtävät 1, 2 ja 3 välikokeen 1 uusintana tai tehtävät 4, 5 ja 6 välikokeen 2 uusintana).

Lisätiedot

Rekursiiviset palautukset [HMU 9.3.1]

Rekursiiviset palautukset [HMU 9.3.1] Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle

Lisätiedot

Algoritmin määritelmä [Sipser luku 3.3]

Algoritmin määritelmä [Sipser luku 3.3] Algoritmin määritelmä [Sipser luku 3.3] Mitä algoritmilla yleensä tarkoitetaan periaatteessa: yksiselitteisesti kuvattu jono (tietojenkäsittely)operaatioita, jotka voidaan toteuttaa mekaanisesti käytännössä:

Lisätiedot

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus.

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 14. maaliskuuta 2011 Sisällys Sisällys Kurssin käytännöt Kurssin sivuilla http://users.jyu.fi/~antkaij/opetus/auki/2011/

Lisätiedot

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

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1.6 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

Lisätiedot

Matematiikan mestariluokka, syksy 2009 7

Matematiikan mestariluokka, syksy 2009 7 Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.

Lisätiedot

8. Kieliopit ja kielet 1 / 22

8. Kieliopit ja kielet 1 / 22 8. Kieliopit ja kielet 1 / 22 Luonnollinen kieli Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää

Lisätiedot

FUNKTIONAALIANALYYSIN PERUSKURSSI 1. 0. Johdanto

FUNKTIONAALIANALYYSIN PERUSKURSSI 1. 0. Johdanto FUNKTIONAALIANALYYSIN PERUSKURSSI 1. Johdanto Funktionaalianalyysissa tutkitaan muun muassa ääretönulotteisten vektoriavaruuksien, ja erityisesti täydellisten normiavaruuksien eli Banach avaruuksien ominaisuuksia.

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

Lisätiedot

2. Laskettavuusteoriaa

2. Laskettavuusteoriaa 2. Laskettavuusteoriaa Käymme läpi ratkeamattomuuteen liittyviä ja perustuloksia ja -tekniikoita [HMU luku 9]. Tämän luvun jälkeen opiskelija tuntee joukon keskeisiä ratkeamattomuustuloksia osaa esittää

Lisätiedot

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

Lisätiedot

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? 2013-2014 Lasse Lensu 2 Algoritmit ovat deterministisiä toimintaohjeita

Lisätiedot

1. Universaaleja laskennan malleja

1. Universaaleja laskennan malleja 1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

Lisätiedot

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

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen

Lisätiedot

2. Laskettavuusteoriaa

2. Laskettavuusteoriaa 2. Laskettavuusteoriaa Kaymme lapi ratkeamattomuuteen liittyvia ja perustuloksia ja -tekniikoita [HMU luku 9]. Taman luvun jalkeen opiskelija tuntee joukon keskeisia ratkeamattomuustuloksia osaa esittaa

Lisätiedot

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

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen

Lisätiedot

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain Jaollisuustestejä (matematiikan mestariluokka, 7.11.2009, ohjattujen harjoitusten lopputuloslappu) Huom! Nämä eivät tietenkään ole ainoita jaollisuussääntöjä; ovatpahan vain hyödyllisiä ja ainakin osittain

Lisätiedot

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla. HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 201 Harjoitus 7 Ratkaisut palautettava viimeistään perjantaina 26.6.201 klo 16.00. Huom! Luennot ovat salissa CK112 maanantaista 1.6. lähtien.

Lisätiedot

Johdatus matematiikkaan

Johdatus matematiikkaan Johdatus matematiikkaan Luento 7 Mikko Salo 11.9.2017 Sisältö 1. Funktioista 2. Joukkojen mahtavuus Funktioista Lukiomatematiikassa on käsitelty reaalimuuttujan funktioita (polynomi / trigonometriset /

Lisätiedot

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

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 }? Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Vastaus 2. Vertaillaan

Lisätiedot

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

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

Lisätiedot

Yhteydettömän kieliopin jäsennysongelma

Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa

Lisätiedot

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

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen

Lisätiedot

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

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys. Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013 TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Säännöllisen kielen tunnistavat Turingin koneet

Säännöllisen kielen tunnistavat Turingin koneet 186 Säännöllisen kielen tunnistavat Turingin koneet Myös säännöllisen kielen hyväksyvien Turingin koneiden tunnistaminen voidaan osoittaa ratkeamattomaksi palauttamalla universaalikielen tunnistaminen

Lisätiedot

Luonnolliset vs. muodolliset kielet

Luonnolliset vs. muodolliset kielet Luonnolliset vs. muodolliset kielet Luonnollisia kieliä ovat esim. 1. englanti, 2. suomi, 3. ranska. Muodollisia kieliä ovat esim. 1. lauselogiikan kieli (ilmaisut p, p q jne.), 2. C++, FORTRAN, 3. bittijonokokoelma

Lisätiedot

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

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää

Lisätiedot

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

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim. Injektio Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim. Funktio f on siis injektio mikäli ehdosta f (x 1 ) = f (x 2 ) seuraa, että x 1 = x 2.

Lisätiedot

8. Kieliopit ja kielet

8. Kieliopit ja kielet 8. Kieliopit ja kielet Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää siipiään" on kieliopillisesti

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 1 Matemaattisesta päättelystä Matemaattisen analyysin kurssin (kuten minkä tahansa matematiikan kurssin) seuraamista helpottaa huomattavasti, jos opiskelija ymmärtää

Lisätiedot

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

uv n, v 1, ja uv i w A kaikilla 2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016 ja ja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys ja ja Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/

Lisätiedot

Ratkeavuus ja efektiivinen numeroituvuus

Ratkeavuus ja efektiivinen numeroituvuus Luku 6 Ratkeavuus ja efektiivinen numeroituvuus Proseduurit Olkoon A aakkosto. Proseduuri aakkoston A sanoille on mikä hyvänsä prosessi (algoritmi) P, jolle annetaan syötteeksi sana w A, ja joka etenee

Lisätiedot

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja 582206 Laskennan mallit (syksy 2008) 2. kurssikoe 11.12., ratkaisuja Tehtävän 1 tarkasti Harri Forsgren, tehtävän 2 Joel Kaasinen ja tehtävän 3 Jyrki Kivinen. Palautetilaisuuden 19.12. jälkeen arvosteluun

Lisätiedot

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

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

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3 T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

LUKU II HOMOLOGIA-ALGEBRAA. 1. Joukko-oppia

LUKU II HOMOLOGIA-ALGEBRAA. 1. Joukko-oppia LUKU II HOMOLOGIA-ALGEBRAA 1. Joukko-oppia Matematiikalle on tyypillistä erilaisten objektien tarkastelu. Tarkastelu kohdistuu objektien tai näiden muodostamien joukkojen välisiin suhteisiin, mutta objektien

Lisätiedot

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Hahmon etsiminen syotteesta (johdatteleva esimerkki) Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux

Lisätiedot

Rajoittamattomat kieliopit

Rajoittamattomat kieliopit Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet

Lisätiedot

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

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015 TIEA241 Automaatit ja, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Formaalisti Määritelmä Nelikko G = (V, Σ, P, S) on kontekstiton kielioppi (engl. context-free

Lisätiedot

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.

Lisätiedot

Laskennan vaativuus ja NP-täydelliset ongelmat

Laskennan vaativuus ja NP-täydelliset ongelmat Laskennan vaativuus ja NP-täydelliset ongelmat TRAK-vierailuluento 13.4.2010 Petteri Kaski Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Tietojenkäsittelytiede tutkii 1. mitä tehtäviä voidaan

Lisätiedot

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. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

3SAT-ongelman NP-täydellisyys [HMU ]

3SAT-ongelman NP-täydellisyys [HMU ] 3SAT-ongelman NP-täydellisyys [HMU 10.3.4] erotukseksi yleisestä CNF-esityksestä, kaikilla kaavoilla ei ole 3-CNF-esitystä; esim. x 1 x 2 x 3 x 4 esitämme muunnoksen, jolla polynomisessa ajassa mielivaltaisesta

Lisätiedot

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

3. Laskennan vaativuusteoriaa

3. Laskennan vaativuusteoriaa 3. Laskennan vaativuusteoriaa tähän asti puhuttu siitä, mitä on mahdollista laskea äärellisessä ajassa siirrytään tarkastelemaan laskemista kohtuullisessa ajassa vaihtoehtoisesti voidaan laskenta-ajan

Lisätiedot

Äärettömistä joukoista

Äärettömistä joukoista Äärettömistä joukoista Markku Halmetoja Mistä tietäisit, että sinulla on yhtä paljon sormia ja varpaita, jos et osaisi laskea niitä? Tiettyä voimisteluliikettä tehdessäsi huomaisit, että jokaista sormea

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen

Lisätiedot

Säännöllisten kielten sulkeumaominaisuudet

Säännöllisten kielten sulkeumaominaisuudet Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

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

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,

Lisätiedot

S BAB ABA A aas bba B bbs c

S BAB ABA A aas bba B bbs c T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama

Lisätiedot

Talousmatematiikan perusteet ORMS.1030

Talousmatematiikan perusteet ORMS.1030 orms.1030 Vaasan avoin yliopisto / kevät 2013 1 Talousmatematiikan perusteet Matti Laaksonen Matemaattiset tieteet Vaasan yliopisto Vastaanotto to 11-12 huone D110/Tervahovi Sähköposti: matti.laaksonen@uva.fi

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 4. Joukot, relaatiot ja funktiot Osa 3: Funktiot 4.3 Funktiot Olkoot A ja B joukkoja. Funktio joukosta A joukkoon B on sääntö, joka liittää yksikäsitteisesti määrätyn

Lisätiedot

Vastauksia. Topologia Syksy 2010 Harjoitus 1

Vastauksia. Topologia Syksy 2010 Harjoitus 1 Topologia Syksy 2010 Harjoitus 1 (1) Olkoon X joukko ja (T j ) j J perhe X:n topologioita. Osoita, että T = {T j : j J} on X:n topologia. (2) Todista: Välit [a, b) muodostavat R 1 :n erään topologian kannan.

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

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

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS. TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013 ja ja TIEA241 Automaatit ja kieliopit, kesä 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. kesäkuuta 2013 Sisällys ja ja on yksi vanhimmista tavoista yrittää mallittaa mekaanista laskentaa. Kurt

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. tammikuuta 2012 Sisällys Luennon pähkinä Millä tavalla voidaan rakentaa tietokoneohjelma (tai kirjasto), joka

Lisätiedot

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

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta: MATP00 Johdatus matematiikkaan Ylimääräisten tehtävien ratkaisuehdotuksia. Osoita, että 00 002 < 000 000. Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa. Lähdetään sieventämään epäyhtälön

Lisätiedot

Talousmatematiikan perusteet ORMS.1030

Talousmatematiikan perusteet ORMS.1030 s16 Talousmatematiikan perusteet ORMS.1030 Matti Laaksonen, (Matemaattiset tieteet / Vaasan yliopisto) Sähköposti: matti.laaksonen@uva.fi Opettajan kotisivu: http://lipas.uwasa.fi/ mla/ puh. 044 344 2757

Lisätiedot

Talousmatematiikan perusteet ORMS.1030

Talousmatematiikan perusteet ORMS.1030 kevät 2014 Talousmatematiikan perusteet Matti Laaksonen, (Matemaattiset tieteet / Vaasan yliopisto) Vastaanotto to 11-12 huone D110/Tervahovi Sähköposti: matti.laaksonen@uva.fi Opettajan kotisivu: http://lipas.uwasa.fi/

Lisätiedot

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

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}. 42 Turingin koneiden laajennuksia 1 oniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askelessa: Koneen

Lisätiedot

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

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016 .. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 20. lokakuuta 2016 Sisällys. Turingin koneiden pysähtymisongelma. Lause Päätösongelma Pysähtyykö standardimallinen

Lisätiedot

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 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

Lisätiedot

Talousmatematiikan perusteet ORMS.1030

Talousmatematiikan perusteet ORMS.1030 orms.1030 Vaasan yliopisto / kevät 2015 Talousmatematiikan perusteet Matti Laaksonen Matemaattiset tieteet, Vaasan yliopisto Vastaanotto to 11-12 huone D110/Tervahovi Sähköposti: matti.laaksonen@uva.fi

Lisätiedot

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

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w} 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = {c w pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot

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

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: T-79.148 Kevät 2004 Tietojenkäsittelyteorian perusteet Harjoitus 12 Demonstraatiotehtävien ratkaisut 4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: Hyväksyykö annettu Turingin kone

Lisätiedot

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

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot