Professional Documents
Culture Documents
Komputransp
Komputransp
u n lj i v o s t
Izrac c
▸ V. Ca ic
, Komputonomikon, udzbenik, 2021.
⋙ p r e d a v a nj a & v j ez b e ⋘ c
▸ V. Ca ic
, Komputrivij, zbirka zadataka (ZZ), 2021.
M. Vukovic, Izracunljivost, skripta, PMF{MO, 2015.
Slajdovi su pomoc u nastavi, nisu za samostalno ucenje! ▹
▹ J. Shoenfield, Recursion theory, Springer-Verlag, 1993.
cic <veky@math.hr>
Vedran Ca
i=1 bod(tjedani )≤2 )≤20
[ konzultacije: uzivo cetvrtkom, 11{13h (A306) t ∶= (∑12
ili preko Zooma uz najavu ]
if ∃ 4i=1 bod(tjedani ) ∶ b ∶= ∑2i=1 bodovi(kolokviji )≤25 + t
PMF{Matematicki odsjek if b < 30 or zelja ∶ b ∶= (b − t) ∕∕ 3 + t + bodovi(kolokvijpopr )≤40
https://web.math.pmf.unizg.hr/~veky/izr
[ ili samo guglajte izracunljivost":]
" if b ≥ 30 ∶ b += bodovi(zavrsni ispit)≤30
https://moodle.srce.hr/2021-2022/course/view.php?id=96011
if b ≥ 45 ∶ ocjena ∶= b ∕∕ 15 − 1
akademska godina 2021./2022.
zadnja promjena: 7. listopada 2021. Prije drugog kolokvija mozete izraditi seminar: javite se za temu.
Tada na usmenom odgovarate samo temu seminara.
je izrac
Sto unljivost? Algoritmi kroz povijest
Ukratko, proucavanje algoritama kao matematickih objekata.
▸ Babilon, −17. stoljece: procedura za rekonstrukciju
Zasto nam to treba? Prvenstveno da bismo dokazali da za dani
problem ne postoji algoritam. Primjerice, da bismo dokazali . . . dvaju brojeva iz njihove razlike i umnoska
▸ Grcka, −3. stoljece: Euklidov algoritam za odredivanje
ka logika)
Primjer (Churchov teorem, Matematic najvece zajednicke mjere dviju duzina
Logika prvog reda je neodluciva: ne postoji algoritam ▸ Perzija, 9. stoljece: Al-Horezmi zapisuje metode
koji za proizvoljnu formulu prvog reda odreduje je li valjana.
racunanja s arapskim brojkama (ucimo ih u osnovnoj skoli)
▸ Italija, 16. stoljece: Ferrarijeva metoda za rjesavanje
Jos neki primjeri problema za koje ne postoje algoritmi:
▸ (Diofantske jednad
algebarskih jednadzbi cetvrtog stupnja
zbe) Neka je p(x1 , . . . , xn ) polinom s
▸ Indija, 21. stoljece: AKS, polinomni test za prim-brojeve
cjelobrojnim koe cijentima. Ima li p nultocku u Zn ?
▸ (Post) Neka je R kona cna binarna relacija nad {0, 1}∗ . Usprkos vrlo razlicitim matematickim formalizacijama
Postoje li a1 R b1 , . . . , an R bn za koje je a1 ⋯ an = b1 ⋯ bn ? u kojima su formulirani, te razlicitim tipovima podataka
Za velike potklase gornjih problema su poznati algoritmi,
s kojima su radili, svima njima je nesto zajednicko. Sto?
no za opcenite probleme znamo da ne postoje.
RAM-stroj RAM-izracunavanje
Propozicija
De nicija
Semantika funkcijskog makroa, uz oznake s prethodnog slajda,
Neka je k ∈ N+ , f k RAM-izracunljiva, te Pfk RAM-algoritam
te pokratu ⃗r ∶= (rj1 , rj2 , . . . , rjk ), jest:
koji je racuna. Neka su m, j0 , j1 , . . . , jk ∈ N. De niramo
1. Ako je ⃗r ∈ Df , tada je rj′0 = f(⃗r) ∧ (∀t ∈ [b 2b⟩)(rt′ = 0).
(Pf (Rj1 , . . . , Rjk ) → Rj0 using Rm ..) ∶= [ Zbog b > m, za sve i ∈ [0 m⟩ ∖ {j0 } vrijedi ri′ = ri . ]
⎡ 0. mmove b from R0 .. to Rb .. ⎤♭ ∗ 2. Ako ⃗r ∉ Df , izvrsavanje funkcijskog makroa ne stane.
⎢ ⎥
1. args Rb+j1 , Rb+j2 , . . . , Rb+jk
⎢ ⎥
⎢ ⎥
2. Pf ∗
⎢ ⎥
∶= ⎢⎢ ⎥
⎥ r0 r1 , . . . , rk rj0 rb rb+j0 r2b−1
3. remove R0 to Rb+j0
⎢ ⎥
⎢
⎢
⎥
⎥ 0. mmove 0 0, . . . , 0 0 r0 rj0 rb−1
⎢
⎣ 4. mmove b from Rb .. to R0 .. ⎥
⎦ 1. args 0 rj1 , . . . , rjk 0 r0 rj0 rb−1
2. Pf∗ f(⃗r) ?, . . . , ? ? r0 rj0 rb−1
uz pokratu b ∶= max {mPk , m, 1 + maxki=0 ji }.
f 3. remove 0 ?, . . . , ? ? r0 f(⃗r) rb−1
[Sirina algoritma se de nira kao mPk ∶= max {mP , 1 + k}.] 4. mmove r0 r1 , . . . , rk f(⃗r) 0 0 0
Inicijalne funkcije Kompozicija | intuitivno
Mnogi skupovi funkcija imaju svojstvo da sadrze sve inicijalne takoder primitivno rekurzivna. (Pisemo F ∶= a pr H.)
funkcije, i zatvoreni su na kompoziciju i primitivnu rekurziju.
to mozemo zakljuciti za neki skup funkcija F, znamo da je
Cim Dokaz. primitivno rekurzivna, dakle totalna
³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ · ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹µ
skup primitivno rekurzivnih funkcija podskup od F. Recimo: F = (C1a pr H ○ (I32 , I33 )) ○ (Z, I11 ) .
Propozicija
Ideja je uvesti irelevantni" parametar na pocetak,
"
1. Sve primitivno rekurzivne funkcije su totalne. koji ne radi nista osim sto uvecava sve mjesnosti za 1.
2. Sve primitivno rekurzivne funkcije su RAM-izracunljive.
▸ pozitivnost N+
Df ∶= ∃∗ R ∶= {⃗
x ∈ Nk ∣ ∃y R(⃗
x, y)} (projekcija relacije R)
x, y)}, za sve x
x) ∶= min {y ∈ N ∣ R(⃗
f(⃗ ⃗ ∈ ∃∗ R
▸ faktorijel, factorial(x) ∶= x!
De nicija De nicija
Najmanji skup funkcija koji sadrzi sve inicijalne funkcije, te je Parcijalno rekurzivne funkcije koje su totalne zovemo
zatvoren na kompoziciju, primitivnu rekurziju i minimizaciju, rekurzivnima. Relacije cije karakteristicne funkcije su
naziva se skup parcijalno rekurzivnih funkcija. (parcijalno) rekurzivne takoder zovemo rekurzivnima.
Pojam parcijalno rekurzivna relacija" je beskoristan:
Propozicija (Simbolicka de nicija) "
sve takve relacije su rekurzivne (jer je χR uvijek totalna).
Funkcija je parcijalno rekurzivna ako je korijen stabla ciji
listovi su inicijalne funkcije, a svaki cvor je funkcija dobivena Zadatak
▸ kompozicijom iz svoje djece (2 ili vi se funkcija) Dokazite: svaka primitivno rekurzivna funkcija je rekurzivna.
▸ primitivnom rekurzijom iz svoje djece (2 totalne funkcije)
Zadatak
▸ minimizacijom svog djeteta (1 relacija)
Gra cki prikazite odnos svih
ili relacija cija je karakteristicna funkcija dobivena na isti nacin.
skupova brojevnih funkcija koje smo dosad uveli.
Editiranje (konacna promjena) totalnih funkcija Ogranicene sume, produkti, brojenje, minimizacija, . . .
Propozicija Propozicija
Neka je k ∈ N+ te Gk (primitivno) rekurzivna funkcija,
Neka je k ∈ N+ , neka je Gk (primitivno) rekurzivna funkcija,
odnosno Rk (primitivno) rekurzivna relacija.
te Fk totalna funkcija koja se podudara s G u svima osim
Tada su (primitivno) rekurzivne i sljedece funkcije/relacije:
konacno mnogo tocaka. Tada je i F (primitivno) rekurzivna.
Fk x, i) i Fk
x, y) ∶= ∑i<y G(⃗
Σ (⃗ x, i),
x, y) ∶= ∏i<y G(⃗
Π (⃗
Dokaz.
Po pretpostavci, skup {⃗xk ∣ F(⃗x) ≠ G(⃗x)} je konacan: oznacimo Fk x, y) ∶= µ i (i < y → R(⃗
µ (⃗ x, y),
x, y)) =∶ (µ i < y) R(⃗
mu sve elemente (npr. leksikografskim redom) s c⃗1 , c⃗2 , . . . , c⃗l . Fk x, y) ∶= card {i ∈ [0 y⟩ ∣ R(⃗
# (⃗ x, y),
x, y)} =∶ (# i < y) R(⃗
Ako je taj skup prazan, F = G pa nemamo sto dokazivati. Inace,
Qk
∃ (⃗ x, i) i Qk
x, y) ∶⇔ (∃i < y) R(⃗ ∀ (⃗ x, i).
x, y) ∶⇔ (∀i < y) R(⃗
F = if{{c⃗1} ∶ Ck
F(c⃗1 ) , . . . , {c⃗l } ∶ F(c⃗l ) , G},
Ck
Jedna primitivna rekurzija:
(primitivno) rekurzivna funkcija po teoremu o grananju. ⎧
⎪ Fµ (⃗
⎪ x, y), R(⃗
x, Fµ (⃗
x, y))
Fµ (⃗
x, 0) = 0 , Fµ (⃗
x, y + 1) = ⎨ .
Zadatak: Gdje se u dokazu koristi totalnost funkcije F?
⎪
⎪
⎩ y + 1, inace
(Primitivno) rekurzivne granice Kodiranje | opcenito
Napomena
Kompozicijom s nekom (primitivno) rekurzivnom funkcijom H Neka je K skup koji ne sadrzi prirodne brojeve nego neke druge
na mjestu argumenta y lako dobijemo (primitivnu) rekurzivnost objekte: racionalne brojeve, RAM-programe, regularne izraze
zbrajanja / mnozenja / brojenja / minimizacije / kvanti kacije nad ksnom abecedom, konacne nizove prirodnih brojeva, . . .
do (primitivno) rekurzivne granice. Recimo, Kodiranje skupa K je izracunljiva injekcija NK ∶= κ ∶ K → N,
kojoj je slika ( skup svih kodova") Iκ rekurzivan skup,
(# i < H(⃗
x)) R(⃗
x, y) = F# (⃗ x)) .
x, H(⃗ "
a parcijalni inverz κ−1 ∶ Iκ → K je takoder izracunljiv.
Pisuci Sc ○ H za granicu umjesto H, dobijemo sve te rezultate [Ocito, da bi kodiranje postojalo, skup K mora biti prebrojiv!]
i za ukljucene gornje granice, jer je y ≤ H(⃗x) ⇐⇒ y < Sc(H(⃗x)). Ova de nicija nije stroga, jer govori o postojanju intuitivnih
algoritama, ciji ulazi/izlazi nisu prirodni brojevi. K je najcesce
Napomena neki apstraktni tip podataka: bitno je njegove osnovne metode
Neogranicena kvanti kacija ∃∗ R (cak ni primitivno) rekurzivne prikazati kao rekurzivne funkcije na kodovima. ZZ: 4.3
relacije R ne mora biti rekurzivna! To cemo dokazati kasnije.
ZZ: 3.3, 3.4
Propozicija Propozicija
Postoji primitivno rekurzivna operacija ∗ takva da Neka je k ∈ N+ , te Gk (primitivno) rekurzivna funkcija. Tada je
za sve x⃗, y⃗ ∈ N∗ vrijedi ⟨⃗x⟩ ∗ ⟨⃗y⟩ = ⟨⃗x, y⃗ ⟩. (primitivno) rekurzivna i funkcija Fk , zadana jednadzbom
[ Operacija ∗ je takoder parcijalno speci cirana, na Seq × Seq. ] F(⃗ x, y)).
x, F(⃗
x, y) ∶= G(⃗
Dokaz.
De niramo funkciju G4 grananjem Dokaz.
⎧ Povijest funkcije F zadovoljava sljedecu primitivnu rekurziju:
⎪ x[i],
⎪ i<k
G(x, y, k, i) ∶= ⎨ .
⎩ y[i k],
⎪
⎪ inace F(⃗
x, 0) = ⟨⟩ = 1
F(⃗
x, y + 1) = F(⃗ x, F(⃗
x, y) ∗ ⟨G(⃗ x, y))⟩
Sada mozemo de nirati x ∗ y ∶= G(x, y, lh(x), lh(x) + lh(y)).
Po teoremu o grananju G je primitivno rekurzivna, pa je (primitivno) rekurzivna jer su konstanta 1, G, ∗ i Code1
pa je G takoder takva po lemi o povijesti (⇒), a onda i ∗. takve. Onda je, po lemi o povijesti (⇐), i F takva funkcija.
Simultana primitivna rekurzija Kodiranje instrukcija RAM-stroja
Propozicija De nicija
▸ ⌜inc Rj⌝ ∶= codeINC(j) ∶= ⟨0, j⟩ = 6 ⋅ 3 j
Neka su k, l ∈ N+ , te neka su Gk1 , . . . , Gkl i Hk+l+1
1 , . . . , Hk+l+1
l
(primitivno) rekurzivne funkcije. Tada su (primitivno) ▸ ⌜dec Rj , l⌝ ∶= codeDEC(j , l) ∶= ⟨1, j, l⟩ = 60 ⋅ 3 j ⋅ 5l
rekurzivne i funkcije Fk+1
1 , . . . , Fl
k+1
, zadane jednadzbama ▸ ⌜go to l⌝ ∶= codeGOTO(l) ∶= ⟨2, l⟩ = 24 ⋅ 3l
Fi (⃗ x) ,
x, 0) ∶= Gi (⃗
Zadatak
Fi (⃗
x, y + 1) ∶= Hi (⃗
x, y, F1 (⃗ x, y)) .
x, y), . . . , Fl (⃗
Dokazite primitivnu rekurzivnost sljedecih skupova i funkcija:
▸ codeINC, codeDEC, codeGOTO
Funkcija Gk ∶= Codel ○ (G1 , . . . , Gl ), i funkcija Hk+2 , zadana s ▸ InsDEC i InsGOTO (analogno, za tipove dec i go to)
Lema (o indeksu)
Korolar
Neka je e ∈ N, k ∈ N+ te neka je P RAM-program. Svaka parcijalno rekurzivna funkcija ima simbolicku de niciju
▸ Ako je e = 2P7, tada P k racuna funkciju {e}k . s tocno jednom pojavom operatora µ.
▸ Ako e ∉ Prog, tada je {e} = ⊗k .
k
[ Zadatak sa zvjezdicom: Koliko ima pojava operatora pr? ]
Teorem o grananju, parcijalno rekurzivna verzija Povijesni pregled
Indeksi nam omogucavaju metaprogramiranje:
rad s funkcijama pomocu njihovih indeksa. Jedna primjena: RAM-stroj je, kao sto se pokazalo, dobar za
Teorem matematicki rad s instrukcijama cija minimalnost podsjeca
Neka su k, l ∈ N+ , neka su Gk0 , . . . , Gkl parcijalno rekurzivne na moderne mikroprocesore arhitekure RISC, no
funkcije, te Rk1 , . . . , Rkl u parovima disjunktne rekurzivne algoritmi su puno stariji od racunala. Prije manje od stoljeca,
relacije. Tada su funkcije Fk1 ∶= if{R1 ∶ G1 , . . . , Rl ∶ Gl , G0 } algoritme su jos uvijek izvodili iskljucivo ljudi.
i Fk2 ∶= if{R1 ∶ G1 , . . . , Rl ∶ Gl } takoder parcijalno rekurzivne. 1936. godine Alan Turing je dao jednu od prvih de nicija
algoritma. Iako je nespretna za strogu matematicku obradu,
Dokaz. njena posebnost je u tome sto je precizno motivirana detaljnim
Svaka funkcija Gi ima indeks gi (kompiliramo je, i kodiramo opisom covjekovog rada i misaonih procesa pri izvodenju
dobiveni RAM-program). Po rekurzivnoj verziji teorema o algoritma. Turingov clanak time predstavlja najbolju mogucu
grananju G ∶= if{R1 ∶ Ckg1 , . . . , Rl ∶ Ckgl , Ckg0 } je rekurzivna formalizaciju pojma algoritma kako su ga ljudi shvacali
funkcija pa je F1 = compk ○ (Ik1 , . . . , Ikk , G) parcijalno rekurzivna. oduvijek, sve do druge polovice proslog stoljeca.
Za F2 , samo treba staviti g0 ∶= 0, indeks prazne funkcije ⊗k .
Za jezicnu funkciju ϕ ∶ Σ∗ ⇀ Σ∗ i ksirano σ u gornjem smislu, ▸ Nacrtajte dijagram Turingovog stroja koji ra cuna ξ.
de niramo (jednomjesnu brojevnu) pratecu funkciju Za funkciju α(w) ∶= wa, napisite RAM-program koji racuna Nα.
Nϕ ∶= σ ○ ϕ ○ σ −1 . ZZ: 2
Sistematicniji rad s pomaknutom bazom Kodiranje radne abecede i trake
Do daljnjeg, neka je T = (Q, Σ, Γ, , δ, q0 , qz ) ksni
Zadatak Turingov stroj, te NΣ ksno kodiranje njegove ulazne abecede.
Nadite primitivno rekurzivne funkcije koje zadovoljavaju ove Oznacimo b ∶= card Γ > b ′ . Prosirimo NΣ do NΓ tako da
parcijalne speci kacije (zapisi su u pomaknutoj bazi b ∈ N+ ): preslikamo u 0, a znakove iz Γ+ ∖ Σ bijektivno u ⟨b ′ b⟩.
▸ nw(t, b) ∶= ukupan broj zapisa rije ci duljine ≤ t [∶= ∑i≤t bi ]
Sada prosirimo NΓ do kodiranja proizvoljne trake:
▸ slh(n, b) ∶= duljina zapisa od n [∶= (µt ≤ n)(nw(t, b) > n)]
Transpiler RAM ↝ Turing: prvi i posljednji fragment Drugi fragment (F2) | inicijalizacija RAM-stroja
Cetvrti fragment (F4) | dekodiranje izlaza RAM-izracunljivost povlaci Turing-izracunljivost
Cilj: prevesti kon guraciju $ ∣w∣ # ••••⋯•••◦⋯◦ ...
?
pn Teorem (p ⇒ t za jezicne funkcije)
(u gornjem redu je • ) u $ ⟨v⟩ ∣w∣+1 ••••⋯•••◦⋯◦ $ ... , Neka je Σ abeceda, NΣ njeno kodiranje, te
?
q4
ϕ ∶ Σ∗ ⇀ Σ∗ jezicna funkcija nad tom abecedom.
a zatim (metoda dolje↓) u $ v ◦◦◦◦◦◦◦⋯◦ $ Ako je Nϕ parcijalno rekurzivna, tada je ϕ Turing-izracunljiva.
? q4
...
Neka je Σ abeceda i NΣ neko njeno kodiranje. Za jezik L ⊆ Σ∗ ⟨•⟩ ∶= 1, ⟨/⟩ ∶= 2 (pomaknuta baza 2).
kazemo da ima neko svojstvo izracunljivosti ako relacija
⟨L⟩ ∶= σ[L] ⊆ N (odnosno funkcija χ⟨L⟩ ) ima to svojstvo. De niramo primitivno rekurzivnu funkciju blh(n) ∶= slh(n, 2).
Za k ∈ N+ , binarni zapis k-torke x⃗ = (x1 , . . . , xk ) ∈ Nk je rijec
Zadatak (veza s kolegijem Interpretacija programa)
x) ∶= •x1/•x2/⋯/•xk ∈ Σβ∗ .
β(⃗
Dokazite da je de nicija rekurzivnog jezika u gornjem smislu
(⟨L⟩ je rekurzivna) ekvivalentna de niciji iz Interpretacije
programa (postoji Turingov odlucitelj koji prepoznaje L). Zadatak
Uputa: (⇐) malo doradite funkcije stop i Nϕ" za odlucitelje, Dokazite da je β bijekcija izmedu N+ i Σ∗β . Opisite inverz β−1 .
"
(⇒) dodajte dva prijelaza iz l$ transpiliranog stroja za χ⟨L⟩ .
Lema
De nicija Za svaki k ∈ N+ , bink ∶= NΣ∗β ○ βk je primitivno rekurzivna.
Jezicna funkcija βf dobro modelira sve aspekte izracunljivosti bin1 (x) = ⟨•x ⟩ = (11⋯1)2 = 2x 1 = pd(pow(2, x)).
brojevne funkcije f. Zato skraceno kazemo da je
f Turing-izracunljiva ako je βf Turing-izracunljiva. Pretpostavimo da je binl primitivno rekurzivna za neki l ∈ N+ .
Primjenom dokazanih rezultata za jezicne funkcije na βf Korak: Tada je binl+1 (⃗x, y) = ⟨•x1/⋯/•xl/•y ⟩ =
mozemo dobiti analogne rezultate za brojevne funkcije = ⟨•x1/⋯/•xl ⟩ ⌢ ⌢ y l
x) ⌢
2 ⟨/⟩ 2 ⟨• ⟩ = bin (⃗
⌢ 1
2 2 2 bin (y),
| no prvo trebamo nekoliko tehnickih lema.
sto je primitivno rekurzivno kao kompozicija od binl , bin1 ,
konstante 2, operacije ⌢2 i koordinatnih projekcija.
Lovljenje strelica po komutativnim dijagramima Turing-izracunljivost povlaci parcijalnu rekurzivnost
Zadatak
Dokazite blh ○ bin1 = I11 . [ Podsjetnik: blh(n) ∶= slh(n, 2). ] Teorem (t ⇒ p za brojevne funkcije)
Neka je k ∈ N+ i fk (brojevna) funkcija.
Propozicija (Dijagram) Ako je βf Turing-izracunljiva, tada je f parcijalno rekurzivna.
Za svaki k ∈ N+ , za svaku brojevnu funkciju fk vrijedi
Dokaz.
bin1 ○ f = Nβf ○ bink . Po teoremu [ t ⇒ p za jezicne funkcije ],
Nβf je parcijalno rekurzivna. Iz dijagrama slijedi da je
f
Nk N f = blh ○ Nβf ○ bink ,
βk β1
arg1,..., argk
bink
bin1
blh1
NΣ∗β NΣ∗β
Obrat je kompliciraniji: umjesto lijevog inverza blh za bin1,
Ibin
1 N βf
Ibin
1 sada trebamo k funkcija (argi )ki=1 koje cine desni inverz za bink .
k 1
Zadatak
Teorem (p ⇒ t za brojevne funkcije)
Dokazite primitivnu rekurzivnost sljedecih relacija i funkcija:
▸ ⟨v⟩ ⊑ ⟨w⟩: v je pre ks od w Binarne reprezentacije svih parcijalno rekurzivnih
▸ count2(x): broj dvojki u (zapisu od) x
brojevnih funkcija su Turing-izracunljive.
▸ Ibink = ⟨β[Nk ]⟩: slika k-mjesnog binarnog kodiranja
Dokaz.
▸ z ∶= x̂: uokvirivanje (zapisa od) x dvojkama: x̂ = (2 x 2)2
Neka je k ∈ N+ i f k parcijalno rekurzivna. Iz dijagrama slijedi
▸ pos2(z, i) ∶= pozicija i-te dvojke u (zapisu uokvirenog) z
▸ streak1(z, i) ∶= duljina i-tog niza uzastopnih jedinica u z Nβf = (bin1 ○ f ○ (arg1 , . . . , argk )) ∣ I
bink
▸ jedan jednomjesni funkcijski simbol s ▸ Ako je to (i. dec Rj , l), de niramo ιi kao formulu
▸ n + 1 m-mjesnih relacijskih simbola R0 , . . . , Rn .
(Ri (x[0j⟩ , o, x⟨jm⟩ ) → Rl (x[0j⟩ , o, x⟨jm⟩ )) ∧
Od individualnih varijabli koristit cemo samo xj , j < m.
∧ (Ri (x[0j⟩ , s(xj ), x⟨jm⟩ ) → Ri+1 (x[0m⟩ )).
[Intendirana semantika: zatvoreni termi ocito predstavljaju
prirodne brojeve. Atomarne formule Ri (x0 , . . . , xm−1 )
predstavljaju dostizne kon guracije RAM-stroja: ▸ Ako je to (i. go to l), de niramo ιi kao formulu
i je vrijednost od pc, a valuacija od xj je sadrzaj registra Rj .]
Ri (x[0m⟩ ) → Rl (x[0m⟩ ).
Za svaki t ∈ N, de niramo
Neka je t ∈ N proizvoljan, i ζ logicka posljedica od Γt .
t s-ova m−2 o-ova
³¹¹ ¹ ¹ · ¹ ¹ ¹ ¹µ Pretpostavimo suprotno da P-izracunavanje s t ne stane, i za
sve j, k ∈ N, oznacimo s r(k)
³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ·¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ µ
πt ∶= R0 (o, s(s(⋯s(o)⋯)), o, o, . . . , o), j sadrzaj registra Rj , a s pc(k) (< n)
Γt ∶= {πt , ι0 , ι1 , ι2 , . . . , ιn−1 }, sadrzaj programskog brojaca, nakon k koraka izracunavanja.
ζ ∶= ∃x0 ∃x1 ⋯∃xm−1 Rn (x0 , x1 , . . . , xm−1 ). Promotrimo σ-strukturu N, s nosacem N i interpretacijom
zadanom s: oN ∶= 0; sN ∶= Sc; te za sve i ≤ n,
Lema (k)
RN c ∈ Nm ∣ ∃k (pc(k) = i ∧ (∀j < m)(rj
i ∶= {⃗ = cj+1 ))}.
Za svaki t ∈ N vrijedi: (P-izracunavanje s t stane) ⇐⇒ (Γt ⊧ ζ) .
U toj strukturi vrijedi πt i sve ιi , pa mora vrijediti i ζ.
Zadatak No N ⊧ ζ znaci RN (k)
n ≠ ∅, odnosno ∃k (pc = n ∧ ⋯),
Generalizirajte sve na ovom slajdu na proizvoljni sto je kontradikcija s pretpostavkom da izracunavanje ne stane.
RAM-algoritam Pk i ulazne podatke za njega ⃗tk .
Primjer Zadatak
Beskontekstna gramatika (tipovi tokena su u zadnjem redu) ▸ Napisite formulu ϕt u ekvivalentnom obliku ϕ̂t ∈ F1.
▸ Dokazite da je funkcija Phi1 , zadana s Phi(t) ∶= ⟨ϕ̂t ⟩,
S → P(U) ∣ ¬S ∣ (S → S) ∣ ∀V S
primitivno rekurzivna.
T → V ∣ C ∣ F(U) U → T ∣ U,T
V → x ∣ V ’ C → c ∣ C’ F → f ∣ F’ P → R ∣ P’ Korolar
generira jezik F1 nad abecedom Σlog . Jezik Valid ⊂ F1 svih valjanih formula nije rekurzivan.
Teorem
Jednu jednostavnu transformaciju funkcije napravit cemo
eksplicitno kao primitivno rekurzivnu funkciju na indeksima, Za svaki k ∈ N+ , postoji primitivno rekurzivna funkcija S2k ,
a pomocu nje cemo napraviti sve ostalo sto nam treba. takva da je za sve (y, e) ∈ N2 , Sk (y, e) ∈ Prog indeks funkcije
dobivene iz {e}k+1 specijalizacijom zadnjeg argumenta na y.
U procesu cemo dobiti i teorem rekurzije, koji nam daje
mogucnost pisanja i rjesavanja opcih rekurzija, ne izlazeci iz Zadatak: Dokazite teorem o parametru kroz ove korake:
okvira parcijalno rekurzivnih / RAM-izracunljivih funkcija. Funkcija dBase preslikava tip instrukcije u prim-broj koji se
potencira odredistem u kodu instrukcije (1 ako takvog nema).
De nicija
Shift(y, ⌜ I ⌝) pomice odrediste (ako postoji) instrukcije I za y.
Neka su k, l ∈ N+ , gk+l funkcija i y⃗ ∈ Nl . Za funkciju fk zadanu
Napisite makro Y ∗ semantike rk+1 = 0 ⇒ rk+1 ′
= y.
s f(⃗x) ∶= g(⃗x, y⃗ ) kazemo da je dobivena iz g specijalizacijom
zadnjih l argumenata na y⃗ . Pisemo f = $(⃗y, g). Napisite makro-program Q koji racuna $(y, {2P7}k+1 ).
Kod spljostenja 2Q♭ 7 prikazite kao konkatenaciju dvije funkcije
Primjer: {e}k = $(e, compk ). Nadite jos primjera u kolegiju! (dobivene pomocu operatora povijesti). De nirajte te funkcije.
Ne zaboravite smisleno de nirati i Sk (y, e) ∈ Prog za e ∈ Prog∁ !
Teorem o parametrima Parcijalna jednakost u funkcijskim jednadzbama
je parcijalno rekurzivna; oznacimo s ek,l jedan njen indeks. i sada desno imamo F koje se ne mozemo tako lako rijesiti.
Specijalizacijom zadnjih l + 1 argumenata dobivamo: Ipak, mozemo je (odnosno njen indeks) shvatiti kao parametar!
composek (⃗ l
g , h) ∶= Sk (⃗ l
g , h, ek,l ) Svaka funkcijska jednadzba poput gornje moze se svesti na
oblik compl (⃗t, f) ≃ L(⃗t, f) s nepoznanicom f, za neku parcijalno
k ∶= $(ek,l , Sk ) ].
[ composel+1 l+2
rekurzivnu funkciju Ll+1 . Taj oblik zovemo opcom rekurzijom.
De nicija
Primjer
Neka je k ∈ N+ i Gk+1 parcijalno rekurzivna funkcija. Jednadzbu
Iz zapisa ⎧
compk (⃗
x, e) ≃ G(⃗
x, e) ⎪ G(⃗
⎪ x), y=0
compk+1 (⃗
x, y, e) ≃ ⎨
⎩ x, pd(y), compk+1 (⃗
⎪
⎪ H(⃗ x, pd(y), e)), inace
(s nepoznanicom e, za sve x⃗) zovemo opcom rekurzijom. Ako e vidimo: primitivna rekurzija je specijalni slucaj opce rekurzije.
zadovoljava tu jednadzbu, {e}k zovemo rjesenjem te rekurzije. [Ako su G i H rekurzivne, rjesenje je jedinstveno i rekurzivno.]
Tri su zanimljiva pitanja vezana uz opce rekurzije: Zadatak
1. imaju li uopce (parcijalno rekurzivno) rjesenje; Prikazite
2. je li ono jedinstveno (kao funkcija, ne kao indeks!); ▸ rekurziju s povijescu,
3. je li to jedinstveno rjesenje totalno (rekurzivno). ▸ simultanu rekurziju
Odgovori na drugo i trece pitanje ovise o G. u obliku opce rekurzije!
[ Npr. ako je G rekurzivna, svako rjesenje je totalno. ]
No odgovor na prvo pitanje uvijek je potvrdan.
G(⃗
?
x, Dk (h)) ≃ compk (⃗
x, Dk (h)) ≃ compk+1 (⃗ x, h),
x, h, h) ≃ H(⃗ dakle An+1 = C11 pr An ○ (I31 , I33 ), pa dalje mozemo indukcijom |
no sto je s funkcijom A(x, y, z) ∶= Az (x, y)? Ocito je totalna
sto ce vrijediti ako de niramo H(⃗x, y) ∶≃ G(⃗x, Dk (y)) za sve y. jer su sve Az totalne, i u intuitivnom smislu je izracunljiva,
Funkcija H je parcijalno rekurzivna (zasto?), pa ima indeks h. pa bi po Church{Turingovoj tezi trebala biti rekurzivna.
Sada je po gornjem e ∶= Dk (h) trazeni broj. Poteskoca je u tome da nije primitivno rekurzivna
[Drugim rijecima, ∂H je rjesenje opce rekurzije.] (intuitivno, z kaze koliko puta moramo primijeniti operator pr
u de niciji; ne moze manje jer inace A ne raste dovoljno brzo),
ZZ: 5.1, 5.3 no primjena teorema rekurzije lako daje rekurzivnost od A3 .
Restrikcija na rekurzivno prebrojiv skup Presjek konacno mnogo rekurzivno prebrojivih relacija
Propozicija
Lema (o restrikciji) Presjek dvije rekurzivno prebrojive relacije
Restrikcija parcijalno rekurzivne funkcije je rekurzivno prebrojiva relacija.
na rekurzivno prebrojiv skup je parcijalno rekurzivna.
Dokaz.
Dokaz. Neka su S = Df i T rekurzivno prebrojive relacije.
Ako su mjesnosti razlicite, restrikcija je prazna, Tada je S ∩ T = Df ∩ T = Df∣T , sto je domena
pa je parcijalno rekurzivna kao domena prazne funkcije. parcijalno rekurzivne funkcije po lemi o restrikciji.
Inace, oznacimo zajednicku mjesnost s k, i
neka su Fk i Gk parcijalno rekurzivne te Sk = DGk . Korolar
Tada je F∣S = I21 ○ (F, G). Presjek konacno mnogo rekurzivno prebrojivih relacija
takoder je rekurzivno prebrojiva relacija.
Raspisite detalje u gornjem dokazu!
Vrijedi i zatvorenost na (cak rekurzivno prebrojive) unije,
ali za to nam trebaju mocniji alati | poput projekcije ∃∗ .
Dokaz.
Dokaz.
(⇒) Neka je R = Df k te e neki indeks za f. Po Kleenejevom Za svaki i ∈ [1 l] po projekcijskoj karakterizaciji postoji
teoremu o normalnoj formi, R(⃗x) ⇔ ∃yTk (⃗x, e, y), rekurzivna relacija Pk+1
i takva da je Ri = ∃∗ Pi . Sada vrijedi
a relacija P(⃗x, y) ∶⇔ Tk (⃗x, e, y) je primitivno rekurzivna. l
(⇐) Neka je R = ∃∗ P, gdje je P (primitivno) rekurzivna. x
⃗ ∈ ⋃ Ri ⇐⇒ (∃i ∈ [1 l])(∃y)Pi (⃗
x, y) ⇐⇒
l
i=1
Tada je DµP = ∃∗ P = R, a µP je parcijalno rekurzivna ⇐⇒ (∃y)(∃i ∈ [1 l])Pi (⃗ x, y) ∈ ⋃ Pi),
x, y) ⇐⇒ ∃y((⃗
kao minimizacija (primitivno) rekurzivne relacije. i=1
pa je ⋃i=1
l l
Ri = ∃∗ (⋃i=1 Pi ) projekcija rekurzivne relacije.
Mozemo proucavati djelovanje raznih kvanti katora (∃∗ , ∀∗ ) na
rekurzivne relacije. U tom kontekstu (aritmeticka hijerarhija) Gore smo imali ogranicenu (po i) i neogranicenu (po y)
, Izracunljivost.
projekcije se zovu Σ01 . Detaljnije u: Vukovic bismo s dvije neogranicene?
egzistencijalnu kvanti kaciju. Sto
Tada je F rekurzivna ako i samo ako joj je graf GF rekurzivan. Opcenito, minimizacija poluizracunljivog skupa S
nece biti izracunljiva (razmislite!), ali u specijalnom slucaju,
Dokaz. kad S ima funkcijsko svojstvo, zapravo hoce.
To cemo dokazati tako da dokazemo slabiju tvrdnju pod
(⇒) Jer je F totalna, vrijedi GF (⃗x, y) ⇔ F(⃗x) = y, dakle GF ⪯ (=)
opcenitijim uvjetom: dopustamo da ima vise y za koje vrijedi
[χGF (⃗x, y) = χ= (F(⃗x), y)], a jednakost je rekurzivna relacija.
x, y), ali ne zelimo najmanji, nego jednostavno neki takav y.
S(⃗
(⇐) F = µ GF je parcijalno rekurzivna kao minimizacija
Tada, ako je y jedinstven, dobit cemo upravo njega.
rekurzivne relacije, pa je rekurzivna zbog totalnosti.
Tu operaciju" (pod navodnicima jer nije deterministicna)
"
Napomena zovemo selekcija, a (bilo koju) funkciju f koja je obavlja
(preslikava x⃗ u neki y takav da je S(⃗x, y)) zovemo selektor.
Ovdje ne mozemo staviti primitivno" u zagrade!
" Naravno, kao ni minimizacija, ni selekcija nije de nirana
za detalje.
GA32 je primitivno rekurzivan, ali A2 nije | Vukovic
za one x⃗ koji nisu u projekciji (za koje takav y ne postoji).
Teorem
Neka je S ⊆ N (jednomjesna relacija). Tada je ekvivalentno: Analogno rekurzivnim relacijama odnosno jezicima,
mozemo gledati rekurzivno prebrojive jezike, na tri nacina.
1. S je rekurzivno prebrojiv.
2. S je slika neke parcijalno rekurzivne funkcije. Gledanje na njih kao na domene Turing-izracunljivih funkcija
prirodno vodi na ideju Turingovih prepoznavaca,
3. S je slika neke primitivno rekurzivne funkcije ili S = ∅. dok gledanje na njih kao na slike takvih funkcija
prirodno vodi na ideju Turingovih enumeratora.
Dokaz. ⎧ Na ip ste dokazali da je to dvoje ekvivalentno.
⎪ x, T1 (x, e, t)
⎪
(1 ⇒ 3) Iz s ∈ S = D{e}1 slijedi S = IF za F(x, t) ∶= ⎨ . Trece, mozemo de nirati da je jezik L ⊆ Σ∗ rekurzivno prebrojiv
⎩ s, inace
⎪
⎪
Naime, s ∈ S ∩ IF , a za x ≠ s po Kleenejevom teoremu imamo ako je skup kodova ⟨L⟩ ∶= {⟨w⟩ ∣ w ∈ L} rekurzivno prebrojiv.
x ∈ S = D{e}1 ⇔ ∃t T1 (x, e, t) ⇔ ∃t (F(x, t) = x) ⇔ x ∈ IF . Moze se pokazati da je i ta de nicija ekvivalentna gornjima.
(2 ⇒ 1) If (y) ⇔ ∃⃗x Gf (⃗x, y) je projekcija rekurzivno prebrojivog Gf . ZZ: 7.2, 7.3 (i sve ostalo)
(3 ⇒ 2) Primitivna rekurzivnost povlaci parcijalnu, a ∅1 = I⊗1 .