28
OSNOVE TEORIJE GRAFOVA

TEORIJA GRAFOVA

Embed Size (px)

Citation preview

Page 1: TEORIJA GRAFOVA

OSNOVE TEORIJE GRAFOVA

Page 2: TEORIJA GRAFOVA

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

Ove dvije slike predstavljaju isti graf

Page 4: TEORIJA GRAFOVA

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

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

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

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

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

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
Page 11: TEORIJA GRAFOVA

Tablični način provođenja Primovog algoritma

Page 12: TEORIJA GRAFOVA

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
Page 14: TEORIJA GRAFOVA

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

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
Page 17: TEORIJA GRAFOVA
Page 18: TEORIJA GRAFOVA

Tablični prikaz algoritma

Page 19: TEORIJA GRAFOVA
Page 20: TEORIJA GRAFOVA
Page 21: TEORIJA GRAFOVA

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

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

Primjer;

Page 24: TEORIJA GRAFOVA

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
Page 26: TEORIJA GRAFOVA

U trećem se koraku koristi vrh C pa se dobiva

Algoritam se nastavlja vrhom D te se dobiva:

Page 27: TEORIJA GRAFOVA

Matrica incidencije koju dobivamo je:

Posljednji vrh koji koristimo je vrh E te dobivamo:

Page 28: TEORIJA GRAFOVA

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: