FAKULTET ZA INFORMACIONE TEHNOLOGIJE I INŽENJERSTVO 

OSNOVNE STUDIJE SMER INFORMACIONI SISTEMI 

 
 

Predmet: 

 

Diskretna matematika 

 

 
 
 

 

 
 
 

Grafovski algoritmi 

 

 
 
 
 
 
 
 
 
 

 

Profesor:   

 

 

 

 

 

Student: 

dr. Predrag Kovačević   

 

 

 

Aleksa Đurišić  M0059/18 

 

 

 

 

 

 

 

 

Grupa 1 

 

 

 

 

 

 
 
 
 
 
 

Beograd, decembar 2019.

 

 

 

Sadržaj: 

 

1.Razvoj i značaj teorije grafova ............................................................................... 1 
2.  Grafovi-osnovni pojmovi ...................................................................................... 2 
3. Grafovsko „stablo“ ................................................................................................. 4 
4.  Obilazak grafa po širini (BFS) ............................................................................ 5 
5.  Obilazak grafa po dubini(DFS) ........................................................................... 9 
6.  Optimizacioni algoritmi .................................................................................... 13 

6.1 Dijkstrin algoritam .......................................................................................... 13 
6.2 Primov algoritam ............................................................................................ 17 
6.3 Kruskalov  algoritam ...................................................................................... 18 

7.  Zadaci ................................................................................................................ 21 
8.  Spisak korišćene literature ................................................................................ 28 
9.  Spisak priloga .................................................................................................... 28 
 

 
 
 
 
 
 
 
 

 

 

background image

 

Tokom  godina,  ova  teorema  je  dokazivana  i  opovrgnuta  više  puta,  a  na  kraju  je  uspeo  da  je 
dokaže  računar  posle  više  od  1200 sati rada.  Ovaj  problem,  iako jednostavan, imao  je  velikog 
uticaja na dalji razvoj matematik,e posebno kombinatorike i preciznije teorije grafova. 
Danas,  predstavljanje  raznih  problema  u  vidu  modela,  u  kome  se  složeni  objekat  uprošćava  i 
definišu se proizvoljne nelinearne relacijama između njegovih delova, je najčešće prvi zadatak u 
rešavanju problema. Za takva modeliranja se najčešće koriste grafovi. Operacije sa grafovima su 
često  veoma  složene,  pa  se  za  njihovo  rešavanje  koriste  računari.  Da  bi  računar  razumeo 
problem,  potrebno  je  napraviti  algoritam,  tj.  definisati  tačno  određen  broj  koraka  i  njihov 
redosled,  koji  dovodi  do  rešenja.  Tako  dolazimo  do  grafovskih  algoritama,  kojima  se  zadaju 
načini obilaska i pretrage grafova, na način koji je razumljiv računaru. 

2.  Grafovi-osnovni pojmovi 

 
Pre nego što krenemo da razmatramo same algoritme, neophodno je da se podsetimo nekih 
osnovih pojmova vezanih za grafove. 
 
Graf je apstraktni matematički objekat koji se sastoji od čvorova (odnosno tačaka) i grana 
(odnosno linija) između tih tačaka. Čvorovi se u matematici, obeležavaju slovom  V, a grane 
slovom E. 
 
 

 

 

 

 

Slika 3 Primer grafa 
 

Dva 

susedna čvora

 su krajnje tačke svake grane. Na slici 3 susedni čvorovi su: 

A i B, A i E, A i D itd., dok npr. čvorovi A i C nisu susedni. 
Grana koja spaja čvor sa samim somom naziva se 

petlja

. Na slici 3, petlja postoji u čvoru 

F

Stepen čvora

 je broj grana grafa koji imaju kraj u tom čvoru. Na slici 3 čvorovi B,C i G su 

stepena 2, čvorovi A i D su stepena 3, čvor F je stepena 4 (ako u čvoru postoji petlja onda se ona 
računa dva puta), a čvor E je stepena 5. 

Put

 je niz grana koje su međusobno povezane. 

Prost ili elementaran put

 je put kod koga se 

kroz jedan čvor prolazi tačno jedan put. Na slici 3 jedan od mogućih prostih puteva je  
A-B-C-D-E-F-G. Dužinu puta čini zbir svih grana. 
Graf je 

povezan

 ako postoji bar jedan put od svakog čvora do bilo kojeg drugug čvora. Graf na 

