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 jonkin tehtävän ratkaisemiseen. Algoritmi on määritelty sen ominaisuuksien perusteella: yleisyys, deterministisyys, tuloksellisuus (oikeellisuus, terminoituvuus), syöte ja tehokkuus. 2013-2014 Lasse Lensu 3
Tietojenkäsittelytieteen perusteet Turingin kone ja muut automaatit 2013-2014 Lasse Lensu 4
Taustaa: funktiot S. Alaoutinen, 2008 Funktio: mahdollisten syöte- ja tulostearvojen välinen suhde siten, että kuhunkin syötearvoon on liitetty tulostearvo. Funktion laskeminen: tulostusarvon määrittäminen siihen liitetyn syötejoukon avulla. Ei-laskettavissa oleva funktio: funktio, jota ei voi laskea millään algoritmilla. 2013-2014 Lasse Lensu 5
Taustaa: funktion laskeminen Pituuden muunnos: Syöte Tulos Jaardit Metrit 1 0.9144 2 1.8286 3 2.7432 4 3.6576 5 4.5720 Lämpötilamuunnos: F= (C*9/5)+32 2013-2014 Lasse Lensu 6
Turingin kone S. Alaoutinen, 2008 J. Boberg Johdatus tietojenkäsittelytieteeseen, Turun yliopisto, 2010 Brookshear, J.G. Computer Science - An overview, 7 th ed. Addison Wesley, 2003 Tausta algoritmin määritelmään: Stephen Kleene: rekursiivisten funktioiden teoria eli säännöt uusien matemaattisten funktioiden muodostamiseen olemassa olevista funktioista. Alonzo Church: λ-kalkyyli symbolien käsittelyyn. Alan Turing: Turingin kone ja sen käskyjoukko. Andrey Markov: Markovin algoritmit. Turingin kone: Työkalu funktioiden laskettavuuden tutkimiseen. Abstrakti malli tietokoneille. 2013-2014 Lasse Lensu 7
Teesit Church-Turingin -teesit: 1. Kaikki olemassa olevat, järkevät algoritmin määritelmät ovat keskenään ekvivalentteja (osoitettu). 2. Myös tulevat, järkevät algoritmin määritelmät ovat ekvivalentteja olemassa olevien määritelmien kanssa (ei voidakaan osoittaa). Teesien mukaan: jokainen funktio (algoritmi), joka voidaan laskea (suorittaa) jollakin olemassa olevalla tai tulevalla digitaalisella tietokoneella, voidaan laskea (suorittaa) Turingin koneella. Seuraukset: 1. Turingin kone on digitaalisen tietokoneen abstrakti malli (ja sen avulla voidaan suorittaa kaikki laskettavissa olevat tehtävät). 2. Algoritmi on Turingin kone, joka syötteen saatuaan pysähtyy äärellisen ajan kuluessa. 2013-2014 Lasse Lensu 8
Turingin kone Turingin koneen osat: Ohjausyksikkö voi lukea ja kirjoittaa nauhaa. Nauha on äärettömän pitkä ja se on jaettu soluihin. Nauhan solu voi sisältää minkä tahansa symbolin äärellisestä joukosta. Äärellinen symbolijoukko on koneen aakkosto. 2013-2014 Lasse Lensu 9
Laskenta Turingin koneella Laskenta alkaa alkutilasta ja päättyy lopputilaan. Laskenta koostuu ohjausyksikön suorittamien askelten sarjasta. Askel koostuu solun lukemisesta, soluun kirjoittamisesta, luku-/kirjoituspään siirtämisestä ja tilan vaihtamisesta. Laskennan aikana koneen on aina jossakin äärellisen tilajoukon tilassa. 2013-2014 Lasse Lensu 10
Turingin koneen toiminta Askeleisiin (tilasiirtymiin) liittyvät syötteet: Tila sillä hetkellä Nauhan solusta luettu arvo Askeleisiin (tilasiirtymiin) liittyvät toimenpiteet: Kirjoita arvo soluun Siirrä luku/kirjoituspää Vaihda tila uuteen 2013-2014 Lasse Lensu 11
Turingin koneen määrittely M = (Q, T, I, δ, b, q 0, q f ) Q : kontrolliyksikön mahdollisten tilojen joukko T : nauhasymbolien joukko I : syöttöaakkosten joukko (I T ) δ : tilasiirtymien joukko (Q xt Q xt x{l, S, R}) b : tyhjä symboli q 0 : alkutila q f : lopputila Vaihtoehtoinen määrittely: M = (Q, T, δ, q 0, b) 2013-2014 Lasse Lensu 12
Tilasiirtymien esitys q i, x q j, y, {L, S, R} Jos tilassa q i nauhalla on symboli x, niin: Kirjoitetaan nauhalle symboli y. Siirretään luku-/kirjoituspäätä vasemmalle, pidetään se paikoillaan tai siirretään sitä oikealle. Siirrytään tilaan q j. 2013-2014 Lasse Lensu 13
Esimerkki Tekeekö tämä mitään järkevää? M = (Q, T, I, δ, b, q 0, q f ) Q = {1, 2, 3, H} T = {0, 1, _} I = {0, 1} b = _ q 0 = 1 δ = 1, _ H, _, S 1, 0 2, 0, L 1, 1 2, 1, L 2, _ 3, _, R 2, 0 2, 0, L 2, 1 2, 1, L 3, _ H, _, L 3, 0 3, 0, R 3, 1 3, 1, R q f = H 2013-2014 Lasse Lensu 14
Esimerkki Tekeekö tämä mitään järkevää? M = (Q, T, I, δ, b, q 0, q f ) Q = {1, 2, 3, 4, 5, 6, H} T = {0, 1, _} I = {0, 1} b = _ q 0 = 1 q f = H δ = 1, _ H, _, S 1, 0 2, 0, S 1, 1 2, 0, S 2, _ 5, _, L 2, 0 3, 0, L 2, 1 4, 1, L 3, _ 6, 0, R 3, 0 6, 0, R 3, 1 6, 0, R 4, _ 6, 1, R 4, 0 6, 1, R 4, 1 6, 1, R 5, _ H, _, S 5, 0 H, 0, S 5, 1 H, 0, S 6, _ 2, _, R 6, 0 2, 0, R 6, 1 2, 1, R 2013-2014 Lasse Lensu 15
Binääriluvun arvon kasvattaminen yhdellä 2013-2014 Lasse Lensu 16
Bitit kääntävä Turingin kone Q =? T =? I =? δ =? b =? q 0 =? q f =? 2013-2014 Lasse Lensu 17
Yhteenveto Turingin kone on abstrakti malli tietokoneille ja työkalu laskettavuuden tutkimiseen. Church-Turingin -teesit: Kaikki olemassa olevat, järkevät algoritmin määritelmät ovat keskenään ekvivalentteja. Kaikki tulevat, järkevät algoritmin määritelmät ovat ekvivalentteja olemassa olevien määritelmien kanssa. Teeseillä on merkittäviä seurauksia kaikkien tietokoneiden kyvyille. 2013-2014 Lasse Lensu 18