You are on page 1of 13

1.

Kako se definiu dimenzioni broj primjerka n, vremenska slozenost


T(n) i prostorna slozenost S(n) jednog programa, u sluaju Tjuringove
maine?
Razmotrimo jednu odreenu tablicu ili program Tjur maine. Definiimo
sloenost tog programa. U trenutku putanja u rad maine, na traci je zapisan
ulazni podatak. Def. najprije veliinu ili dimenzioni broj n tog ulaznog
podatka. Smatramo upotrebljenim sva polja koja sadre znak razliit od blanko.
Smatramo upotrebljenim i pocetno radno polje. Polje se smatra upotrebljenim i
kada desno od njega ima bar jedno upotrebljeno polje. Ukupan broj
upotrebljenih polja i jeste n. Vidimo da ima vie poetnih pozicija ili vie
primjeraka zadatka kojima odgovara jedan te isti dimenzioni broj n. Neka
maina izbroji svoje. Mi izbrojimo koliko je koraka ili taktova izvela. Uoimo
maksimum broja koraka po svim ulazima veliine n. Uoenu brojnu vrijednost
oznaimo sa T(n) i nazovimo je vremenskom sloenou. Posmatramo za razne
n, pa imamo funkciju vremenske sloenosti n- >T(n) odreenog programa.
Recimo, ako je poetna pozicija ]a1a0a0a0a0 onda je n=4. Postoje i druge poetne
pozicije kojima odgovara n=4. Neka broj izvrenih koraka za razne poetne
pozicije sa n=4 iznosi jednom 20, jednom 18, jednom 14 i sl. Tada e biti T(4) =
20.
Dakle, ako postoji bar jedan ulaz veliine n takav da maina sa tim ulaznim
podatkom radi vjeno, onda se za to n stavlja da je T(n) = +. Ako Tjuringova
maina ija se sloenost razmatra slui za raunanje f-je od jedne promjenljive
onda je njen ulazni podatak neka rije
.
Formalna definicija. Neka niz( ) bude niz konfiguracija maine u sluaju da
je u poetnoj poziciji upisana na kanonski nain rije
Neka je l(niz( )) bude
duina niza. Imamo:
| |
(
)
Osim vremenske sloenosti T, definise se i prostorna sloenost S jednog
konkretnog programa. Za poetnu poziciju n mi izbrojimo koliko je polja
upotrebljeno tokom rada maine odnosno koliko se najvie tokom rada maine
glava trake pomjerila udesno. Maksimalni broj upotrebljenih polja, po svim
ulazima veliine n oznaimo sa S(n). Ako postoji bar jedan ulaz velicine n takav
da se glava neogranieno pomijera udesno onda se za to n stavlja da je
S(n)= +.

2. Kako se definiu obim ulaza n, vremenska sloenost T(n) i prostorna


