{"id":216,"date":"2021-02-06T19:53:23","date_gmt":"2021-02-06T17:53:23","guid":{"rendered":"http:\/\/tslespoo.fi\/wordpress\/?p=216"},"modified":"2021-02-14T14:57:35","modified_gmt":"2021-02-14T12:57:35","slug":"lukuteoreettiset-funktiot","status":"publish","type":"post","link":"http:\/\/tslespoo.fi\/wordpress\/2021\/02\/06\/lukuteoreettiset-funktiot\/","title":{"rendered":"Lukuteoreettiset funktiot"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Laskettavat, mutta ei primitiivirekursiiviset funktiot<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/tslespoo.fi\/wordpress\/2021\/01\/27\/primitiivirekursiiviset-funktiot\/\" data-type=\"post\" data-id=\"174\">Viime artikkelissa<\/a> k\u00e4sittelimme primitiivirekursiivisia funktioita ja totesimme, kuinka melkein kaikki tavanomaiset tietokoneella laskettavissa olevat funktiot ja operaattorit, olivat n\u00e4m\u00e4 sitten kokonaislukujen, murtolukujen, lukulistojen tai merkkijonojen operaatioita, ovat G\u00f6del-numeroinnin ansiosta primitiivirekursiivisia. T\u00e4m\u00e4 ei kuitenkaan tarkoita, ett\u00e4 kaikki laskettavissa olevat funktiot olisivat primitiivirekursiivisia. Primitiivirekursiivisille funktioille on ominaista erityisesti, ett\u00e4 kaikki silmukat ovat m\u00e4\u00e4r\u00e4mittaisia, koska rekursios\u00e4\u00e4nn\u00f6ss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi korkeintaan luvut v\u00e4lilt\u00e4 0..n-1. Mitk\u00e4\u00e4n operaatiot, joissa tarvitaan potentiaalisesti ikisilmukkaa tai m\u00e4\u00e4rittelem\u00e4tt\u00f6m\u00e4n pituista silmukkaa eiv\u00e4t voi olla primitiivirekursiivisia. Esimerkiksi lukujen kuuluminen johonkin fraktaaliin kuten Mandelbrotin joukkoon tai Julian joukkoihin, lasketaan ei-m\u00e4\u00e4r\u00e4mittaisella iteraatiolla ja tarkkaa tietoa kompleksiluvun joukkoon kuulumisesta ei voi m\u00e4\u00e4ritell\u00e4 niin, ett\u00e4 voitaisiin sitoutua tiettyyn silmukan pituuden yl\u00e4rajaan. N\u00e4m\u00e4 operaatiot ovat laskettavia, mutta eiv\u00e4t ole p.r.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ackermann-P\u00e9ter-funktio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tunnettu yksinkertaisen n\u00e4k\u00f6inen funktio, joka voidaan m\u00e4\u00e4ritell\u00e4 &#8221;tuplarekursios\u00e4\u00e4nn\u00f6ll\u00e4&#8221;, eli Ackermann-P\u00e9ter-funktio:<br>$$<br>\\left\\{<br>\\begin{array}{ccl}<br>A(0,n) &amp; = &amp; n+1 \\\\<br>A(m,0) &amp; = &amp; A(m-1,1),\\quad m&gt;0 \\\\<br>A(m,n) &amp; = &amp; A(m-1,A(m,n-1)),\\quad m,n&gt;0<br>\\end{array}<br>\\right.<br>$$<br>ei ole primitiivirekursiivinen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e4m\u00e4 funktio kasvaa uskomattoman nopeasti, kun $m&gt;3$. Luvut ovat potenssitorneja, joiden kuvaama luku saattaa ylitt\u00e4\u00e4 maailmankaikkeuden atomien lukum\u00e4\u00e4r\u00e4n ja kohota yh\u00e4 korkeammalle sis\u00e4kk\u00e4isiin potenssitorneihin asti. Se, ettei AP-funktio ole p.r. johtuu siit\u00e4, ett\u00e4 kaikilla p.r. funktioilla $f(\\vec{x})$ on olemassa luku $m$ siten, ett\u00e4 $A(m,\\max(\\vec{x}))&gt;f(\\vec{x})$. Todistus menee niin, ett\u00e4 ensinn\u00e4 todetaan nollafunktion, seuraajan ja projektioiden kasvavan hitaammin kuin AP-funktio, sen j\u00e4lkeen todistetaan, ett\u00e4 yhdist\u00e4minen tai primitiivirekursio eiv\u00e4t t\u00e4t\u00e4 asianlaitaa muuta. <a rel=\"noreferrer noopener\" href=\"https:\/\/planetmath.org\/ackermannfunctionisnotprimitiverecursive\" data-type=\"URL\" data-id=\"https:\/\/planetmath.org\/ackermannfunctionisnotprimitiverecursive\" target=\"_blank\">Todistus<\/a> t\u00e4h\u00e4n on esitetty esimerkiksi Planetmath:in sivustolla.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rajoittamaton minimalisaatio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Primitiivirekursiivisten funktioiden perhe voidaan laajentaa lukuteoreettisten eli $\\mu$-rekursiivisten funktioiden perheeksi ottamalla k\u00e4ytt\u00f6\u00f6n joku ikisilmukan mahdollistava rajaton rekursio-operaattori tai rajaton hakuoperaattori. Yksinkertaisin vaihtoehto on sallia rajoittamaton minimalisaatio. $f$ on saatu rajoittamattomalla minimalisaatiolla $g$:st\u00e4, jos<br>$$<br>f(\\vec{x})=\\mu n\\ g(n,\\vec{x})=0<br>$$<br>eli $f$:n arvo on pienin $n$ siten, ett\u00e4 $g$:n arvo on $0$, $0$ muuten. Merkit\u00e4\u00e4n my\u00f6s $f=(\\mu g)$.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Universaali lukuteoreettinen funktio ja ratkeamattomuus<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Seuraavassa tekstiss\u00e4 todistetaan kaksi t\u00e4rke\u00e4\u00e4 teoreemaa, Kleenen normaalimuototeoreema ja sen johdannaisena G\u00f6delin lukuteorian ep\u00e4s\u00e4\u00e4nn\u00f6llisyyslause. Kleenen normaalimuototeoreema sanoo, ett\u00e4 kaikki lukuteoreettiset funktiot voidaan sievent\u00e4\u00e4 muotoon $f=(\\gamma g(\\mu h))$, jossa $g$ ja $h$ ovat p.r. eli rajoittamatonta minimalisaatiota tarvitsee k\u00e4ytt\u00e4\u00e4 korkeintaan kerran. G\u00f6delin lukuteorian ep\u00e4t\u00e4ydellisyyslause sanoo, ett\u00e4 ei ole mit\u00e4\u00e4n yleist\u00e4 algoritmia, jolla voitaisiin luotettavasti m\u00e4\u00e4ritt\u00e4\u00e4, onko lukuteoreettisella funktiolla $g(n,\\vec{x})=0$ ratkaisua $n$. T\u00e4m\u00e4 muotoiltiin alunperin muodossa, ett\u00e4 ei ole olemassa predikaattilogiikan kaavaa, jolla voitaisiin todeta toisesta predikaattilogiikan kaavasta, onko sill\u00e4 mallia, eli muuttujien sijoitusta, jolla lause olisi tosi, mutta t\u00e4ss\u00e4 mainittu versio on sen kanssa yht\u00e4pit\u00e4v\u00e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Universaali lukuteoreettinen funktio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yll\u00e4 olevien tulosten todistamiseksi tarvitaan universaali lukuteoreettinen funktio<br>$$<br>\\psi(\\langle f\\rangle,\\langle\\vec{x}\\rangle)=y<br>$$<br>jolla on ominaisuus, ett\u00e4 se ottaa parametreikseen kaksi lukua: funktion $f$ G\u00f6del-numeron ja sen parametrien $\\vec{x}$ G\u00f6del-numeron, joka muuten on edellisen artikkelimme mukainen linkitetty lista. T\u00e4llainen funktio ei voi tietenk\u00e4\u00e4n olla primitiivirekursiivinen, mutta se on todistettavissa lukuteoreettiseksi. T\u00e4rkein havainto on, ett\u00e4 n.s. Kleenen $T$-predikaatti, joka varmistaa, onko lukuteoreettisen funktion laskenta suoritettu oikein, on p.r. $T$-predikaatti-m\u00e4\u00e4ritell\u00e4\u00e4n:<br>$$<br>T(c,\\langle f\\rangle,\\langle\\vec{x}\\rangle)<br>$$<br>on tosi, jos $c=\\mathrm{cons}(y,\\mathrm{cons}(\\langle f\\rangle,\\langle\\vec{x}\\rangle))$ ja $f(\\vec{x})=y$, ep\u00e4tosi muuten. T\u00e4ll\u00f6inh\u00e4n voidaan p\u00e4\u00e4tell\u00e4, ett\u00e4:<br>$$<br>\\psi(\\langle f\\rangle,\\langle\\vec{x}\\rangle)=\\mathrm{car}(\\mu c\\ T(c,\\langle f\\rangle,\\langle\\vec{x}\\rangle))<br>$$<br>jolloin rajoittamaton minimalisaatio hakee ensin <em>laskennan<\/em> $c$ ja erottelee siit\u00e4 varsinaisen vastauksen parin vasemmalta puolelta $\\mathrm{car}$-operaatiolla. Edell\u00e4oleva kaava on my\u00f6s Kleenen normaalimuodon mukainen, joten j\u00e4ljell\u00e4 on muodostaa lukuteoreettisten funktioiden G\u00f6del-numerointi ja todistaa, ett\u00e4 $T$ on p.r.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lukuteoreettisten funktioiden G\u00f6del-numerointi<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sovitaan, ett\u00e4 $\\zeta$:a eli nollafunktiota vastaa luku $n=0$ ja $\\sigma$:a eli seuraajaa vastaa luku $n=1$. Jos luku on t\u00e4t\u00e4 suurempi, tarkastellaan lukua $n-2$ ja sen jakoj\u00e4\u00e4nn\u00f6st\u00e4 luvun $4$ kanssa. T\u00e4ll\u00f6in olkoon:<br>$$<br>(n-2)\\%4=<br>\\left\\{<br>\\begin{array}{ccl}<br>0 &amp; : &amp; \\pi \\\\<br>1 &amp; : &amp; \\gamma \\\\<br>2 &amp; : &amp; \\rho \\\\<br>3 &amp; : &amp; \\mu<br>\\end{array}<br>\\right.<br>$$<br>eli $0$ on projektio, $1$ on yhdist\u00e4minen, $2$ on primitiivirekursio ja $3$ on rajoittamaton minimalisaatio. N\u00e4m\u00e4 operaatiot vaativat tuekseen ylim\u00e4\u00e4r\u00e4ist\u00e4 dataa, jonka on l\u00f6ydytt\u00e4v\u00e4 koodattuna osam\u00e4\u00e4r\u00e4\u00e4n:<br>$$<br>\\phi=\\frac{n-2}{4}<br>$$<br>Projektion tapauksessa tarvitaan v\u00e4hint\u00e4\u00e4n tieto, monesko alkio (nollasta alkaen) projisoidaan listasta. T\u00e4ll\u00f6in $\\phi$ on ei-negatiivinen kokonaisluku, joka kertoo t\u00e4m\u00e4n tiedon.<br>Yhdist\u00e4misen tapauksessa tarvitaan pari, jossa vasemmalla puolella on funktio $g$ ja oikealla puolella lista $\\vec{h}$ koodattuna vastaamaan tapausta $f=(\\gamma g\\vec{h})$. Edellisen artikkelin perusteella t\u00e4llaisten parien ja listojen koostaminen funktioiden $g$ ja $\\vec{h}$ G\u00f6del-numeroista on p.r.<br>Primitiivirekursion tapauksessa $f=(\\rho gh)$ tarvitaan vain pari $\\phi=\\mathrm{cons}(\\langle g\\rangle,\\langle h\\rangle)$, joka on p.r.<br>Minimalisaation tapauksessa $f=(\\mu g)$ tarvitaan lopulta vain funktion $g$ G\u00f6del-numero $\\langle g\\rangle$. Lukuteoreettisten funktioiden G\u00f6del-numerointi on siis p.r. $\\Box$<br>On hyv\u00e4 huomata, ett\u00e4 listojen ulkopuolelta projisoidessa voidaan tehd\u00e4 yleisyytt\u00e4 loukkaamatta oletus, ett\u00e4 palautetaan $0$ ja jos yhdist\u00e4misess\u00e4, primitiivirekursiossa tai minimalisaatiossa funktioiden argumenttien lukum\u00e4\u00e4r\u00e4 ei t\u00e4sm\u00e4\u00e4, voidaan puuttuvat argumentit olettaa arvoiksi $0$ ja ylim\u00e4\u00e4r\u00e4iset argumentit hyl\u00e4t\u00e4. T\u00e4m\u00e4 johtuu edellisen artikkelin kohdasta, joka k\u00e4sittelee eksplisiittist\u00e4 transformaatiota.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nollafunktion, seuraajan ja projektion $T$-predikaatti<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nollafunktion $\\zeta$ $T$-predikaatti $T(\\mathrm{cons}(0,\\mathrm{cons}(0,\\langle\\vec{x}\\rangle)),0,\\langle\\vec{x}\\rangle)$ on selke\u00e4sti p.r. Jatkossa tarkastellaan vain laskennan $c$ vasemman puolen konstruktiota, koska $\\langle f\\rangle$ ja $\\langle\\vec{x}\\rangle$ ovat itsest\u00e4\u00e4nselv\u00e4sti p.r. edellisen kappaleen ja artikkelin nojalla. Seuraajafunktion $\\sigma$ $T$-predikaatti on my\u00f6s p.r. koska $\\mathrm{cons}(n+1,\\mathrm{cons}(1,\\langle[n]\\rangle))$ on p.r. Projektio on p.r. koska edellisess\u00e4 artikkelissa todistimme, ett\u00e4 $n$:nnen alkion projisointi listasta on p.r. (yksityiskohdat $T$-predikaatin muodostamisessa sivuutetaan).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Yhdist\u00e4misen, primitiivirekursion ja minimalisaation $T$-predikaatit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e4iss\u00e4 todistuksissa joudutaan tietenkin olettamaan, ett\u00e4 viitattavien funktioiden $T$-predikaatit on jo todistettu primitiivirekursiivisiksi. $(\\gamma g\\vec{h})$:n $T$-predikaatti on p.r. koska ehto:<br>$$<br>(\\forall[n&lt;\\mathrm{len}(\\langle\\vec{h}\\rangle)]\\ h_n(\\vec{x})=y_n) \\land g(\\vec{y})=x<br>$$<br>on p.r. jos $T_g$ ja kaikki $T_\\vec{h}$ my\u00f6s ovat. $T_{(\\rho gh)}$ on p.r. koska ehto:<br>$$<br>v_0=g(\\vec{x}) \\land(\\forall[k&lt;n]v_k=h(k-1,v_{k-1},\\vec{x}))<br>$$<br>on samoilla ehdoilla. Lopulta $T_{(\\mu g)}$ on p.r. jos $T_g$ on, koska ehto:<br>$$<br>(f(y,\\vec{x})=0)\\land (\\forall[n&lt;y]\\ f(n,\\vec{x})&gt;0)<br>$$<br>on p.r. Kaikkien lukuteoreettisten funktioiden $T$-predikaatit ovat siis p.r. ja samalla on my\u00f6s yll\u00e4mainittu Kleenen normaalimuototeoreema todistettu ja universaali lukuteoreettinen funktio<br>$$<br>\\psi(\\langle f\\rangle,\\langle\\vec{x}\\rangle)=y<br>$$<br>mink\u00e4 tahansa lukuteoreettisen funktion arvon evaluoimiseksi k\u00e4yt\u00f6ss\u00e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ratkeamattomat ongelmat ja lukuteorian ep\u00e4t\u00e4ydellisyyslause<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Koska universaali lukuteoreettinen funktio ja G\u00f6del-numerointi mahdollistavat funktiot ja kaavat, joille voidaan antaa parametreiksi muita funktioita ja kaavoja, on mahdollista luoda my\u00f6s funktioita ja kaavoja, jotka tutkivat itse\u00e4\u00e4n tai itse\u00e4\u00e4n hieman muunneltuina. T\u00e4ll\u00f6in voidaan saada aikaan erilaisia paradokseja ja ristiriitoja, jotka osoittavat, ett\u00e4 tietyt matemaattiset ja tietotekniset ongelmat ovat ohjelmallisesti ja loogisesti ratkeamattomia. Oletetaan, ett\u00e4 olisi olemassa predikaatti $M$, jolla voitaisiin tarkastaa funktiosta $f$, onko olemassa arvoa $n$ siten, ett\u00e4 $f(n,\\vec{x})=0$ eli $M(\\langle f\\rangle)$, jos t\u00e4llainen nollakohta on. Predikaattihan on on tosi, jos sen karakteristinen funktio on $1$ ja ep\u00e4tosi, jos karakteristinen funktio on $0$. Mit\u00e4 on $M(\\langle M_f \\rangle)$? Nyt $M$ on tosi, jos $M_f=0$, eli $M$ on tosi, jos $M$ on ep\u00e4tosi. T\u00e4m\u00e4 on ristiriita ja ei siis voi olla olemassa t\u00e4llaista asiaa tutkivaa predikaattia tai funktiota, joka toimisi yleisp\u00e4tev\u00e4sti. T\u00e4m\u00e4 ja sen johdannaiset tunnetaan esimerkiksi G\u00f6delin lukuteorian ep\u00e4t\u00e4ydellisyyslauseena tai Turingin koneen pys\u00e4htymisongelmana.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laskettavat, mutta ei primitiivirekursiiviset funktiot Viime artikkelissa k\u00e4sittelimme primitiivirekursiivisia funktioita ja totesimme, kuinka melkein kaikki tavanomaiset tietokoneella laskettavissa olevat funktiot ja operaattorit, olivat n\u00e4m\u00e4 sitten kokonaislukujen, murtolukujen, lukulistojen tai merkkijonojen operaatioita, ovat G\u00f6del-numeroinnin ansiosta primitiivirekursiivisia. T\u00e4m\u00e4 ei kuitenkaan tarkoita, ett\u00e4 kaikki laskettavissa olevat funktiot olisivat primitiivirekursiivisia. Primitiivirekursiivisille funktioille on ominaista&#8230;<\/p>\n","protected":false},"author":2,"featured_media":234,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,4],"tags":[],"class_list":["post-216","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-korkeakoulu","category-matematiikka"],"_links":{"self":[{"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/posts\/216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/comments?post=216"}],"version-history":[{"count":16,"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/posts\/216\/revisions"}],"predecessor-version":[{"id":263,"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/posts\/216\/revisions\/263"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/media\/234"}],"wp:attachment":[{"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/media?parent=216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/categories?post=216"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/tslespoo.fi\/wordpress\/wp-json\/wp\/v2\/tags?post=216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}