1 / 21

Veel rekursiivsetest funktsioonidest

Veel rekursiivsetest funktsioonidest. Ackermanni üldistatud aste: f(0, x, y) = x + y f(1, x, y) = y * x f(2, x, y) = y x … f(z + 1, x, y) = tulemus, mis saadakse, rakendades arvule y x – 1 korda z. taseme tehet. f(0, 0, y) = y f(0, x + 1, y) = f(0, x, y) +1 f(1, 0, y) = 0

sun
Download Presentation

Veel rekursiivsetest funktsioonidest

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Veel rekursiivsetest funktsioonidest • Ackermanni üldistatud aste: f(0, x, y) = x + y f(1, x, y) = y * x f(2, x, y) = yx … f(z + 1, x, y) = tulemus, mis saadakse, rakendades arvule y x – 1 korda z. taseme tehet

  2. f(0, 0, y) = y f(0, x + 1, y) = f(0, x, y) +1 f(1, 0, y) = 0 f(z + 2, 0, y) = 0 f(z + 1, x + 1, y) = f(z, f(z + 1, x, y), y)

  3. Algoritmid ja algoritmilised funktsioonid f(x) = 1, kui arvu pii kümnendkohtade jadas leidub täpselt x järjestikust 5-e 0, muidu g(x) = 1, kui arvu pii kümnendkohtade jadas leidub vähemalt x järjestikust 5-e 0, muidu • Funktsiooni f arvutamiseks ei teata ühtki algoritmi • Funktsioon g on lihtrekursiivne

  4. Goldbachi hüpotees: Iga 2-st suurem paarisarv on kahe esitatav kahe algarvu summana h(x) = 1, kui hüpotees on tõene 0, kui hüpotees on väär • h on konstantne funktsioon, seega lihtrekursiivne. • Kuid me ei tea, kuidas seda tegelikult arvutada,

  5. 5. Diagonalisatsioon. • Funktsioonide kirjeldamiseks kasutatavaid sümboleid on lõplik arv: funktsioonisümbolid, muutujad, numbrid, sulud, koma, +, =, spetsiaalsümbolid algfunktsioonide jaoks, realõpu sümbol .

  6. Leidub efektiivne kontroll, kas antud sümbolite jada on korrektne esitus mingile rekursiivsele funktsioonile. Jadad pikkusega 1 Jadad pikkusega 2 … Võime koostada sellise algoritmi, mis paneb nimekirja kõik ühe muutuja rekursiivsete funktsioonide jadad.

  7. Olgu Qxjärjekorras (x+1). jada selles nimekirjas ja gx olgu funktsioon, mida see jada kirjeldab. • Defineerime h(x) = gx(x)+1. Funktsiooni h arvutamine: Antud x korral tuleb genereerida funktsioonide kirjelduste nimekirja kuni x-nda funktsioonini, siis rakendada gx(x) ja lisada 1. • Teiselt poolt, h ei saa olla rekursiivne. Kui oleks, siis leiduks selline y, et h = gy, s.t. h oleks ise ka nimekirjas sees. Aga gy(y) = h(y) = gy(y)+1, mis on vastuolu.

  8. Seega kõik algoritmiga kirjeldatavad funktsioonid ei saa olla lihtrekursiivsed. • Olgu x osaline funktsioon, mida kirjeldab (x+1). liige nimekirjas Qx ja olgu y valitud nii, et y on selline osaline funktsioon: • Et arvutada (x), leiame Qx, arvutame x(x) • Kui x(x) annab vastuseks mingi väärtuse, siis on (x) = x(x)+1. • Võrdus y(y) = (y) = y(y)+1 ei sisalda endas vastuolu, sest (y) ei pea väärtust omama.

  9. Nt. saame osalise funktsiooni g(x) jaoks kirjeldada sellise algoritmi: arvutada pii kümnendkohti, kuni ilmub järjest vähemalt x 5-e; kui see juhtub, siis väljasta vastusena esimese asukoht • h(x) jaoks: vaadelda järjest 2-st suuremaid paarisarve, kuni leidub mõni, mis ei ole kahe algarvu summa; kui see juhtub, siis anda vastuseks g(x) = 0.

  10. Def. Px on reeglite hulk, mis on kõigi selliste reeglite hulkade nimekirjas tähistatud täisarvuga x. Arvu x nimetatakse Pxindeksiks e. Gödeli arvuks. Teoreem 1. Leidub täpselt N (loenduvalt lõpmatu arv) osalist rekursiivset funktsiooni ja täpselt N rekursiivset funktsiooni. Teoreem 2. Leidub funktsioone, mis pole rekursiivsed. Teoreem 3. Iga osaline rekursiivne funktsioon omab N erinevat indeksit.

  11. 6. Numeratsiooniteoreem ja s-m-n-teoreem. • Olgu Px nimekiri kõigist 1-muutuja (osalistest) rekursiivsetest funktsioonidest.

  12. Vaatleme järgmist algoritmi, mis arvutab funktsiooni : • Sisendi (x,y) korral leida Px, rakendada funktsiooni x sisendile y, saades tulemuseks x(y), kui see on määratud. See väärtus võtta (x,y) väärtuseks. Seega, (x,y) = x(y), kui x(y) on määratud, määramata muidu.

  13. Teoreem1 (Numeratsiooniteoreem). Leidub selline indeks z, et kõikvõimalike x jay korral z(x,y) = x(y), kui x(y) on määratud, määramata muidu. • Funktsiooni z nimetatakse universaalseks osaliseks funktsiooniks.

  14. Teoreem 2 (s-m-n-teoreem). Iga positiivsete täisarvude paari (m,n) korral leidub selline totaalne arvutatav funktsioon sm: NNmN, et s (y1, …, yn) = i(x1, …, xm, y1, …,yn), kus s = s(i, x1, …, xm). Teisisõnu, iN, (x1, …, xm)Nm korral domain (s(n)) = {(y1, …, yn)N (x1, …, xm, y1, …, yn)domain (i(m+n))} ja s (y1, …, yn) = i(x1, …, xm, y1, …,yn) alati, kuivähemalt üks pool võrdusest on määratud

  15. Näide rakendamise kohta. Tõestada, et leidub selline totaalne arvutatav funktsioon F: N2N, et F(i,j) = i◦ji,jN. s.t. kahe arvutatava osalise funktsiooni kompositsioon on arvutatav ja kuidas leida kompositsioonile vastava Turingi masina indeksit. Defineerime osalise funktsiooni : N3N, (n, i, j) = (i ◦j)(n) mis on määratud, kui parem pool onmääratud.

  16.  on arvutatav : • esmalt rakendame Turingi masina Mj sisendile n; • kui arvutus lõpeb, rakendame masina Mi sisendile j(n); • valime sellise arvu pN, et  = p(3). • S-m-n-toereemi tõttu leidub totaalne arvutatav funktsioon s: N3N, nii et s(k,i,j)(x) = k(3)(x, i, j).

  17. Defineerime totaalse arvutatava funktsiooni g: N2N, g(i, j) = s(p, i, j) i,j jaoks. g(i,j)(x) = s(p,i,j)(x) = p(3)(x, i, j) = (x, i, j) = (i ◦j)(x). □

  18. Def. Programmeerimissüsteemiks nimetatakse nimekirja 0,1,…, mis koosneb täpselt kõigist osalistest arvutatavatest funktsioonidest. Sellist nimekirja nimetatakse aktsepteeritavaks programmeerimissüsteemiks (lühendatult APS), kui sel on järgmised omadused: • S-m-n-omadus : iga arvutatava osalise funktsiooni : N2N korral leidub selline totaalne arvutatav funktsioon f: NN, et f(i)(x) = (i, x) i jaoks. • Universaalsuse omadus: osaline funktsioon (i, j) i(j) on arvutatav.

  19. 7. Minimiseerimisoperaator. Teoreem 1. Olgu f rekursiivne k+1-muutuja funktsioon. Siis on min k [f(k, k1, …, kn) = 1] osaline rekursiivne k-muutuja funktsioon. • Kui f asemel oleks osaline rekursiivne funktsioon, siis see teoreem enam ei kehtiks.

  20. On olemas moodus, mille abil on võimalik iga osalist rekursiivset funktsiooni saada (totaalsetest) rekursiivsetest funktsioonidest üheainsa minimiseerimise teel: Teoreem 2. (Kleene’i normaalkuju teoreem) Leiduvad fikseeritud rekursiivsed funktsioonid p ja t, mis on vastavalt 1 ja 3 muutuja funktsioonid, nii et kõigi z jaoks z(x) = p(min y [t(z, x, y) = 1]).

  21. Järeldus. Leiduvad rekursiivsed funktsioonid p ja tk, nii et kõigi z jaoks z(k)(x1, …, xk) = p(min y [tk(z, x1, …, xk, y) = 1]). Teoreem 3. Ei leidu sellist rekursiivset 2-muutuja funktsiooni f, et kõigi x ja z jaoks kehtiks: Pz rakendatuna x-le annab väljundi Pz rakendatuna x-le annab väljundi vähema arvu kui f(z,x) sammuga. Teoreem 4. Leidub selline osaline rekursiivne funktsioon , et ühegi rekursiivse funktsiooni f jaoks ei kehti (x) = min y [f(x,y) = 1].

More Related