View
5
Download
0
Category
Preview:
Citation preview
Projektovanje algoritamaL09.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 vse u redosledu nalazi nakon čvora u.
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 5
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
𝑻 𝑽, 𝑬 = 𝛉 𝑽 + 𝑬
28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 7
© 123RF
Projektovanje algoritamaL09.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
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
𝑻 𝑽, 𝑬 = 𝛉 𝑽 + 𝑬
28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 12
© 123RF
Projektovanje algoritamaL09.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)
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
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
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
𝑻 𝑽, 𝑬 = 𝑶 𝑬 𝐥𝐠𝑽
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)
𝑻 𝑽, 𝑬 = 𝑶 𝑬 𝐥𝐠𝑽
© Universal Studios, Revealing Homes
09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 22
Recommended