Algoritmi i Strukture Podataka 1 6 Grafovi 3

  • Slides: 44
Download presentation
Algoritmi i Strukture Podataka 1 6. Grafovi (3)

Algoritmi i Strukture Podataka 1 6. Grafovi (3)

Zadatak 8 Za graf sa slike naći najkraće puteve od čvora 4 do ostalih

Zadatak 8 Za graf sa slike naći najkraće puteve od čvora 4 do ostalih čvorova primenom Dijkstra-inog algoritma. Dati izgled vektora najkraćih rastojanja i vektora prethodnika posle svake iteracije. Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 1

Zadatak 8 - rešenje D S T 1 2 3 5 6 7 8

Zadatak 8 - rešenje D S T 1 2 3 5 6 7 8 9 4 - ∞ 9 2 7 ∞ ∞ ∞ 8 0 4 4 4 0 0 0 4 4, 3 3 10 9 2 7 ∞ ∞ ∞ 8 3 4 4 4 0 0 0 4 4, 3, 5 5 10 9 2 7 10 ∞ ∞ 8 3 4 4 4 5 0 0 4 4, 3, 5, 9 9 10 9 2 7 10 ∞ 13 8 3 4 4 4 5 0 9 4 4, 3, 5, 9, 2 2 10 9 2 7 10 ∞ 13 8 3 4 4 4 5 0 9 4 4, 3, 5, 9, 2, 1 1 10 9 2 7 10 ∞ 13 8 3 4 4 4 5 0 9 4 4, 3, 5, 9, 2, 1, 6 6 10 9 2 7 10 14 13 8 3 4 4 4 5 6 9 4 4, 3, 5, 9, 2, 1, 6, 8 8 10 9 2 7 10 14 13 8 3 4 4 4 5 6 9 4 4, 3, 5, 9, 2, 1, 6, 8, 7 7 10 9 2 7 10 14 13 8 3 4 4 4 5 6 9 4 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 2

Zadatak 9 Pronaći kritičan put i dozvoljena kašnjenja na projektu opisanim grafom sa slike.

Zadatak 9 Pronaći kritičan put i dozvoljena kašnjenja na projektu opisanim grafom sa slike. • Grafom je prikazan redosled odvijanja faza projekta • Grana od faze X ka fazi Y označava da faza Y počinje nakon što se neophodan deo faze X završi • Težina grane označava trajanje neophodnog dela faze X Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 3

Zadatak 9 - rešenje • Da bi se odredio kritičan put i dozvoljena kašnjenja,

Zadatak 9 - rešenje • Da bi se odredio kritičan put i dozvoljena kašnjenja, potrebno je odrediti za svaki čvor: – najranije vreme otpočinjanja (earliest start time) EST[i] = max{EST[j] + w(j, i) : j P(i) } po definiciji: EST[1] = 0 – najkasnije vreme otpočinjanja (latest start time) LST[i] = min{LST[j] - w(i, j) : j S(i) } po definiciji: LST[n] = EST[n] – Dozvoljeno kašnjenje: L[i] = LST[i] – EST[i] Za događaje na kritičnom putu kašnjenje nije dozvoljeno (L=0) Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 4

Zadatak 9 - rešenje CRITICAL-PATH(G) TOP-SORT(G, T) EST [ T[1] ] = 0 for

Zadatak 9 - rešenje CRITICAL-PATH(G) TOP-SORT(G, T) EST [ T[1] ] = 0 for u = 2 to n do i = T[u] for each j P(i) do EST[i] = max{ EST[j] + w(j, i) } end_for LST[ T[n] ] = EST[ T[n] ] for u = n-1 downto 1 do i = T[u] for each j S(i) do LST[i] = min{ LST[j] - w(i, j) } end_for for i = 1 to n do L[i] = LST[i] – EST[i] end_for Elektrotehnički fakultet, Beograd P(i) : skup prethodnika čvora i S(i) : skup sledbenika čvora i Algoritmi i Strukture Podataka 1 5

Zadatak 9 - rešenje i EST 1 2 3 5 4 6 Elektrotehnički fakultet,

Zadatak 9 - rešenje i EST 1 2 3 5 4 6 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 6

