Professional Documents
Culture Documents
• Ta mašina nikada nije proradila, ali je njen algoritam ostavio dubok trag.
• Kako su vreme rada algoritma i broj koraka direktno proporcionalne veličine, nebitno je
koja će se od ovih veličina koristiti za definisanje kompleksnosti.
• Kompleksnost algoritma definisana je funkcijom f(n) koja određuje vreme rada algoritma
u zavisnosti od dimenzije problema za najnepovoljniji ulazni podatak.
• Samo kod jednostavnih struktura, kao što su linijske strukture, ispravnost se može
utvrditi pažljivim pregledom svijh koraka.
• Rekurzivne funkcije,
• Prostova mašina ,
• Tjuringova mašina,
• i mnogi drugi
DIJAGRAM- BLOK ŠEMA
• Najčešće, algoritam se predstavlja u obliku blok šeme sa jasno definisanim nizom radnji,
korak po korak.
• Grafički zapis algoritma naziva se algoritamska blok šema.
• Grafički simboli koje se koriste za pravljenje algoritamske šeme su:
Početak
Kraj
• Primer: Sastaviti algoritamsku šemu za izračunavanje izraza Z=a(b-3c)
Početak
a,b,c
Z1=3*c
Z2=b-Z1
Z=a*Z2
Kraj
da uslov ne
• Grafički prikaz razgranate linijske šeme dat je na sledećoj slici.
Početak
P1
da
Uslov P3
ne
P2
Kraj
• Primer:
a b, a b
Sastaviti algoritam za računanje vrednosti Z
a b, a b
Početak
a,b
da
a<b P=a+b
ne
P=a-b
Kraj
• Ciklične algoritamske šeme su one šeme u kojima se jedan ili više
algoritamskih koraka može izvršavati više od jedanput u toku izvršavanja
algoritma.
• Ovi koraci čine ciklus ili perlju
n 1. Učitati n
P(i)
i 3. vrati se na 2
Kraj
• Primer:
Sastaviti algoritam koji za poznato n izračunava aritmetičku sredinu zadatih brojeva
x1 , x1 , , xn x1 x1 xn
P Početak
n
x1,x2,....,xn,n
da
n=0 P=0
ne
i=1
S=0
S=S+xi
da
i=n P=S/n
ne
i=i+1
P
Kraj
• WHILE petlja Početak
n 1. unos broja n
ne
3. dok je i<n radi
i<n
da
4. ispisati vednot i
i
5. uvećati i
i=i+1
6. idi na 3
Kraj
• Primer: Sastaviti algoritam koji za poznato n izračunava sumu korišćenjem
FOR petlje.
n
S i
i 1
Početak
S=0
i=1,n
S=S+i
da
i<n
ne
Kraj
• A WHILE petlje Početak
i=1
S=0
i<n ne
da
S=S+i
i=i+1
Kraj
• Primer:
• Sastaviti algoritam koji za poznato n i x izračunava stepen y xn
Početak
x,n
y=1
da
n=0
ne
n-1=n
y=x.y
y
Kraj
EKVIVALENTNI ALGORITMI
• Za rešavanje jednog istog zadatka može se sastaviti više algoritama različitih
struktura.
1. Ako je funkcija definisana za neku vrednost n, (koja je veća ili jednaka a), tada može
da se definiše i za vrednost n+1.
Rekurzivne definicije su veoma prisutne u matematici.
Primer:
Napisati rekurzivnu definiciju prirodnih brojeva:
1) 1 je prirodni broj
2) Ako je n prirodni broj, onda je to i n+1.
• Kako je
f 1 1
f 2 2 1 1 3
f 3 2 3 1 7
f 4 2 7 1 15
f 5 2 15 1 31
f n 2n 1
• Znači, možemo da zaključimo da je
• Dokaz se izvodi matematičkom indukcijom.
1) n 1, f 1 1
•
2) n k , f k 2k 1
3) n k 1, f k 1 2k 1 1?
f k 1 2 f k 1 2 2k 1 1 2 k 1 1
f 0 1 znajući da je a 0 1
f n 1 a f n
• Izračunati f 3
• Kako je
1) a o 1
2) f 3 a f 2 a a f 1 a a a f 0 a a a 1 a 3
Primer:
• Uočimo funkciju f n n !, definisanu na skupu nenegativnih celih brojeva.
n ! n n 1 n 2 2 1
• Funkcija se može zapisati rekurzivno na sledeći način
def
f 0 1 znajući da je 0! 1
f n 1 n 1 f n
• Bitno je napomenuti da u savremenim programskim jezicima poput C/C++ i
Jave svako rekurzivno rešenje nekog problema ima i svoj iterativni
ekvivalent, tj. algoritam koji isti problem rešava bez rekurzije.
• Rekurzivni algoritam zahteva jednu ili više ulaznih veličina, a vraća jednu
sračunatu. Ta vrednost je iz koraka u korak sve bliža željenoj, iskazanoj u
uslovu izlaska.
• Algoritam u sebi sadrži naredbu if koja testira uslov izlaska i naredbu else
kojom se rekurzivno poziva sama funkcija, odnosno algoritam.
Primer:
• Rekurzivni algoritam za izračunavanje stepena
procedura : stepen(a je realan broj , n je nenegativan broj )
if n 0 then stepen a, n 1
else stepen a, n a stepen a, n 1
Primer:
• Rekurzivni algoritam za izračunavanje faktorijela
x1,x2,....,xn,n
da
n=0 P=0
ne
i=1
S=0
S=S+xi
da
i=n P=S/n
ne
i=i+1 P
Kraj
• Primer: Napisati i algoritam za ispis brojeva od 2 do20.
procedura :
for n 2 , n 20
n n2
n
end
• Napisati algoritam za sabiranje dve matrice A i B dimenzija mxn
procedura : Sab( A, B, m, n)
for i 1to m
for j 1to n
cij aij bij
end for
end for
end
ČERČOVA TEZA
• Dakle:
• Rekurzivna funkcija je jedan opšti model algoritma.
TJURINGOVA MAŠINA
• Osim Tjuringove mašine postoje i fon Nojmanova mašina, Prostova mašina, algoritmi
Markova, mašine Minskog i mnogi drugi formalizmi.
• Svi ovi sistemi su međusobno ekvivalentni, odnosno simuliraju jedni druge.
• U suštini klasa diskretnih funkcija koje te mašine mogu da izračunavaju je ista u svim
slučajevima.
• To je jedna robusna klasa funkcija koja je otporna na promene računarskih modela, a
radi se o klasi izračunljivih funkcija, odnosno svi problemi se svode na Čerčovu tezu.
TJURINGOVA MAŠINA