projektovanje algoritama - rt-rk.uns.ac.rs · topološko sortiranje •redosled elemenata takav da...
TRANSCRIPT
![Page 1: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/1.jpg)
Projektovanje algoritamaL09.1. Topološko sortiranje
![Page 2: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/2.jpg)
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
![Page 3: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/3.jpg)
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
![Page 4: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/4.jpg)
Problem
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 4
![Page 5: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/5.jpg)
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 vse u redosledu nalazi nakon čvora u.
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 5
![Page 6: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/6.jpg)
Topološko sortiranje
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 6
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
𝑻 𝑽, 𝑬 = 𝛉 𝑽 + 𝑬
![Page 7: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/7.jpg)
28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 7
© 123RF
![Page 8: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/8.jpg)
Projektovanje algoritamaL09.2. Pronalaženje jako povezanih komponenata
![Page 9: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/9.jpg)
Problem
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 9
![Page 10: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/10.jpg)
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
![Page 11: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/11.jpg)
Strongly Connected Components
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 11
STRONGLY-CONNECTED-COMPONENTS(G)
DFS(G) to compute finish times
compute GT
DFS(GT) in decresing order of finish times
return sets of v discovered as trees in GT
𝑻 𝑽, 𝑬 = 𝛉 𝑽 + 𝑬
![Page 12: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/12.jpg)
28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 12
© 123RF
![Page 13: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/13.jpg)
Projektovanje algoritamaL09.3. Razapinjuće stablo minimalnog stepena
![Page 14: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/14.jpg)
Problem
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 14
![Page 15: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/15.jpg)
Razapinjuće stablo minimalnog stepena
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 15
![Page 16: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/16.jpg)
Razapinjuće stablo minimalnog stepena
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 16
![Page 17: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/17.jpg)
Osnovna ideja (Minimum Spanning Tree)
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 17
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
![Page 18: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/18.jpg)
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
![Page 19: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/19.jpg)
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
![Page 20: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/20.jpg)
Kruskal algoritam
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 20
MST-KRUSKAL(G,w)
A = Ø
for vertex 𝑣 ∈ 𝐺. 𝑉MAKE-SET(v)
sort-nondecreasing G.E by w
for edge (u, 𝑣) ∈ 𝐺. 𝐸 from the sorted set
if FIND-SET(u) != FIND-SET(v)
A = A + {(u,v)}
UNION(u,v)
return A
𝑻 𝑽, 𝑬 = 𝑶 𝑬 𝐥𝐠𝑽
![Page 21: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/21.jpg)
Prim algoritam
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 21
MST-PRIM(G,w,r)
for vertex 𝑢 ∈ 𝐺. 𝑉u.key = ∞u.p = NIL
r.key = 0
Q = G.V
while Q != ∅u = EXTRACT-MIN(Q)
for vertex 𝑣 ∈ 𝐺. 𝐴𝑑𝑗[𝑢]if 𝑣 ∈ 𝑄 and w(u,v) < v.key
v.p = u
v.key = w(u,v)
𝑻 𝑽, 𝑬 = 𝑶 𝑬 𝐥𝐠𝑽
![Page 22: Projektovanje algoritama - rt-rk.uns.ac.rs · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi. •Redosled čvorova](https://reader030.vdocuments.us/reader030/viewer/2022040806/5e47e5264a6854097c3b8266/html5/thumbnails/22.jpg)
© Universal Studios, Revealing Homes
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 22