Zadatak 9 - rešenje i EST 1 0 2 3 5 4 6 Elektrotehnički

Zadatak 9 - rešenje i EST 1 0 2 3 5 4 6 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 7

Zadatak 9 - rešenje i EST 1 0 2 5 3 5 4 6

Zadatak 9 - rešenje i EST 1 0 2 5 3 5 4 6 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 8

Zadatak 9 - rešenje i EST 1 0 2 5 3 3 5 4

Zadatak 9 - rešenje i EST 1 0 2 5 3 3 5 4 6 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 9

Zadatak 9 - rešenje i EST 1 0 2 5 3 3 5 9

Zadatak 9 - rešenje i EST 1 0 2 5 3 3 5 9 4 6 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 10

Zadatak 9 - rešenje i EST 1 0 2 5 3 3 5 9

Zadatak 9 - rešenje i EST 1 0 2 5 3 3 5 9 4 18 6 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 11

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3 3 5 9 4 18 6 23 Algoritmi i Strukture Podataka 1 LST 12

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3 3 5 9 4 18 6 23 Algoritmi i Strukture Podataka 1 LST 23 13

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3 3 5 9 4 18 18 6 23 23 Algoritmi i Strukture Podataka 1 LST 14

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3 3 5 9 9 4 18 18 6 23 23 Algoritmi i Strukture Podataka 1 LST 15

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 3 3 3 5 9 9 4 18 18 6 23 23 Algoritmi i Strukture Podataka 1 LST 16

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 7

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST 1 0 2 5 7 3 3 3 5 9 9 4 18 18 6 23 23 Algoritmi i Strukture Podataka 1 LST 17

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST LST 1 0 0 2

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST LST 1 0 0 2 5 7 3 3 3 5 9 9 4 18 18 6 23 23 Algoritmi i Strukture Podataka 1 18

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST L 1 0 0 0

Zadatak 9 - rešenje Elektrotehnički fakultet, Beograd i EST L 1 0 0 0 2 5 7 2 3 3 3 0 5 9 9 0 4 18 18 0 6 23 23 0 Algoritmi i Strukture Podataka 1 19

Zadatak 10 Pronaći kritičan put i dozvoljena kašnjenja na projektu opisanom grafom sa slike.

Zadatak 10 Pronaći kritičan put i dozvoljena kašnjenja na projektu opisanom grafom sa slike. Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 20

Zadatak 10 - rešenje TOP-SORT(G, T) A=V B=E for i = 1 to n

Zadatak 10 - rešenje TOP-SORT(G, T) A=V B=E for i = 1 to n do find u A : din(u) = 0 T[i] = u A = A – {u} for all v, (u, v) B do B = B - {(u, v)} end_for Uklanja se čvor 1 Uklanja se čvor 3 Uklanja se čvor 4 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 21

Zadatak 10 - rešenje Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 22

Zadatak 10 - rešenje Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 22

Zadatak 10 - rešenje i EST 1 0 LST L 3 4 9 2

Zadatak 10 - rešenje i EST 1 0 LST L 3 4 9 2 5 6 7 8 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 23

Zadatak 10 - rešenje l=LST[j]-EST[i]-w[i, j] aktivnost l 1 2 i EST L 1

Zadatak 10 - rešenje l=LST[j]-EST[i]-w[i, j] aktivnost l 1 2 i EST L 1 0 0 0 3 8 8 0 4 10 10 0 9 18 30 12 2 19 19 0 5 22 22 0 6 25 25 0 11 7 29 29 0 12 8 35 35 0 13 Elektrotehnički fakultet, Beograd 3 Najveće dozvoljeno vreme kašnjenja aktivnosti 4 5 6 7 Najveće dozvoljeno vreme kašnjenja događaja 8 9 10 Algoritmi i Strukture Podataka 1 24

Zadatak 10 - rešenje l=LST[j]-EST[i]-w[i, j] aktivnost l 1 14 2 8 3 0

