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

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

3.1 Granična vrednost funkcije u tački

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

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

Teorijske osnove informatike 1

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

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

Operacije s matricama

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

Elementi spektralne teorije matrica

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

Računarska grafika. Rasterizacija linije

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

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

SISTEMI NELINEARNIH JEDNAČINA

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

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,

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

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

Algoritmi i strukture podataka

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

18. listopada listopada / 13

5 Ispitivanje funkcija

5. Karakteristične funkcije

Računarska grafika. Rasterizacija linije

IZVODI ZADACI (I deo)

numeričkih deskriptivnih mera.

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

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

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

Ispitivanje toka i skiciranje grafika funkcija

ELEKTROTEHNIČKI ODJEL

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

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

Minimalno povezujuće stablo

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

Linearna algebra 2 prvi kolokvij,

41. Jednačine koje se svode na kvadratne

Riješeni zadaci: Nizovi realnih brojeva

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

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

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

7 Algebarske jednadžbe

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

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

Zavrxni ispit iz Matematiqke analize 1

Dijagonalizacija operatora

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

Dvanaesti praktikum iz Analize 1

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

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

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

GRAFOVI. Ljubo Nedović. 21. februar Osnovni pojmovi 2. 2 Bipartitni grafovi 8. 3 Stabla 9. 4 Binarna stabla Planarni grafovi 12

Sortiranje prebrajanjem (Counting sort) i Radix Sort

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

Linearna algebra 2 prvi kolokvij,

Matematika 1 - vježbe. 11. prosinca 2015.

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

Kaskadna kompenzacija SAU

Osnovne teoreme diferencijalnog računa

Matematička analiza 1 dodatni zadaci

APROKSIMACIJA FUNKCIJA

Uvod u teoriju brojeva

Zadaci iz Osnova matematike

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

radni nerecenzirani materijal za predavanja

IZVODI ZADACI (I deo)

ZBIRKA POTPUNO RIJEŠENIH ZADATAKA

RIJEŠENI ZADACI I TEORIJA IZ

1 Uvodni pojmovi kombinatorike, I deo

Napredne pretrage u grafovima

Binarno stablo (BinaryTree)

TRIGONOMETRIJSKE FUNKCIJE I I.1.

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Četrnaesto predavanje iz Teorije skupova

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

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

1 Promjena baze vektora

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

4 Numeričko diferenciranje

Algoritmi i strukture podataka - 1.cas

Trigonometrijske nejednačine

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

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

Iskazna logika 1. Matematička logika. Department of Mathematics and Informatics, Faculty of Science, University of Novi Sad, Serbia.

VJEŽBE 3 BIPOLARNI TRANZISTORI. Slika 1. Postoje npn i pnp bipolarni tranziostori i njihovi simboli su dati na slici 2 i to npn lijevo i pnp desno.

Elektrotehnički fakultet univerziteta u Beogradu 17.maj Odsek za Softversko inžinjerstvo

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

MJERA I INTEGRAL 2. kolokvij 30. lipnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!)

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

Ovo nam govori da funkcija nije ni parna ni neparna, odnosno da nije simetrična ni u odnosu na y osu ni u odnosu na

Granične vrednosti realnih nizova

Sistemi veštačke inteligencije primer 1

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

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

TRIGONOMETRIJA TROKUTA

Problemi maksimuma i minimuma

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

Glava 1. Realne funkcije realne promen ive. 1.1 Elementarne funkcije

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

Transcript:

Predstavljanje grafova BFS algoritam 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 dva standardna načina: kolekcija listi susedstva matrica susedstva

Predstavljanje grafova BFS algoritam 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 BFS algoritam 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 BFS algoritam 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.

Predstavljanje grafova BFS algoritam BFS algoritam-pretraživanje grafa po širini - Jedan od najjednostavnijih algoritama za pretraživanje grafa (prototip za mnoge važne graf algoritme); Primer: Prajmov algoritam za nalaženje minimalnog razmakau stablu, Dijkstrov algoritam najkraćeg puta iz jednog izvora Za dati graf G = (V, E) i fiksirani izvorni čvor s, BFS se sistemski kreće niz grane grafa G da otkrije svaki čvor koji je dostižan iz s. Istovremeno algoritam računa distancu (najmanji broj grana) iz s u svaki dostižni čvor.

