22
Projektovanje algoritama L09.1. Topološko sortiranje

Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

Projektovanje algoritamaL09.1. Topološko sortiranje

Page 2: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

Problem

09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 4

Page 5: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 7

© 123RF

Page 8: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

Projektovanje algoritamaL09.2. Pronalaženje jako povezanih komponenata

Page 9: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

Problem

09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 9

Page 10: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

28 Mar 2019 L06. Algoritmi iz teorije brojeva. Kriptografija 12

© 123RF

Page 13: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

Projektovanje algoritamaL09.3. Razapinjuće stablo minimalnog stepena

Page 14: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

Problem

09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 14

Page 15: Projektovanje algoritama - rt-rk.uns.ac.rs. Topološko... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

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... · Topološko sortiranje •Redosled elemenata takav da se element uvek nalazi nakon svih elemenata koji su mu preduslovi

© Universal Studios, Revealing Homes

09 Maj 2019 L09. Topološko sortiranje. Povezanost grafa. MST 22