1 / 50

ALGORITAM – KLJUČNI KONCEPTI

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.

Download Presentation

ALGORITAM – KLJUČNI KONCEPTI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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ć

  2. Uvedimo pojam niza 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. 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. 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.

  3. 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. „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. Egzistencija beskonačnostibila 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).

  4. Š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.

  5. BIJEKCIJA Bijekcijaje funkcija sasvojstvom da je svaki element kodomena pridružen tačno jednom elementu domena. Skup A ima jednako mnogo elemenata kao i skup B ako postoji bijekcija među njima!

  6. 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. 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.

  7. N : 1, 2, 3, 4, 5, 6, 7, 8, .... Z: 0, 1, -1, 2, -2, 3, -3, 4, -4, .... Q+:

  8. 0 1 - + Realnih brojeva ima više! Pretpostavimo: 0,1= {r1,r2,r3, ... } 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 ... ... r=0.4555554...

  9. 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. Funkcije i algortmi 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. 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.

  10. 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 f : A B y x f y=f(x) Y je SLIKA od x B A Domena (područje definicije funkcije) Kodomena (područje vrijednosti funkcije)

  11. Posmatrajmo sljedeći slučaj! A B Funkcija f : A B je INJEKCIJA ako ona različite elemente iz skupa A preslikava u različite elemente iz skupa B. tj. f : A B je injekcija kada vrijedi odnosno

  12. Posmatrajmo sljedeću ilustraciju! A B Surjektivno preslikavanje 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

  13. ZAKLJUČUJEMO! A m f I f k P A B Ukoliko preslikavanje f : AB ima oba svojstva tj. ako za funkciju vrijedi da je i injekcija i surjekcija tada kažemo da je funkcija BIJEKCIJA

  14. ! ! 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. Aloritmisu 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.

  15. Č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. Alan Tjuring (Alan Turing) Postavio temelje modernog računarstva 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. “TJURINGOVA MAŠINA” rad o hipotetičkom digitalnom računaru, 1936. god. TM je danas prihvaćena kao osnovni matematički model, i bilo koji poznati algoritam može se u stvari preformulisati kao TM.

  16. 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 reći, ako je S algoritam).

  17. Daljeimamo: 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 :

  18. 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. Alipoš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. Kao jedini nedokazan korak u našem logičkom deduktivnom lancu je pretpostavka da T postoji, pa moramo zaključiti da je ovo zapravo nemoguće. Pouka Tjuringa je da jenemoguće zaključiti kakvi će biti rezultati dobijeni od drugih, čak i ako znamo sve o njima (T zna A i D). Nauka o programiranju je postigla impresivan napredak u proveri programske ispravnosti, ali apsolutne garancije ispravnosti su teoretski nemoguće. U praksi je nemoguće napisati opšti program za odlučivanje o tome da li su ostaliprogrami ispravno napisani, na primer, da vidimo da li ćemo se „zaglaviti“ u beskonačnoj petlji sa nekim ulaznim podacima.

  19. 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. Razmotrimo sada navedeni postupak u sljedećoj priči o Martinu

  20. 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: Izsvog 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. U prvoj fazi, koju Martin zove nišanjenje (eng. Sighting) , on jednostavno pamti imena žena koje će zavoditi jedan dan. 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.

  21. Djevojke su već registrovane (i numerisane) u nultoj fazi, koja nije prikazana.Dai 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

  22. 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. 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.

  23. Računarska složenost 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.

  24. 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. U početkususamodvijestvarirazmatrane: 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. 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.

  25. 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. Osobinealgoritma: diskretnost— u odvojenimkoracimaizvode se diskretneoperacijealgoritmakojevode ka konačnomcilju; Operativno vrijeme T(n) onda je izraženo kao matematička funkcija od n, specifičnog reda veličine, mnogo značajnog samo kad konačnost — označavasposobnostalgoritmadanakonkonačnogbrojakorakadajeizlaznepodatkeodnosnorezultate; determiniranost — zaisteulaznepodatkealgoritamuvijekdajeisterezultate Poređenje funkcija ( isprekidana linija ) i ( puna linija ) . masovnost — algoritam je primjenjivnavećibrojulaznihvrijednosti.

  26. 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 Formalno jef(n)reda n , ako je f(n)<c g(n) za datu pozitivnu konstantu c, i . Uobičajeno je da se piše 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). Tako je npr. funkcija reda , može se zapisati na sljedeći način dok je za

  27. funkcije konstantnog reda, čiji rast ne zavisi od n funkcije reda manjeg od n- zovu se sublinearne funkcije funkcije reda nzovu 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. Glavne klase koje nastaju u praksi sadrže:

  28. Definisanjeračunskesloženostialgoritamski rješivogproblema se vršikorišćenjemTjuringove mašinekojapredstavljaapstraktnimatematički model računara Tjuringovamašina je izmedjuostalogspecifiziranakonačnimskupomstanjaQikonačnimskupomulaznihsimbola (azbukom). Algoritamkreće saizvršavanjemnaTjuringovoj mašini unekompočetnomstanju , a daljinastavaknjegovogizvršavanja se odvijaponekojfunkcijiprelaza δ:Q× ∑ →Q×∑ Agoritamse završavakada se mašinanađe u nekomodstanja zaustavljanja izQ. OvimsmoopisaliraddeterminističkeTjuringovemašine, kodkoje je svakonarednostanjejednoznačno, tj. determinističkiodredjeno.

  29. KodnedeterminističkeTjuringovemašine,umjestofunkcijeprelazaimamoRELACIJU, takodazasvaki par stanje-simbolmožemoimatinijedan, jedaniliviše odgovarajućihsljedbenikaizQ× ∑. OvakveTjuringovemašinekoristimozarješavanjeproblemaodlučivanja, problemakodkojih je izlaznipodatakbinaran (da/ne,⊤/⊥), tj. kodkojih se pitamodaliobjektipredstavljeniulaznimpodacimaimajunekosvojstvoiline. Uvedimo sada pojmove prostorne I Vremenske složenosti

  30. 1 1 1 Pod korakomalgoritmapodrazumevamoizvršenjejednekomandeTjuringove mašinekojaimplementiraodgovarajući problem. Vremenskasloženostproblemaje brojkorakakoji jepotrebanda bi se problem riješionaTjuringovoj mašinikorišćenjenjemnajefikasnijegalgoritma, a izražren u zavisnostiodveličineulaznogpodatka. Pri tome nas ne zanimatačnasloženost, većsamoocjenaredaveličinerazmatranesloženostizakoju se koristiasimptotska, takozvana O-notacija. Slično se definiše iprostornasloženostkojomprocenjujemo potrošnjumemorije mašineodstranerazmatranogprograma, kaošto je brojpoljatrakekojikoristi data Tjuringova mašinatokomodredjenogizračunavanja.

  31. Zaproblemekojiimajusličnu vremensku (iliprostornu) složenost kažemodapripadajuistojklasisloženosti. Pomoću tihklasasloženosti možemovršitiklasifikaciju različitihproblemaodlučivanja. Najznačajnijaklasaalgoritamabila bi klasa polinomnihalgoritama,odlučivih u vremenu koje se može ocjenitipolinomnomfunkcijompoveličiniulazne riječi. Oni suznačajni u smisluda se sastanovištavremenasmatraju dobrim, vremenskiekasnim. OvuklasuproblemaobeležavamosaP. Analognodeterminističkomslučaju, imamoklasuproblema kojimogubiti riješeni u polinomnom vremenunanedeterminističkojTjuringovoj mašini, a tu klasu obiljžavamo sa NP.

  32. JednoodnajznačajnijihinajintrigantnijihotvorenihpitanjamodernematematikeiteorijskogračunarstvajestepitanjedalivažiP=NP?JednoodnajznačajnijihinajintrigantnijihotvorenihpitanjamodernematematikeiteorijskogračunarstvajestepitanjedalivažiP=NP? Kako je svakadeterministička mašinaspecijalanslučajnedeterminističke, klasajezikasvihnedeterminističkihsadržiklasujezikadeterminističkihTjuringovih mašina. Prema tome, inkluzijaP⊆NPvaži, pa se ovaj problem svodinapitanjedali se svakinedeterminističkialgoritam može determinizovatitakodapri tome ostanesačuvanapolinomnavremenskasloženost. U klasiNPnalaze se u izvesnomsmislureprezentativniproblemi,tzv NP-kompletniproblemi. Njihovznačaj je u tome što ukoliko se za ma kojiNP-kompletan problemodlučivanjapokaže egzistencijapolinomnogalgoritmaza rješavanje, time se pokazujejednakostklasaPiNP.

  33. Dakle, oviNP-kompletniproblemijesunajtežiproblemiklaseNP. Njihovznačajdat jesljedećomteoremom: Kažemo da je problemANP-težakakozasveproblemeB∈NPvaži B≤pA Akoje problemANP-težakipri tome još A∈NP, onda kažemoda je on NP-kompletan. AkosuAiBdvaproblemaodlučivanja, kažemoda seApolinomnoredukujenaB, uoznaciA≤pB, ukolikopostojiredukcionafunkcijakoja je izračunljiva u determinističkompolinomnomvremenuikojasvakuinstancuproblemaAtransformiše u ekvivalentnuinstancuproblemaB. Ovako se definiše (polinomna) redukcijajednogproblemaodlučivanjanadrugi. Intuitivno,A≤pBznačida problemAnijetežiodproblemaB.

  34. Teorema 1 Neka jeANP-kompletan problem. Tada važi A∈P⇔P=NP: Prema tome, kako bi se potvrdilajednakostP=NP, dovoljno je zabilokojiodNP-kompletnihproblemapronaći polinomnialgoritam. Obratno, ako bi bilomoguće zama kojiodtih problemapokazatinepostojanjepolinomnogalgoritma, odmah bi slijedilo P=NP.

  35. Teorema 2 Neka je A NP-kompletan problem. Ako je A≤pB i B∈NP, tada je i problem B takodje NP-kompletan. Dakle, ukolikoimamoneki problemBzakojiznamoda je izklaseNPa želimodapokažemoda jeNP-kompletan, uzmemonekidrugi problemAzakojiznamoda jeNP-kompletanipokažemodavaži A≤pB.

  36. Aloritmi Ovajalgoritamsortiranizelemenatatakoštogaprvo cijelogpretraži, kako bi našaoprvipodoban element (npr. najvećiilinajmanji) ismestioganaprvomesto u nizu. Tada pretražuje cijeliostatakniza (bezprvogmesta) kako bi našaodrugitakav element ismestionadrugomesto u nizu. Onda se postupakponavljazaostataknizabezprvogidrugog mjestaitd. Ovo mu donosivremenskusloženost O(n²). Količinakorišćenememorije je O(1) ukoliko se izmjenevršenaoriginalnomnizu, a O(n) ako se pravisortiranakopijaniza. Sortiranjeselekcijommožebitistabilno, alii ne mora, zavisnoodimplementacije. Sortiranjespajanjemilimerge sort je algoritamsortiranjazasnovanna poredjenjuipripadagrupimedotaspajanjem.To je REKURZIVNI ALGORITAM. Konstruisaoga je DžonfonNojman (John von Neumann) 1945. godine. U većiniimplementacija je stabilan, što znači da zadržava početni redoslijedjednakihelemenata usortiranomnizu.Predstavlja primer algoritamskeparadigme "podijeli pavladaj". Naime, algoritamprvo podijelitinesortiraniniz udvapodnizapribližnojednakedužine, zatimsortiratisvakipodnizrekurzivnoponovnomprimenomalgoritma sortiranjaspajanjem a zatimspojitidvasortiranapodnizaujedansortiraniniz. Algoritamsortiranjaspajanjem je realizovanrekurzivnomprocedurom MERGE-SORT: Sort izborom Sort spajanjem

  37. Primer sortiranjajednognizaselekcijom. Niztrebada se sortira u rastućemporetku. 2 5 11 8 7 9 1 15 16 4 Prvo se pretražuje cijeliniz, da bi se našaominimalan element, i to je 1. On zamenjujesvojemestosaelementomnaprvommestu u nizu. Nadaljećesvielementikojisuvećnasvommestubiti u podebljanomzapisu: 1 5 11 8 7 9 2 15 16 4 Potomslijeditraženjenovogminimalnogelementa u preostalom dijeluniza, odbroja 5 do broja 4. I taj element je 2. On zamjenjuje mjestosadrugimelementom u nizu: 12 11 8 7 9 5 15 16 4 Itd. • 124 8 7 9 5 15 16 11 • 1245 7 9 8 15 16 11 • 12457 9 8 15 16 11 • 124578 9 15 16 11 • 1245789 15 16 11 • 124578911 16 15 • 12457891115 16 • 1245789111516 SELECTION-SORT(a) for i = 1 to n - 1 do min = a[i] pos = i for j = i + 1 to n do if (a[j] < min) then min = a[j] pos = j end_if end_for a[pos] = a[i] a[i] = min end_for

  38. MERGE(A,p,q,r) n1=p-q+1 n2=r-q for i=1 to n1 do L[i]=A[p+i-1] end_for for i=1 to n2 do R[j]=A[q+j] end_for i=1 j=1 for k=p to r do if (L[i]≤R[j]) then A[k]=L[i] i=i+1 else A[k]=R[j] j=j+1 end_if end_for MERGE-SORT(A,p,r) if (p<r) then q=(p+r)/2 end_if MERGE-SORT(A,p,q) MERGE-SORT(A,q+1,r) MERGE(A,p,q,r)

  39. Ako je uslovkoji je datzaprovjeruodnosaelemenataistinit (npr: ako je trenutni element manjiodsljedećegelemenat), onda se vršizamjenapozicijadvaelemenat, akonijezadovoljenuslovonda se ništa ne dešava. Bubble sort Bubble sort algoritamzasortiranje je najjednostavnijialgoritamzasortiranje, a samim time i najlakšialgoritamzaimplementiranje u program. Bubble sort je također algoritam koji uzima puno resursa, odnosno njegove performanse su O(n) unajboljem slučaju, a u najgorem slučaju su O(n^2). Bubble sort algoritam radi na sljedeći 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.

  40. 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. 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. Pretraga: osnovni problemi Interneta U principu pretraga je formulisana kao problem traženja datog elementa e u skupu A od n elemenata. Algorithm BINSEARCH

  41. Za veći broj pretraga , kao na primjer u Veb poslovanju, binarna pretraga definitivno preovladava. 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). Operativno vrijeme binarne pretrage ne uzima u obzir vrijeme potrebno da sortirate skup unapred, na primer, koristeći MERGESORT.

  42. , 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. 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. Ova dva skupa su skenirana, unaprijed, jedinstvenim koracima, definišući pokazivače. Operativno vrijeme je proporcionalno sa , i iznosi

  43. 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. 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. 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. 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.

  44. 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. Svijet eksponencijalnih problema 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.

  45. 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. 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. 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..

  46. Nažalost, nije poznata efikasna strategija u otkrivanju k-grupnog podgrafa u grafu ili u izvještavanju da takav podgraf ne postoji 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.

  47. U teoriji kompleksnosti, Kuk-Levinova teorema (takođe poznata kao Kukova teorema) tvrdi da je SAT problemNP-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. 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). Važnaposledicaoveteoreme je daakobismoimalialgoritamkoji upolinomijalnomvremenu rješava SAT problem, moglibismo u polinomijalnomvremenuda rješimosvaki problem izklaseNP.

  48. Operativnost postaje moguća 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 energijena 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.

  49. 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. 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. 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. Izvršavanje algoritma je izuzetno komplikovaniji proces od upotrebe procesora sa konstantnom brzinom.

  50. HVALA NA PAŽNJI

More Related