Upload
others
View
14
Download
1
Embed Size (px)
Citation preview
Aritmetizacija
17.11.2011.
(Teorija izracunljivosti) 17.11.2011. 1 / 31
Pregled predavanja
1 Kodiranje programa
2 Kodiranje izracunavanja
3 Klinijeva teorema o normalnoj formi
(Teorija izracunljivosti) 17.11.2011. 2 / 31
Kodiranje programa
Pregled predavanja
1 Kodiranje programa
2 Kodiranje izracunavanja
3 Klinijeva teorema o normalnoj formi
(Teorija izracunljivosti) 17.11.2011. 3 / 31
Kodiranje programa
Naredbe RM-programa
Z(k), k ∈N+
[Rk := 0; isprazni registar Rk i predji na narednu instrukciju]Z(1), Z(2), Z(3), . . .
S(k), k ∈N+
[Rk := Rk + 1; sadrzaj registra Rk uvecaj za 1 i predji na narednuinstrukciju]S(1), S(2), S(3), . . .
T(k, `), k , ` ∈N+
[Rk := R`; sadrzaj registra Rk zameni sadrzajem registra R` (R` nemenjaj) i predji na narednu instrukciju]T(1,1), T(1,2), . . . , T(2,1), T(2,2), T(2,3), . . .
J(k , `,m), k, `,m ∈N+
[ako su sadrzaji registara Rk i R` jednaki predji na instrukciju broj m,a ako su razliciti predji na narednu instrukciju.]J(1,1,1), J(1,1,2), . . . , J(1,2,1), . . .
(Teorija izracunljivosti) 17.11.2011. 4 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν(Z(k)) = 4(k−1)
ν(S(k)) = 4(k−1) + 1
ν(T(k , `)) = 4K2(k−1, `−1) + 2
ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3
(Teorija izracunljivosti) 17.11.2011. 5 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν(Z(k)) = 4(k−1)
ν(S(k)) = 4(k−1) + 1
ν(T(k , `)) = 4K2(k−1, `−1) + 2
ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3
(Teorija izracunljivosti) 17.11.2011. 5 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν(Z(k)) = 4(k−1)
ν(S(k)) = 4(k−1) + 1
ν(T(k , `)) = 4K2(k−1, `−1) + 2
ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3
(Teorija izracunljivosti) 17.11.2011. 5 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν(Z(k)) = 4(k−1)
ν(S(k)) = 4(k−1) + 1
ν(T(k , `)) = 4K2(k−1, `−1) + 2
ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3
(Teorija izracunljivosti) 17.11.2011. 5 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν :
(Z(1) Z(2) Z(3) Z(4) · · ·
0 4 8 12 · · ·
)
ν :
(S(1) S(2) S(3) S(4) · · ·
1 5 9 13 · · ·
)ν :
(T(1,1) T(1,2) T(2,1) T(1,3) · · ·
2 6 10 14 · · ·
)ν :
(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·
3 7 11 15 · · ·
)
(Teorija izracunljivosti) 17.11.2011. 6 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν :
(Z(1) Z(2) Z(3) Z(4) · · ·
0 4 8 12 · · ·
)ν :
(S(1) S(2) S(3) S(4) · · ·
1 5 9 13 · · ·
)
ν :
(T(1,1) T(1,2) T(2,1) T(1,3) · · ·
2 6 10 14 · · ·
)ν :
(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·
3 7 11 15 · · ·
)
(Teorija izracunljivosti) 17.11.2011. 6 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν :
(Z(1) Z(2) Z(3) Z(4) · · ·
0 4 8 12 · · ·
)ν :
(S(1) S(2) S(3) S(4) · · ·
1 5 9 13 · · ·
)ν :
(T(1,1) T(1,2) T(2,1) T(1,3) · · ·
2 6 10 14 · · ·
)
ν :
(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·
3 7 11 15 · · ·
)
(Teorija izracunljivosti) 17.11.2011. 6 / 31
Kodiranje programa
Kodiranje RM-naredbi
ν : Naredbe RM-programa→N
ν :
(Z(1) Z(2) Z(3) Z(4) · · ·
0 4 8 12 · · ·
)ν :
(S(1) S(2) S(3) S(4) · · ·
1 5 9 13 · · ·
)ν :
(T(1,1) T(1,2) T(2,1) T(1,3) · · ·
2 6 10 14 · · ·
)ν :
(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·
3 7 11 15 · · ·
)
(Teorija izracunljivosti) 17.11.2011. 6 / 31
Kodiranje programa
Dekodiranje
ν−1 :N→ Naredbe RM-programa
ν−1(x) =Z(κ(4,x) + 1), ρ(4,x) = 0,S(κ(4,x) + 1), ρ(4,x) = 1,T(κ2
1 (κ(4,x)) + 1,κ22 (κ(4,x)) + 1), ρ(4,x) = 2,
J(κ31 (κ(4,x)) + 1,κ3
2 (κ(4,x)) + 1,κ33 (κ(4,x)) + 1), ρ(4,x) = 3,
ν−1(x) =?
1) Odredi ρ(4,x) (ostatak pri deljenju x sa 4) (ovim je odredjen tipnaredbe)
2) U zavisnosti od tipa odredi parametre naredbe koristeci funkcije κ
(kolicnik), s (sledbenik) i Kantorove dekodirajuce funkcije κ21 , κ2
2 , κ31 , κ3
2 ,κ3
3
(Teorija izracunljivosti) 17.11.2011. 7 / 31
Kodiranje programa
Dekodiranje
ν−1 :N→ Naredbe RM-programa
ν−1(x) =Z(κ(4,x) + 1), ρ(4,x) = 0,S(κ(4,x) + 1), ρ(4,x) = 1,T(κ2
1 (κ(4,x)) + 1,κ22 (κ(4,x)) + 1), ρ(4,x) = 2,
J(κ31 (κ(4,x)) + 1,κ3
2 (κ(4,x)) + 1,κ33 (κ(4,x)) + 1), ρ(4,x) = 3,
ν−1(x) =?
1) Odredi ρ(4,x) (ostatak pri deljenju x sa 4) (ovim je odredjen tipnaredbe)
2) U zavisnosti od tipa odredi parametre naredbe koristeci funkcije κ
(kolicnik), s (sledbenik) i Kantorove dekodirajuce funkcije κ21 , κ2
2 , κ31 , κ3
2 ,κ3
3
(Teorija izracunljivosti) 17.11.2011. 7 / 31
Kodiranje programa
Binarna reprezentacija broja
Svakom prirodnom broju x ∈N na jedinstven nacin pridruzujemo binarnizapis, tj. rec cncn−1 . . .c1c0 nad {0,1} takvu da je cn = 1 ukoliko je n > 0.
cn2n + cn−12n−1 + · · ·+ c121 + c020 = (cncn−1 . . .c1c0)2
c :N×N→{0,1}c(k ,x) =‘k-ta cifra binarnog zapisa broja x ’
c(k ,x) = ρ(2,κ(2k ,x))
(Teorija izracunljivosti) 17.11.2011. 8 / 31
Kodiranje programa
Binarna reprezentacija broja
Svakom prirodnom broju x ∈N na jedinstven nacin pridruzujemo binarnizapis, tj. rec cncn−1 . . .c1c0 nad {0,1} takvu da je cn = 1 ukoliko je n > 0.
cn2n + cn−12n−1 + · · ·+ c121 + c020 = (cncn−1 . . .c1c0)2
c :N×N→{0,1}c(k ,x) =‘k-ta cifra binarnog zapisa broja x ’
c(k ,x) = ρ(2,κ(2k ,x))
(Teorija izracunljivosti) 17.11.2011. 8 / 31
Kodiranje programa
Binarna reprezentacija broja
Teorema
(∀x ∈N)(∃` ∈N)(∀k ∈N)(k > `⇒ c(k ,x) = 0)
d(x) = ‘Duzina binarnog zapisa broja x ’
= min{` ∈N | (∀k > `)c(k ,x) = 0)}
Teorema
(∀x ∈N+)d(x) 6 x
(Teorija izracunljivosti) 17.11.2011. 9 / 31
Kodiranje programa
Binarna reprezentacija broja
Teorema
(∀x ∈N)(∃` ∈N)(∀k ∈N)(k > `⇒ c(k ,x) = 0)
d(x) = ‘Duzina binarnog zapisa broja x ’
= min{` ∈N | (∀k > `)c(k ,x) = 0)}
Teorema
(∀x ∈N+)d(x) 6 x
(Teorija izracunljivosti) 17.11.2011. 9 / 31
Kodiranje programa
Binarna reprezentacija broja
Teorema
(∀x ∈N)(∃` ∈N)(∀k ∈N)(k > `⇒ c(k ,x) = 0)
d(x) = ‘Duzina binarnog zapisa broja x ’
= min{` ∈N | (∀k > `)c(k ,x) = 0)}
Teorema
(∀x ∈N+)d(x) 6 x
(Teorija izracunljivosti) 17.11.2011. 9 / 31
Kodiranje programa
Kodiranje konacnih nizova duzine bar 1
Nfin - skup konacnih nizova nad N koji su duzine bar 1d·e :Nfin→Nda1,a2, . . . ,ane= 2a1 + 2a1+a2+1 + · · ·+ 2a1+a2+···+an+n−1−1, n > 1
Teorema
d·e :Nfin1−1−→na N
Primer
d1,2,0,1e = 21 + 21+2+1 + 21+2+0+2 + 21+2+0+1+3−1
= 21 + 24 + 25 + 27−1
= 177
(Teorija izracunljivosti) 17.11.2011. 10 / 31
Kodiranje programa
Kodiranje konacnih nizova duzine bar 1
Nfin - skup konacnih nizova nad N koji su duzine bar 1d·e :Nfin→Nda1,a2, . . . ,ane= 2a1 + 2a1+a2+1 + · · ·+ 2a1+a2+···+an+n−1−1, n > 1
Teorema
d·e :Nfin1−1−→na N
Primer
d1,2,0,1e = 21 + 21+2+1 + 21+2+0+2 + 21+2+0+1+3−1
= 21 + 24 + 25 + 27−1
= 177
(Teorija izracunljivosti) 17.11.2011. 10 / 31
Kodiranje programa
Kodiranje konacnih nizova duzine bar 1
Nfin - skup konacnih nizova nad N koji su duzine bar 1d·e :Nfin→Nda1,a2, . . . ,ane= 2a1 + 2a1+a2+1 + · · ·+ 2a1+a2+···+an+n−1−1, n > 1
Teorema
d·e :Nfin1−1−→na N
Primer
d1,2,0,1e = 21 + 21+2+1 + 21+2+0+2 + 21+2+0+1+3−1
= 21 + 24 + 25 + 27−1
= 177
(Teorija izracunljivosti) 17.11.2011. 10 / 31
Kodiranje programa
Dekodiranje
Primer
d?e= 371
1. Nadji binarni zapis broja 371 + 1 = 372
372 = (101110100)2
= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20
371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.
2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1
371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1
Dakle, d2,1,0,0,1e= 371
(Teorija izracunljivosti) 17.11.2011. 11 / 31
Kodiranje programa
Dekodiranje
Primer
d?e= 371
1. Nadji binarni zapis broja 371 + 1 = 372
372 = (101110100)2
= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20
371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.
2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1
371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1
Dakle, d2,1,0,0,1e= 371
(Teorija izracunljivosti) 17.11.2011. 11 / 31
Kodiranje programa
Dekodiranje
Primer
d?e= 371
1. Nadji binarni zapis broja 371 + 1 = 372
372 = (101110100)2
= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20
371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.
2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1
371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1
Dakle, d2,1,0,0,1e= 371
(Teorija izracunljivosti) 17.11.2011. 11 / 31
Kodiranje programa
Dekodiranje
Primer
d?e= 371
1. Nadji binarni zapis broja 371 + 1 = 372
372 = (101110100)2
= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20
371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.
2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1
371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1
Dakle, d2,1,0,0,1e= 371
(Teorija izracunljivosti) 17.11.2011. 11 / 31
Kodiranje programa
Dekodiranje
Primer
d?e= 371
1. Nadji binarni zapis broja 371 + 1 = 372
372 = (101110100)2
= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20
371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.
2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1
371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1
Dakle, d2,1,0,0,1e= 371
(Teorija izracunljivosti) 17.11.2011. 11 / 31
Kodiranje programa
Dekodiranje
Primer
d?e= 371
1. Nadji binarni zapis broja 371 + 1 = 372
372 = (101110100)2
= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20
371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.
2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1
371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1
Dakle, d2,1,0,0,1e= 371
(Teorija izracunljivosti) 17.11.2011. 11 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.
...n. Poslednji clan niza ciji je kod x je
a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.
(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.
...n. Poslednji clan niza ciji je kod x je
a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.
(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.
...n. Poslednji clan niza ciji je kod x je
a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.
(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).
2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.
...n. Poslednji clan niza ciji je kod x je
a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.
(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.
3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1....
n. Poslednji clan niza ciji je kod x jea(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.
(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.
...n. Poslednji clan niza ciji je kod x je
a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.
(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.
...
n. Poslednji clan niza ciji je kod x jea(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.
(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Dekodiranje
d?e= x
1. Odrediti najpre duzinu niza ciji je kod x :
lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]
2. b(k ,x) =
{(µ i 6 x)
(∑j6i c(j ,x + 1) = k
), 1 6 k 6 lenght(x),
0, inace.
Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.
1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.
...n. Poslednji clan niza ciji je kod x je
a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.(Teorija izracunljivosti) 17.11.2011. 12 / 31
Kodiranje programa
Kodiranje programa
Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.
π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e
Primer
P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?
ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22
π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1
= 35184376291329
(Teorija izracunljivosti) 17.11.2011. 13 / 31
Kodiranje programa
Kodiranje programa
Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.
π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e
Primer
P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?
ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22
π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1
= 35184376291329
(Teorija izracunljivosti) 17.11.2011. 13 / 31
Kodiranje programa
Kodiranje programa
Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.
π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e
Primer
P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?
ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22
π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1
= 35184376291329
(Teorija izracunljivosti) 17.11.2011. 13 / 31
Kodiranje programa
Kodiranje programa
Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.
π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e
Primer
P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?
ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22
π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1
= 35184376291329
(Teorija izracunljivosti) 17.11.2011. 13 / 31
Kodiranje programa
Kodiranje programa
Primer
π(?) = 8287
1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)
P = S(2),Z(1),T(1,2), π(P) = 8287
(Teorija izracunljivosti) 17.11.2011. 14 / 31
Kodiranje programa
Kodiranje programa
Primer
π(?) = 8287
1. d?e= 8287
8287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)
P = S(2),Z(1),T(1,2), π(P) = 8287
(Teorija izracunljivosti) 17.11.2011. 14 / 31
Kodiranje programa
Kodiranje programa
Primer
π(?) = 8287
1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1
d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)
P = S(2),Z(1),T(1,2), π(P) = 8287
(Teorija izracunljivosti) 17.11.2011. 14 / 31
Kodiranje programa
Kodiranje programa
Primer
π(?) = 8287
1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 8287
2.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)
P = S(2),Z(1),T(1,2), π(P) = 8287
(Teorija izracunljivosti) 17.11.2011. 14 / 31
Kodiranje programa
Kodiranje programa
Primer
π(?) = 8287
1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)
P = S(2),Z(1),T(1,2), π(P) = 8287
(Teorija izracunljivosti) 17.11.2011. 14 / 31
Kodiranje programa
Kodiranje programa
Primer
π(?) = 8287
1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)
P = S(2),Z(1),T(1,2), π(P) = 8287
(Teorija izracunljivosti) 17.11.2011. 14 / 31
Kodiranje programa
Kodovi programa
Svakom programu P pridruzujemo njegov kod π(P).
Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .
Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu
aritmeticku funkciju f(k)P duzine k takvu da je
dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}
i za svako ~x ∈ dom(f(k)P )
f(k)P (~x) = y ⇔ P(~x) ↓ y .
(Teorija izracunljivosti) 17.11.2011. 15 / 31
Kodiranje programa
Kodovi programa
Svakom programu P pridruzujemo njegov kod π(P).
Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .
Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu
aritmeticku funkciju f(k)P duzine k takvu da je
dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}
i za svako ~x ∈ dom(f(k)P )
f(k)P (~x) = y ⇔ P(~x) ↓ y .
(Teorija izracunljivosti) 17.11.2011. 15 / 31
Kodiranje programa
Kodovi programa
Svakom programu P pridruzujemo njegov kod π(P).
Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .
Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu
aritmeticku funkciju f(k)P duzine k takvu da je
dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}
i za svako ~x ∈ dom(f(k)P )
f(k)P (~x) = y ⇔ P(~x) ↓ y .
(Teorija izracunljivosti) 17.11.2011. 15 / 31
Kodiranje programa
Kodovi programa
Svakom programu P pridruzujemo njegov kod π(P).
Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .
Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu
aritmeticku funkciju f(k)P duzine k takvu da je
dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}
i za svako ~x ∈ dom(f(k)P )
f(k)P (~x) = y ⇔ P(~x) ↓ y .
(Teorija izracunljivosti) 17.11.2011. 15 / 31
Kodiranje programa
Definicija
Za svaki prirodan broj e i svaki k > 1, neka je ϕ(k)e aritmeticka funkcija
duzine k cije vrednosti izracunava program Pe . Umesto ϕ(1)e pisacemo ϕe .
Napomena
Ako je e1 6= e2, tada je Pe1 6= Pe2 , medjutim za neko k (moguce i za svako)
moze da bude ϕ(k)e1 = ϕ
(k)e2 .
Definicija
Za svaku RM-izracunljivu funkciju f duzine k postoji prirodan broj e (tzv.
indeks funkcije f ) takav da je f ' ϕ(k)e .
(Teorija izracunljivosti) 17.11.2011. 16 / 31
Kodiranje programa
Definicija
Za svaki prirodan broj e i svaki k > 1, neka je ϕ(k)e aritmeticka funkcija
duzine k cije vrednosti izracunava program Pe . Umesto ϕ(1)e pisacemo ϕe .
Napomena
Ako je e1 6= e2, tada je Pe1 6= Pe2 , medjutim za neko k (moguce i za svako)
moze da bude ϕ(k)e1 = ϕ
(k)e2 .
Definicija
Za svaku RM-izracunljivu funkciju f duzine k postoji prirodan broj e (tzv.
indeks funkcije f ) takav da je f ' ϕ(k)e .
(Teorija izracunljivosti) 17.11.2011. 16 / 31
Kodiranje programa
Definicija
Za svaki prirodan broj e i svaki k > 1, neka je ϕ(k)e aritmeticka funkcija
duzine k cije vrednosti izracunava program Pe . Umesto ϕ(1)e pisacemo ϕe .
Napomena
Ako je e1 6= e2, tada je Pe1 6= Pe2 , medjutim za neko k (moguce i za svako)
moze da bude ϕ(k)e1 = ϕ
(k)e2 .
Definicija
Za svaku RM-izracunljivu funkciju f duzine k postoji prirodan broj e (tzv.
indeks funkcije f ) takav da je f ' ϕ(k)e .
(Teorija izracunljivosti) 17.11.2011. 16 / 31
Kodiranje izracunavanja
Pregled predavanja
1 Kodiranje programa
2 Kodiranje izracunavanja
3 Klinijeva teorema o normalnoj formi
(Teorija izracunljivosti) 17.11.2011. 17 / 31
Kodiranje izracunavanja
Za k > 1, neka je Φ(k)U aritmeticka funkcija duzine k + 1 definisana sa je
Φ(k)U (e,~x)' ϕ
(k)e (~x).
Umesto Φ(1)U pisacemo ΦU.
Da li je (za svako k) funkcija Φ(k)U izracunljiva?
Oslanjajuci se na intuitivno shvacenu izracunljivost, odgovor je ‘DA’.
(Teorija izracunljivosti) 17.11.2011. 18 / 31
Kodiranje izracunavanja
Za k > 1, neka je Φ(k)U aritmeticka funkcija duzine k + 1 definisana sa je
Φ(k)U (e,~x)' ϕ
(k)e (~x).
Umesto Φ(1)U pisacemo ΦU.
Da li je (za svako k) funkcija Φ(k)U izracunljiva?
Oslanjajuci se na intuitivno shvacenu izracunljivost, odgovor je ‘DA’.
(Teorija izracunljivosti) 17.11.2011. 18 / 31
Kodiranje izracunavanja
Za k > 1, neka je Φ(k)U aritmeticka funkcija duzine k + 1 definisana sa je
Φ(k)U (e,~x)' ϕ
(k)e (~x).
Umesto Φ(1)U pisacemo ΦU.
Da li je (za svako k) funkcija Φ(k)U izracunljiva?
Oslanjajuci se na intuitivno shvacenu izracunljivost, odgovor je ‘DA’.
(Teorija izracunljivosti) 17.11.2011. 18 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).
2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Primer
Izracunajmo Φ(2)U (24,17,15).
1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a
2 preostale koordinate (17,15) su ulaz za program P24.
1. Nadji program P24.
24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1
P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).
P24(17,15) ↓ 0.
Φ(2)U (24,17,15) = 0
(Teorija izracunljivosti) 17.11.2011. 19 / 31
Kodiranje izracunavanja
Teorema
Za svako k > 1 funkcija Φ(k)U je izracunljiva.
Dokaz. Neka je k > 1 fiksiran prirodan broj. Φ(k)U (e,~x) =?
Nadji program ciji je kod e.lenght(e) = ∑i6e ρ(2,κ(2i ,e + 1)) =‘broj komandi programa Pe ’
b(i ,e) =
{(µ j 6 e)
(∑`6j ρ(2,κ(2`,e + 1)) = i
), 1 6 i 6 lenght(e),
0, inace.
instr(i ,e) =
{kod i-te instrukcije programa Pe , 1 6 i 6 lenght(e),
0, inace.instr(e,0) = 0,instr(e,1) = b(1,e),instr(e, i + 1) = b(i + 1,e)
.(b(i ,e) + 1), i > 1.
(Teorija izracunljivosti) 17.11.2011. 20 / 31
Kodiranje izracunavanja
Teorema
Za svako k > 1 funkcija Φ(k)U je izracunljiva.
Dokaz. Neka je k > 1 fiksiran prirodan broj. Φ(k)U (e,~x) =?
Nadji program ciji je kod e.lenght(e) = ∑i6e ρ(2,κ(2i ,e + 1)) =‘broj komandi programa Pe ’
b(i ,e) =
{(µ j 6 e)
(∑`6j ρ(2,κ(2`,e + 1)) = i
), 1 6 i 6 lenght(e),
0, inace.
instr(i ,e) =
{kod i-te instrukcije programa Pe , 1 6 i 6 lenght(e),
0, inace.instr(e,0) = 0,instr(e,1) = b(1,e),instr(e, i + 1) = b(i + 1,e)
.(b(i ,e) + 1), i > 1.
(Teorija izracunljivosti) 17.11.2011. 20 / 31
Kodiranje izracunavanja
Teorema
Za svako k > 1 funkcija Φ(k)U je izracunljiva.
Dokaz. Neka je k > 1 fiksiran prirodan broj. Φ(k)U (e,~x) =?
Nadji program ciji je kod e.lenght(e) = ∑i6e ρ(2,κ(2i ,e + 1)) =‘broj komandi programa Pe ’
b(i ,e) =
{(µ j 6 e)
(∑`6j ρ(2,κ(2`,e + 1)) = i
), 1 6 i 6 lenght(e),
0, inace.
instr(i ,e) =
{kod i-te instrukcije programa Pe , 1 6 i 6 lenght(e),
0, inace.instr(e,0) = 0,instr(e,1) = b(1,e),instr(e, i + 1) = b(i + 1,e)
.(b(i ,e) + 1), i > 1.
(Teorija izracunljivosti) 17.11.2011. 20 / 31
Kodiranje izracunavanja
Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x
Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.
Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1
1 · · ·pxkk ,1).
Napomena
Broj px11 · · ·p
xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a
broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .
Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.
(Teorija izracunljivosti) 17.11.2011. 21 / 31
Kodiranje izracunavanja
Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x
Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.
Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1
1 · · ·pxkk ,1).
Napomena
Broj px11 · · ·p
xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a
broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .
Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.
(Teorija izracunljivosti) 17.11.2011. 21 / 31
Kodiranje izracunavanja
Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x
Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.
Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1
1 · · ·pxkk ,1).
Napomena
Broj px11 · · ·p
xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a
broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .
Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.
(Teorija izracunljivosti) 17.11.2011. 21 / 31
Kodiranje izracunavanja
Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x
Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.
Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1
1 · · ·pxkk ,1).
Napomena
Broj px11 · · ·p
xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a
broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .
Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.
(Teorija izracunljivosti) 17.11.2011. 21 / 31
Kodiranje izracunavanja
Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk
(k > 1) upisan broj (c)k .
regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’
c = p(c)1
1 · · ·p(c)k
k · · · Z(k)−→ c ′ = c : p(c)k
k = p(c)1
1 · · ·p0k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · S(k)−→ c ′ = c ·pk = p(c)1
1 · · ·p(c)k+1k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · T(k,`)−→ c ′ = (c : p(c)k
k ) ·p(c)`
k = p(c)1
1 · · ·p(c)`
k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · J(m,n,`)−→ c ′ = c = p(c)1
1 · · ·p(c)k
k · · ·
(Teorija izracunljivosti) 17.11.2011. 22 / 31
Kodiranje izracunavanja
Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk
(k > 1) upisan broj (c)k .
regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’
c = p(c)1
1 · · ·p(c)k
k · · · Z(k)−→ c ′ = c : p(c)k
k = p(c)1
1 · · ·p0k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · S(k)−→ c ′ = c ·pk = p(c)1
1 · · ·p(c)k+1k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · T(k,`)−→ c ′ = (c : p(c)k
k ) ·p(c)`
k = p(c)1
1 · · ·p(c)`
k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · J(m,n,`)−→ c ′ = c = p(c)1
1 · · ·p(c)k
k · · ·
(Teorija izracunljivosti) 17.11.2011. 22 / 31
Kodiranje izracunavanja
Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk
(k > 1) upisan broj (c)k .
regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’
c = p(c)1
1 · · ·p(c)k
k · · · Z(k)−→ c ′ = c : p(c)k
k = p(c)1
1 · · ·p0k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · S(k)−→ c ′ = c ·pk = p(c)1
1 · · ·p(c)k+1k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · T(k,`)−→ c ′ = (c : p(c)k
k ) ·p(c)`
k = p(c)1
1 · · ·p(c)`
k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · J(m,n,`)−→ c ′ = c = p(c)1
1 · · ·p(c)k
k · · ·
(Teorija izracunljivosti) 17.11.2011. 22 / 31
Kodiranje izracunavanja
Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk
(k > 1) upisan broj (c)k .
regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’
c = p(c)1
1 · · ·p(c)k
k · · · Z(k)−→ c ′ = c : p(c)k
k = p(c)1
1 · · ·p0k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · S(k)−→ c ′ = c ·pk = p(c)1
1 · · ·p(c)k+1k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · T(k,`)−→ c ′ = (c : p(c)k
k ) ·p(c)`
k = p(c)1
1 · · ·p(c)`
k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · J(m,n,`)−→ c ′ = c = p(c)1
1 · · ·p(c)k
k · · ·
(Teorija izracunljivosti) 17.11.2011. 22 / 31
Kodiranje izracunavanja
Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk
(k > 1) upisan broj (c)k .
regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’
c = p(c)1
1 · · ·p(c)k
k · · · Z(k)−→ c ′ = c : p(c)k
k = p(c)1
1 · · ·p0k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · S(k)−→ c ′ = c ·pk = p(c)1
1 · · ·p(c)k+1k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · T(k,`)−→ c ′ = (c : p(c)k
k ) ·p(c)`
k = p(c)1
1 · · ·p(c)`
k · · ·
c = p(c)1
1 · · ·p(c)k
k · · · J(m,n,`)−→ c ′ = c = p(c)1
1 · · ·p(c)k
k · · ·
(Teorija izracunljivosti) 17.11.2011. 22 / 31
Kodiranje izracunavanja
regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’
regs(c ,x) =
κ
(p
(c)κ(4,x)+1
κ(4,x)+1 ,c)
, ρ(4,x) = 0,
pκ(4,x)+1 · c , ρ(4,x) = 1,
κ
(p
(c)κ2
1 (κ(4,x))+1
κ21 (κ(4,x))+1
,p(c)
κ22 (κ(4,x))+1
κ21 (κ(4,x))+1
· c)
, ρ(4,x) = 2,
c , ρ(4,x) = 3.
(Teorija izracunljivosti) 17.11.2011. 23 / 31
Kodiranje izracunavanja
next(c ,x , i) =‘broj naredne instrukcije nakon primene instrukcije ciji je kodx i koja je u programu i-ta po redu na registre ciji je sadrzaj kodiran sa c ’,ako je i > 0,next(c ,x , i) = 0, ako je i = 0.
next(c ,x , i) =
0, i = 0,i + 1, ρ(4,x) 6= 3∧ i > 0,i + 1, ρ(4,x) = 3∧ i > 0∧
∧(c)κ31 (κ(4,x))+1 6= (c)κ3
2 (κ(4,x))+1,
κ33 (κ(4,x)) + 1, ρ(4,x) = 3∧ i > 0∧
∧(c)κ31 (κ(4,x))+1 = (c)κ3
2 (κ(4,x))+1.
(Teorija izracunljivosti) 17.11.2011. 24 / 31
Kodiranje izracunavanja
Kod stanja izracunavanja – σ = K2(c ,x) – u kome je kod sadrzajaregistara jednak c i kod naredne instrukcije jednak x .
REGS(e,σ) =
{regs(κ2
1 (σ), instr(e,κ22 (σ))), 1 6 κ2
2 (σ) 6 lenght(e),κ2
1 (σ), inace.
NEXT(e,σ) ={next(κ2
1 (σ), instr(e,κ22 (σ)),κ2
2 (σ)), ako je ovaj broj 6 lenght(e),0, inace.
(Teorija izracunljivosti) 17.11.2011. 25 / 31
Kodiranje izracunavanja
Kod stanja izracunavanja – σ = K2(c ,x) – u kome je kod sadrzajaregistara jednak c i kod naredne instrukcije jednak x .
REGS(e,σ) =
{regs(κ2
1 (σ), instr(e,κ22 (σ))), 1 6 κ2
2 (σ) 6 lenght(e),κ2
1 (σ), inace.
NEXT(e,σ) ={next(κ2
1 (σ), instr(e,κ22 (σ)),κ2
2 (σ)), ako je ovaj broj 6 lenght(e),0, inace.
(Teorija izracunljivosti) 17.11.2011. 25 / 31
Kodiranje izracunavanja
Kod stanja izracunavanja – σ = K2(c ,x) – u kome je kod sadrzajaregistara jednak c i kod naredne instrukcije jednak x .
REGS(e,σ) =
{regs(κ2
1 (σ), instr(e,κ22 (σ))), 1 6 κ2
2 (σ) 6 lenght(e),κ2
1 (σ), inace.
NEXT(e,σ) ={next(κ2
1 (σ), instr(e,κ22 (σ)),κ2
2 (σ)), ako je ovaj broj 6 lenght(e),0, inace.
(Teorija izracunljivosti) 17.11.2011. 25 / 31
Kodiranje izracunavanja
{σk(e,~x ,0) = K2(px1
1 · · ·pxkk ,1)
σk(e,~x , t + 1) = K2(REGS(e,σk(e,~x , t)),NEXT(e,σk(e,~x , t)))
Ako se izracunavanje Pe(~x), onda se to desava posle
µt(κ22 (σk(e,~x , t)) = 0)
koraka i kod zavrsne konfiguracije je
κ21 (σk(e,~x ,µt(κ
22 (σk(e,~x , t)) = 0))).
Φ(k)U (e,~x) = (κ2
1 (σk(e,~x ,µt(κ22 (σk(e,~x , t)) = 0))))1
Φ(k)U je izracunljiva funkcija.
(Teorija izracunljivosti) 17.11.2011. 26 / 31
Kodiranje izracunavanja
{σk(e,~x ,0) = K2(px1
1 · · ·pxkk ,1)
σk(e,~x , t + 1) = K2(REGS(e,σk(e,~x , t)),NEXT(e,σk(e,~x , t)))
Ako se izracunavanje Pe(~x), onda se to desava posle
µt(κ22 (σk(e,~x , t)) = 0)
koraka i kod zavrsne konfiguracije je
κ21 (σk(e,~x ,µt(κ
22 (σk(e,~x , t)) = 0))).
Φ(k)U (e,~x) = (κ2
1 (σk(e,~x ,µt(κ22 (σk(e,~x , t)) = 0))))1
Φ(k)U je izracunljiva funkcija.
(Teorija izracunljivosti) 17.11.2011. 26 / 31
Kodiranje izracunavanja
{σk(e,~x ,0) = K2(px1
1 · · ·pxkk ,1)
σk(e,~x , t + 1) = K2(REGS(e,σk(e,~x , t)),NEXT(e,σk(e,~x , t)))
Ako se izracunavanje Pe(~x), onda se to desava posle
µt(κ22 (σk(e,~x , t)) = 0)
koraka i kod zavrsne konfiguracije je
κ21 (σk(e,~x ,µt(κ
22 (σk(e,~x , t)) = 0))).
Φ(k)U (e,~x) = (κ2
1 (σk(e,~x ,µt(κ22 (σk(e,~x , t)) = 0))))1
Φ(k)U je izracunljiva funkcija.
(Teorija izracunljivosti) 17.11.2011. 26 / 31
Kodiranje izracunavanja
Napomena
Moguca su i drugacija kodiranja. Izbor kodiranja nije od sustinskogznacaja, vec da ono postoji.
Posledica
Svaka RM-izracunljiva funkcija je izracunljiva.
Dokaz. Neka je ψ proizvoljna k-arna RM-izracunljiva funkcija. Tadapostoji program P koji izracunava njene vrednosti. Neka je π(P) = e. Tada
je (ψ(~x)' ϕ(k)e (~x)) za svako ~x ∈Nk :
ψ(~x)' Φ(k)U (e,~x).
(Teorija izracunljivosti) 17.11.2011. 27 / 31
Kodiranje izracunavanja
Napomena
Moguca su i drugacija kodiranja. Izbor kodiranja nije od sustinskogznacaja, vec da ono postoji.
Posledica
Svaka RM-izracunljiva funkcija je izracunljiva.
Dokaz. Neka je ψ proizvoljna k-arna RM-izracunljiva funkcija. Tadapostoji program P koji izracunava njene vrednosti. Neka je π(P) = e. Tada
je (ψ(~x)' ϕ(k)e (~x)) za svako ~x ∈Nk :
ψ(~x)' Φ(k)U (e,~x).
(Teorija izracunljivosti) 17.11.2011. 27 / 31
Kodiranje izracunavanja
Napomena
Moguca su i drugacija kodiranja. Izbor kodiranja nije od sustinskogznacaja, vec da ono postoji.
Posledica
Svaka RM-izracunljiva funkcija je izracunljiva.
Dokaz. Neka je ψ proizvoljna k-arna RM-izracunljiva funkcija. Tadapostoji program P koji izracunava njene vrednosti. Neka je π(P) = e. Tada
je (ψ(~x)' ϕ(k)e (~x)) za svako ~x ∈Nk :
ψ(~x)' Φ(k)U (e,~x).
(Teorija izracunljivosti) 17.11.2011. 27 / 31
Kodiranje izracunavanja
Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu
numereciju svih k-arnih izracunljivih funkcija
jer:
za svako e, ϕ(k)e je k-arna izracunljiva funkcija,
za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je
ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,
postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve
~x ∈Nk :Φ
(k)U (e,~x) = ϕ
(k)e (~x).
(Teorija izracunljivosti) 17.11.2011. 28 / 31
Kodiranje izracunavanja
Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu
numereciju svih k-arnih izracunljivih funkcija jer:
za svako e, ϕ(k)e je k-arna izracunljiva funkcija,
za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je
ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,
postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve
~x ∈Nk :Φ
(k)U (e,~x) = ϕ
(k)e (~x).
(Teorija izracunljivosti) 17.11.2011. 28 / 31
Kodiranje izracunavanja
Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu
numereciju svih k-arnih izracunljivih funkcija jer:
za svako e, ϕ(k)e je k-arna izracunljiva funkcija,
za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je
ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,
postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve
~x ∈Nk :Φ
(k)U (e,~x) = ϕ
(k)e (~x).
(Teorija izracunljivosti) 17.11.2011. 28 / 31
Kodiranje izracunavanja
Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu
numereciju svih k-arnih izracunljivih funkcija jer:
za svako e, ϕ(k)e je k-arna izracunljiva funkcija,
za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je
ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,
postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve
~x ∈Nk :Φ
(k)U (e,~x) = ϕ
(k)e (~x).
(Teorija izracunljivosti) 17.11.2011. 28 / 31
Kodiranje izracunavanja
Posledice
Za svaki k > 1 predikat definisan sa
Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’
je primitivno rekurzivan.
Za svaki k > 1 predikat definisan sa
Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’
je primitivno rekurzivan.
Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2
1 (σk(e,~x , t)))1 = y
Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0
(Teorija izracunljivosti) 17.11.2011. 29 / 31
Kodiranje izracunavanja
Posledice
Za svaki k > 1 predikat definisan sa
Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’
je primitivno rekurzivan.
Za svaki k > 1 predikat definisan sa
Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’
je primitivno rekurzivan.
Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2
1 (σk(e,~x , t)))1 = y
Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0
(Teorija izracunljivosti) 17.11.2011. 29 / 31
Kodiranje izracunavanja
Posledice
Za svaki k > 1 predikat definisan sa
Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’
je primitivno rekurzivan.
Za svaki k > 1 predikat definisan sa
Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’
je primitivno rekurzivan.
Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2
1 (σk(e,~x , t)))1 = y
Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0
(Teorija izracunljivosti) 17.11.2011. 29 / 31
Kodiranje izracunavanja
Posledice
Za svaki k > 1 predikat definisan sa
Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’
je primitivno rekurzivan.
Za svaki k > 1 predikat definisan sa
Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’
je primitivno rekurzivan.
Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2
1 (σk(e,~x , t)))1 = y
Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0
(Teorija izracunljivosti) 17.11.2011. 29 / 31
Kodiranje izracunavanja
Posledice
Za svaki k > 1 predikat definisan sa
Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’
je primitivno rekurzivan.
Za svaki k > 1 predikat definisan sa
Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’
je primitivno rekurzivan.
Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2
1 (σk(e,~x , t)))1 = y
Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0
(Teorija izracunljivosti) 17.11.2011. 29 / 31
Klinijeva teorema o normalnoj formi
Pregled predavanja
1 Kodiranje programa
2 Kodiranje izracunavanja
3 Klinijeva teorema o normalnoj formi
(Teorija izracunljivosti) 17.11.2011. 30 / 31
Klinijeva teorema o normalnoj formi
Klinijeva teorema o normalnoj formi
Postoji unarna primitivno rekurzivna funkcija U i za svako k > 1 primitivnorekurzivna relacija Tk(e,~x ,z) koja je k + 2-arna, takve da
~x ∈ dom(ϕ(k)e ) ⇔ (∃z)Tk(e,~x ,z),
ϕ(k)e (~x)' U(µzTk(e,~x ,z)).
Dokaz. Tk(e,~x ,z)def⇔Sk(e,~x ,κ2
1 (z),κ22 (z))
U(z)def=(z)1
(Teorija izracunljivosti) 17.11.2011. 31 / 31
Klinijeva teorema o normalnoj formi
Klinijeva teorema o normalnoj formi
Postoji unarna primitivno rekurzivna funkcija U i za svako k > 1 primitivnorekurzivna relacija Tk(e,~x ,z) koja je k + 2-arna, takve da
~x ∈ dom(ϕ(k)e ) ⇔ (∃z)Tk(e,~x ,z),
ϕ(k)e (~x)' U(µzTk(e,~x ,z)).
Dokaz. Tk(e,~x ,z)def⇔Sk(e,~x ,κ2
1 (z),κ22 (z))
U(z)def=(z)1
(Teorija izracunljivosti) 17.11.2011. 31 / 31
Klinijeva teorema o normalnoj formi
Klinijeva teorema o normalnoj formi
Postoji unarna primitivno rekurzivna funkcija U i za svako k > 1 primitivnorekurzivna relacija Tk(e,~x ,z) koja je k + 2-arna, takve da
~x ∈ dom(ϕ(k)e ) ⇔ (∃z)Tk(e,~x ,z),
ϕ(k)e (~x)' U(µzTk(e,~x ,z)).
Dokaz. Tk(e,~x ,z)def⇔Sk(e,~x ,κ2
1 (z),κ22 (z))
U(z)def=(z)1
(Teorija izracunljivosti) 17.11.2011. 31 / 31