Predstavljanje grafova BFS algoritam BFS algoritam (cont.) BFS algoritam proizvodi prvo-po-širini stablo iz s u v, koje odgovara najkraćem putu izmedju čvorova s i v. Algoritam radi i na usmerenim i na neusmerenim grafovima. Pretraživanje je dobilo ovakav naziv, jer ukazuje na granicu izmedju otkrivenih i neotkrivenih čvorova, uniformno po širini te granice. To znači da algoritam najpre otkriva sve čvorove koji su na distanci k od s, pre otkrivanja svih čvorova na distanci k + 1. Da bi davao informaciju o tome koji su čvorovi otkriveni, a koji nisu, algoritam ih boji belo, sivo ili crno. Tokom pretraživanja, čvor na koji se prvi put nailazi (koji je prvi put otkriven) je obojen belo.sivi i crni čvorovi su ranije otkriveni i granica medju njima utvrdjuje se ponašanjem u algoritmu.

Predstavljanje grafova BFS algoritam BFS algoritam (cont.) Opis: Ako su (u, v) E i ako je čvor u crn, čor v je ili siv ili crn, što znači da su svi susedni čvorovi crnog čvora već otkriveni. Sivi čvorovi za susede mogu imati i bele čvorove. BFS algoritam pretraživanja konstruiše, takozvano, prvo po širini stablo inicijalizovano u izvornom čvoru s.

Predstavljanje grafova BFS algoritam BFS algoritam (cont.) Kako algoritam radi? Kada otkrijemo beli čvor v u toku skeniranja liste susedstva već otkrivenog čvora u, čvor v i grana (u, v) dodaju se u stablo. Kaěmo da je u prethodnik, roditelj čvora v u stablu. Čvor se otkriva samo jedan put, pa svaki čvor može imati najviše jednog roditelja. Veze sa prethodnikom i sledbenikm u prvom po širini stablu definisane su u odnosu na koren s: ako je čvor u na putu od s do čvora v, onda je u prethodnik od v i v je sledbenik od u. BFS procedura podrazumeva da je ulazni graf G = (V, E) predstavljen listama susedstva.

Predstavljanje grafova BFS algoritam BFS algoritam (cont.) Ova procedura čuva nekoliko dodatnih informacija za svaki čvor u grafu. Boja svakog čvora u smeštena je u promenljivoj u.color, prethodnik od u smešten je u promenljivoj u.π. Ako u nema prethodnika (u = s ili u nije otkriven), onda je u.π = NIL. Distanca od izvora s do čvora u smešta se u promenljivu u.d. Algoritam koristi FIFO kju Q da bi olakšao upravljanje sivim čvorovima.

Predstavljanje grafova BFS algoritam BFS algoritam (cont.)

Predstavljanje grafova BFS algoritam BFS algoritam (cont.) Rezultat pretraživanja BFS algoritma može da zavisi od redosledakojim se posećuju susedi datog čvora, pa stablomože da varira, ali distanca koja se algoritmom računa ne.

Predstavljanje grafova BFS algoritam BFS algoritam (cont.)

Najkraći putevi Napomena: Pre nego što dokažemo različite osobine BFS pretraživanja, analiziraćemo njegovo prolazno vreme na ulaznom grafu G = (V, E). Posle inicijalizacije svaki je čvor smešten u kju najviše jednom. Operacije ENQUEUE i DEQUEUE uzimaju O(1) vremena, pa je kompletno vreme posvećeno kju operacijama O(V). Obzirom da selistasusedstva svakog čvora skenira samo kada se čvor ukloni iz kjua, svaka se lista susedstva skenira najviše jednom. Suma dužina svih listi je O(E), odakle je jasno da je prolazno vreme BFS algoritma O(V+E).

Najkraći putevi Najkraći putevi Definicija: Definisaćemo distancu najkraćeg puta δ(s, v) izmedju čvorova s i v kao minimalni broj grana na proizvoljnom putu iz s u v. Ako put iz s u v ne postoji stavićemo δ(s, v) =. Put dužine δ(s, v) iz s u v je najkraći put. Pokazaćemo da distanca koju računa BFS jeste upravo distanca najkraćeg puta. Lema 1: Neka je G = (V, E) usmeren ili neusmeren graf i s V proizvoljan čvor. Tada za granu (u, v) E važi δ(s, v) δ(s, u) + 1.

