50
ALGORITAM – KLJUČNI KONCEPTI Univerzitet u Istočnom Sarajevu Filozofski fakultet Odsjek: matematika i računarstvo Predmet: Računarske mreže Student: Jovana Janković Mentor: Prof. Dr Milorad Banjanin

ALGORITAM – KLJUČNI KONCEPTI

Embed Size (px)

DESCRIPTION

Univerzitet u Istočnom Sarajevu Filozofski fakultet Odsjek: matematika i računarstvo Predmet : Računarske mreže. ALGORITAM – KLJUČNI KONCEPTI. Mentor: Prof. Dr Milorad Banjanin. Student: Jovana Janković. Uvedimo pojam niza. - PowerPoint PPT Presentation

Citation preview

Page 1: ALGORITAM – KLJUČNI KONCEPTI

ALGORITAM – KLJUČNI KONCEPTI

Univerzitet u Istočnom SarajevuFilozofski fakultet

Odsjek: matematika i računarstvoPredmet: Računarske mreže

Student:Jovana Janković

Mentor:

Prof. Dr Milorad Banjanin

Page 2: ALGORITAM – KLJUČNI KONCEPTI

Nizove σ0, σ1, σ2, σ3, .. sortirajmo u kanonski red, odnosno povećavajući dužinu, i za istu dužinu, povećavajmo vrijednosti

odgovarajućih binarnih brojeva, polazeći od praznog niza. Imamo:

Npr. Binarni nizovi se mogu staviti u uzajamnu korespodenciju sa prirodnim brojevima 0, 1, 2, ... Za ovakve nizove, u terminologiji teorije skupova, kažemo

da su prebrojivi.

Kada su 1930-ih Alan Tjuring (eng. Alan Turing) i drugi logičari došli do zvučne definicije algoritma, informatika je tada zaživjela, iako jos nisu ni bili

izmišljeni kompjuteri (računari). Algoritmi, kao temelj svega, pratili su razvoj ove nove nauke sve do

Interneta i preko Web ere.

Usvajajući numeričku induktivnost kanonskog reda, za dati niz σi možemo rekonstruisati za konačno

vrijeme njegov broj , i obrnuto bez obzira na dužinu niza. Imajmo u vidu da pričamo o nizovima konačne

dužine.

Page 3: ALGORITAM – KLJUČNI KONCEPTI

Galileo je ukazivao na neke neočekivane činjenice, koje nastaju pri bavljenju sa

beskonačnosti, skrećući posebnu pažnju na „paradoks kvadrata“.

Svaki pozitivan cio broj, primijetio je, ima kvadrat dobijen množenjem tog broja samim sobom.

Dakle, ima onoliko cijelih brojeva koliko i kvadrata. Kako god, postoji beskonačan broj prirodnih brojeva, kao npr. 3, 5, i

td. koji nisu kvadrati nijednog cijelog broja, pa treba smatrati da ima više cijelih brojeva, nego kvadrata.

Egzistencija beskonačnosti bila je predmet razmatranja do

Aristotela, koji je razriješio bilo koju sumnju da beskonačnost ne postoji.

Na primer, rekao je:

Brojevi nikad ne završavaju (brojanju nema kraja).

„Ove poteškoće nastaju kada raspravljamo o beskonačnosti sa našim ograničenim mislima“, dok su posmatrane činjenice savršeno normalne. U suštini, svaka vrsta ovakvog paradoksa može biti zamišljena.

Page 4: ALGORITAM – KLJUČNI KONCEPTI

Što to razlikuje beskonačan skup od konačnog?

• Možemo izvaditi neke elemente iz • beskonačnog skupa

bez da se pritom smanji njegova veličina – Bernhard Bolzano 1840-ih.

• Drugim riječima: beskonačan skup se može staviti u bijekciju s nekim svojim pravim podskupom,

a konačan ne.

Page 5: ALGORITAM – KLJUČNI KONCEPTI

Bijekcija je funkcija sa svojstvom da je svaki element kodomena pridružen tačno jednom elementu domena.

Skup A ima jednako mnogo elemenata kao i skup Bako postoji bijekcija među njima!

Page 6: ALGORITAM – KLJUČNI KONCEPTI

Uzmimo, na primjer pozitivne racionalne brojeve, npr. one koji se izražavaju kao odnos dva prirodna broja, plus broj nula.

Kanonski poredak ovdje može biti definisan preko uređenja racionalnih brojeva , povećanjem vrijednosti zbira brojioca i imenioca i za istu vrijednost ove sume, povećanjem

vrijednosti brojioca. Imamo:

0 1/1 1/2 2/1 1/3 2/2 3/1 1/4 2/3 3/2 4/1 ...

Racionalni brojevi su prebrojivi kao i prirodni.Primijetimo da svaki elemenat u drugom redu prikaza ima beskonačno ponavljanja, npr. vrijednost 1/1 pojavljuje se kao i 2/2, 3/3, itd. Vrijednost 1/2 pojavljuje se i kao 2/4, 3/6 i td.

Kantor je prvi dokazao da ne postoji nedosljednost u postojanju dva beskonačna skupa A i B iste kardinalnosti, gdje je A pravi podskup od B, kao što je slučaj sa prirodnim i racionalnim brojevima.

Beskonačni skupovi nisu iste kardinalnosti

Kantor je, takođe, dokazao da su realnih brojeva ima više

nego cijelih, tj. da nema načina za prebrojavanje

realnih brojeva.

Page 7: ALGORITAM – KLJUČNI KONCEPTI

N : 1, 2, 3, 4, 5, 6, 7, 8, ....