slici 3 je povezan. 
  
 
 

 

Graf je 

potpuni 

ako ima granu između svaka dva čvora (vidi sliku 4). 

 

 

 
 
 
 
 
 
 
 
 

Slika 4  Primer potpunog  grafa 

 
Ako je početni čvor ujedno i krajnji, takav put se naziva 

ciklus, kontura ili petlja. 

Na slici 4 

imamo nekoliko zatvorenih ciklusa, npr. A-B-E-A, A-C-D-A itd. 

Postoje neorijentisani  i orijentisani grafovi

. Sve slike grafova do sada bile su slike 

neorijentisanih grafova, tj. po npr. grani  A-B (slika 4) smo mogli da pređemo od čvora Ado 
čvora B, ali isto tako da pređemo od čvora B do čvora A.  
Kod 

orijentisanih (usmerenih) grafova

, ako je grana usmerena od  čvora A do čvora B , nije 

moguće tom granom preći od čvora B do čvora A. Orijentisani graf se označava kao na slici 5. 
 
 

 
 
 
 
 
 
 
 

Slika 5  Primer orijentisanog (usmerenog)  grafa 
 

Postoje i mešoviti grafovi kada se graf sastoji od usmerenih i neusmerenih grana. 
Na slici 5, čvor B je susedni čvoru A, ali ne važi i obrnuto, tj. čvor A nije susedan čvoru B.  
Ukupan stepen nekog čvora čine sve grane koje u njega ulaze(ulazni stepen)i sve grane koje iz 
njega izlaze (izlazni stepen). Čvor E na slici 5 ima ukupni stepen 3 (izlazni stepen 1 +ulazni 
stepen 2). Kod petlje koja počinje i završava se u istom čvoru smer nije bitan. 
Usmerenost grafa možemo posmatrati kao jednosmernu ulicu u gradu gde su  čvorovi A i B npr 
dve zgrade duž te ulice. Ovom ulicom stižemo od zgrade A do zgrade B, ali ne možemo da 
stignemo od zgrade B do zgrade A. 
Čvorovi u grafovima su običnona neki način označeni (imenima, slovima, brojevima).  
Što se grana tiče, ukoliko svakoj grani

 

prisvojimo neku vrednost, tj. pored grane napišemo neki 

broj, kažemo da grana ima određenu težinu i da se radi o težinskom grafu. Svi grafovi na slikama 
3-5 su beztežinski. 
Na slici 6 dat je primer težinskog, neusmerenog grafa. 

background image

 

4.

 

Obilazak grafa po širini (BFS) 

Način obilaska čvorova u BFS algoritmu možemo da predstavimo ovako: zamislimo  da 
se od korenog, početnog  čvora širi talas plamena. On prvo doseže do svih prvih susednih 
čvorova koji imaju isti nivo udaljenosti od početnog čvora, zatim do njihovih susednih 
čvorova i td. Redosled u kome se „zapale“ tj.  posećuju čvorovi u tekućem nivou diktira 
redosled paljenja, tj. posete čvorova - suseda u sledećem nivou. Jedna iteracija algoritma 
odgovara širenju požara u širinu za jednan čvor. 
Hajde da pogledamo kako BFS algoritam radi na jednom primeru. 
 
 
 
 
 
 
 
 
 
 
 
 

Slika 7 Graf za ilustraciju obilaska u širinu 

 

Za početni čvor obilaska uzećemo čvor 

v

1 (nulti nivo). Njegova prva dva susedna čvora 

su 

v

2 i 

v

3 (nivo 1) . Sledeći susedni čvora za 

v

2 je čvor 

v

4. Susedni čvor čvora 

v

3 je 

čvor 

v

5 i 

v

6. Čvorovi 

v

4, 

v

5 i 

v

6 su na nivou 2. I poslednji u redosledu obilaska su 

čvorovi 

v

7 i 

v

8 (sledeći susedi čvora 

v

4) i čvor 

v

9 (nivo 3). 

 
Razapeto stablo ovog grafa pri pretrazi po širini dato je na slici 8 
 
 

 
 
 
 
 
 
 
 
 
 
Slika 8 Razapeto stablo grafa sa slike7 za pretragu u širinu 

 
Isprekidane linije predstavljaju veze između čvorova koje postoje u grafu ali nam za ovu 

pretragu nisu značajne. 

Želiš da pročitaš svih 31 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti