teorija grafova
TRANSCRIPT
![Page 1: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/1.jpg)
OSNOVE TEORIJE GRAFOVA
![Page 2: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/2.jpg)
Neusmjereni grafovi
Neusmjereni graf je uređeni par skupova (V,E). Elementi skupa V nazivaju se čvorovi (vrhovi, točke), a elementi skupa E nazivaju se bridovi (grane, veze).
Brid grafa je par elemenata iz skupa V, odnosno, on povezuje dva čvora iz skupa V.
Kada se crta graf, sasvim je nebitan raspored čvorova i veza u prostoru, što je vidljivo i iz sljedeće slike.
![Page 3: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/3.jpg)
Ove dvije slike predstavljaju isti graf
![Page 4: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/4.jpg)
Osnovni pojmovi u teoriji grafova
Definicija 1 (definicija grafa): Jednostavan graf G sastoji se od nepraznog konačnog skupa V(G) čije elemente nazivamo vrhovi i konačnog skupa E(G), različitih parova elemenata iz V(G),koje nazivamo bridovi
Definicija 2: Za vrhove u i v kažemo da su susjedni ako postoji brid e=uv u tom grafu koji ih spaja. Za bridove ei f kaže se da su susjedni ako postoji vrh u tom grafu koji je njima zajednički.Definicija 3: Put u grafu G je konačan slijed bridova v1v2v3…vn-1vn u kojem su svaka dva brida susjedna i svi su vrhovi različiti, osim eventualno početni i krajnji.
![Page 5: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/5.jpg)
Definicija 4: Za graf g kažemo da je povezan ako i samo ako postoji put između svaka dva vrha.
povezani grafovi
nepovezani grafovi
![Page 6: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/6.jpg)
Graf se može prikazati tablicom incidencije u kojoj prvi redak i stupac predstavljaju vrhove grafa, a preostala polja u tablici predstavljaju težinu (vrijednost) brida koji spaja dotične vrhove. Težina obično predstavlja mjeru udaljenosti dva vrha.
Ako vrhovi nisu spojeni bridom tada se udaljenost među njima određuje s .
Dan je graf s označenim udaljenostima na slici
Za dotični se graf može formirati tablica incidencije
![Page 7: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/7.jpg)
Ova je tablica simetrična obzirom na glavnu dijagonalu. Vrijednosti 0 na glavnoj dijagonali predstavljaju udaljenosti pojedinog vrha od sebe samog
![Page 8: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/8.jpg)
Razapinjuća stabla
Minimalno razapinjuće stablo predstavlja graf u kojem između svaka dva čvora postoji put, ali da pritom u njemu ne postoji niti jedan ciklus.
Minimalna razapinjuća stabla mogu se dobiti uz pomoć dva jednostavna algoritma, a to su Primov algoritam i Kruskalov algoritam
![Page 9: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/9.jpg)
Primov algoritam
Algoritam koji nam omogućava dobiti minimalno razapinjuće stablo je dan s:
Stablo =
Izaberi proizvoljan vrh iz V(grafa) i stavi ga u V(stablo). Dok je broj vrhova (stablo)<broj vrhova(graf) ponavljaj postupak
Izaberi vrh koji nije u V (stablo), a susjedan je nekom d vrhova iz V(stablo) i pri tome je težina brida koja ih spaja minimalna. Stavi taj vrh zajedno s njemu pripadajućim bridom u stablo
O
![Page 10: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/10.jpg)
![Page 11: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/11.jpg)
Tablični način provođenja Primovog algoritma
![Page 12: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/12.jpg)
Kruskalov algoritam
Kruskalov algoritam koji nam omogućava dobiti minimalno razapinjuće stablo je dan s:
Stablo =
Bridove grafova poredaj u padajući niz.
Dok postoji brid čije dodavanje u stablo ne tvori ciklus ponavljaj postupak.Uzmi najmanji brid koji ne tvori ciklus s bridovima iz stabla i dodaj ga u stablo.
O
![Page 13: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/13.jpg)
![Page 14: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/14.jpg)
NAJKRAĆE UDALJENOSTI U GRAFU
Udaljenost u grafu definira se kao suma težine bridova koje čine put od početnog vrha do onog krajnjeg.
Za pronalaženje najkraćeg puta u grafu koristi se Dijkstrin i Floydov algoritam
![Page 15: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/15.jpg)
DIJKSTRIN ALGORITAM
Dijkstrin algoritam predstavlja proširenje Primovog algoritma.
Dijkstrin algoritam glasi:Stablo = Stavi u stablo početni vrh i označi ga s udaljenošću 0.
Dok je broj vrhova za stablo< broj vrhova graf ponavljaj postupak. Za sve vrhove koji su susjedni nekom vrhu iz stabla izračunaj najmanju udaljenost od početnog vrha kao udaljenost vrha kojem je taj vrh susjedan + težina brida koja ih spaja. Od svih vrhova odaberi onaj koji ima najmanju vrijednost.
O
![Page 16: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/16.jpg)
![Page 17: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/17.jpg)
![Page 18: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/18.jpg)
Tablični prikaz algoritma
![Page 19: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/19.jpg)
![Page 20: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/20.jpg)
![Page 21: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/21.jpg)
Floydov algoritam za pronalaženje najkraćih puteva
Floydov algoritam je tipičan primjer dinamičkog programiranja. Njime se pronalaze najmanje udaljenosti između svih parova vrhova u grafu da bi se potom formirao graf optimalne strukture.
Matricu incidencije označavamo s G[i,j]
![Page 22: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/22.jpg)
Floydov algoritam glasi
Za vrh_kroz = 1do broj_vrhova
Za vrh_od = 1 do broj_vrhova
Ako G[vrh_od, vrh_kroz]! = ∞ Za vrh_do=1 do broj_vrhova
Ako G [ vrh_kroz, vrh_do]!= ∞ Ako G [ vrh_od, vrh_do]!= ∞∞ ili
G [ vrh_od, vrh_do]> G[vrh_od, vrh_kroz]+ G [ vrh_kroz, vrh_do]
G [ vrh_od, vrh_do]=G[vrh_od, vrh_kroz]+ G [ vrh_kroz, vrh_do]
![Page 23: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/23.jpg)
Primjer;
![Page 24: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/24.jpg)
Krećemo od vrha A i kroz njega pokušavamo poboljšati put između ostalih vrhova te zapisujemo redom puteve koji se žele poboljšati
Kroz vrh A se matrica incidencije ne može poboljšati te ostaje ista, a mi prelazimo na vrh B te istim postupkom dobivamo
![Page 25: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/25.jpg)
![Page 26: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/26.jpg)
U trećem se koraku koristi vrh C pa se dobiva
Algoritam se nastavlja vrhom D te se dobiva:
![Page 27: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/27.jpg)
Matrica incidencije koju dobivamo je:
Posljednji vrh koji koristimo je vrh E te dobivamo:
![Page 28: TEORIJA GRAFOVA](https://reader031.vdocuments.net/reader031/viewer/2022012305/5571f8e649795991698e5649/html5/thumbnails/28.jpg)
Konačna dobivena matrica incidencije je:
Prateći izvođenje algoritma mogu se rekonstruirati putevi na načina da se prati kako su se mijenjale težine u matrici incidencije kroz svaki korak te se dobiva: