Linearno ispitivanje. Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF) algoritmi

Σχετικά έγγραφα
DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

3.1 Granična vrednost funkcije u tački

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

Teorijske osnove informatike 1

Overviev BFS-analiza DFS algoritam. Predstavljanje grafova BFS algoritam. Grafovski algoritmi

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

Elementi spektralne teorije matrica

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Operacije s matricama

5. Karakteristične funkcije

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Ispitivanje toka i skiciranje grafika funkcija

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

SISTEMI NELINEARNIH JEDNAČINA

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

ELEKTROTEHNIČKI ODJEL

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

Računarska grafika. Rasterizacija linije

Jednodimenzionalne slučajne promenljive

41. Jednačine koje se svode na kvadratne

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

APROKSIMACIJA FUNKCIJA

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

5 Ispitivanje funkcija

18. listopada listopada / 13

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Računarska grafika. Rasterizacija linije

IZVODI ZADACI (I deo)

Zavrxni ispit iz Matematiqke analize 1

Osnovne teoreme diferencijalnog računa

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

Binarno stablo (BinaryTree)

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

IZVODI ZADACI (I deo)

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

Algoritmi i strukture podataka - 1.cas

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

numeričkih deskriptivnih mera.

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Deljivost. 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18.

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

III VEŽBA: FURIJEOVI REDOVI

Riješeni zadaci: Nizovi realnih brojeva

Numerička matematika 2. kolokvij (1. srpnja 2009.)

Dijagonalizacija operatora

Program testirati pomoću podataka iz sledeće tabele:

Funkcija gustoće neprekidne slučajne varijable ima dva bitna svojstva: 1. Nenegativnost: f(x) 0, x R, 2. Normiranost: f(x)dx = 1.

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

Uvod u teoriju brojeva

Dvanaesti praktikum iz Analize 1

U raznim oblastima se često javlja potreba da se izmed u izvesnih objekata uspostave izvesne veze, odnosi ili relacije.

Skup svih mogućih ishoda datog opita, odnosno skup svih elementarnih događaja se najčešće obeležava sa E. = {,,,... }

7 Algebarske jednadžbe

Sistemi veštačke inteligencije primer 1

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

Zadaci iz Osnova matematike

Algebarske strukture sa jednom operacijom (A, ): Ako operacija ima osobine: zatvorenost i asocijativnost, onda je (A, ) polugrupa

TRIGONOMETRIJSKE FUNKCIJE I I.1.

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Trigonometrijske nejednačine

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka

I.13. Koliki je napon između neke tačke A čiji je potencijal 5 V i referentne tačke u odnosu na koju se taj potencijal računa?

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

Kaskadna kompenzacija SAU

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Zadaci iz trigonometrije za seminar

Riješeni zadaci: Limes funkcije. Neprekidnost

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

Linearna algebra 2 prvi kolokvij,

( , 2. kolokvij)

Neka su A i B proizvoljni neprazni skupovi. Korespondencija iz skupa A u skup B definiše se kao proizvoljan podskup f Dekartovog proizvoda A B.

RIJEŠENI ZADACI I TEORIJA IZ

ASIMPTOTE FUNKCIJA. Dakle: Asimptota je prava kojoj se funkcija približava u beskonačno dalekoj tački. Postoje tri vrste asimptota:

Konstruisanje. Dobro došli na... SREDNJA MAŠINSKA ŠKOLA NOVI SAD DEPARTMAN ZA PROJEKTOVANJE I KONSTRUISANJE

radni nerecenzirani materijal za predavanja

Algebarske strukture

Binarne relacije. Definicija. Uopštena binarna relacija je uredjena trojka (A, B, ρ) gde je ρ A B; (A, B) je tip ove binarne relacije.

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

1 Aksiomatska definicija skupa realnih brojeva

FUNKCIJE - 2. deo. Logika i teorija skupova. 1 Logika FUNKCIJE - 2. deo

Betonske konstrukcije 1 - vežbe 3 - Veliki ekscentricitet -Dodatni primeri

Relacije poretka ure denja

Transcript:

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Linearno ispitivanje Za datu običnu heš funkciju h : U {0, 1,... m 1} kojoj se obraćamo kao pomoćnoj heš funkciji metod linearnog ispitivanja koristi heš funkciju h(k, i) = (h (k) + i) mod m, za i {0, 1,... m 1}. Za ključ k prva ćelija koju ispitujemo je T[h (k)], tj. ćelija zadata pomoćnom heš funkcijom. Dalje ispitujemo T[h (k) + 1] itd. dok ne dodjemo do T[m 1]. Tada ispitujemo ćelije T[0], T[1]... dok ne probamo ćeliju T[h (k) 1]. Linearno ispitivanje je jednostavno za implementaciju, ali dopušta problem poznat kao primarno klasterovanje. Izgradjuje se dug niz zauzetih ćelija i raste vreme pretraživanja. Klasteri se prave obzirom da se prazna ćelija, koja prethodi nizu od i punih ćelija, popunjava sledeća sa verovatnoćom i + 1 m.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Kvadratno ispitivanje Dug niz zauzetih ćelija ima tendenciju rasta, pa raste i srednja vrednost traženja. Kvadratno ispitivanje koristi heš funkciju oblika h(k, i) = (h (k) + c 1 i + c 2 i 2 ) mod m, gde je h pomoćna heš funkcija, c 1, c 2 0 pomoćne konstante i i {0, 1,... m 1}. Inicijalna pozicija ispitivanja je T[h (k)]. Naredne pozicije koje se ispituju izjednačavaju se sa vrednostima koje zavise od ponašanja kvadrata posmatranog broja i. Ovaj metod radi mnogo bolje od linearnog ispitivanja, ali da bi iskorišćenje heš tabele bilo potpuno, vrednosti c 1, c 2 i m moraju biti ograničene. Ako dva ključa imaju iste inicijalne pozicije, njihovi probni nizovi su jednaki, jer je h(k 1, 0) = h(k 2, 0), što povlači h(k 1, i) = h(k 2, i). Ova osobina vodi do blaže forme klasterovanja sekundarno klasterovanje.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Dvostruko heširanje Dvostruko heširanje je jedna od najboljih metoda dostupnih za otvoreno adresiranje zbog toga što permutacije koje se dobijaju imaju mnoge karakteristike slučajno izabranih permutacija. Dvostruko heširanje koristi heš funkciju oblika: h(k, i) = (h 1 (k) + ih 2 (k)) mod m, gde su h 1, h 2 pomoćne heš funkcije. Inicijalna probna pozicija je T[h 1 (k)]. Sukcesivne probne pozicije razlikuju se od prethodne pozicije za h 2 (k) modulo m. Za razliku od linearnog i kvadratnog ispitivanja, ovde probni niz, na dva načina, zavisi od ključa k, obzirom da inicijalna probna pozicija ili obe probne pozicije mogu da variraju.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Dvostruko heširanje(cont.) Vrednost h 2 (k) mora biti uzajamno prosta sa dužinom m heš tabele. Uobičajeni način da se ostvari ovaj uslov je da m bude stepen broja 2 i da se h 2 definiše tako da uvek rezultuje prostim brojem. Drugi način je da m bude prost i da se h 2 dizajnira tako da uvek bude pozitivan ceo broj manji od m. Primer: Pretpostavimo da je m prost broj i h 1 (k) = k mod m, h 2 (k) = 1 + (k mod m ), gde je m izabrano da bude malo manje od m (recimo m 1).

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Dvostruko heširanje(cont.) Primer: Ako je k = 123456, m = 701 i m = 700 imamo da je h 1 (k) = 80, h 2 (k) = 257. Dakle, prva proba je na poziciji 80 = h 1 (k) i ispituje se svaka 257. ćelija modulo m dok se ne nadje ključ ili dok se ne ispitaju sve ćelije. Dvostruko heširanje je uopštenje linearnog ili kvadratnog ispitivanja u O(m 2 ) probnih nizova koji se koriste u odnosu na O(m), obzirom da svaki mogući par (h 1 (k 1 ), h 2 (k 2 )) donosi različite probne nizove. Kao rezultat, uspeh dvostrukog heširanja se čini veoma bliskim uspehu "idealne" šeme uniformnog heširanja.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Analiza heširanja otvorenim adresiranjem Naša analiza otvorenog adresiranja biće izražena preko faktora opterećenja α = n, ali kada m, n. m Napomena: U otvorenom adresiranju imamo najviše jedan element u ćeliji, pa kako je n m, to povlači α 1. Pretpostavimo da je reč o uniformnom heširanju. U ovoj idealizovanoj šemi, niz ispitivanja {h(k, 0), h(k, 1),..., h(k, m 1)}, koji se koristi za ubacivanje ili traženje ključa k može sa bilo kojom verovatnoćom biti bilo koja permutacija skupa {0, 1,..., m 1}. Dati ključ ima jedinstven niz ispitivanja odredjen njime.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Analiza heširanja otvorenim adresiranjem(cont.) Počinjemo sa analizom broja ispitivanja u bezuspešnom traženju. Teorema: Za datu heš tabelu otvorenog adresiranja sa faktorom opterećenja α = n < 1, očekivani broj ispitivanja je najviše m 1, uz pretpostavku uniformnog heširanja. 1 α Dokaz: U bezuspešnom traženju, svako ispitivanje osim poslednjeg, pristupa zauzetoj ćeliji koja ne sadrži željeni ključ, dok je poslednja probana ćelija prazna. Definišemo slučajnu promenljivu X koja predstavlja broj ispitivanja učinjenih u bezuspešnom traženju.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Analiza heširanja otvorenim adresiranjem(cont.) Neka je A i, za i = 1, 2,... dogadjaj u kome postoji i-to ispitivanje i to je zauzeta ćelija. Tada je dogadjaj {X i} presek dogadjaja A 1 A 2 A i 1. Ograničimo verovatnoću P{X i} ograničavajući P{A 1 A 2 A i 1 } = P{A 1 } P{A 2 A 1 } P{A 3 A 1 A 2 } P{A i 1 A 1 A 2 A i 2 } Kako u m ćelija ima n elemenata to je P{A 1 } = n m. Za j > 1, verovatnoća da postoji j-ta proba i da je to zauzeta ćelija, pri čemu je i prethodnih j 1 ispitivanja dalo zauzete ćelije je n j + 1, zbog pretpostavke uniformnog heširanja. m j + 1

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Analiza heširanja otvorenim adresiranjem(cont.) Obzirom da je n < m imamo n j m j n, za svaki 0 j m. m Prema tome, imamo da je verovatnoća P{X i} = n m n 1 m 1 n i + 2 m i + 2 ( n )i 1 = α i 1 m E[X] = P{X i} α i 1 = i=1 i=1 i=0 α i = 1 1 α. Dakle, ograničili smo sumu i gornja granica za 1 + α + α 2 + ima intuitivnu interpretaciju. Jedno ispitivanje se uvek vrši i ono sa verovatnoćom aproksimativno α daje zauzetu ćeliju, pa je neophodno drugo ispitivanje.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Analiza heširanja otvorenim adresiranjem(cont.) Sa verovatnoćom, aproksimativno, α 2 prve dve ćelije su zauzete i neophodno je treće ispitivanje itd. Ako je α konstanta, neuspešno traženje se odvija u O(1) vremenu. Posledica: Ubacivanje elemenata u heš tabelu otvorenog adresiranja sa 1 faktorom opterećenja α, zahteva najviše 1 α ispitivanja u proseku, uz uslov uniformnog heširanja. Dokaz: Element se u tabelu ubacuje samo ako postoji prazna ćelija i α < 1. Ubacivanje ključa zahteva bezuspešno traženje praćeno smeštanjem ključa u prvu praznu ćeliju koja je 1 nadjena. Tako je očekivani broj proba najviše 1 α.

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Analiza heširanja otvorenim adresiranjem(cont.) Računanje očekivanog broja ispitivanja za uspešno traženje zahteva malo više posla. Teorema: Za datu heš tabelu otvorenog adresiranja sa faktorom opterećenja α < 1, očekivani broj ispitivanja za uspešno traženje je najviše 1 α ln 1, uz pretpostavku uniformnog 1 α heširanja i pretpostavku da svi ključevi imaju jednake verovatnoće da budu nadjeni u tabeli. Dokaz: Traženje ključa k ima isti niz ispitivanja kao ubacivanje elementa sa ključem k. Prema prethodnoj pretpostavci, ako je k bio i + 1. ključ ubačen u heš tabelu, tj. očekivani broj ispitivanja učinjenih u traženju ključa k je najviše:

Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Analiza heširanja otvorenim adresiranjem(cont.) 1 1 i m = m m i. Tako dobijamo srednji broj svih ispitivanja u uspešnom traženju: 1 n n 1 i=0 m m i = m n n 1 i=0 m 1 m i = 1 α m k=m n+1 1 1 α m n x dx = 1 α (ln x) m m n = 1 α ln m m n 1 α ln 1 1 n = 1 α ln 1 1 α. m 1 k

Mada se heširanje najviše koristi za odlične očekivane rezultate, heširanje se može koristiti i za najgori slučaj to je u slučaju kada je skup ključeva statički i jednom kada se ključevi smeste u tabelu, prostor ključeva se ne menja. Neke aplikacije prirodno imaju statičke skupove ključeva, na primer, skup rezervisanih reči u programskom jeziku ili skup imena fajlova na CD-romu. Heš tehniku zovemo perfektnim heširanjem, ako je broj memorijskih pristupa pri traženju, u najgorem slučaju O(1). Osnovna ideja za kreiranje šeme perfektnog heširanja je jednostavna. Pri tome koristimo šemu heširanja sa dva nivoa, u kojoj se na svakom nivou koristi univerzalno heširanje.

(cont.) Prvi nivo je osnovni nivo, kao heširanje formiranjem lanaca: n ključeva se hešira u m ćelija korišćenjem heš funkcije h pažljivo odabrane iz familije univerzalnih heš funkcija. Umesto formiranja liste ključeva koji heširaju u istu ćeliju j, koristimo malu, sekundarnu heš tabelu S j koja je odredjena heš funkcijom h j. Pažljiv izbor funkcije h j obezbedjuje da na drugom nivou ne dodje do kolizije. Kao garancija da na drugom nivou neće doći do kolizije, treba da veličina m j heš tabele S j bude kvadrat broja n j ključeva koji heširaju u ćeliju j. Dok imamo ovakvu kvadratnu zavisnost m j od n j izgleda verovatnim da će doći do prepunjavanja. Pokazaćemo da dobar izbor heš funkcije na prvom nivou omogućava da očekivana količina iskorišćenog prostora ostane O(n).

(cont.) Koristimo heš funkciju iz univerzalne klase heš funkcija. Prvi nivo je izabran iz klase H p,m, gde je p prost broj veći od proizvoljne ključne vrednosti. Oni ključevi koji heširaju u ćeliju j su re-hešovani u sekundarnu heš tabelu S j veličine m j korišćenjem heš funkcije h j izabrane iz klase H p,mj. Ići ćemo u dva koraka: Najpre ćemo obezbediti da u sekundarnoj heš tabeli ne dodje do kolizije. Drugo, pokazaćemo da je očekivana količina memorije koja je globalno iskorišćena za primarnu i sekundarnu heš tabelu O(n). Primer: Koristimo perfektno heširanje za skladištenje skupa K = {10, 22, 37, 40, 52, 60, 70, 72, 75}.

(cont.) Primer: Spoljna heš funkcija je h(k) = ( (ak + b) mod p ) mod m, gde je a = 3, b = 42, p = 101 i m = 9. Na primer, h(75) = 2, pa ključ 75 hešira u ćeliju 2 tabele T.

(cont.) Teorema: Ako n ključeva smestimo u heš tabelu veličine m = n 2 korišćenjem heš funkcije h slučajno izabrane iz klase univerzalnih heš funkcija, verovatnoća da će doći do kolizije je manja od 1 2. Dokaz: Ima ( n) 2 parova ključeva koji mogu da dodju u koliziju. Verovatmoća da dva ključa dodju u koliziju je 1, ako je heš m funkcija h izabrana slučajno iz univerzalne klase heš funkcija H. Označimo sa X slučajnu promenljivu koja broji kolizije. Kada je m = n 2 očekivani broj kolizija je E[X] = ( ) n 1 2 n(n 1) = 1 n2 2 n = n 1 2 2n < 1 2.

