Minimalno povezujuće stablo

Σχετικά έγγραφα
DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

Računarska grafika. Rasterizacija linije

3.1 Granična vrednost funkcije u tački

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

18. listopada listopada / 13

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Računarska grafika. Rasterizacija linije

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Pohlepne strategije za rad sa grafovima i izračunavanje nekih karakteristika grafa

Teorijske osnove informatike 1

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Operacije s matricama

ELEKTROTEHNIČKI ODJEL

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

SISTEMI NELINEARNIH JEDNAČINA

Zavrxni ispit iz Matematiqke analize 1

Elementi spektralne teorije matrica

IZVODI ZADACI (I deo)

numeričkih deskriptivnih mera.

41. Jednačine koje se svode na kvadratne

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

Ispitivanje toka i skiciranje grafika funkcija

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Osnovne teoreme diferencijalnog računa

Binarno stablo (BinaryTree)

Riješeni zadaci: Nizovi realnih brojeva

( , 2. kolokvij)

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

Algoritmi i strukture podataka

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

Dvanaesti praktikum iz Analize 1

III VEŽBA: FURIJEOVI REDOVI

Dijagonalizacija operatora

7 Algebarske jednadžbe

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

APROKSIMACIJA FUNKCIJA

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

Obrada signala

Sortiranje prebrajanjem (Counting sort) i Radix Sort

OSNOVI ELEKTRONIKE. Vežbe (2 časa nedeljno): mr Goran Savić

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

radni nerecenzirani materijal za predavanja

Sistemi veštačke inteligencije primer 1

Numerička matematika 2. kolokvij (1. srpnja 2009.)

4 Numeričko diferenciranje

Zadaci iz trigonometrije za seminar

S t r a n a 1. 1.Povezati jonsku jačinu rastvora: a) MgCl 2 b) Al 2 (SO 4 ) 3 sa njihovim molalitetima, m. za so tipa: M p X q. pa je jonska jačina:

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

Linearna algebra 2 prvi kolokvij,

Overviev BFS-analiza DFS algoritam. Predstavljanje grafova BFS algoritam. Grafovski algoritmi

RIJEŠENI ZADACI I TEORIJA IZ

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

TRIGONOMETRIJSKE FUNKCIJE I I.1.

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

Algoritmi i strukture podataka - 1.cas

1. Pojam fazi skupa. 2. Pojam fazi skupa. 3. Funkcija pripadnosti, osobine i oblici. 4. Funkcija pripadnosti, osobine i oblici

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

GRAFOVI. Ljubo Nedović. 21. februar Osnovni pojmovi 2. 2 Bipartitni grafovi 8. 3 Stabla 9. 4 Binarna stabla Planarni grafovi 12

Kaskadna kompenzacija SAU

SEMINAR IZ KOLEGIJA ANALITIČKA KEMIJA I. Studij Primijenjena kemija

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

Riješeni zadaci: Limes funkcije. Neprekidnost

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

I.13. Koliki je napon između neke tačke A čiji je potencijal 5 V i referentne tačke u odnosu na koju se taj potencijal računa?

5. Karakteristične funkcije

Elektrotehnički fakultet univerziteta u Beogradu 16.maj Odsek za Softversko inžinjerstvo

Program testirati pomoću podataka iz sledeće tabele:

Linearna algebra 2 prvi kolokvij,

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

IZVODI ZADACI (I deo)

Otpornost R u kolu naizmjenične struje

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

Betonske konstrukcije 1 - vežbe 3 - Veliki ekscentricitet -Dodatni primeri

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

Trigonometrijske nejednačine

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

PRAVAC. riješeni zadaci 1 od 8 1. Nađite parametarski i kanonski oblik jednadžbe pravca koji prolazi točkama. i kroz A :

10. STABILNOST KOSINA

Novi Sad god Broj 1 / 06 Veljko Milković Bulevar cara Lazara 56 Novi Sad. Izveštaj o merenju

Matematika 1 - vježbe. 11. prosinca 2015.

Transcript:

Minimalno povezujuće stablo G = (V, E) - neusmereni povezani težinski graf Izlaz Povezani podgraf koji sadrži sve čvorove takav da mu je suma cena grana minimalna. Rešenje Indukcijom po broju grana. Baza: Rešenje mora da sadrži granu najmanje cene. Induktivni korak: Podgraf T, broj grana k < V - 1. Neka je Eₖ skup grana koje povezuju čvorove u T sa čvorovima van. Grana najmanje cene u Eₖ mora biti u rezultatu. Algoritam T = {; for (w: cvorovi) { w.oznaka = false; w.cena = ; (x, y) = grana sa najmanjom cenom u G; x.oznaka = true; for (grane (x, z)) { z.grana = (x, z); // grana najmanje cene od T do z z.cena = cenagrane(z.grana); // cena grane while (postoji neoznačen čvor) { w = neoznačen čvor najmanje vrednosti w.cena; if (w.cena = ) { greška: G nije povezan else { w.oznaka = true; dodaj w.grana u T; for (sve grane (w, z)) { if (! z.oznaka) { if (cenagrane(w, z) < z.cena) {

z.grana = (w, z); z.cena = cenagrane(z.grana); Minimalno drvo razapinjanja Posmatrajmo skup od n računara koje treba povezati optičkim kablovima. Poznata je cena povezivanja za svaka dva računara. Povezivanje treba izvršiti tako da ukupna cena bude minimalna. Taj problem je u teoriji grafova poznat kao problem formiranja minimalnog drveta razapinjanja. Stablo koje dobijamo uklanjanjem određenog broja grana grafa, a da pritom dobijeni graf ostane povezan, zovemo razapinjajuće ili obuhvatno stablo (spanning tree). Generalno, konstruisanje razapinjajućeg stabla jednostavan je postupak, ali je često u primenama poželjno da takvo razapinjajuće stablo ima i neka dodatna svojstva, kao što je minimalna/maksimalna suma težina grana. Obuhvatna stabla se generišu algoritmima za obilazak grafa po širini ili dubini. Za isti graf može postojati više obuhvatnih stabala. Minimalno obuhvatno stablo ima najmanju cenu (suma cena grana). Može biti više takvih stabala (ista cena). PRIM I KRUSKAL ALGORITMI ZA KONSTRUKCIJU MCST Neka je G=(V,E) povezan neorijentisan graf i neka je d : E R + funkcija kojom su definisane dužine ivica. Minimalno drvo razapinjanja grafa G je podgraf T=(V, E T ) gde je E T E takav da važi: o o T je drvo (povezan graf bez ciklusa) zbir dužina ivica skupa E T je minimalan. Prikazujemo Primov algoritam za određivanje minimalnog drveta razapinjanja. Drvo kreiramo tako što polazimo od proizvoljnog čvora (npr.0) pa dodajemo čvor po čvor, dok ne dodamo sve čvorove grafa. Razlikujemo skup U čvorova koje smo dodali u drvo i skup V\U čvorova koje još nismo dodali u drvo. Na početku je U= 0 i E T=. U svakoj iteraciji algoritma izaberemo granu (u,v) sa minimalnom dužinom takvu da je u U i v V\U, tj. biramo granu koja je najbliža kreiranom drvetu. Skup čvorova U proširimo za čvor v, U=U v, a granu (u,v) dodamo u skup ivica traženog drveta E T= E T (u,v). Postupak ponavljamo dok ne postane U=V. Pri realizaciji ovog algoritma, slično kao kod Dijkstrinog algoritma, koristimo niz mark kojim definišemo da li je čvor uključen u drvo ili nije

niz d kojim pamtimo za svaki čvor v V\U (mark[v]=false) najmanju dužinu ivice koja spaja čvor v sa nekim čvorom u iz drveta (mark[v]=true) niz p kojim pamtimo za svaki čvor v V\U indeks njemu najbližeg čvora iz kreiranog drveta. Rezultat algoritma, minimalno drvo razapinjanja definišemo granama koje čine to drvo. Početke grana pamtimo nizom e1 a krajeve nizom e2. Prim-ov algoritam: PRIM(G, s) U = {s E' = Æ while (U ¹ V) do find (u, v) Þ min {w(u, v) : (u Î U) and (v Î (V- U)) U = U + {v E' = E' + {(u, v) end_while MCST = (U, E') Kruskal-ov algoritam 1. Inicijalno, graf se posmatra kao potpuno nepovezan (nepovezane komponente) 2. Skup grana E se uređuje po neopadajućoj težini (prioritetan red) 3. Nova grana se dodaje samo ako spaja dve odvojene komponente (T) Kompleksnost Kruskalovog algoritama je O(m log(n)), tj. vremenska slozenost je O(E log V) KRUSKAL(G) E' = Æ for each (u, v) Î E do PQ-INSERT(PQ, w(u, v)) end_for num = 0 while (num < n - 1) do w(u,v) = PQ-MIN-DELETE(PQ) if ((u Î Ti) and (v Î Tj) and (i ¹ j)) then E' = E' + {(u, v) Tk = Ti + Tj num = num + 1 end_if end_while MCST = (V, E') SLOŽENOST: Koristeći binarni heap, Prim-Jarnikov algoritam je kompleksnosti O((m+n) log(n)) tj. slozenost je O((V+E)log V), a koristeći Fibonacci heap, kompleksnost algoritma je O(m+n log(n)). Sa potpunim grafom, u prvom slučaju kompleksnost je O(n 2 log(n)), a u drugom O(n 2 ). Poredjenje tri algoritma za konstrukciju MCST (Prim vs Kruskal vs Boruvka) Osnovne razlike između tri algoritama su: Prim-Jarnikov algoritam u svakom koraku proširuje označeno stablo sa najbližim čvorom, Kruskalov algoritam u svakom koraku spaja dva najbliža stabla sa novom granom,

Borůvkin algoritam u svakom koraku spaja sva najbliža stabla sa novom granom. Kruskalov i Borůvkin algoritam se mogu unaprediti tako da njihova kompleksnost bude O(m α(n)), gde je α inverzna Ackermanova funkcija. Zadatak 1. Za dati graf na slici, konstruišite razapinjuće stablo minimalne cene (MCST) upotrebom Prim-ovog i Kruskal-ovog algoritma. Rešenje: PRIMov algoritam: Čvor A je odabran za koren stabla A-B A-B, B-H A-B, B-H, H-C A-B, B-H, H-C, C-D A-B, B-H, H-C, C-D, C-F Cena MCST-a je 8+3+6+12+14=43 Prim-ov algoritam: PRIM(G, s) U = {s E' = Æ while (U ¹ V) do find (u, v) Þ min {w(u, v) : (u Î U) and (v Î (V- U)) U = U + {v E' = E' + {(u, v) end_while MCST = (U, E')

Kruskal-ov algoritam 1. Inicijalno, graf se posmatra kao potpuno nepovezan (nepovezane komponente) 2. Skup grana E se uređuje po neopadajućoj težini (prioritetan red) 3. Nova grana se dodaje samo ako spaja dve odvojene komponente (T) Kompleksnost Kruskalovog algoritama je O(m ln(n)). KRUSKAL(G) E' = Æ for each (u, v) Î E do PQ-INSERT(PQ, w(u, v)) end_for num = 0 while (num < n - 1) do w(u,v) = PQ-MIN-DELETE(PQ) if ((u Î Ti) and (v Î Tj) and (i ¹ j)) then E' = E' + {(u, v) Tk = Ti + Tj num = num + 1 end_if end_while MCST = (V, E') Sortirane grane {BH=3, CH=6, AB=8, CD=12, DH=13, CF=14, BC=18, AF=19, BF=34 Kruskal korak 1) Od korena stabla mora da polazi grana najmanje težine. Ovde se bira čvor H. Kruskal korak 2) H-B H-B, H-C H-B, H-C, B-A H-B, H-C, B-A, C-D H-B, H-C, B-A, C-D, C-F Kruskal korak 3) Zadatak 2. Za dati graf na slici, konstruišite razapinjuće stablo minimalne cene (MCST) upotrebom Prim-ovog i Kruskal-ovog algoritma.

Rešenje: Obuhvatno stablo Prim-ov algoritam A-B, B-G, B-E, E-C, C-F, E-I, I-H, F-D Kruskal-ov algoritam A-B, B-G, C-F, E-C, B-E, E-I, I-H, F-D Zadatak 3 U zemlji S, postoji n jezera (numerisanih od 1 do n) i m kanala između njih. Poznata je širina svakog kanala (u metrima). Kretanje kanalima se može izvesti u oba smera. Poznato je da čamac širine jedan metar može dospeti do ma kog jezera, počevši od jezera sa rednim brojem 1. Napisati program koji izračunava minimalni broj kanala koje treba proširiti, tako da čamac širine k metara može putovati između svaka dva jezera (čamac se može kretati od jednog jezera do drugog, ako je njegova širina manja ili jednaka od širine kanala koji povezuje jezera). U prvoj liniji standardnog ulaza su dati celi brojevi n i m (1 < n 1000, 1 < m 100000). U narednih m linija su data tri cela broja, i, j i w, koji ukazuju da postoji kanal širine w (1 w 200) između jezera, i i j (1 i, j n). U poslednjoj liniji je dat ceo broj k (1 k 200). Izlaz U jedinom redu standardnog izlaza ispišite jedan ceo broj: minimalni broj kanala koji treba proširiti. Primer 6 9 1 6 1 1 2 2 1 4 3 2 3 3 2 5 2 3 4 4 3 6 2 4 5 5 5 6 4 4

Izlaz 2 Rešenje; 1 način Nađimo maksimalno obuhvatno stablo T max grafa jezera G i povežimo ga kanalima. Posle izračunavamo koliko (grana) kanala iz T max su uži od date vrednosti K. Neka je broj takvih kanala q. Ako se ovi kanali prošire, čamac širine K može da prođe između svaka dva jezera. Štaviše, ako uklonimo sve kanale uže od K, graf će se razbiti na q+1 komponenti povezanosti i minimalni broj kanala koji će povezati sve komponente jeste q. 2 način Tražimo broj komponenti povezanosti grafa jezera G K i kanala širine barem K. Neka je taj broj q+1. Pošto je grad G povezan, postojaće q tesnih kanala, koji će pri proširivanju do širina K i dodavanjem u G K povezati komponente. Pronalaženje komponenti povezanosti u G K može da se obavi nekim algoritmom za obilazak grafa BFS ili DFS. Zadatak 4 U zemlji S, postoji N jezera (numerisanih od 1 do n) i M kanala između njih. Poznata je širina svakog kanala (u metrima). Kretanje kanalima se može izvesti u oba smera. Transportno preduzeće Jezero je pripremilo listu od K parova jezera između kojih će se obavljati redovni transport robe i ljudi putem čamaca. Napišite program koji izračunava maksimalnu širinu čamaca, koji mogu proći između parova jezera koji se nalaze na listi jezera (čamac se može kretati od jednog jezera do drugog, ako je njegova širina manja ili jednaka od širine kanala koji povezuje jezera). U prvoj liniji standardnog ulaza su dati celi brojevi N, M, K (N 1000, M 100000, K 10000). U narednih m linija su data tri cela broja, i, j i w, koji ukazuju da postoji kanal širine w između jezera, i i j (1 i, j N, Wi,j 200). Potom sledi K linija, tako da svaka sadrži brojeve dva jezera i, j, između kojih se obavlja transport ljudi i robe. Izlaz Program treba da ispiše K redova na standardnom izlazu, od kojih svaki sadrži jedan ceo broj, jednak maksimalnoj širini čamca, koji može putovati između odgovarajuća dva jezera.

Primer 6 9 4 1 2 2 1 4 3 1 6 1 2 3 3 2 5 2 3 4 4 3 6 2 4 5 5 5 6 4 2 6 3 5 1 2 4 6 Izlaz 3 4 3 4 Rešenje: Pronađimo maksimalno obuhvatno stablo T grafa jezera G i povežimo ga kanalima. Sve grane ovog stabla su grane sa najvećim težinama u G, odnosno najširi kanali među čvorovima grafa G. Prim-ovim algoritmom se može generisati ovo stablo. Možemo ovo stablo predstaviti kao koreno stablo tako da niz D čuva i reguliše širinu kanala (iz stabla) dok niz Pi čuva prethodnike čvorova. Uz malo analize obilaska stabla možemo izračunati na kom nivou u odnosu na koren je svaki čvor (vrednosti niza Depth). Maksimalno obuhvatno stablo koje je predstavljen na takav način omogućuje da se u vremenu O(p) (gde p jе dužina puta) izračuna širina puta između svakog para čvorova u datoj listi sa K čvorova.