Funktiot 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
Funktion laskeminen Lämpötilamuunnos: F= (C*9/5)+32 Pituuden muunnos: Syöte Jaardit Tulos Metrit ……
Turingin kone Työkalu funktioiden laskettavuuden tutkimiseen Sen avulla voi suorittaa kaikki laskettavat tehtävät Osat –Ohjausyksikkö voi lukea ja kirjoittaa nauhaa –Nauha on ääretön ja jaettu soluihin –Solu voi sisältää minkä tahansa symbolin äärellisestä joukosta –Joukko on koneen aakkosto
Turingin kone Laskennan aikana koneen on oltava aina jossain äärellisen tilajoukon tilassa Laskenta alkaa alkutilasta ja päättyy lopputilaan Laskenta koostuu ohjausyksikön suorittamien askelten sarjasta Askel koostuu solun lukemisesta, suluun kirjoittamisesta, siirtymisestä ja tilan vaihtamisesta
Turingin koneen osat
Toiminta Tilojen syötteet –Tila –Solun arvo Toimenpiteet tiloissa –Kirjoita arvo soluun –Siirrä luku/kirjoituspää –Vaihda tila
Merkintä M = (Q, T, I, δ, b, q 0, q f ) Q: koneen kontrolliyksikön mahdollisten tilojen joukko T: nauhasymbolien joukko I: syöttöaakkosten joukko (T :n osajoukko) δ: tilasiirtymien joukko b: tyhjä symboli q 0 : alkutila q f : lopputila
Tilasiirtymät q i, x → q j, y, L/R/S nauhalla nauhalle vasemmalle/oikealle/ei Jos tilassa q i nauhalla on symboli x, siirrytään tilaan q j, kirjoitetaan nauhalle symboli y ja siirrytään vasemmalle/oikealle/ei mihinkään
Esimerkki: 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, 0 → 3, 0, V 2, 1 → 4, 1, V 2, _ → 5, _, V 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, 0 → H, 0, S 5, 1 → H, 0, S 6, 0 → 2, 0, R 6, 1 → 2, 1, R 6, _ → 2, _, R
Arvon kasvattaminen yhdellä
Tee bitit kääntävä Turingin kone Q = ? T = ? I = ? δ = ? b = ? q 0 = ? q f = ?