Zadatak 10 - rešenje l=LST[j]-EST[i]-w[i, j] aktivnost l 1 14 2 8 3 0 4 0 5 0 6 12 7 5 8 0 9 0 10 0 i EST L 1 0 0 0 3 8 8 0 4 10 10 0 9 18 30 12 2 19 19 0 5 22 22 0 6 25 25 0 11 12 7 29 29 0 12 0 8 35 35 0 13 5 Elektrotehnički fakultet, Beograd Najveće dozvoljeno vreme kašnjenja aktivnosti Najveće dozvoljeno vreme kašnjenja događaja Algoritmi i Strukture Podataka 1 25

PERT – Project Evaluation & Review Technique Šta je PERT graf? Šta je kritičan

PERT – Project Evaluation & Review Technique Šta je PERT graf? Šta je kritičan put i kolika je ukupna vremenska složenost određivanja kritičnog puta? Naći najranije i najkasnije trenutke započinjanja aktivnosti za projekat čiji je PERT graf dat na slici, kao i dozvoljeno kašnjenje za svaku od njih. Navesti kritične aktivnosti. Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 26

PERT – Project Evaluation & Review Technique • • 1958: US Do. D –

PERT – Project Evaluation & Review Technique • • 1958: US Do. D – US Navy Special Projects Office Razvijen kao deo projekta "Polaris" PERT graf se još naziva PERT mreža (network) Napredniji od CPM – procene (optimistična, najverovatnija, pesimistična) – procena vremena (o + 4*n + p)/6 Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 27

PERT - rešenje • Šta je kritičan put i kolika je ukupna vremenska složenost

PERT - rešenje • Šta je kritičan put i kolika je ukupna vremenska složenost određivanja kritičnog puta? • Put najveće dužine između početnog i završnog čvora grafa kojim je predstavljen projekat, a koji određuje vreme trajanja projekta • Vremenska složenost: O(e+n) Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 28

PERT - rešenje i EST L A B C D E F G H

PERT - rešenje i EST L A B C D E F G H I J K Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 29

PERT - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 3 C

PERT - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 3 C 5 D 3 E 9 F 5 G 12 H 11 I 9 J 17 K 13 Algoritmi i Strukture Podataka 1 L 30

PERT - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 3 C

PERT - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 3 C 5 D 3 E 9 F 5 G 12 H 11 I 9 J 17 17 K 13 17 Algoritmi i Strukture Podataka 1 L 31

PERT - rešenje i Elektrotehnički fakultet, Beograd EST LST a l 1 1 L

PERT - rešenje i Elektrotehnički fakultet, Beograd EST LST a l 1 1 L 2 2 A 0 0 0 3 0 B 3 4 1 4 6 C 5 7 2 5 1 D 3 3 0 6 2 E 9 10 1 7 3 F 5 5 0 8 0 9 1 G 12 13 1 10 0 H 11 11 0 11 1 I 9 10 1 12 1 J 17 17 0 13 0 K 13 17 4 14 1 15 4 Algoritmi i Strukture Podataka 1 32

Zadatak 11 Šta je PERT graf? Šta je kritičan put i kolika je ukupna

Zadatak 11 Šta je PERT graf? Šta je kritičan put i kolika je ukupna vremenska složenost određivanja kritičnog puta? Naći najranije i najkasnije trenutke započinjanja aktivnosti za projekat čiji je PERT graf dat na slici, kao i dozvoljeno kašnjenje za svaku od njih. Navesti kritične aktivnosti. Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 33

Zadatak 11 - rešenje i EST A B C D E F G H

Zadatak 11 - rešenje i EST A B C D E F G H I J Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 34

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 2

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 2 C 7 D 5 E 12 F 16 G 5 H 13 I 25 J 22 Algoritmi i Strukture Podataka 1 35

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 2

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 B 2 C 7 D 5 E 12 F 16 G 5 H 13 25 I 25 25 J 22 25 Algoritmi i Strukture Podataka 1 36

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 0 B

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST A 0 0 B 2 9 C 7 10 D 5 5 E 12 15 F 16 16 G 5 17 H 13 25 I 25 25 J 22 25 Algoritmi i Strukture Podataka 1 37

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST a l L 1