Najkraći putevi Najkraći putevi (cont.) Dokaz: Ako je čvor u dostižan iz s, dostižan je i iz v. U ovom slučaju najkraći put iz s u v ne može biti duži od najkraćeg puta iz s u u plus grana (u, v), pa u ovom slučaju nejednakost važi. Ako u nije dostižan iz s onda je δ(s, u) = i, u ovom slučaju, nejednakost važi. Napomena: Cilj nam je da pokažemo da je v.d = δ(s, v), zaproizvoljan čvor v V ulaznog grafa G.

Najkraći putevi Najkraći putevi (cont.) Lema 2: Neka je G = (V, E) usmeren ili neusmeren graf i pretpostavimo da BFS prolazi kroz G od izvornog čvora s V. Tada, za svaki čvor v V vrednost v.d koja se izračunava algoritmom ograničava odozgo δ(s, v), tj.v.d δ(s, v). Dokaz: Koristimo indukciju po broju ENQUEUE operacija.polazna induktivna pretpostavka je kada ses ukloni iz kjua. U ovom slučaju je s.d = 0 = δ(s, s) i v.d = δ(s, v), za svaki v V \ {s}. Pretpostavimo daje posle vadjenja čvora u iz kjua u.d δ(s, u).

Najkraći putevi Najkraći putevi (cont.) Da bi učinili induktivni korak, uočimo beli čvor v, koji je otkriven za vreme ispitiǎnja čvora u. Prema induktivnoj pretpostavci je u.d δ(s, u) i v.d = v.u + 1 δ(s, u) + 1 δ(s, v). Čvor v je umetnutu kju sada i nikad više, jer je samo sada obojen u sivo. Zato se vrednost v.d više ne menja i induktivna pretpostavka je očuvana. Lema 3: Pretpostavimo da za vreme izvršenja BFSa na grafu G = (V, E) kju Q sadrži čvorove v 1, v 2,... v r, gde je v 1 glava od Q, a v r rep. Tada je v r.d v 1.d + 1, v i.d v i+1.d, za i {1, 2,... r 1}.

Najkraći putevi Najkraći putevi (cont.) Dokaz: Izvodimo indukcijom po broju kju operacija. Inicijalno, kada kju sadrži samo s lema sigurnovaži. Moramo da pokažemo da lema važi posle ubacivanjai brisanja čvora iz kjua.ako je glava v 1 kjua uklonjena v 2 postaje nova glava. Prema induktivnoj pretpostavci je v 1.d v 2.d, a tada imamo i v r.d v 1.d + 1 v 2.d + 1, tako da lema važi i kadaje v 2 glava. Ubacivanje čvora zahteva bliže ispitivanje koda. Kada ubacimo čvor v u kju Q, on postaje v r+1. U to vreme većsmo iz kjua izbacili čvor u, čija je lista susedstva upravo počela da se skenira. Prema indukcijskoj pretpostavci, za novu glavu v 1 je u.d v 1.d.

Najkraći putevi Najkraći putevi (cont.) Tako dobijamo v r+1.d = v.d = u.d + 1 v 1.d + 1. Takodje važi v r.d u.d + 1 = v.d = v r+1.d. Posledica: Pretpostavimo da su za vreme izvršenja BFS algoritma na grafu G = (V, E) čvorovi v i i v j ubačeni u kju Q i da je v i ubačeno pre v j. Tada je v i.d v j.d, u vremenu kada je v j ubačeno.

Najkraći putevi Najkraći putevi (cont.) Teorema: Neka je G = (V, E) usmeren ili neusmeren graf i da se BFS izvršava od izvornog čvora s V. Tada BFS otkriva svaki čvor v dostižan iz s i odredjuje distancu v.d = δ(s, v). Štaviše, za svaki čvor v s dostižan iz s jedan od najkraćih puteva jeste najkraći put iz s u v.π iza koga je grana (v.π, v). Dokaz izvodimo kontrapozicijom. Pretpostavimo da postoji čvor čija distanca v.d u BFSu nije jednaka distanci najkraćeg puta i neka je v prvi čvor za koji je v.d > δ(s, v). Znači da v mora biti dostižan iz s, jer je, u protivnom, δ(s, v) = > v.d. Neka je u neposredni prethodnik od v.

