Projektovanje algoritama L09.1. Topološko sortiranje
Današnje teme Topološko sortiranje Povezanost grafa jako povezane komponente Minimum Spanning Trees (razapinjuće stablo) Lektira: 22. Elementary Graph Algorithms [22.4, 22.5, str. 612-621] 23. Minimum Spanning Trees [str. 624-638] 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 2
Podsetnik pojmova Graf kao struktura podataka Predstava grafa Lista susedstva Matrica susedstva Pretraga grafa BFS (Breadth-First-Search), najkraće putanje DFS (Depth-First-Search) Algoritmi najkraće putanje u grafu Bellman-Ford Dijsktra 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 3
Problem 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 4
Topološko sortiranje Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. Redosled čvorova grafa takav da, ukoliko graf sadrži ivicu (u,v), čvor v se u redosledu nalazi nakon čvora u. 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 5
Topološko sortiranje TOPOLOGICAL-SORT(G) call DFS(G) to compute v.f for all v insert v to the front of a list when finished return the linked list of v T V, E = θ V + E 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 6
28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 7 123RF
Projektovanje algoritama L09.2. Pronalaženje jako povezanih komponenata
Problem 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 9
Strongly Connected Components Jako povezana komponenta grafa (Strongly Connected Component): deo grafa u kojem se iz svakog čvora može dostići svaki preostali čvor. Transponovan graf: graf u kojem su sve ivice suprotne u odnosu na originalni graf. Vreme otkrivanja komponente je najmanje vreme otkrivanja nekog čvora komponente. Vreme završetka komponente je najveće vreme završetka nekog čvora komponente. 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 10
Strongly Connected Components STRONGLY-CONNECTED-COMPONENTS(G) DFS(G) to compute finish times compute G T DFS(G T ) in decresing order of finish times return sets of v discovered as trees in G T T V, E = θ V + E 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 11
28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 12 123RF
Projektovanje algoritama L09.3. Razapinjuće stablo minimalnog stepena
Problem 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 14
Razapinjuće stablo minimalnog stepena 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 15
Razapinjuće stablo minimalnog stepena 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 16
Osnovna ideja (Minimum Spanning Tree) GENERIC-MST(G,w) A = Ø while A does not form a spanning tree find an edge (u,v) that is safe for A A = A + {(u,v)} return A 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 17
Osnovna ideja (Minimum Spanning Tree) Odsečak (S, V-S) grafa je particija skupa čvorova V. Ivica prelazi odsečak ukoliko joj je jedan kraj u S, a drugi u V-S. Odsečak poštuje skup ivica ukoliko nijedna od njih ne prelazi odsečak. Ivica koja prelazi odsečak je lagana ukoliko je sa najmanjom težinom od svih ivica koje prelaze odsečak. Sigurna ivica za podskup ivica je ivica koja predstavlja deo najmanjeg razapinjućeg stabla i koju možemo dodati u taj podskup prilikom pravljenja najmanjeg razapinjućeg stabla. 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 18
Osnovna osobina (Minimum Spanning Tree) G(V, E) je povezan, neusmeren graf sa definisanom težinskom funkcijom w. A je podksup skupa E koji je sadržan u nekom najmanjem razapinjućem stablu grafa G. (S, V-S) je odsečak grafa G koji poštuje skup ivica A. (u, v) je lagana ivica koja prelazi odsečak (S, V-S). Tada je (u, v) sigurna ivica za skup A. 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 19
Kruskal algoritam MST-KRUSKAL(G,w) A = Ø T V, E = O E lg V for vertex v G. V MAKE-SET(v) sort-nondecreasing G.E by w for edge (u, v) G. E from the sorted set if FIND-SET(u)!= FIND-SET(v) A = A + {(u,v)} UNION(u,v) return A 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 20
Prim algoritam MST-PRIM(G,w,r) for vertex u G. V u.key = u.p = NIL r.key = 0 Q = G.V while Q!= u = EXTRACT-MIN(Q) for vertex v G. Adj[u] if v Q and w(u,v) < v.key v.p = u v.key = w(u,v) T V, E = O E lg V 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 21
Universal Studios, Revealing Homes 09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 22