Zadatak 11 - rešenje i Elektrotehnički fakultet, Beograd EST LST a l L 1 7 A 0 0 0 2 3 B 2 9 7 3 0 C 7 10 3 4 8 D 5 5 0 5 7 E 12 15 3 6 3 F 16 16 0 7 5 G 5 17 12 8 0 9 12 H 13 25 12 10 3 I 25 25 0 11 0 J 22 25 3 12 5 Algoritmi i Strukture Podataka 1 38

Zadatak 12 Složen softverski projekat sastoji se od skupa međusobno zavisnih programskih modula. Moduli

Zadatak 12 Složen softverski projekat sastoji se od skupa međusobno zavisnih programskih modula. Moduli su označeni jednoslovnim oznakama. Od interesa je zavisnost koja se manifestuje prilikom prevođenja projekta: ako modul A zavisi od modula B, prevođenje modula A se mora obaviti nakon prevođenja modula B. Jedan modul može da zavisi od nula ili više drugih modula. Predložiti efikasnu strukturu podataka za predstavljanje opisanog softverskog projekta. Precizno navesti operacije nad predloženom strukturom podataka koje su potrebne za rešavanje problema određivanja redosleda prevođenja programskih modula. Skicirati program koji, korišćenjem predložene strukture podataka i navedenih operacija, formira jedan softverski projekat i ispiše oznake modula u redosledu u kom treba da budu prevedeni. Za predloženu strukturu podataka i njene operacije dati samo deklarativni deo. Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 39

Zadatak 12 - rešenje • Zadatak ilustruje praktičnu situaciju u kojoj nastaje problem zavisnosti

Zadatak 12 - rešenje • Zadatak ilustruje praktičnu situaciju u kojoj nastaje problem zavisnosti u pogledu redosleda: zavisan entitet ne sme biti obrađen pre obrade entiteta od kojih on zavisi • Problem se jednostavno rešava primenom algoritma topološkog sortiranja kod grafova – – Softverski sistem se modelira grafom Softverski moduli se modeliraju čvorovima grafa Zavisnosti modula se modelira granama grafa Grana od čvora A do čvora B označava da čvor B zavisi od čvora A Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 40

Zadatak 12 - rešenje • Analiza potrebnih elemenata za rešenje problema – Potrebna struktura

Zadatak 12 - rešenje • Analiza potrebnih elemenata za rešenje problema – Potrebna struktura podataka: usmeren netežinski graf. – Potrebne operacije: • • umetanje čvora povezivanje dva čvora usmerenom granom uklanjanje čvora nalaženje čvora sa ulaznim stepenom 0 • Analiza postupka – U graf se umeću svi čvorovi koji čine softverski sistem – Umetnuti čvorovi se povezuju tako da veze odgovaraju zavisnostima između modula – Sve dok u grafu postoji čvor • uzmi čvor iz grafa ulaznog stepena 0 • ukloni sve grane koje vode iz čvora • ispiši identifikator čvora Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 41

Zadatak 12 - rešenje PROGRAM Softverski Moduli for i = 1 to broj_cvorova do

Zadatak 12 - rešenje PROGRAM Softverski Moduli for i = 1 to broj_cvorova do graf. insert( cvor('A'+i-1) ) end_for graf. povezi. Cvorove( moduli[0], moduli[1] ); graf. povezi. Cvorove( moduli[0], moduli[2] ); graf. povezi. Cvorove( moduli[1], moduli[3] ); while graf. broj. Cvorova > 0 do p = graf. nadji. Ul. Stepen 0 PRINT( oznaka(p) ) graf. ukloni. Cvor(p) end_while Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 42

Zadatak 12 – za samostalnu vežbu • Napisati potprograme koji realizuju tražene operacije nad

Zadatak 12 – za samostalnu vežbu • Napisati potprograme koji realizuju tražene operacije nad grafom. Napisati kompletan program na jeziku C. • Razmotriti implementaciju: da li je bolje koristiti ulančanu ili matričnu predstavu grafa? • Modifikovati program tako da otkrije kružne zavisnosti među modulima • Modifikovati program tako da omogući paralelno prevođenje svih u datom trenutku nezavisnih modula Elektrotehnički fakultet, Beograd Algoritmi i Strukture Podataka 1 43