Z: 0, 1, -1, 2, -2, 3, -3, 4, -4, ....

Q+:

Page 8: ALGORITAM – KLJUČNI KONCEPTI

r1 = 0 . 5 1 0 5 1 1 0 ...

r2 = 0 . 4 1 3 2 0 4 3 ...

r3 = 0 . 8 2 4 5 0 2 6 ...

r4 = 0 . 2 3 3 0 1 2 6 ...

r5 = 0 . 4 1 0 7 2 4 6 ...

r6 = 0 . 9 9 3 7 8 3 8 ...

r7 = 0 . 0 1 0 5 1 3 5 ...

...

Pretpostavimo: 0,1 = {r1 , r2 , r3 , ... }

r=0.4555554...

0 1

- +

Realnih brojeva ima više!

Page 9: ALGORITAM – KLJUČNI KONCEPTI

Razmatrajmo sad matematičku funkciju . Kao što znamo, ovo predstavlja korespodenciju dva beskonačna skupa, domen X i kodomen Y.

U najjednostavnijem slučaju, X i Y su prebrojivi i tada svi elementi x iz X i y iz Y mogu biti predstavljeni konačnim nizovima.

Na kompjuterskom jeziku izračunavanje sa podacima x , daje rezultat y . U algebarskom ili bilo kom drugom jednoznačnom smislu, ako funkcija postoji, tada može biti izraženo

konačnim nizom, iako su mu domen i kodomen beskonačni. Ali to nije uvek slučaj.

Kantorova teorija ukazuje na to da su svi beskonačni nizovi elemenata iz beskonačnog skupa, u ovom slučaju, neprebrojivi: ovo je razlog zašto funkcije nisu prebrojive.

Page 10: ALGORITAM – KLJUČNI KONCEPTI

• Ako je svakom elementu x iz skupa A pridružen po jedan element

y iz skupa B onda kažemo da je zadana funkcija f iz skupa A u skup B i pišemo

xy

f : A B

f

Domena (područje definicije funkcije)

Kodomena(područje vrijednosti funkcije)

A B

y=f(x)

Y je SLIKA od x

Page 11: ALGORITAM – KLJUČNI KONCEPTI