sloenost S(n) odreenog programa za raunar?
Obim ulaza n je broj bitova potrebnih da se izraze ili da se zapiu ulazni
podaci programa. Za definisanje vremenskog troka gleda se broj izvrenih
taktova tokom rada programa. Dakle T(n) je maksimum broja izvrenih taktova,
po svim ulazima veliine n. Za definisanje prostornih zahtjeva, gleda se broj
bajta ili broj memorijskih rijei potrebnih za podatke (potrebnih za ulazne
podatke, meurezultate i rezultate).
3. ta su to dobar i rav algoritam (efikasan i neefikasan)? ta je to lak,
odnosno teak zadatak? Navedite primjere.
Ako je funkcija T = T(n) polinom onda se kae da je algoritam efikasan. Na
primjer, T(n) = n2. Isto se kae i u sluaju da se funkcija T povinuje nekom
polinomu, tj. u sluaju da postoji polinom p=p(n) takav da je T(n)p(n), za
svako n. Nasuprot tome, razmotrimo algoritam cija je funkcija slozenosti takva
da se ne povinuje nikojem polinomu (takva da ne postoji polinom kome bi se ta
funkcija povinovala). Za takav polinom se kae da je rav ili neefikasan. Na
primjer, T(n) = 2n.
Za rjeavanje jednog zadatka, razni programeri predloie razne programe,
ija je sloenost razliita. Ako je predloeni algoritam neefikasan onda to samo
po sebi jo uvijek ne znai da je i sami zadatak teak. Prirodno je za sloenost
zadatka proglasiti sloenost najboljeg (najefikasnijeg) algoritma od svih
moguih algoritama koji slue za njegovo rjeavanje.
Za zadatak se kae da je lak ili da je lako rjeiv ako za njega postoji bar jedan
algoritam ija je sloenost polinomska. U suprotnom sluaju za zadatak se kae
da je teak ili da je teko rjeiv ili da je eng. intractable.
Primjeri: 1) Da lie diofantska jednaina ima cjelobrojno rjeenje (nerjeiv);
2) Zadatak o poluproirenom regularnom izrazu, da li odgovarajui jezik ima
prazan komplement (teak)
3) Zadatak o podjeli ili o particiji ili o kameniima. Ima nekoliko kamenia
ije su teine cijeli brojevi. Mogu li se rasporediti na dva tasa vage tako da onda
vaga bude u ravnotei (algoritamski rjeiv, ne zna se teina).
4) Zadatak o Ojlerovoj marruti (lak).

4. Zadatak o podjeli (o particiji) i kako se definie dimenzioni broj


primjerka n? Kojoj klasi pripada taj zadatak?
Zadatak o podjeli ili o particiji ili o kameniima. Ima nekoliko kamenia
ije su teine cijeli brojevi. Mogu li se rasporediti na dva tasa vage tako da onda
vaga bude u ravnotei. Ili: mogu li se dati prirodni brojevi x1,x2,...,xn podijeliti
u dvije grupe tako da zbir svih lanova prve grupe bude jednak zbiru svih
lanova druge grupe.
Moe da se rijei pregledanjem svih mogunosti. Upravo, svakoj podjeli
odgovara jedan podskup skupa od n lanova. Tako da ima 2 n mogunosti za
prvu grupu odnosno za podjelu. Za svaku mogunost, ispitati da li zadovoljava.
Predloeno rjeenje je neefikasno, odnosno, ono ima eksponencijalnu sloenost.
Ilustrovaemo pojam primjerka zadatka i pojam dimenzionog broja ili
veliine primjerka n, na primjeru zadatka o podjeli.
Jedan mogui primjerak je: zadata su tri prirodna broja, i to upravo x1=10,
x2=14 i x3=4. Za ovaj primjerak, odgovor na postavljleno pitanje je da.
Mogui primjerak: 1,1,1,1,1,1,2,2,2,2. Odgovor je da.
Mogui primjerak: 11,13,17,100. Odgovor je ne.

5. Grubi opis maine RAM: dvije trake, memorija, registri AC i LC


RAM je maina sa sluajnim pristupom, tj. maina sa proizvoljnim pristupom
registrima. RAM rauna sa cijelim brojevima ija veliina nije ograniena.
Program po kome se rauna ne mijenja se tokom svog izvravanja, tako da se
moe rei da se program nalazi smjeten van memorije.
Sastavljena je od programa, memorije i dvije trake ulazne i izlazne.
Memorija se sastoji od neogranienog broja registara (lokacija). Pojedini registar
moe da uva proizvoljno veliki cio broj. Ulazna traka je neograniena i ima
svoju glavu, izlazna traka takoe. Ulazna traka je niz kvadrata, svaki kvadrat
sadri jedan cio broj. Kada se proita vrijednost iz jednog kvadrata onda se
glava trake pomjeri za jedno mjesto udesno. Izlazna traka je takoe podijeljena
na kvadrate, koji su u poetku svi prazni. Kada se u jedan kvadrat upie neka
vrijednost onda se glava trake pomjeri za jedno mjesto udesno. Maina RAM