Najkraći putevi Najkraći putevi (cont.) Tada je δ(s, v) = δ(s, u) + 1. Kako je δ(s, u) < δ(s, v) i kako je u pronadjen pre v važi u.d = δ(s, u), pa je v.d > δ(s, v) = δ(s, u) + 1 = u.d + 1. U ovom slučaju i vremenu čvor v može biti beo, siv ili crn. Pokazaćemo da svaki od ovih slučajeva dovodi do kontradikcije. Ako je v beo v.d = u.d + 1 što je nemoguće. Ako je v crn, znači da je već udaljen iz kjua, pa je v.d u.d, što je takodje kontradikcija. Ako je v siv, obojen je posle izbacivanja nekog čvora w koji je uklonjen iz kjua pre u. Dakle, v.d = w.d + 1 u.d + 1,

Najkraći putevi Najkraći putevi (cont.) pa nas i ovaj slučaj dovodi do kontradikcije. Prema tome, v.d = δ(s, v). Svi čvorovi dostižni iz s su otkriveni BFS algoritmom. Ako je v.π = u, to je v.d = u.d + 1. Tako je najkraći put iz s u v, najkraći put iz s u v.π plus put niz granu (v.π, v).

-Pretraživanje grafa po dubini Strategija DFS pretraživanja podrazumeva pretraživanje po dubini grafa. DfS pretraživanje otkriva grane koje izlaze iz čvora v, koji je najskorije otkriven. Kada se sve grane iz v otkriju, koristimo "backtrack" za pretraživanje grana koje napuštaju čvor iz koga je v otkriven. Ovaj proces se nastavlja sve dok ne otkrijemo sve čorove dostižne iz izvornog čvora. Ako ima još neotkrivenih čvorova, jedan od njih se koristi kao izvorni čvor i ispitivanje se ponavlja iz tog izvora. Postupaknastavljamo dok svi čvorovi nisu otkriveni.

Razlike u odnosu na BFS U ovom pretraživanju može da se formira nekoliko stabala jer pretraživanje može da se vrši iz nekoliko izvora, Prethodnik (praizvor) u ovom pretraživanju definiše se drugačije: G π = (V, E π ), gde je E π = {(v.π, v) v V, v.π NIL}, Podgraf prethodnika u DFS obrazuje depth-first forest koja se sastoji od nekoliko depth-first stabala. E π skup grana tih stabala.

(cont.) Kao i u BFS algoritmu, čvorovi se tokom pretraživanja boje, čime se identifikuje njihov status. Inicijalno je svaki čvor beo, posivi kada se otkrije i pocrni kada je završen (kada je lista susedstva kompletno ispitana). Ova tehnika garantuje da se svaki čvor završava u tačno jednom depth-first stablu. Pored formiranja depth-first šume, DFS takodje svakom čvoru pridružuje dva vremenska koraka: - Prvi, v.d koji snima kada je čvor v prvi put otkriven (obojen sivo) - Drugi, v.f koji pamti kada je lista susedstva za v završena (obojen crno)

(cont.) Ovi vremenski koraci se koriste u mnogim graf algoritmima. DFS beleži kada je čvor u otkriven u promenljivoj u.d i kada je čvor u završenu promenljivoj u.f. Ovi vremenski koraci su celi brojevi izmedju 1 i 2 V, jer postoji jedan dogadjaj otkrivanja i jedan završavanja za svaki od V čvorova. Za svaki čvor u je u.d < u.f i čvor je beo - pre u.d; siv - izmedju u.d i u.f; crn - posle u.f. Ulazni graf u DFS može biti usmeren ili neusmeren.

(cont.) Overviev

(cont.) Overviev

(cont.) Pri inicijalizaciji u DFS algoritmu uvodi se globalni brojač vremena time. Zatim se proverava svaki čvor i kada je nadjen algoritam prelazi na proceduru VISIT. Svaki put kada pozivamo ovu proceduru u postaje koren novog stabla u DF šumi. Procedure u DFS uzimaju O(V) vremena. Procedura VISIT poziva se tačno jednom za svaki čvor v V, jer se poziva samo za bele čvorove koji se odmah farbaju u sivo. U toku izvršenja DFS-VISIT(v) petlja se izvršava Adj[v] puta. Kako je Adj[v] = O(E), v V prolazno vreme procedure je O(E). Dakle, prolazno vreme za DFS je O(V+E).