(cont.) Teorema: Ako n ključeva smestimo u heš tabelu veličine m = n korišćenjem heš funkcije h slučajno izabrane iz klase univerzalnih heš funkcija, onda je E [m 1 j=0 n 2 ] j < 2n, gde je n j broj ključeva koji hešira u ćeliju j. Dokaz: Počinjemo od identiteta koji važi za proizvoljan nenegativan ceo broj a, tj. a 2 = a + 2 ( a) 2. Imamo E [m 1 n 2 ] [ m 1 ) ( nj )] [ j = E nj + 2( m 1 ] = E n j 2 j=0 j=0 j=0

(cont.) +2E [m 1 j=0 ( nj 2 ) ] = E[n] + 2E [ m 1 j=0 ( nj 2 ) ] [ m 1 = n + 2E Kako je reč o univerzalnom heširanju dobijamo očekivanu vrednost, za m = n ( ) n 1 n(n 1) = = n 1. 2 m 2m 2 Tako je E [m 1 j=0 n 2 ] n 1 j n + 2 2 = 2n 1 < 2n. j=0 ( nj 2 ) ].

(cont.) Posledica 1: Ako n ključeva smestimo u heš tabelu veličine m = n korišćenjem heš funkcije h slučajno izabrane iz univerzalne klase heš funkcija, te ako je dužina svake sekundarne heš tabele m j = n 2 j, za j = 0, m 1, onda je očekivana veličina skladišta potrebna za sve sekundarne heš tabele u šemi perfektnog heširanja manja od 2n. Posledica 2: Ako n ključeva smestimo u heš tabelu veličine m = n korišćenjem heš funkcije h slučajno izabrane iz univerzalne klase heš funkcija, te ako izjednačimo dužinu svake sekundarne heš tabele m j = n 2 j, za j = 0, m 1, onda je verovatnoća za potpuno skladištenje sekundarnih heš tabela čija dužina nije manja od 4n manja od 1 2.

Ispitivanje binarnih stabala su strukture podataka koje podržavaju mnoge operacije dinamičkog skupa, koje sadrže: SEARCH, MINIMUM, MAXIMUM, PREDECESSOR, SUCCESSOR, INSERT and DELETE. Tako binarna stabla mogu da se koriste kao rečnik. Osnovne operacije zahtevaju vreme proprcionalno visini stablka. Za kompletno binarno stablo od n čvorova ove operacije u najgorem slučaju zahtevaju O(n) vremena. Svaki čvor jedan objekat. Svaki čvor sadrži polja levo, desno i p, koja pokazuju na njegovo levo dete, desno dete i njegovog roditelja, tim redom. Ako neko dete ili roditelj nedostaju odgovarajuće polje je NIL. Koren je jedini čvor u stablu čiji je roditeljski čvor NIL.

Ispitivanje binarnih stabala (cont.) Ključevi su u binarnom stablu uvek uskladišteni tako da zadovoljavaju osobine stabla: Ako je x čvor stabla i y čvor levog podstabla od x, onda je key[y] key[x]. Ako je y čvor desnog podstabla od x, onda je key[x] key[y]. Uredjeni prolaz kroz stablo osobina stabla da se mogu odrediti svi ključevi u stablu jednostavnim rekurzivnim algoritmom. Algoritam se tako naziva jer je ključ korena nalazi izmedju vrednosti u levom i onih u desnom podstablu. Algoritam uzima O(n) vremena za prolaz kroz stablo sa n čvorova, jer posle inicijalnog poziva, za svaki čvor pozivamo proceduru 2 puta-jednom za levo i jednom za desno dete.

Ispitivanje binarnih stabala (cont.) Teorema: Ako je x koren podstabla sa n čvorova, poziv prethodne procedure zahteva O(n) vremena. Dokaz: Neka T(n) označava vreme potrebno za INORDER-TREE-WALK, kada se poziva u korenu podstabla sa n čvorova. INORDER-TREE-WALK zahteva mali konstantni deo vremena za test x NIL.

Ispitivanje binarnih stabala (cont.) Za ispitivanje praznog podstabla T(0) = C, za proizvoljnu konstantu C. Za n > 0 pretpostavimo da se procedura poziva za čvor x čije levo podstablo ima k, a desno n k 1 čvorova. Vreme da se izvrši INORDER-TREE-WALK(x) je T(n) = T(k) + T(n k 1) + d, za neku pozitivnu konstantu d, koja reflektuje vreme potrebno da se izvrši procedura, tj. vreme potrebno za rekurzivne pozive. Koristimo metod supstitucije da pokažemo da je T(n) = O(n), dokazujući da je T(n) = (c + d)n + c. Za n = 0 imamo da je (c + d) 0 + c = c = T(0). Za n > 0 imamo:

Ispitivanje binarnih stabala (cont.) T(n) = T(k) + T(n k 1) + d = ((c + d)k + c) + ((c + d)(n k 1) + c) + d = (c + d)n + c c + c d + d = (c + d)n + c. Dakle, poziv procedure zahteva O(n) vremena.

Ispitivanje binarnih stabala Pretraživanje Najčešća operacija traženje ključa smeštenog u binarnom stablu. Najpre traženje čvora sa datim ključem u stablu: Procedura kreće od korena niz stablo, a čvorovi posmatrani tokom rekurzije traže prolazno vreme O(h), gde je h težina stabla.

Ispitivanje binarnih stabala Pretraživanje(cont.)

Ispitivanje binarnih stabala Procedura za maximum je simetrična:

Ispitivanje binarnih stabala

Ispitivanje binarnih stabala (cont.) Vreme rada ove procedure za stablo visine h je O(h), jer pratimo put ili uz ili niz stablo. Procedura za nalaženje prethodnika datog čvora x, PREDECESSOR (X), simetrična je ovoj proceduri, tj. krećemo se niz i uz levo podstablo od x. Teorema: Dinamički skup operacija SEARCH, MINIMUM, MAXIMUM, SUCCESSOR i PREDECESSOR mogu se napisati tako da rade u O(h) vremenu u binarnom stablu visine h. Operacije ubacivanja i brisanja zahtevaju dinamičke skupove, koje dobijamo izmenama u binarnom stablu, uz zadržavanje osobina ovog stabla.

Ispitivanje binarnih stabala Ubacivanje

Ispitivanje binarnih stabala Ubacivanje(cont.) Procedura trasira put niz stablo počev od korena. Pokazivač x trasira put, a y ima funkciju roditelja od x. Pokazivači se kreću niz stablo dok x ne postane NIL. Ovo NIL zauzima poziciju na koju treba da smestimo z.

Ispitivanje binarnih stabala Brisanje Procedura za brisanje datog čvora z iz binarnog stabla uzima kao argument pokazivač na z. Ako z nema dece modifikujemo roditelja p(z) da zameni z, a njegovo dete je NIL. Ako z ima samo jedno dete, izbacujemo z pravljenjem novog linka izmedju njegovog roditelja i njegovog deteta. Ako čvor ima 2 deteta izbacujemo sledbenika y od z koji nema levo dete i zamenjujemoključ od z i prateće podatke, ključem od y i pratećim podacima.

Ispitivanje binarnih stabala Brisanje(cont.)

Ispitivanje binarnih stabala Brisanje(cont.)

Ispitivanje binarnih stabala Visina binarnog stabla varira u zavisnosti od toga da li se elementi ubacuju ili izbacuju. Zbog toga se malo zna o prosečnoj visini binarnog stabla. Definisaćemo slučajno formirano binarno stablo od n ključeva, koje raste ubacivanjem ključeva slučajnim redom u inicijalno prazno stablo, gde je svaka od n! permutacija ulaznih ključeva jednako verovatna. Ako sa X n označimo visinu slučajno formiranog binarnog stabla sa n ključeva, možemo definisati eksponencijalnu visinu Y n = 2 X n. Kada gradimo ovakvo stablo, biramo jedan ključ koji postavljamo na mesto korena i sa R n označimo slučajnu promenljivu koja čuva rang ovog ključa. Znači, R n čuva poziciju koju će ovaj ključ zauzeti kada se ostali ključevi sortiraju.

Ispitivanje binarnih stabala (cont.) Svaki od brojeva {1, 2,..., n} ima jednaku verovatnoću da bude R n. Ako je R n = i levo podstablo je izgradjeno od i 1-og, a desno od n i slučajno izabranih ključeva. Tada je eksponencijalna visina Y n = 2 max(y i 1, Y n i ). Kao osnovni slučaj uzimamo Y 1 = 1, jer je eksponencijalna visina stabla sa jednim čvorom, 2 0 = 1, i pogodno je staviti da je Y 0 = 0. Dalje definišemo indikatore slučajnih promenljivih Z n,1, Z n,2,..., Z n,n, gde je Z n,i = I{R n = i}, za svaki i = 1, n. Kako je R n sa jednakom verovatnoćom bilo koji element skupa {1, 2,..., n} imamo Pr{R n = i} = 1 n, tj. E[Z n,i] = 1, za svaki n i = 1, n.

Ispitivanje binarnih stabala (cont.) Kako je tačno jedna od vrednosti Z n,i = 1, dok su ostale nula imamo n Y n = Z n,i (2 max(y i 1, Y n i )). i=1 Pokazaćemo samo da je E[Y n ] polinomijalna funkcija od n, što znači da je E[X n ] = O(lg n). Indikator slučajne promenljive Z n,i = I{R n = i} nezavisan je od vrednosti Y i 1 i Y n i. Levo podstablo je slučajno izgradjeno od i 1-og ključa čiji su rangovi manji od i. Ova struktura, sem ključeva koje sadrži ne zavisi od R n, pa su slučajne promenljive Y i 1 i Z n,i nezavisne. Isto je i sa desnim podstablom i slučajnim promenljivim Y n i i Z n,i. Dakle:

Ispitivanje binarnih stabala (cont.) E[Y n ] = E [ n Z n,i (2 max(y i 1, Y n i )) ] = = = i=1 n i=1 n i=1 n i=1 n E[Z n,i (2 max(y i 1, Y n i ))] E[Z n,i ]E[2 max(y i 1, Y n i )] 1 n 2E[max(Y i 1, Y n i )] = 2 E[max(Y i 1, Y n i )] 2 n n i=1 n E[Y i 1 ] + E[Y n i ]. i=1

Ispitivanje binarnih stabala (cont.) Kako se svaka od E[Y 0 ], E[Y 1 ],..., E[Y n ] pojavljuje dva puta u ovoj sumi, jednom kao Y n i, drugi put kao Y i 1 dobijamo E[Y n ] 4 n n 1 i=0 E[Y i ]. Korišćenjem principa matematičke indukcije pokazuje se da važi: ( ) ( ) n 1 i + 3 n + 3 =. 3 4 i=0 Transfinitnom indukcijom ćemo takodje dokazati da je E[Y n ] = 1 ( ) n + 3. 4 3

Ispitivanje binarnih stabala (cont.) 1. Za n = 0 je E[Y 0 ] = 0 1 ( ) 3 = 1 4 3 4 ; Za n = 1 imamo E[Y 1 ] = 1 1 ( ) 4 = 1. 4 3 2. Pretpostavimo da za svaki i < n važi E[Y i ] = 1 ( ) i + 3. 4 3 3. Dokažimo tvrdjenje za prirodan broj n. Važi: E[Y n ] 4 n 1 E[Y i ] 4 ( ) n 1 1 i + 3 = 1 ( ) n 1 i + 3 = n n 4 3 n 3 i=0 i=0 i=0 = 1 ( ( ) ( ) ( ) ( ) 3 4 5 n + 2 ) + + + n 3 3 3 3

Ispitivanje binarnih stabala (cont.) ( ) 1 n + 3 = 1 (n + 3)! n 4 n 4!(n + 3 4)! = 1 (n + 3)! 4n 3!(n 1)! = 1 (n + 3)! 4 3!n! = 1 (n + 3)! 4 3!((n + 3) 3)! = 1 ( ) n + 3. 4 3 Ovim smo pokazali da tvrdjenje važi za sve prirodne brojeve i kako još važi Jensenova nejednakost E[Y n ] = E[2 X n ] 2 E[X n], dobijamo da je 2 E[Xn] E[Y n ] 1 ( ) n + 3 = 1 (n + 3)(n + 2)(n + 1) = 4 3 4 6 =

Ispitivanje binarnih stabala (cont.) Dakle, = n3 + 6n 2 + 11n + 6. 24 E[X n ] = log 2 2 E[X n] = log 2 n 3 + 6n 2 + 11n + 6 24 log 2 (n 3 + 6n 2 + 11n + 6) log 2 n 3 = 3 log 2 n, odnosno, E[X n ] = O(log 2 n). Teorema: Očekivana visina binarnog stabla izgradjenog od n slučajno izabranih ključeva je O(log 2 n).

Predstavljanje grafova Grafovski algoritmi Mnogi računarski problemi definisani u terminima grafova; Graf G = (V, E); V neprazan skup čije elemente nazivamo čvorovi grafa; E V V skup čije elemente nazivamo grane grafa; Vreme neophodno za izvršenje graf algoritma obično zavisi od broja čvorova ( V ) grafa i broja grana grafa ( E ). Elementarni graf algoritmi predstavljanje i pretraživanje grafa; Algoritam pretraživanja može da otkrije puno o strukturi grafa. Predstavljanje grafa na dva standardna načina: kolekcija listi susedstva matrica susedstva

Predstavljanje grafova Lista susedstva Lista susedstva češći način za predstavljanje grafova; Dobar način za predstavljanje retkih grafova, E V 2. Matrica susedstva pogodna za guste grafove, E V 2 Reprezentacija od G = (V, E) listom susedstva niz Adj koji se sastoji od V listi od kojih svaka odgovara po jednom čvoru iz V. u V, Adj[u] = {v (u, v) E} skup svih suseda čvora u u G (može da sadrži i pokazivače na čvorove) Za usmereni graf G suma dužina svih listi susedstva je E ; Za neusmereni graf G suma dužina svih listi susedstva je 2 E ; U oba slučaja u memoriji je potrebno O(V + E) prostora.

Predstavljanje grafova Lista susedstva (cont.) Lista susedstva može biti prilagodjena predstavljanju težinskih grafova; Težinski grafovi svakoj grani se pridružuje težina zadata funkcijom w : E R w težinska funkcija; (u, v) E, w(u, v) težina grane koju u listu susedstva reči u smeštamo sa čvorom v Nepovoljnost ovakvog predstavljanja ne postoji mogućnost brzog ispitivanja da li v Adj[u]. Ovo se prevazilazi predstavljanjem grafa matricom susedstva.

Predstavljanje grafova Matrica susedstva Za predstavljanje grafa matricom susedstva pretpostavka da su čvorovi numerisani sa 1, 2,..., V proizvoljnim redom; A matrica susedstva dimenzije V V ; A = (a ij ) V i,j=1 a ij = Neophodna memorija O( V 2 ) { 1, (i, j) E 0, u protivnom Za neusmerene grafove A = A T ; Kod težinskih grafova težinu grane w(u, v) smestamo u vrstu u i kolonu v matrice susedstva Za nepostojeće grane NIL, 0 ili.