Upload
doancong
View
231
Download
4
Embed Size (px)
Citation preview
Princip rekurzije i matematicka indukcija
N. Ikodinovic
22.02.2013.
(Teorija algoritama) 22.02.2013. 1 / 60
Pregled predavanja
1 O algoritmima
2 Neodlucivost u matematici
3 O predmetu Teorija algoritama
4 Euklidov algoritam
5 Peanova aritmetika
6 Indukcija i rekurzija u sirem kontekstu
(Teorija algoritama) 22.02.2013. 2 / 60
O algoritmima
Pregled predavanja
1 O algoritmima
2 Neodlucivost u matematici
3 O predmetu Teorija algoritama
4 Euklidov algoritam
5 Peanova aritmetika
6 Indukcija i rekurzija u sirem kontekstu
(Teorija algoritama) 22.02.2013. 3 / 60
O algoritmima
O pojmu algoritma
Primeri algoritama su poznati prakticno u svim oblastima matematikepri cemu neki poticu jos iz antickog doba.
Rec algoritam dolazi od latinizovanog imena arapskog matematicaraAbu Dzafar Muhamed Ibn Musa Al Horezmija koji je u IX veku daoveliki doprinos matematici svojim delom Hisab al dzabr val mukabala.[Rec algebra dolazi od al dzabr.]Pocetkom XII veka jedna Al Horizmijeva knjiga je prevedena nalatinski pod naslovom Algoritmi de numero indorum [prevod: AlHorezmi o indiskoj vestini racunanja]. Tada je u Evropu stigaosavremeni pozicioni sistem zapisivanja brojeva (indijsko-arapske cifre)koji je potpuno potisnuo grcko-rimski aditivni sistem.
(Teorija algoritama) 22.02.2013. 4 / 60
O algoritmima
Primeri algoritama
Nadji NZD dva data cela broja. [ Smatra se da je Euklidovalgoritam najstariji netrivijalni algoritam koji je ostao nepromenjendo danasnjih dana.]
Resi datu linearnu Diofantovu jednacinu. [Nadji sva celobrojna resenjajednacine ax + by = c (a,b,c ∈Z).]
Odredi pribliznu vrednost kvadratnog (kubnog) korena datogdecimalnog broja na zadati broj decimala.
Resi datu linearnu (kvadratnu) jednacinu.
Nadji izvod datog polinoma.
Ispitaj da li je data iskazna formula tautologija.
Resi Rubikovu kocku.
(Teorija algoritama) 22.02.2013. 5 / 60
O algoritmima
Resi datu diofantovu jednacinu.
10. Hilbertov problem
1900. godina Da li postoji algoritam koji za svaki polinom
f (X1, . . . ,Xn) ∈Z[X1, . . . ,Xn]
utvrdjuje da li jednacina
(?) f (X1, . . . ,Xn) = 0
ima resenja u Zn?
Resenje jednacine (∗) je n-torka celih brojeva (x1, . . . ,xn) ∈Zn takva da jef (x1, . . . ,xn) = 0.Problem je resen 1970. godine i odgovor je negativan: ne postoji takavalgoritam.
(Teorija algoritama) 22.02.2013. 6 / 60
O algoritmima
Sta je algoritam?
Pojam algoritma ili efektivne procedure vekovima postoji umatematici bez precizne definicije. Neformalno, pod algoritmom sepodrazumeva mehanicki proces koji se korak po korak izvodi nadkonacnim skupom podataka, pri cemu je svaki korak nedvosmislenodefinisan, izvodi se u konacnom vremenu i u ogranicenom deluprostora.
Iako navedena recenica dosta dobro odgovara svakodnevnoj upotrebiovog pojma, ona se ne moze uzeti za (strogu) matematicku definiciju!
Navedena “definicija” nemocna je pred problemima tipa: pokazati dane postoji algoritam za resavanje nekog problema.
(Teorija algoritama) 22.02.2013. 7 / 60
Neodlucivost u matematici
Pregled predavanja
1 O algoritmima
2 Neodlucivost u matematici
3 O predmetu Teorija algoritama
4 Euklidov algoritam
5 Peanova aritmetika
6 Indukcija i rekurzija u sirem kontekstu
(Teorija algoritama) 22.02.2013. 8 / 60
Neodlucivost u matematici
Matematicka logika
Odlucivost iskazne logike
Problem valjanosti (zadovoljivosti) u iskaznoj logici jeste odluciv problem.
Neodlucivost predikatske logike
Problem valjanosti (zadovoljivosti) u predikatskoj logici nije odlucivproblem.
(Teorija algoritama) 22.02.2013. 9 / 60
Neodlucivost u matematici
Postov problem
Pretpostavimo da je dato konacno mnogo (dopustivih) domina pri cemu suna svakoj domini upisane dve reci nekog zadatog alfabeta. Na primer,{[
b
ca
],
[a
ab
],
[ca
a
],
[abc
c
]}Zadatak je napraviti niz dopustivih domina (ponavljanja su dozvoljena)tako da je rec dobijena nadovezivanjem reci zapisanih na gornjim stranamadomina jednaka reci koja se dobija nadovezivanjem reci sa donjih stranadomina.Na primer, za zadati skup dopustivih domina moguce je napraviti takav niz:[
a
ab
][b
ca
][ca
a
][a
ab
][abc
c
]
(Teorija algoritama) 22.02.2013. 10 / 60
Neodlucivost u matematici
Postov problem
Naravno, za neke skupove dopustivih domina ovakav niz nije mogucepronaci.Na primer, ako je skup dopustivih domina{[
abc
ab
],
[ca
a
],
[acc
ba
]}nije moguce forimirati odgovarajuci niz.
Da li postoji algoritam kojim se utvrdjuje moze formirati odgovarajuci nizili ne za bilo koji dati skup dopustivih domina?
Odgovor na ovo pitanje je takodje negativan: trazeni algoritam ne postoji.
(Teorija algoritama) 22.02.2013. 11 / 60
Neodlucivost u matematici
Problem reci
Reci zapisane engleskom abecedom mozemo transforimsati pomocusledecih
pravila
a ≡ ar,
ma ≡ um,
nono ≡ no,
ti ≡ te,
tima ≡ etno,
teka ≡ nost,
tema ≡ t.
Primer izvodjenja
matematika ≡ umtematika
≡ umtimatika
≡ umetnoteka
≡ umetnonost
≡ umetnost.
(Teorija algoritama) 22.02.2013. 12 / 60
Neodlucivost u matematici
Problem reci
Reci zapisane engleskom abecedom mozemo transforimsati pomocusledecih
pravila
a ≡ ar,
ma ≡ um,
nono ≡ no,
ti ≡ te,
tima ≡ etno,
teka ≡ nost,
tema ≡ t.
Zadatak 1.
Da li je stiknono≡stekno?
Da: stiknono≡steknono≡stikno.
Zadatak 2.
Da li je matematika≡art?
Ne: ???
(Teorija algoritama) 22.02.2013. 13 / 60
Neodlucivost u matematici
Opsti problem reci
Ne postoji opsti algoritam koji utvrdjuje da li su dve reci ekvivalentne ilinisu za bilo koji zadati (konacan) alfabet i dati spisak pravila.
Neresiv problem
ah ≡ ha
oh ≡ ho
at ≡ ta
ot ≡ to
tai ≡ it
hoi ≡ ih
that ≡ ithe
R. Penrouz, Carev novi um – O racunarima, umu i zakonima fizike,Informatika, Beograd, 2004.
(Teorija algoritama) 22.02.2013. 14 / 60
Neodlucivost u matematici
Poplocavanje ravni
Poznato je da se ravan moze poplocati, tj. pokriti bez preklapanja ipraznina, kvadratima, jednakostranicnim trouglovima i pravilnimsestouglovima, a da se ne moze poplocati, na primer, pravilnimpetouglovima.
Mnogi drugi oblici mogu poplocati ravan, kao, na primer, svaki odnepravilnih petouglova prikazanih na narednoj slici.
(Teorija algoritama) 22.02.2013. 15 / 60
Neodlucivost u matematici
Poplocavanje ravni
Razmatranje poplocavanja ravni prilicno se komplikuje povecavanjem brojaoblika.
(Teorija algoritama) 22.02.2013. 16 / 60
Neodlucivost u matematici
Poplocavanje ravni
Sva poplocavanja ravni prikazana naprethodnim slikama su periodicna.Grubo govoreci, to znaci da postoje bardva razlicita pravca u poplocanoj ravni ina svakom od njih beskonacno mnogotacaka iz kojih mozemo posmatratipoplocanu ravan a da ono sto vidimobude jedan te isti sablon, odnosno danam poplocana ravan izgleda potpunoisto kada je posmatramo iz bilo koje odpomenutih tacaka.
(Teorija algoritama) 22.02.2013. 17 / 60
Neodlucivost u matematici
Poplocavanje ravni
Matematickim jezikom, poplocavanje jeperiodicno ako postoje dve nezavisnetranslacije ravni koje uocenopoplocavanje prevode u sebe. Za svakoperiodicno poplocavanje ravni postojitzv. paralelogram perioda odredjenvektorima translacija koje topoplocavanje prevode u sebe.
(Teorija algoritama) 22.02.2013. 18 / 60
Neodlucivost u matematici
Poplocavanje ravni
Postoje plocice kojima se ravan moze poplocavati i periodicno ineperiodicno.
(Teorija algoritama) 22.02.2013. 19 / 60
Neodlucivost u matematici
Poplocavanje ravni
Postoji li konacan skup dozvoljenih oblika koji se mogu redjati samoneperiodicno? Postoji – Robinsonov aperiodican skup plocica.
Postoji jos aperiodicnih skupova plocica: Penrouzove plocice – zmaj istrelica.
(Teorija algoritama) 22.02.2013. 20 / 60
Neodlucivost u matematici
Poplocavanje ravni
Kako i zasto su otkriveni aperiodicni skupovi plocica?
Hao Vang je 1961. godine formulisao je problem: Postoji li postupak zaresavanje problema poplocavanja, tj. postoji li neki algoritam kojim semoze utvrditi da li dati skup mnogougaonih plocica moze poplocati ravan?Dokazao je da ce ovakav algoritam postojati ako se dokaze da svaki skup
plocica koji poplocava ravan zaparavo je poplocava periodicno.(U to vreme se verovalo da aperiodicni skupovi plocica ne postoje).
M. R. Robinson, Undecidability and nonperiodicity for tilings of the plane,Invent. Math. 12, 1971.
(Teorija algoritama) 22.02.2013. 21 / 60
O predmetu Teorija algoritama
Pregled predavanja
1 O algoritmima
2 Neodlucivost u matematici
3 O predmetu Teorija algoritama
4 Euklidov algoritam
5 Peanova aritmetika
6 Indukcija i rekurzija u sirem kontekstu
(Teorija algoritama) 22.02.2013. 22 / 60
O predmetu Teorija algoritama
Predmet Teorija algoritama
1 Izracunljive funkcije[Prirodni brojevi – matematicka indukcija i teoreme rekurzije;RAM-programi, . . . ]
2 Cercova teza[Modeli izracunljivosti: gramatike; logicki model izracunljivosti(logicko programiranje); λ -racun (funkcionalno programiranje), . . . ]
3 Univerzalni programi[Aritmetizacija; univerzalna Tjuringova masina vs racunar, . . . ]
4 Odlucivost i neodlucivost[Dijagonalizacija; problem zaustavljanja; Rajsova teorema; odlucivi ineodlucivi problemi, . . . ]
5 Teorija slozenosti[Prostorna i vremenska slozenost; Klase P i NP;Problemi SAT, HC, . . . ]
(Teorija algoritama) 22.02.2013. 23 / 60
Euklidov algoritam
Pregled predavanja
1 O algoritmima
2 Neodlucivost u matematici
3 O predmetu Teorija algoritama
4 Euklidov algoritam
5 Peanova aritmetika
6 Indukcija i rekurzija u sirem kontekstu
(Teorija algoritama) 22.02.2013. 24 / 60
Euklidov algoritam
Euklidov algoritam
Euklidov algoritam je postupak za nalazenje najveceg zajednickogdelioca dva broja.
Primer 1.
NZD(942,444) =?942 = 2 ·444 + 54
NZD(942,444) = NZD(444,54)444 = 8 ·54 + 12
NZD(444,54) = NZD(54,12)54 = 4 ·12 + 6
NZD(54,12) = NZD(12,6)12 = 2 ·6 + 0
NZD(12,6) = NZD(6,0) = 6
NZD(942,444) = 6
(Teorija algoritama) 22.02.2013. 25 / 60
Euklidov algoritam
Euklidov algoritam
1 NZD(m,0) = m, m > 02 NZD(m,n) = NZD(n,m mod n), m > 0,n > 0
[m modn =“ostatak pri deljenju m sa n”]
Primer 1.
NZD(444,942) =?NZD(444,942) = NZD(942,444mod942) Pravilo 2.
= NZD(942,444)[jer je 444 = 0 ·942 + 444, pa je 444mod942 = 444]
= NZD(942,444) = NZD(444,942mod444) Pravilo 2.= NZD(444,54)
[jer je 942 = 2 ·444 + 54, pa je 942mod444 = 54]= NZD(444,54) = NZD(54,444mod54) = NZD(54,12) Pravilo 2.= NZD(54,12) = NZD(12,54mod12) = NZD(12,6) Pravilo 2.= NZD(12,6) = NZD(6,12mod6) = NZD(6,0) Pravilo 2.= NZD(6,0) = 6 Pravilo 1.
(Teorija algoritama) 22.02.2013. 26 / 60
Euklidov algoritam
Euklidov algoritam
1 NZD(m,0) = m, m > 02 NZD(m,n) = NZD(n,m mod n), m > 0,n > 0
Jednakostima (1) i (2) potpuno je opisan postupak izracunavanjanajveceg zajednickog delioca dva broja.
Jednakostima (1) i (2) korektno je definisana funkcijaNZD :N×N→N
[N= {0,1,2, . . .} – skup prirodnih brojeva]
E1 Podeli A sa B i zapamtiostatak C .
E2 Ako je C = 0, zavrsipostupak i stampaj B;ako je C > 0, stavi da jeA := B i B := C i idi na E1.
(Teorija algoritama) 22.02.2013. 27 / 60
Euklidov algoritam
Euklidov algoritam
1 NZD(m,0) = m, m > 02 NZD(m,n) = NZD(n,m mod n), m > 0,n > 0
Jednakostima (1) i (2) potpuno je opisan postupak izracunavanjanajveceg zajednickog delioca dva broja.
Jednakostima (1) i (2) korektno je definisana funkcijaNZD :N×N→N
[N= {0,1,2, . . .} – skup prirodnih brojeva]
E1 Podeli A sa B i zapamtiostatak C .
E2 Ako je C = 0, zavrsipostupak i stampaj B;ako je C > 0, stavi da jeA := B i B := C i idi na E1.
(Teorija algoritama) 22.02.2013. 27 / 60
Euklidov algoritam
Euklidov algoritam
1 NZD(m,0) = m, m > 02 NZD(m,n) = NZD(n,m mod n), m > 0,n > 0
Jednakostima (1) i (2) potpuno je opisan postupak izracunavanjanajveceg zajednickog delioca dva broja.
Jednakostima (1) i (2) korektno je definisana funkcijaNZD :N×N→N
Definicije funkcija ovakvog tipa nazivaju se rekurzivnim (rekurentnim,induktivnim) definicijama.
Rec rekurzija potice od latinske reci recurrere koja znaci vratiti se od[recurrence = koji se vraca]
Dedekind je u svom radu iz 1888. godine. koristio termin definisanindukcijom, dok je Hilbert [1904] upotrebio rec rekurrent(e), a kasnije[1923] i rec Rekursion.
(Teorija algoritama) 22.02.2013. 28 / 60
Euklidov algoritam
Euklidov algoritam
1 NZD(m,0) = m, m > 02 NZD(m,n) = NZD(n,m mod n), m > 0,n > 0
Jednakostima (1) i (2) potpuno je opisan postupak izracunavanjanajveceg zajednickog delioca dva broja.
Jednakostima (1) i (2) korektno je definisana funkcijaNZD :N×N→N
Definicije funkcija ovakvog tipa nazivaju se rekurzivnim (rekurentnim,induktivnim) definicijama.
Rec rekurzija potice od latinske reci recurrere koja znaci vratiti se od[recurrence = koji se vraca]
Dedekind je u svom radu iz 1888. godine. koristio termin definisanindukcijom, dok je Hilbert [1904] upotrebio rec rekurrent(e), a kasnije[1923] i rec Rekursion.
(Teorija algoritama) 22.02.2013. 28 / 60
Euklidov algoritam
Euklidov algoritam
1 NZD(m,0) = m, m > 02 NZD(m,n) = NZD(n,m mod n), m > 0,n > 0
Jednakostima (1) i (2) potpuno je opisan postupak izracunavanjanajveceg zajednickog delioca dva broja.
Jednakostima (1) i (2) korektno je definisana funkcijaNZD :N×N→N
Definicije funkcija ovakvog tipa nazivaju se rekurzivnim (rekurentnim,induktivnim) definicijama.
Rec rekurzija potice od latinske reci recurrere koja znaci vratiti se od[recurrence = koji se vraca]
Dedekind je u svom radu iz 1888. godine. koristio termin definisanindukcijom, dok je Hilbert [1904] upotrebio rec rekurrent(e), a kasnije[1923] i rec Rekursion.
(Teorija algoritama) 22.02.2013. 28 / 60
Euklidov algoritam
Euklidov algoritam
1 NZD(m,0) = m, m > 02 NZD(m,n) = NZD(n,m mod n), m > 0,n > 0
Jednakostima (1) i (2) potpuno je opisan postupak izracunavanjanajveceg zajednickog delioca dva broja.
Jednakostima (1) i (2) korektno je definisana funkcijaNZD :N×N→N
Definicije funkcija ovakvog tipa nazivaju se rekurzivnim (rekurentnim,induktivnim) definicijama.
Rec rekurzija potice od latinske reci recurrere koja znaci vratiti se od[recurrence = koji se vraca]
Dedekind je u svom radu iz 1888. godine. koristio termin definisanindukcijom, dok je Hilbert [1904] upotrebio rec rekurrent(e), a kasnije[1923] i rec Rekursion.
(Teorija algoritama) 22.02.2013. 28 / 60
Peanova aritmetika
Pregled predavanja
1 O algoritmima
2 Neodlucivost u matematici
3 O predmetu Teorija algoritama
4 Euklidov algoritam
5 Peanova aritmetika
6 Indukcija i rekurzija u sirem kontekstu
(Teorija algoritama) 22.02.2013. 29 / 60
Peanova aritmetika
Aritmetika
Zadatak sa kraja XIX veka. “Srediti aritmetiku kao sto jeEuklid sredio geometriju.”
Dedekind je 1888. godine objavio spisak aksioma aritmetike medjukojima su posebno istaknuti:• matematicka indukcija i• induktivne (rekurzivne) definicije aritmetickih funkcija.
Peano je usvojio Dedekindove aksiome i formirao prvi formalniaksiomatski sistem za aritmetiku. Peanove aksiome su objavljene1889. godine.
(Teorija algoritama) 22.02.2013. 30 / 60
Peanova aritmetika
Peanova (a ne Dedekindova?!) aritmetika
(N,0,s) – struktura prirodnih brojeva0 ∈N, s :N→N,
0,1 = s(0),2 = s(s(0)),3 = s(s(s(0))),4 = s(s(s(s(0)))),5 = s(s(s(s(s(0))))) . . .
Intuitivno, polazeci od elementa 0, funkcija s generise prirodne brojeve
P1 s(n) 6= 0, za svako n iz N[0 nije sledbenik nijednog prirodnog broja; s nije na-funkcija]
P2 Ako je s(m) = s(n), onda je m = n, za sve m,n iz N[s je 1-1-funkcija]
P3 Matematicka indukcija Ako je S ⊆N takav da je
BI 0 ∈ S ,IK iz n ∈ S , sledi da s(n) ∈ S , za svako n iz N,
onda je S =N[N je najmanji (u smislu inkluzije) induktivni skup]
(Teorija algoritama) 22.02.2013. 31 / 60
Peanova aritmetika
Teoreme rekurzije
Najjednostavnija forma teoreme rekurzije
Za svaki skup X , svaki element x iz X i svaku funkciju g : X → X ,postoji jedinstvena funkcija h :N→ X takva da je
(Rec)
{h(0) = x ,h(s(n)) = g(h(n)).
(Teorija algoritama) 22.02.2013. 32 / 60
Peanova aritmetika
Nekoliko napomena
Napomena 1. Svaka funkcija h :N→ X naziva se i niz u skupu X . Tadaje uobicajeno da se umesto h(n) pise hn. Pri ovakvoj notaciji jednakosti(Rec) postaju:
(Rec)
{h0 = x ,hn+1 = g(hn).
Napomena 2. Pod nizovima skupa X cesto se podrazumevaju i funkcije sadomenom N+ = {1,2, . . .} i kodomenom X . U tom slucaju rekurzivnodefinisani nizovi se zadaju jednakostima:
(Rec)
{h1 = x ,hn+1 = g(hn).
(Teorija algoritama) 22.02.2013. 33 / 60
Peanova aritmetika
Nekoliko napomena
Napomena 3. U matematici se cesto rekurzivno definisani nizovi brojevazadaju “neformalno” – upotrebom tackica. Na primer,• Sn – zbir prvih n prirodnih brojeva: Sn = 1 + 2 + · · ·+ n. Korektnadefinicija niza je naravno rekurzivna:
(Rec)
{S1 = 1,Sn+1 = Sn + (n + 1).
• n! – proizvod prvih n prirodnih brojeva: n! = 1 ·2 · · ·n.
(Rec)
{1! = 1,(n + 1)! = n! · (n + 1).
• cn =
√2 +
√2 + · · ·+
√2︸ ︷︷ ︸
n korena
; (Rec)
{c1 =
√2,
cn+1 =√
2 + cn.
(Teorija algoritama) 22.02.2013. 34 / 60
Peanova aritmetika
Nekoliko napomena
Napomena 4. Dokazati da je zbir prvih n prirodnih brojeva jednak n(n+1)2 .
Zbir prvih n brojeva:Sn = 1 + 2 + · · ·+ n
BI 1 = 1(1+1)2
IK
IH 1 + 2 + · · ·+ n = n(n+1)2
1 + 2 + · · ·+ n + (n + 1)
= n(n+1)2 + (n + 1)
= (n+1)(n+2)2
Zbir prvih n brojeva:
(Rec)
{S1 = 1,Sn+1 = Sn + (n + 1).
BI S1 = 1 = 1(1+1)2
IK
IH Sn = n(n+1)2
Sn+1 = Sn + (n + 1)
= n(n+1)2 + (n + 1)
= (n+1)(n+2)2
(Teorija algoritama) 22.02.2013. 35 / 60
Peanova aritmetika
Primeri rekurzivno definisanih funkcija
Za svaki skup X , svaki element x iz X i svaku funkciju g : X → X ,postoji jedinstvena funkcija h :N→ X takva da je
(Rec)
{h(0) = x ,h(s(n)) = g(h(n)).
Primer 2. Neka je X =N, x = 2 i g = s =N→N i h :N→N funkcijadefinisana jednakostima:
(Rec)
{h(0) = 2,h(s(n)) = s(h(n)).
1 Koliko je h(3)?h(3) = h(s(2)) = s(h(2)) = s(h(s(1))) = s(s(h(1))) = s(s(h(s(0)))) =s(s(s(h(0)))) = s(s(s(2))) = s(s(s(s(s(0))))) = 5
2 Koliko je h(14)?
(Teorija algoritama) 22.02.2013. 36 / 60
Peanova aritmetika
Primeri rekurzivno definisanih funkcija
Primer 2. - nastavak
Funkciju h cemo oznaciti sa 2+: h(n) = 2 + n.
(Rec)
{2 + 0 = 2,2 + s(n) = s(2 + n).
Analogno za svaki fiksirani prirodan broj m definisemo funkciju:m+ :N→N jednakostima:
(Rec)
{m + 0 = m,m + s(n) = s(m + n).
(Teorija algoritama) 22.02.2013. 37 / 60
Peanova aritmetika
Teoreme rekurzije
Teorema primitivne rekurzije
Za proizvoljne skupove X1, . . . ,Xk ,Y , i proizvoljne funkcijef : X1×·· ·×Xk → Y , g : X1×·· ·×Xk ×N×Y → Y , postoji jedinstvenafunkcija h : X1×·· ·×Xk ×N→ Y takva da je
(Rec)
{h(x1, . . . ,xk ,0) = f (x1, . . . ,xk),h(x1, . . . ,xk ,s(n)) = g(x1, . . . ,xk ,n,h(n,x1, . . . ,xk)).
Definicija
Za funkciju h definisanu jednakostima (Rec) kazemo da je dobijenaprimitivnom rekurzijom funkcija f i g , i pisemo h = Rec(f ,g).
(Teorija algoritama) 22.02.2013. 38 / 60
Peanova aritmetika
Sabiranje prirodnih brojeva
Primer 3.
U primeru 2 su definisane funkcije 0+,1+,2+,3+, . . . ,m+, . . . :N→NDa li dati niz funkcija odredjuje funkciju + :N×N→N
+(m,n) = m + n.
Prema definicijama iz primera 2 imamo da je
(Rec)
{+(m,0) = m,+(m,s(n)) = s(+(m,n)).
Dakle, funkcija + :N×N→N se dobija primitivnom rekurzijom funkcija:
i :N→N, i(x) = x , i
g :N×N×N→N, g(x ,k ,y) = s(y).
(Teorija algoritama) 22.02.2013. 39 / 60
Peanova aritmetika
Sabiranje prirodnih brojeva
Definicija i osobine sabiranja
(Rec)
{(Rec1) m + 0 = m,(Rec2) m + s(n) = s(m + n).
Lema 1 (∀n) 0 + n = n
Dokaz.
BI 0 + 0 = 0 prema (Rec1).
IK
IH 0 + n = n.0 + s(n) = s(0 + n) [prema (Rec2)]
= s(n) [prema [IH]] ♣
(Teorija algoritama) 22.02.2013. 40 / 60
Peanova aritmetika
Sabiranje prirodnih brojeva
Lema 2 (∀m,n) m + s(n) = s(m) + n
Dokaz.
Neka je m proizvoljan prirodan broj. Dokaz teoreme sprovodimoindukcijom po n.
BI m + s(0) = s(m + 0) [prema (Rec2)]= s(m) [prema (Rec1)]= s(m) + 0 [prema (Rec1)]
IK
IH m + s(n) = s(m) + n.m + s(s(n)) = s(m + s(n)) [prema (Rec2)]
= s(s(m) + n) [prema [IH]]= s(m) + s(n) [prema (Rec2)]. ♣
(Teorija algoritama) 22.02.2013. 41 / 60
Peanova aritmetika
Sabiranje prirodnih brojeva
Teorema (∀m,n) m + n = n + m
Dokaz.
Neka je m proizvoljan prirodan broj. Dokaz teoreme sprovodimoindukcijom po n.
BI m + 0 = m [prema (Rec1)]0 + m = m [prema Lemi 1: (∀n) 0 + n = n]
IK
IH m + n = n + m.m + s(n) = s(m + n) [prema (Rec2)]
= s(n + m) [prema [IH]]= n + s(m) [prema (Rec2)]= s(n) + m [prema Lemi 2: (∀m,n) m + s(n) = s(m) + n] ♣
Zadatak Dokazati (∀k ,m,n) (k + m) + n = k + (m + n).(Teorija algoritama) 22.02.2013. 42 / 60
Peanova aritmetika
Mnozenje prirodnih brojeva
· :N×N→N(Rec)
{m ·0 = 0,m · s(n) = (m ·n) + m.
Mnozenje · :N×N→N se dobija primitivnom rekurzijom funkcija:
0 :N→N, 0(x) = 0, i
g :N×N×N→N, g(x ,k ,y) = y + x .
Zadatak
(∀k ,m,n) (k ·m) ·n = k · (m ·n)
(∀k ,m,n) m ·n = n ·m(∀k ,m,n) k · (m + n) = k ·m + k ·n
(Teorija algoritama) 22.02.2013. 43 / 60
Peanova aritmetika
Uredjenje prirodnih brojeva
6⊆N×Nm 6 n ⇔ (∃k) m + k = n
Osobine
(∀n) n 6 n
(∀m,n) m 6 n∧n 6m⇒m = n
(∀k ,m,n) k 6m∧m 6 n⇒ k 6 n
(∀m,n) m 6 n∨n 6m
(∀k ,m,n) m 6 n⇔m + k 6 n + k
(∀k ,m,n) m 6 n⇒m ·k 6 n ·k(∀k ,m,n) 0 < k ∧m ·k 6 n ·k ⇒m 6 n
Princip najmanjeg elementa. Svaki neprazan podskup S od N imanajmanji element, tj. postoji n iz S takav da je n6 x , za svako x iz S .
(Teorija algoritama) 22.02.2013. 44 / 60
Peanova aritmetika
Potpuna matematicka indukcija
Princip potpune matematicke indukcije
Ako je S(n) bilo koje svojstvo prirodnih brojeva. Tada je
(∀n)((∀k < n)S(k)⇒ S(n))⇒ (∀n)S(n)
posledica Peanovih aksioma.
Princip potpune matematicke indukcije ekvivalentan je principu najmanjegelementa.
(∀n)((∀k < n)¬S(k)⇒¬S(n))⇒ (∀n)¬S(n)⇔¬(∀n)¬S(n)⇒¬(∀n)((∀k < n)¬S(k)⇒¬S(n))⇔ (∃n)S(n)⇒ (∃n)((∀k < n)¬S(k)∧S(n))
(Teorija algoritama) 22.02.2013. 45 / 60
Peanova aritmetika
Teorema koja povezuje +, ·, 6, . . .
Teorema o ostatku
Neka je n bilo koji prirodan broj veci od 0. Za svaki prirodan broj mpostoje jedinstveni brojevi q i r iz N, takvi da je
(∗) m = n ·q + r , 06 r < n.
Jedinstveno odredjeni brojevi q i r , za koje vazi (∗) nazivaju se redomkolicnik i ostatak pri deljenju broja m prirodnim brojem n.Funkcije κ :N+×N→N i ρ :N+×N→N definisemo sa
κ(n,m) = kolicnik pri deljenju broja m brojem n
iρ(n,m) = ostatak pri deljenju broja m brojem n.
Umesto κ(n,m) cesto se pise[m
n
]; a umesto ρ(n,m) se pise m mod n.
(Teorija algoritama) 22.02.2013. 46 / 60
Peanova aritmetika
Prosirenje funkcija κ i ρ ; Deljivost prirodnih brojeva
Funkcije κ i ρ prosirujemo na N×N jednakostima
κ(0,m) = 0, odnosno ρ(0,m) = m.
|⊂N×Nm | n ⇔ ρ(m,n) = 0.
Osobine
(∀n) 1 | n(∀n) n | n(∀m,n) m | n∧n |m⇒m = n
(∀k ,m,n) k |m∧m | n⇒ k | n...
(Teorija algoritama) 22.02.2013. 47 / 60
Peanova aritmetika
Prosti brojevi
Definicija
Prirodan broj p je prost ukoliko je veci od 1 i jedini brojevi kojima je deljivsu 1 i p. Prirodan broj veci od 1 je slozen ako nije prost.
P= {2,3,5,7,11,13,17,19,23,29,31,37,39,41, . . .}
Teorema
Svaki prirodan broj veci od 1 deljiv je bar jednim prostim brojem.
Teorema
Prostih brojeva ima beskonacno mnogo.
Dokaz. P. S. Neka je P= {p1, . . . ,pk}.Broj p1 · · ·pn + 1 veci je od 1, ali nije deljiv ni jednim prostim brojem.Kontradikcija! ♣
(Teorija algoritama) 22.02.2013. 48 / 60
Peanova aritmetika
Osnovna teorema aritmetike
Teorema o rastavljanju na proste cinioce
Ako je n prirodan broj veci od 1, onda postoje jedinstveni prosti brojevip1, p2, . . . , pk takvi da je p1 < p2 < · · ·< pk i jedinstveni prirodni brojevi`1, `2, . . . , `k veci od 0 takvi da je
n = p`11 p`2
2 · · ·p`kk .
(Teorija algoritama) 22.02.2013. 49 / 60
Indukcija i rekurzija u sirem kontekstu
Pregled predavanja
1 O algoritmima
2 Neodlucivost u matematici
3 O predmetu Teorija algoritama
4 Euklidov algoritam
5 Peanova aritmetika
6 Indukcija i rekurzija u sirem kontekstu
(Teorija algoritama) 22.02.2013. 50 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 1 – niz reci (stringova)
Princip rekurzije
Niz reci (stringova) nadalfabetom {a,b} definisan je sa:
(Rec)
{w0 = a,wn+1 = abwnba.
Odrediti w3.
w3 = abw2ba= ababw1baba= abababw0bababa= ababababababa.
Princip indukcije
Dokazati da za svako n rec wn
ima neparan broj slova.
BI |w0|= |a|= 1
IK
IH |wn|= 2k + 1|wn+1|= |abwnba|
= |wn|+ 4= 2k + 5
Zadatak. Dokazati da je za svakon rec wn palindrom.
(Teorija algoritama) 22.02.2013. 51 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 2 – iskazne formule
Iskazne formule su neke od reci nad alfabetom
A = {¬,∧,∨,⇒,),(}∪{>,⊥}∪{pn | n ∈N}
Definicija 1.1 Simboli >, ⊥ i pn, n ∈N su iskazne formule.2 Ako je α iskazna formula, onda je i (¬α) iskazna formula.3 Ako su α i β iskazne formule, onda su i (α ∧β ), (α ∨β ), (α ⇒ β )
iskazne formule.4 Iskazne formule su reci nad A koje se mogu dobiti samo primenom
prethodna tri pravila.
Definicija 1′. Skup iskaznih formula For je najmanji skup reci nadalfabetom A takav da
1 >,⊥ ∈ For i {pn | n ∈N} ⊆ For.2 Ako α ∈ For, onda (¬α) ∈ For.3 Ako α,β ∈ For, onda (α ∧β ),(α ∨β ),(α ⇒ β ) ∈ For.
(Teorija algoritama) 22.02.2013. 52 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 2 – iskazne formule
Definicija 1′′.
1 For(0) = {>,⊥}∪{pn | n ∈N}2 For(n + 1)
= {(¬α) | α ∈ For(n)}∪{(α ∗β ) | α,β ∈ For(n),∗ ∈ {∧,∨,⇒}}3 For =
⋃n∈NFor(n)
Definicija 1′′′.
For ::= {>,⊥}∪{pn | n ∈N} | (¬For) | (For∧For) | (For∨For) | (For⇒ For)
Znak “::=” citamo moze biti oblika, a znak “|” kao ili.
(Teorija algoritama) 22.02.2013. 53 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 2 – iskazne formule
var(α) =“skup iskaznih slova koja se pojavljuju u α”
var : For→P({pn | n ∈N})P(X ) – skup svih podskupova od X ; partitivni skup od X
var(>) = var(⊥) = /0, var(pn) = {pn}var((¬α)) = var(α)var((α ∗β )) = var(α)∪var(β )
var(((p1∧⊥)⇒ p2)) = var((p1∧⊥))∪var(p2)= var(p1)∪var(⊥)∪var(p2) = {p1}∪ /0∪{p2}= {p1,p2}.
Pot(α) =“skup potformula formule α”
Pot : For→P(For)
Pot(>) = {>}, Pot(⊥) = {⊥}, Pot(pn) = {pn}Pot((¬α)) = Pot(α)∪{(¬α)}Pot((α ∗β )) = Pot(α)∪Pot(β )∪{(α ∗β )}
(Teorija algoritama) 22.02.2013. 54 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 2 – iskazne formule
Data je valuacija iskaznih slova v : {pn | n ∈N}→ {true, false}.v : For→{true, false}
v(>) = true, v(⊥) = false, v(pn) = v(pn)
v((¬α)) =∼ v(α) v((α ∧β )) = v(α)� v(β )
x ∼ x
true falsefalse true
� true falsetrue true falsefalse false false
v((α ∨β )) = v(α)⊕ v(β ) v((α ⇒ β )) = v(α) v(β )
⊕ true falsetrue true truefalse true false
true falsetrue true falsefalse true true
(Teorija algoritama) 22.02.2013. 55 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 3 – aritmetika
Var = {x ,y ,z ,x1, . . .} – prebrojiv skup promenljivih
Aexp – aritmeticki izrazi
Aexp ::=Z | Var | Aexp + Aexp | Aexp−Aexp | Aexp ·Aexp
Bexp – bulovski izrazi (formule)
Bexp ::= {>,⊥} | Aexp = Aexp | Aexp6 Aexp | ¬Bexp | Bexp∧Bexp
Com – programi
Com ::= stop | Var := Aexp | Com;Com | if Bexp then Com else Com|while Bexp do Com
(Teorija algoritama) 22.02.2013. 56 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 3 – aritmetika
σ : Var→Z – valuacija promenljivih
Izracunavanje vrednosti aritmetickih izraza za datu valuaciju
n ∈Z: 〈n,σ〉 → n
v ∈ Var: 〈v ,σ〉 → σ(v)
〈a′,σ〉 → n′ 〈a′′,σ〉 → n′′
〈a′+ a′′,σ〉 → n, n = n′+ n′′
〈a′,σ〉 → n′ 〈a′′,σ〉 → n′′
〈a′−a′′,σ〉 → n, n = n′−n′′
〈a′,σ〉 → n′ 〈a′′,σ〉 → n′′
〈a′ ·a′′,σ〉 → n, n = n′ ·n′′
(Teorija algoritama) 22.02.2013. 57 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 3 – aritmetika
σ : Var→Z – valuacija promenljivih
Izracunavanje vrednosti bulovskih izraza za datu valuaciju
〈>,σ〉 → true, 〈⊥,σ〉 → false〈a′,σ〉 → n′ 〈a′′,σ〉 → n′′
〈a′ = a′′,σ〉 → true, ako je n′ = n′′
〈a′,σ〉 → n′ 〈a′′,σ〉 → n′′
〈a′ = a′′,σ〉 → false, ako je n′ 6= n′′
〈a′,σ〉 → n′ 〈a′′,σ〉 → n′′
〈a′ 6 a′′,σ〉 → true, ako je n′ 6 n′′
〈a′,σ〉 → n′ 〈a′′,σ〉 → n′′
〈a′ 6 a′′,σ〉 → false, ako je n′ > n′′
〈b,σ〉 → true〈¬b,σ〉 → false
,〈b,σ〉 → false〈¬b,σ〉 → true
,
〈b′,σ〉 → true 〈b′′,σ〉 → true〈b′∧b′′,σ〉 → true
,〈b′,σ〉 → true 〈b′′,σ〉 → false
〈b′∧b′′,σ〉 → false, · · ·
(Teorija algoritama) 22.02.2013. 58 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 3 – aritmetika
Ako je n ∈Z i v ∈ Var, onda je σ [n/v ] : Var→Z valuacija data sa:
σ [n/v ](u) =
{n ako je u promenljiva v ,
σ(u) inace .
Izvrsavanje komandi za datu valuaciju promenljivih
〈stop,σ〉 → σ ,〈a,σ〉 → n
〈v := a,σ〉 → σ [n/v ], v ∈ Var
〈c ′,σ〉 → σ ′ 〈c ′′,σ ′〉 → σ ′′
〈c ′;c ′′,σ〉 → σ ′′
〈b,σ〉 → true 〈c ′,σ〉 → σ ′
〈if b then c ′ else c ′′,σ〉 → σ ′,〈b,σ〉 → false 〈c ′′,σ〉 → σ ′
〈if b then c ′ else c ′′,σ〉 → σ ′
〈b,σ〉 → false〈while b do c ,σ〉 → σ
〈b,σ〉 → true 〈c ,σ〉 → σ ′′ 〈while b do c,σ ′′〉 → σ ′
〈while b do c ,σ〉 → σ ′
(Teorija algoritama) 22.02.2013. 59 / 60
Indukcija i rekurzija u sirem kontekstu
Primer 3 – aritmetika
EUKLID = if ¬(0> X ∧0> Y )then stopelse while ¬X = Y do
if X 6 Ythen X := X −Yelse Y := Y −X
(Teorija algoritama) 22.02.2013. 60 / 60