3x

)()( 21 xfxf

1y1x

2x

3y

4y

A B

tj. f : A B je injekcija kada vrijedi

1x )()( 21 xfxf 2x

2y

Posmatrajmo sljedeći slučaj!

odnosno 21 xx

3x

Funkcija f : A B je INJEKCIJA ako ona različite elemente iz skupa A preslikava u različite elemente iz skupa B.

Page 12: ALGORITAM – KLJUČNI KONCEPTI

Posmatrajmo sljedeću ilustraciju!

1y1x

2x

)(xfy

A B

3x

Funkcija f : A B je SURJEKCIJA sa A u B ako za svaki element y iz skupa B postoji barem jedan element x iz skupa A takav da je

Surjektivno preslikavanje

4x

2y

3y

Page 13: ALGORITAM – KLJUČNI KONCEPTI

A

I

P

m

f

k

BIJEKCIJA

Ukoliko preslikavanje f : AB ima oba svojstva tj. ako za funkciju vrijedida je i injekcija i surjekcija tada kažemo da je funkcija

ZAKLJUČUJEMO!

Page 14: ALGORITAM – KLJUČNI KONCEPTI

Algoritam je jednoznačna procedura za rješavanje specifičnih problema sa

proizvoljnim podacima koristeći trenutna pravila igre na dohvat ruke.

Početkom računarske ere, ranih 1960-ih, priznavanje značaja pravljenja algoritama nezavisno od mašine tada korištene za izvršavanje istog, dovodi do naglog rasta u polju programiranja.

Danas su kompjuterski algoritmi formulisani u bilo kom razumnom jeziku koji sadrži njihove glavne karakteristike, a

zatim ih sprovede u programske jezike razumljive za sve računare.

Aloritmi su nizovi konačne dužine, a samim tim su prebrojivi.

Ali, funkcije nisu prebrojive, otuda moraju postojati nerješive funkcije, ili ekvivalentno,

dobro postavljeniproblemi koji se ne mogu algoritamski rješiti.

Page 15: ALGORITAM – KLJUČNI KONCEPTI

Alan Tjuring (Alan Turing)

Postavio temelje modernog

računarstva

TM je danas prihvaćena kao

osnovni matematički model, i bilo koji poznati

algoritam može se u stvari preformulisati kao

TM.

“TJURINGOVA MAŠINA” rad o hipotetičkom digitalnom

računaru, 1936. god.

1936, Britanski matematičar Alan Tjuring (eng. Alan Turing) je dao istorijski značaj apstraktnoj mašini sa trakom konačne memorije, sada poznatoj kao Tjuringova mašina ili TM, zajedno sa problemom koji se ne može riješiti na takvoj mašini.

Čuveni problem zadržavanja (zaustavljanja) (eng. Halting problem) za koji je Tjuring dokazao da je algoritamski nerješiv, imao je velike posledjice u svijetu programiranja.

Page 16: ALGORITAM – KLJUČNI KONCEPTI

Dati proizvoljni algoritam i proizvoljni podatak D , odlučuje da li u

konačnom vremenu operacija A(D) prestaje.

Zadržavanje problema (eng. Halting problem):

Zadržavanje problema ne govori konkretno da ne postoji algoritam T za odlučivanje da se operacija A(D) u konačnom vremenu završava za bilo koji par A,D uzet kao ulazni podatak. Dokažimo ovo kontradikcijom.

Neka takav algoritam T postoji. Uzmimo dvije proizvoljne sekvence S,Q . Operacija S(Q) ima smisla ako je S legitimno kodiranje algoritma (možemo reci, ako je S algoritam).

Page 17: ALGORITAM – KLJUČNI KONCEPTI

T mora uvijek da se završi u konačnom vremenu,

pa se ne može sastojati samo od simulacije S nad

Q , jer takva simulacija ne mora biti konačno

vremenski ograničena.

T mora uvijek da se završi u konačnom vremenu,

pa se ne može sastojati samo od simulacije S nad

Q , jer takva simulacija ne mora biti konačno

vremenski ograničena.

Razmotrimo sada osobine algoritma ANT (za antinomije) sa proizvoljnim podacima D :

Page 18: ALGORITAM – KLJUČNI KONCEPTI

Pouka Tjuringa je da je nemoguce zaključiti kakvi ce biti rezultati dobijeni od drugih, čak i ako znamo sve o njima

(T zna A i D).

Pouka Tjuringa je da je nemoguce zaključiti kakvi ce biti rezultati dobijeni od drugih, čak i ako znamo sve o njima

(T zna A i D).

ANT(D) se ne završava ako i samo ako je T(D,D)=da ,

Možemo pisati: ANT(D) se ne završava ako i samo ako se D(D) završava. Ali pošto je

ANT(D) algoritam, operacija se može izvršiti na D=ANT i tako dobijamo: ANT(ANT) ne

prestaje ako i samo ako ANT(ANT) prestaje.

Nauka o programiranju je postigla impresivan napredak u proveri programske ispravnosti, ali apsolutne garancije ispravnosti su teoretski nemoguće.

Nauka o programiranju je postigla impresivan napredak u proveri programske ispravnosti, ali apsolutne garancije ispravnosti su teoretski nemoguće.

U praksi je nemoguce napisati opšti program za odlučivanje o tome da li su ostali programi ispravno napisani, na primer, da vidimo da li cemo se „zaglaviti“ u beskonačnoj petlji sa nekim ulaznim podacima.

Kao jedini nedokazan korak u

našem logičkom deduktivnom lancu je

pretpostavka da T postoji, pa moramo zaključiti da je

ovo zapravonemoguće.

Page 19: ALGORITAM – KLJUČNI KONCEPTI

Razmotrimo sada navedeni postupak u sljedećoj priči o Martinu

Martin se odnosi prema ženama tehnikom slučajnosti koja se obično primenjuje na

formalnim sistemima u matematičkoj logici. On je ujedno podatak za neprebrojive

algoritme, i algoritam sa neprebrojivim podacima. U suštini situacija je jednostavnija

nego što se čini. Martin prilazi svim ženama sa ciljem

zavođenja, i žene, sada algoritmi, mogu prihvatiti, ili odbiti, ili odložiti odluku

ostavljajući ga u potpunoj neizvesnosti. Ali Martin je isuviše pametan da čeka zauvijek; pa on vrši paralelne radnje

udvaranja u različitim fazama napredovanja.

Page 20: ALGORITAM – KLJUČNI KONCEPTI

U prvoj fazi, koju Martin zove nišanjenje (eng. Sighting) , on jednostavno pamti imena žena koje će zavoditi jedan dan.

Dakle, ovo je u suštini postupak nabrajanja (mada na prvi pogled beskonačan postupak, žene su jasno prebrojive). Prema njegovim rečima ova faza je od maksimalne važnosti zato što:

Iz svog ogromnog iskustva, on je došao do zaključka da to nije tako teško , za nekoga sa visokim numeričkim

zahtevima , da bi zaveo jednu djevojku mora da ima u vidu dovoljan broj djevojaka koje još uvijek nije

zaveo.

Onda svoje avanture nastavlja paralelno, ali nezavisno jednu od druge, sve dok neke od djevojaka ne dođu do pozitivnog zaključka . Tehnika se zasniva na dijagonalnim putanjama

koje koristi Kantor u svojoj teoriji beskonačnih skupova, mada vjerujemo da je Martin te

putanje ponovo izmislio sam.

Page 21: ALGORITAM – KLJUČNI KONCEPTI

Djevojke su već registrovane (i

numerisane) u nultoj fazi, koja nije

prikazana.Da i Ne su konačne

odluke djevojaka koje zaustavljaju

algoritme, a odluka čekanje, označava da je operacija još uvijek u toku (algoritam se

nastavlja)Strelice pokazuju redoslijed po kojem Martin izvršava svoje

avanture, približavajući se djevojci sa prvom dolaznom strelicom i posjećujući je u kasnijim „nivoima“ da bi

provjerio njenu odluku. Na primjer, djevojka 3 će biti osvojena u sedam koraka, dok devojka 1 kojoj je prišao ranije, nije spremna da donese odluku u kratkom vremenu ( i možda nikada ne odluči , odnosno, njen se algoritam nikada ne mora zaustaviti ). Onda će kasnije biti zavedena djevojka 5, i tako dalje.

Martin će pamtiti zavođenje svake devojke koja bi se mogla eventualno odlučiti da kaže da, ali neće zaboravi ostale

Page 22: ALGORITAM – KLJUČNI KONCEPTI

Da bi ubrzao proces, Martin bi mogao da pokuša da predvidi ponašanje registrovanih žena , na primer preskočići sve

beskorisne susrete sa djevojkom 1, da bi razmotrio manje neodlučne devojke.

Sada djelujući kao algoritam , on bi trebalo da ispita algoritme za djevojke, kao njegove podatke.

Međutim, znamo da je potpuno predviđanje u suštinu nemoguće .

 

U matematičkoj terminologiji izjava je istinita ako i samo ako je lažna: antinomija

Potraga za nerješivim funkcijama koristi istu logičku strukturu, to nas i pretpostavka određenog algoritamski

rješivog problema dovodi do antinomije.

Našu diskusiju smo ograničili rješavanje problema koji zahtevaju da / ne odgovore (odnosno funkcije sa binarnom kodomenom), ukazujući da oni zadržavaju unutrašnju prirodu cijele klase problema podložnih

algoritamskim rješenjima.

Page 23: ALGORITAM – KLJUČNI KONCEPTI

Za svaki konkretan problem postoji nekoliko rješenja i za rješavanje istog može se dizajnirati više odgovarajućih

algoritama, koji se dramatično razlikuju po svojoj efikasnosti. Ozbiljno poređenje ovih algoritama mora biti izvedeno na

čvrstoj matematičkoj osnovi. Teorija računarske složenosti ima za cilj upravo to.

Temelji ove grane nauke su razvijeni pod pretpostavkom da se operacija vrši na jednom računarskom uređaju, sa jednog

komada radne memorije.

Vrijeme potrebno za izvršenje algoritma ( ili operativno vrijeme) je glavni parametar za ocjenu kvaliteta samog algoritma, kao i za upoređivanje jednog algoritma sa drugim.

Page 24: ALGORITAM – KLJUČNI KONCEPTI

Brzina izvršavanja (vremenska složenost)Uslov za skladištenje (prostorna složenost)

Danas se drugi parametar uglavnom zanemaruje, osim za aplikacije na mašinama sa veoma malom količinom memorije, kao što su mobilni telefoni, ili mreže u kojima se ogromna količina podataka kopira na više lokacija zbog bržeg pristupa.

Vrijeme ne može biti zamijenjeno za prostor, ili

obrnuto, jer neki podatak može biti smješten na istom mjestu u različitim trenucima, ali ne

može da se nalazi na različitim mjestima u istom trenutku.

Prostor može da se kupi, naročito u kompjuterskom svijetu, gdje su memorijski čipovi postali veoma jeftini, ali ne postoji način da se zaustavi vrijeme koje prolazi.

Page 25: ALGORITAM – KLJUČNI KONCEPTI

Operativno vrijeme se ne može mjeriti u sekundama bez navođenja posebnog hardvera i softvera za korištenje, tako da

ono ne može biti izraženo kao nedimenzionalna matematička funkcija veličine ulaznih podataka (ili „ulazne veličine“)

Ulazne veličine treba da budu izražene kao broj karaktera potrebnih da se opise ulaz u bilo kakvom razumnom ( recimo

binarnom ) pismu.

Poređenje funkcija

( isprekidana linija ) i ( puna linija ) .

.

Operativno vrijeme T(n) onda je izraženo kao matematička funkcija od n, specifičnog

reda veličine, mnogo značajnog samo kad

Osobine algoritma:

diskretnost — u odvojenim koracima izvode se diskretne operacije algoritma koje vode ka konačnom cilju;

konačnost — označava sposobnost algoritma da nakon konačnog broja koraka daje izlazne podatke odnosno rezultate;

determiniranost — za iste ulazne podatke algoritam uvijek daje iste rezultate

masovnost — algoritam je primjenjiv na veći broj ulaznih vrijednosti.

Page 26: ALGORITAM – KLJUČNI KONCEPTI

Formalno je f(n) reda n , ako je f(n)<c g(n) za datu pozitivnu konstantu c, i . Uobičajeno je da se piše

n

))(()( ngOnf

Tako je npr. funkcijareda , može se zapisati na sljedeći način dok je za

1442)( 2 nnnf

))(( ngO

)()( 2nOnf 2)( ncnf 3,3 nc

Operativno vrijeme T(n) algoritma , izraženog

redom O(g(n)) , potvrđuje da je stopa rasta T(n)

ograničena odozgo sa g(n) za veliku vrijednost n . Medjutim, operativno

vrijeme može da zavisi ne samo od n , već i od

ulaza (ulaznih podataka).

Izraz T(n)=O(g(n)) nam govori da gornja granica g(n) važi za sve ulazne podatke veličine n, i za g(n) se kaže da je najgori slučaj složenosti algoritma (eng. Worst case).

Na ovaj način možemo grupisati algoritme u klase različite složenosti( pri čemu bi se istoj klasi dodjeljivali oni algoritmi koji imaju isti ili sličan red složenosti)

Računarska složenost

Page 27: ALGORITAM – KLJUČNI KONCEPTI

funkcije konstantnog reda, čiji rast ne zavisi od n

funkcije reda manjeg od n - zovu se sublinearne funkcije

funkcije reda n zovu se linearne funkcije

funkcije reda n log n, za koji baza logaritma nije od presudnog značaja, nema uticaja

funkcije reda n2, n3, itd, kolektivno se zove polinomijalne

funkcije reda kn, nn , itd, kolektivno nazivamo eksponencijalne, jer se n pojavljuje kao eksponent.

Page 28: ALGORITAM – KLJUČNI KONCEPTI

Definisanje računske složenosti algoritamski rješivog problema se vrši korišćenjem Tjuringove mašine koja predstavlja apstraktni matematički model računara

Tjuringova mašina je izmedju ostalog specifizirana konačnim skupom stanja Q i konačnim skupom ulaznih simbola

(azbukom).

Algoritam kreće sa izvršavanjem na Tjuringovoj mašini u nekom početnom stanju

, a dalji nastavak njegovog izvršavanja se odvija po nekoj funkciji prelaza

δ :Q× ∑ →Q×∑

Agoritam se završava kada se mašina nađe u nekom od stanja zaustavljanja iz Q.

Ovim smo opisali rad determinističke Tjuringove mašine, kod koje je svako naredno stanje jednoznačno, tj. deterministički odredjeno.

Qq 0

Page 29: ALGORITAM – KLJUČNI KONCEPTI

Kod nedeterminističke Tjuringove mašine, umjesto funkcije prelaza imamo RELACIJU, tako da za svaki par stanje-simbol možemo imati nijedan, jedan ili više odgovarajućih sljedbenika iz Q × ∑.

Ovakve Tjuringove mašine koristimo za rješavanje problema odlučivanja, problema kod kojih je izlazni

podatak binaran (da/ne,⊤/⊥), tj. kod kojih se pitamo da li objekti predstavljeni ulaznim podacima imaju neko

svojstvo ili ne.

Page 30: ALGORITAM – KLJUČNI KONCEPTI

Pod korakom algoritma podrazumevamo izvršenje jedne komande Tjuringove mašine koja implementira

odgovarajući problem.

Vremenska složenost problema je broj koraka koji je potreban da bi se problem riješio na Tjuringovoj mašini korišćenjenjem najefikasnijeg algoritma, a izražren u

zavisnosti od veličine ulaznog podatka. Pri tome nas ne zanima tačna složenost, već samo ocjena

reda veličine razmatrane složenosti za koju se koristi asimptotska, takozvana O-notacija.

Slično se definiše i prostorna složenost kojom procenjujemo

potrošnju memorije mašine od strane razmatranog programa, kao što je broj polja trake koji koristi data Tjuringova mašina tokom odredjenog izračunavanja.

Page 31: ALGORITAM – KLJUČNI KONCEPTI

Za probleme koji imaju sličnu vremensku (ili prostornu)složenost kažemo da pripadaju istoj klasi složenosti.

Pomoću tih klasa složenosti možemo vršiti klasifikaciju različitih problema odlučivanja.

Najznačajnija klasa algoritama bila bi klasa polinomnih algoritama, odlučivih u vremenu

koje se može ocjeniti polinomnom funkcijom po veličini ulazne riječi.Oni su značajni u smislu da se sa stanovišta vremena smatraju

dobrim, vremenski ekasnim. Ovu klasu problema obeležavamo sa P.Analogno determinističkom slučaju, imamo klasu problema

koji mogu biti riješeni u polinomnom vremenu na nedeterminističkoj Tjuringovoj mašini,

a tu klasu obiljžavamo sa NP.

Page 32: ALGORITAM – KLJUČNI KONCEPTI

Jedno od najznačajnijih i najintrigantnijih otvorenih pitanja moderne matematike i teorijskog računarstva

jeste pitanje da li važi P=NP?

Kako je svaka determinističkamašina specijalan slučaj nedeterminističke, klasa jezika svih

nedeterminističkih sadrži klasu jezika determinističkih Tjuringovih mašina.

Prema tome, inkluzija P NP⊆ važi,pa se ovaj problem svodi na pitanje da li se svaki nedeterministički algoritam može determinizovati tako da pri tome ostane sačuvana

polinomna vremenska složenost.

U klasi NP nalaze se u izvesnom smislu reprezentativni problemi,tzv NP-kompletni problemi.

Njihov značaj je u tome što ukoliko se za ma koji NP-kompletan problem odlučivanja pokaže egzistencija polinomnog algoritma za rješavanje, time se

pokazuje jednakost klasa P i NP.

Page 33: ALGORITAM – KLJUČNI KONCEPTI

Kažemo da je problem A NP-težak ako za sve probleme B∈ NP važi B≤ pA

Ako je problem A NP-težak i pri tome još A∈ NP , onda kažemo da je on NP-kompletan.

Dakle, ovi NP-kompletni problemi jesu najteži problemi klase NP. Njihov značaj dat je sljedećom teoremom:

Ako su A i B dva problema odlučivanja, kažemo da se A polinomno redukuje na B, u oznaci A≤ pB,

ukoliko postoji redukciona funkcija koja je izračunljiva u determinističkom polinomnom vremenu i koja svaku instancu problema A

transformiše u ekvivalentnu instancu problema B. Ovako se definiše (polinomna) redukcija jednog

problema odlučivanjana drugi. Intuitivno, A≤pB znači da problem A nije teži od

problema B.

Page 34: ALGORITAM – KLJUČNI KONCEPTI

Neka je A NP -kompletan problem. Tada važiA∈P⇔P= NP:

Prema tome, kako bi se potvrdila jednakost P=NP, dovoljno je za bilo koji od NP-kompletnih problema pronaći

polinomni algoritam. Obratno, ako bi bilo moguće za ma koji od tih

problema pokazati nepostojanje polinomnog algoritma, odmah bi slijedilo

P=NP.

Page 35: ALGORITAM – KLJUČNI KONCEPTI

Neka je A NP-kompletan problem. Ako je A≤pB i B∈NP, tada je i problem B takodje NP-kompletan.

Dakle, ukoliko imamo neki problem B za koji znamo da je iz klase NP a želimo da pokažemo da je NP -kompletan, uzmemo neki drugi problem A za koji znamo da je NP-kompletan i pokažemo da važi A≤pB.

Page 36: ALGORITAM – KLJUČNI KONCEPTI

Ovaj algoritam sortira niz elemenata tako što ga prvo cijelog pretraži, kako bi našao prvi podoban element (npr. najveći ili najmanji) i smestio ga na prvo mesto u nizu. Tada pretražuje cijeli ostatak niza (bez prvog mesta) kako bi našao drugi takav element i smestio na drugo mesto u nizu. Onda se postupak ponavlja za ostatak niza bez prvog i drugog mjesta itd. Ovo mu donosi vremensku složenost O(n²). Količina korišćene memorije je O(1) ukoliko se izmjene vrše na originalnom nizu, a O(n) ako se pravi sortirana kopija niza.Sortiranje selekcijom može biti stabilno, ali i ne mora, zavisno od implementacije.

Sortiranje spajanjem ili merge sort je algoritam sortiranja zasnovan na poredjenju i pripada grupi medota spajanjem. To je REKURZIVNI ALGORITAM. Konstruisao ga je Džon fon Nojman (John von Neumann) 1945. godine. U većini implementacija je stabilan, što znači da zadržava početni redoslijed jednakih elemenata u sortiranom nizu. Predstavlja primer algoritamske paradigme "podijeli pa vladaj". Naime, algoritam prvo podijeliti nesortirani niz u dva podniza približno jednake dužine, zatim sortirati svaki podniz rekurzivno ponovnom primenom algoritmasortiranja spajanjem a zatim spojiti dva sortirana podnizau jedan sortirani niz. Algoritam sortiranja spajanjem je realizovan rekurzivnom procedurom MERGE-SORT:

Page 37: ALGORITAM – KLJUČNI KONCEPTI

Primer sortiranja jednog niza selekcijom. Niz treba da se sortira u rastućem poretku.2 5 11 8 7 9 1 15 16 4

Prvo se pretražuje cijeli niz, da bi se našao minimalan element, i to je 1. On zamenjuje svoje mesto sa elementom na prvom mestu u nizu. Nadalje će svi elementi koji su već na svom mestu biti u podebljanom zapisu:

1 5 11 8 7 9 2 15 16 4 Potom slijedi traženje novog minimalnog elementa u preostalom dijelu niza, od broja 5 do broja 4. I taj element je 2. On zamjenjuje mjesto sa drugim elementom u nizu:

1 2 11 8 7 9 5 15 16 4Itd.1 2 4 8 7 9 5 15 16 11 1 2 4 5 7 9 8 15 16 11 1 2 4 5 7 9 8 15 16 11 1 2 4 5 7 8 9 15 16 11 1 2 4 5 7 8 9 15 16 11 1 2 4 5 7 8 9 11 16 15 1 2 4 5 7 8 9 11 15 16 1 2 4 5 7 8 9 11 15 16

SELECTION-SORT(a)for i = 1 to n - 1 domin = a[i]pos = ifor j = i + 1 to n doif (a[j] < min) thenmin = a[j]pos = jend_ifend_fora[pos] = a[i]a[i] = minend_for

Page 38: ALGORITAM – KLJUČNI KONCEPTI

MERGE-SORT(A,p,r)if (p<r) thenq=(p+r)/2end_ifMERGE-SORT(A,p,q)MERGE-SORT(A,q+1,r)MERGE(A,p,q,r)

MERGE(A,p,q,r)n1=p-q+1n2=r-qfor i=1 to n1 doL[i]=A[p+i-1]end_forfor i=1 to n2 doR[j]=A[q+j]end_fori=1j=1for k=p to r doif (L[i]≤R[j]) thenA[k]=L[i]i=i+1else A[k]=R[j]j=j+1end_ifend_for

Page 39: ALGORITAM – KLJUČNI KONCEPTI

Bubble sort algoritam za sortiranje je

najjednostavniji algoritam za sortiranje, a samim time i

najlakši algoritam za implementiranje u program.

Bubble sort algoritam za sortiranje je

najjednostavniji algoritam za sortiranje, a samim time i

najlakši algoritam za implementiranje u program.

Bubble sort je također algoritam koji uzima puno resursa,

odnosno njegove performanse su O(n) u najboljem slučaju,

a u najgorem slučaju su O(n^2).

Bubble sort je također algoritam koji uzima puno resursa,

odnosno njegove performanse su O(n) u najboljem slučaju,

a u najgorem slučaju su O(n^2).

Bubble sort algoritam radi na sljedeci način:algoritam prolazi kroz sve elemente u nizu od početka do

kraja, te uspoređuje trenutni element na kojem se nalazi i element

koji se nalazi poslije trenutnog element u nizu.

Bubble sort algoritam radi na sljedeci način:algoritam prolazi kroz sve elemente u nizu od početka do

kraja, te uspoređuje trenutni element na kojem se nalazi i element

koji se nalazi poslije trenutnog element u nizu.

Ako je uslov koji je dat za provjeru odnosa elemenata istinit (npr: ako je trenutni element manji od sljedeceg elemenat), onda se vrši zamjena pozicija dva elemenat, ako nije zadovoljen uslov onda se ništa ne dešava.

Page 40: ALGORITAM – KLJUČNI KONCEPTI

Osnovni zahtjev skoro svih korisnika Interneta je da se preuzmu informacije povezane sa jednom ili više ključnih reči. Ove ključne riječi moraju biti sačuvane negde na netu, zajedno sa pokazivačima koji ukazuju na to gdje možemo naći povezane informacije. Sa algoritamske tačke gledišta, problem pretraživanja uopšte nije nemoguć za nas.

Algorithm BINSEARCH Binarno pretraživanje elementa e u A[l:r] . Operacija počinje sa l=1, r=n; prolazi kroz uzastopne rekurzivne postupke na podnizovima od aproksimativno pola dužine, a prestaje kada se pronađe e (na poziciji k) ili je traženi podniz prazan. Komanda odgovor (eng.answer) podrazumijeva da izvršenje prestaje.

U principu pretraga je formulisana kao problem traženja datog elementa

e u skupu A od n elemenata.

Page 41: ALGORITAM – KLJUČNI KONCEPTI

OPERATIVNO VRIJEME BINARNE PRETRAGE u najgorem slučaju se primenjuje kada je veličina krajnjeg podniza svedena na 1 za uspješnu pretragu ili na 0 za neuspješnu pretragu. Svaki ciklus algoritma zahtjeva konstantan broj operacija praćen rekurzivnim pozivom na podnizu čija je veličina oko polovine, tako da je ukupan broj ciklusa približno i operativno vrijeme je reda . Ovo je poseban napredak u odnosu na naivne strategije skeniranja svih elemenata iz A u vremenu sve dok se ne pronađe elemenat koja se podudara sa e (ako postoji).

Za veći broj pretraga , kao na primjer u Veb poslovanju, binarna pretraga definitivno

preovladava.

Operativno vrijeme binarne pretrage ne uzima u obzir vrijeme potrebno da sortirate skup unapred, na primer, koristeći MERGESORT.

Page 42: ALGORITAM – KLJUČNI KONCEPTI

Druga važna aplikacija je nalaženje svih uobičajenih elemenata dva sortirana skupa A, B.

U kontekstu veb pretrage A i B mogu biti dva skupa stranica od kojih svaki sadrži datu ključnu riječ, pri čemu smo mi zainteresovani za one stranice koje sadrže obje . Sada

primjena binarne pretrage može, a i ne mora biti dobra se u zavisnosti od relativne veličine ova dva skupa. Ako je

recimo, , binarna pretraga u B se primjenjuje na svaki element iz A u ukupnom vremenu . Ako stavimo

umjesto , ovakav pristup bizahtjevao vremena, dok se pretraga može obaviti i u

linearnom vremenu saalgoritam skeniranja (eng. scanning algorithm)

DOUBLESEARCH.

,

Ova dva skupa su skenirana, unaprijed, jedinstvenim koracima, definišući pokazivače. Operativno vrijeme je proporcionalno sa , i iznosi

Prednost upotrebe binarne pretrage zasniva se na pretpostavci da se elementi iz A ne menjaju za

dovoljno dugo vrijeme i tako omogućavaju izvršavanje više

pretraga na istom sortiranom nizu.

Page 43: ALGORITAM – KLJUČNI KONCEPTI

Slika prikazuje stablo pretrage za skupom A : čvor 24 je u desnom podstablu u odnosu na 21, i u lijevom podstablu u odnosu na 35, i zaista imamo

21 <24 <35. Imajmo na umu dabi se i druga stabla pretrage mogla primijeniti na isti skup, u zavisnosti od elementa koji je izabran za korjen, a rekurzivno bi se dobilo pravilo i za

korjenove svih podstabala.

Mnoga stabla pretrage odgovaraju istom sortiranom nizu, ali samo jedan niz odgovara svim ovakvim stablima.

Nije teško zaključiti da je postupak pronalaženja elementa e stabla T veoma sličan binarnoj pretrazi elementa e u odgovarajućem nizu. Elemenat e se u početku poredi sa korjenom r stabla T, koji ima istu ulogu kao i centralni elemenat niza. U slučaju podudaranja, pretraživanje se uspešno završava; u suprotnom rezultat ovog poređenja usmerava pretragu na jedan od dva podstabla u odnosu na r, gdje se pretraga rekurzivno ponavlja.

Dakle, kao i kod binarne pretrage, značajan dio skupa se zanemaruje u svakom koraku.

Pretraga se zatim sastoji od niza poređenja, koji počinje korenom stabla T i uspešno završava u

čvoru e, ili neuspešno u praznom podstablu.

U stablu na slici pretraga za elementom 13 prolazi kroz

čvorove 21-5-8. Potraga za elementom 12, koji se ne nalazi u stablu,

slijedi istu putanju do praznog lijevog podstabla u

odnosu na elemenat 13.

Operativno vrijeme pretrage stabla u najgorem slučaju je proporcionalno

broju čvorova na putu između korena i najdaljeg lista tog stabla.

Page 44: ALGORITAM – KLJUČNI KONCEPTI

Veliki broj zanimljivih i korisnih problema spadaju u ovaj skup. Da bi objasnili šta se zapravo nalazi u pozadini ove situacije, počnimo sa jednom potpuno izmišljenom pričom.

Priča. Kriminalna grupa odlučuje da koristi internet za razmenu tajnih imformacija i zabranjenog materijala. Zaključuju da je najbolji način, da izbegnu privlačenje pažnje, da se pridruže legalnoj društvenoj mreži, uspostave odnose unutar nje i tako razmenjuju kodirane tajne poruke između sebe. Poslije nekog vremena, neke glasine o ilegalnim aktivnostima grupe stigle su do policije. Iako u stanju da dekodiraju sadržaj poruka, sa željom da identifikuju članove grupe, policija odlučuje da analizira graf društvene mreže i tako identifikuje zajednice sa zajedničkim interesima. Zadatak se dodjeljuje najmladjem policajcu.

Page 45: ALGORITAM – KLJUČNI KONCEPTI

Društvena mreža obuhvata hiljadu ljudi, a procjenjuje se da se kriminalna grupa sastoji od

deset ljudi. Zato policajac ima za zadatak da nađe

kompletan podgraf veličine deset, ili 10-očlani podgraf u terminologiji grafova, sadržan u mreži.

Odlučuje da razmotri sve moguće grupe od deset čvorova, jednu za drugom i tako provjeri sve prisutne veze između

parova čvorova u svakoj grupi.

Za ovu namjenu on dodjeljuje brojeve od 1 do 1000 za svaki čvor na grafu i piše program za generisanje svih grupa od po deset čvorova koji počinju sa (1, 2, 3, ..., 9, 10), pri čemu se povećava vrijednost svakog elementa grupe u unitarnim koracima, počev od onih posljednjih.

Stoga grupe treba da se generišu u sljedećem redu: (1, 2, ..., 9, 10), (1, 2,..., 9, 11), ..., (991, 992, ..., 1000), ali njih je tako mnogo da ,ni poslije nekoliko sati, program nije proizveo izlazni rezultat, a poručnik samo što nije stigao..

Page 46: ALGORITAM – KLJUČNI KONCEPTI

Da bismo razumjeli značenje priče, moramo razmotriti izgradnju algoritma sa opštijeg stanovišta. Broj grupa od deset elemenata iz skupa od hiljadu elemenata jednak je binomnom koeficijentu . Pozivajući se na definiciju binomnoh koeficijenata i primenjujući Stirlingovu aproksimaciju još jednom, lako se vidi da je i da je funkcija eksponencijalna u k i postaje eksponencijalna u n kada k linearno raste sa n. U prethodno pomenutoj priči imamo , pa gore navedene nejednakosti ukazuju na to da se vrijednost nalazi između i .

Na slici su prikazana dva grafa od po 12 čvorova.

Jedan nema nijedan 4-grupni,

a drugi ima dva takva podrafa.

Nažalost, nije poznata efikasna strategija u otkrivanju k-grupnog podgrafa u grafu ili u izvještavanju da takav podgraf

ne postoji

Page 47: ALGORITAM – KLJUČNI KONCEPTI

Duboke teorijske studije započete 1970-ih dovele su do čuvenog rezultata često nazivanog Kuk-Levinova (eng. Cook-

Levine) teorema, koju je nezavisno dokazao Kanađanim Stefen Kuk (eng. Stephen Cook) i Rus Leonid Levin (eng. Leonid Levin).

U teoriji kompleksnosti, Kuk-Levinova teorema (takođe poznata kao Kukova teorema) tvrdi da je SAT problem NP-kompletan. To jest, svaki problem koji može biti rješen u polinomijalnom vremenu pomoću nedeterminističke Tjuringove mašine može biti sveden (u polinomijalnom vremenu) na SAT problem (određivanje da li je bulovska formula zadovoljiva).

U matematici i informatici, SAT problem ili problem zadovoljivosti se sastoji u utvrđivanju da li se promjenljivima nekog bulovskog izraza mogu dodijeliti vrednosti tako da cijela formula ima vrijednost TAČNO, ili formula ima vrijednost NETAČNO za sve moguće kombinacije vrijednosti promjenljivih. U drugom slučaju se kaže da je funkcija nezadovoljiva; a u suprotnom je zadovoljiva. Promjenljive su bulovske (imaju vrijednosti 0 ili 1), što znači da je problem binarne prirode.

Važna posledica ove teoreme je da ako bismo imali algoritam koji u polinomijalnom vremenu rješava SAT problem, mogli bismo u polinomijalnom vremenu da rješimo svaki problem iz klase NP.

Page 48: ALGORITAM – KLJUČNI KONCEPTI

Jasno je da postoji jaka veza između operativnog

vremena algoritma i energije potrebne za njegovo

izvršenje, jer potrošnja energije zavisi od broja

instrukcija i mogućnosti pristupa memoriji, ali ova

dva parametra nisu jednostavno proporcionalna, jer

zahtevana snaga procesora (eng. Control

Procesor Unit) i memorije različitih tipova zavise

od režima rada.

Procesori mogu da rade različitim brzinama, uz

drastično smanjenje potrošnje energije

na nižim brzinama, a mogu da troše gotovo nikakvu

energiju kada su „besposleni“.

Dobro

poznato pravilo CMOS tehnologije, koja se

danas najviše koristi, govori da je snaga p

apsorbovana kolom aproksimativno

proporcionalna kocki brzine s, kojom kolo radi.

Page 49: ALGORITAM – KLJUČNI KONCEPTI

Ako uzmemo u obzir da je operacija u potpunosti završena u CMOS-u i zahteva vrijeme t, energija koju koristi kolo se može približno izraziti kao: . Povećanje brzine od s do , sa k>1 , smanjuje operativno vreme od t do , i podrazumeva povećanje energije na:

.

Rad sa velikom brzinom je veoma skup u energetskom smislu. Smanjenje procesorskog vremena po k podrazumeva više rasipanja toplote.

Izvršavanje algoritma je izuzetno komplikovaniji proces od upotrebe procesora sa konstantnom brzinom.

Formalno, postoji potreba za nekim

apstraktnim modelom mašine koja odražava

strukturu računarskih sistema i njihovu

memorijsku hijerarhiju, kao osnovu za novu

formulaciju računarske kompleksnosti, koja

podrazumeva interakciju parametara vremena

i energije.

Naučnici, koji proučavaju algoritme

moraju da budu srećni jer je nova

teorija potrebna. Algoritmima se mora

dati „zeleno svetlo“, moraju zaživjeti:

igra je u potpunosti otvorena.

Page 50: ALGORITAM – KLJUČNI KONCEPTI

HVALA NA PAŽNJI