modelira kompjuter koji je jedno-akumulatorski i u kome nije dozvoljeno da


program mijenja samog sebe. Kada se kae jedno-akumulatorski kompjuter
onda to znai da postoji jedan poseban registar (akumulator) koji se koristi kada
treba da se izvede neka aritmetika operacija. Budui da nije dozvoljeno da
naredbe (djelovanjem programa) budu izmijenjene, to se obino kae da
program za RAM nije smjeten u memoriji.
Raunanja se obavljaju u poetnom registru r0. Za r0 se kae da je
akumulator, skraeno ac. AC moe da sadri ma koji cio broj (kao uostalom i
svaki drugi memorijski registar).
Neka se program P izvrava. elimo da sagledamo trenutno stanje njegovog
izvravanja. To stanje odreuju dvije veliine c i LC. Za c elimo da sagledamo
trenutni sadraj svih registara. Neka c(i) oznaava sadraj i-tog memorijskog
registra (registra ri, registra i); tako da je i0 i c(i) D. Tako da je c
preslikavanje, c:N0 D. Za c se kae da je memory map (memorijska karta). LC
je skracenica za location counter (ukaziva poloaja, programski broja). LC
odreuje koja naredba se sljedea izvrava.

6. Model RAM: tri vrste operanda ( =i, i i *i) i vrijednosti operanada


v(a).
Argument operacije moe da bude zadat na jedan od tri naina.
1)Neposredno. 2)Adresom registra u kome se uva argument. 3)Adresom
registra u kome se uva adresa registra koji sadri argument: adresa adrese.
Drugim rijeima, operand u naredbi moe da bude =i ili i ili *i. 1) =i znai
prosto i; ovdje je i cio broj. 2) i upuuje na i-ti registar tj. i znai sadraj i-tog
registra; ovdje je i 0. 3) *i znai sadraj j-tog registra, gdje je j cio broj koji se
uva u i-tom registru; ovdje je i
U oznaci v(a), a je operand, v(a) je vrijednost operanda a. Znamo da a moe
da bude =i ili i ili *i. Po definiciji je i 0. Ako je i 0 onda se maina zaustavlja.

7. 12 vrsta naredbi i njihov smisao

8. Definisati vremensku sloenost programa za RAM po kriterijumu


uniformne cijene, odnosno po kriterijumu logaritamske cijene
Vremenska sloenost programa za RAM je jedna funkcija f: N N. Brojna
vrijednost f(n) jednaka je maksimumu, preko svih ulaza velicine n, zbira
vremena potroenih od svake naredbe koja je izvrena. Vremenska sloenost
oekivanog sluaja jednaka je srednjoj vrijednosti, preko svih ulaza veliine n,
tog istog zbira. Ako se umjesto vrijeme koje se potroi za svaku izvrenu
naredbu kae prostor koji se upotrebi za svaki odnosni registar onda se dobija
definicija prostorne sloenosti programa za RAM.
U sluaju kriterijuma uniformne cijene imamo sljedee. 1) Izvravanje jedne
bilo koje naredbe za RAM zahtijeva ili potroi jednu vremensku jedinicu (jednu
mili-sekundu). 2) Svaki registar zahtijeva jednu prostornu jedinicu.
Drugi kriterijum je kriterijum logaritamske cijene. Za pripremu, definie se
tzv. cjelobrojna logaritamska funkcija, u oznaci l, gdje je l: D D. Sljedea
relacija definie tu funkciju:

9. Kako se definie veliina primjerka zadatka?

10. Model RASP

11.Apstrakcije maine RAM: pravolinijski programi

12.Apstrakcije maine RAM: bit po bit

13. Apstrakcije maine RAM: drveta odluivanja

14. Primjer programa za model M: rad sa nizom

15. Primjer programa za model M: rad sa potprogramom

16. ta je to bazna adresa potprograma i ta je to relokacija potprograma?

17. BOOT STRAP LOADER

18. Univerzalna Tjuringova maina

You might also like