Professional Documents
Culture Documents
Algoritam Za Konstrukciju Pripadajućeg Drveta
Algoritam Za Konstrukciju Pripadajućeg Drveta
Algoritam za konstrukciju
razapinjućeg drveta
1 2
4 5
Slika 1.24. Pet gradova izmedju kojih je moguće
putovati bez presedanja
www.vtsurosevac.com 1
1.5. Algoritam za konstrukciju
razapinjućeg drveta
www.vtsurosevac.com 2
Pretpostavimo da želimo da smanjimo
broj parova gradova međusobno
povezanih direktnim saobraćajem.
www.vtsurosevac.com 3
1.5. Algoritam za konstrukciju
razapinjućeg drveta
1 2 1 2
3 3
4 5 4 5
(a) (b)
www.vtsurosevac.com 6
1.5. Algoritam za konstrukciju
razapinjućeg drveta
Prilikom konstruisanja drveta grane već
uključene u drvo čine jednu ili više
povezanih komponenti.
www.vtsurosevac.com 7
1.5. Algoritam za konstrukciju
razapinjućeg drveta
KORAK 1:
www.vtsurosevac.com 8
1.5. Algoritam za konstrukciju
razapinjućeg drveta
KORAK 2:
Izabrati bilo koju neobojenu granu
koja nije “petlja” (ukoliko takva grana
ne postoji završiti sa algoritmom, što
znači da odgovarajuće pripadajuće
drvo ne postoji). Po izvršenom izboru
neobojene grane moguće su sledeće
4 situacije:
www.vtsurosevac.com 9
1.5. Algoritam za konstrukciju
razapinjućeg drveta
(I) Oba čvora ove grane pripadaju istoj
komponenti.
(II) Jedan čvor grane pripada
komponenti, a drugi čvor grane ne
pripada nijednoj komponenti.
(III) Ni jedan ni drugi čvor ne pripadaju
nijednoj komponenti.
(IV) Čvorovi pripadaju različitim
komponentama.
www.vtsurosevac.com 10
1.5. Algoritam za konstrukciju
razapinjućeg drveta
U slučaju (I) granu treba obojiti u
crveno (ne treba je uključiti u drvo) i
vratiti se na početak koraka 2.
www.vtsurosevac.com 13
1.5. Algoritam za konstrukciju
razapinjućeg drveta
• Primenimo algoritam za konstrukciju razapinjućeg
drveta na problem rekonstrukcije mreže linija
železničkog saobraćaja (slika 1.24.)
• Neka je redosled kojim ćemo ispitivati grane sledeći:
– (1, 2), (4, 5), (1, 4), (2, 5), (1, 3), (2, 3), (3, 4),
(3, 5).
1 2
zelena boja
crvena boja
komponenta 2
Komponenta 2
4 5
zelena boja
crvena boja
1 2
4 5 zelena boja
crvena boja
4 5
zelena boja
crvena boja
4 5
www.vtsurosevac.com 19
1.5. Algoritam za konstrukciju
razapinjućeg drveta
1 2
4 5
www.vtsurosevac.com 21
1.5. Algoritam za konstrukciju
razapinjućeg drveta
U odredjenim slučajevima
zainteresovani smo za pronalaženje
takvog razapinjućeg drveta koje ima
najmanju dužinu svih grana.
www.vtsurosevac.com 24
KORAK 2: Ukoliko su svi čvorovi
povezani, najkraće razapinjuće drvo je
pronađeno. Ukoliko postoje još uvek
neki izolovani čvorovi prelazimo na
korak 3.
www.vtsurosevac.com 26
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
a
9
8 6 b
7 4
d e c
6
12 6 11 5
10
h 7 f
14 8
g
4 9
5 12
15
i j
www.vtsurosevac.com 28
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje
dužine
a
e
6
h
Slika 1.34. Grane (a, e) i (e, h)
www.vtsurosevac.com 29
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
a
e
6
www.vtsurosevac.com 30
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje
dužine
a
6 b
7
e
6
6 b
7 4
e c
6
h
Slika 1.37. Grane (a, e), (e, h), (h, j), (e, b) i (b, c)
www.vtsurosevac.com 32
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje
dužine
a
6 b
7 4
e c
6 5
h f
Slika 1.38. Grane (a, e), (e, h), (h, j), (e, b), (b, c) i (c, f)
www.vtsurosevac.com 33
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
a
8 6 b
7 4
d e c
6 5
h f
Slika 1.39. Grane (a, e), (e, h), (h, j), (e, b), (b, c), (c, f) i (a, d)
www.vtsurosevac.com 34
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
a
8 6 b
7 4
d e c
6 5
h f
8
g
4
Slika 1.40. Grane (a, e), (e, h), (h, j), (e, b), (b, c), (c, f) ,
(a, d) i (g, h)
www.vtsurosevac.com 35
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
a
8 6 b
7 4
d e c
6 5
h f
8
g
4
5
i j
www.vtsurosevac.com 37
KORAK 1: Napraviti listu sortiranih
grana originalne mreže u rastećem
poretku njihovih dužina (na prvom
mestu liste je najkraća grana, a na
poslednjem najduža). U slučaju kada
dve ili više grana imaju istu dužinu
proizvoljnim redosledom ih uključiti u
listu jednu iza druge.
komponenta 1
Slika 1.42 Grana (b, c)
www.vtsurosevac.com 40
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
b
komponenta 1
h komponenta 2
komponenta 1 c
h f
komponenta 2 j
komponenta 1 c
komponenta 3 h f
i komponenta 2 j
e c
komponenta 4
h f
komponenta 3
i komponenta 2 j
e c
h f
komponenta 3
i komponenta 2 j
Slika 1.47. Grane (b, c), (h, j), (c, f), (g, i) i (e, h)
www.vtsurosevac.com 45
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
komponenta 1
a
b
e c
h f
komponenta 3
i komponenta 2 j
Slika 1.48. Grane (b, c), (h, j), (c, f), (g, i), (e, h) i (b, f)
www.vtsurosevac.com 46
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
komponenta 1
a
b
e c
h f
komponenta 2
i j
Slika 1.49. Grane (b, c), (h, j), (c, f), (g, i), (e, h), (b, f) i (e, b)
www.vtsurosevac.com 47
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
komponenta 1
a
b
e c
h f
komponenta 2
i j
Slika 1.50. Grane (b, c), (h, j), (c, f), (g, i), (e, h), (b, f),
(e, b) i (h, f)
www.vtsurosevac.com 48
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
komponenta 1
a
b
d e c
h f
komponenta 2
i j
Slika 1.51. Grane (b, c), (h, j), (c, f), (g, i), (e, h), (b, f),
(e, b), (h, f) i (a, d)
www.vtsurosevac.com 49
1.6. Algoritmi za iznalaženje
razapinjućeg drveta najmanje dužine
komponenta 1
a
b
d e c
h f
zelena boja
i j crvena boja
www.vtsurosevac.com 51
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
www.vtsurosevac.com 52
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
Sortirajmo grane po opadajućem poretku
njihovih dužina. Redosled kojim treba
ispitivati grane prilikom primene algoritma
za konstukciju razapinjućeg drveta je
sledeći:
(i, j), (d, i), (i, h), (a, g), (b, h), (d, g), (a, b),
(j, f), (a, d), (g, h), (f, h), (b, e), (b, f), (e, h),
(a, e), (g, i), (c, f), (b, c), (h, j).
www.vtsurosevac.com 53
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
komponenta 1
i j
www.vtsurosevac.com 54
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
komponenta 1
i j
i j
komponenta 2
d
komponenta 1
i j
komponenta 2
a komponenta 1
b
i j
Slika 1.57. Grane (i. j), (d, i), (i, h), (a, g) i (b, h)
www.vtsurosevac.com 58
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
i j
slika 1.58. Grane (i, j), (d, i), (i, h), (a, g), (b, h) i (d, g)
www.vtsurosevac.com 59
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
i j
Slika 1.59. Grane (i, j), (d, i), (i, h), (a, g), (b, h) i (d, g)
www.vtsurosevac.com 60
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
h f
i j
Slika 1.60. Grane (i, j), (d, i), (i, h), (a, g), (b, h), (d, g) i (j, f)
www.vtsurosevac.com 61
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
h f
i j
Slika 1.61. Grane (i, j), (d, i), (i, h), (a, g), (b, h), (d, g) i (j, f)
www.vtsurosevac.com 62
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
h f
i j
Slika 1.62. Grane (i, j), (d, i), (i, h), (a, g), (b, h), (d, g) i (j, f)
www.vtsurosevac.com 63
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
h f
i j
Slika 1.63. Grane (i, j), (d, i), (i, h), (a, g), (b, h), (d, g) i (j, f)
www.vtsurosevac.com 64
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
d e
h f
i j
Slika 1.64. Grane (i, j), (d, i), (i, h), (a, g), (b, h),
(d, g), (j, f) i (b, e)
www.vtsurosevac.com 65
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
d e
h f
i j
Slika 1.65. Grane (i, j), (d, i), (i, h), (a, g), (b, h), (d, g),
(j, f) i (b, e)
www.vtsurosevac.com 66
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta
komponent11
Component
b
d e
h f
i j
Slika 1.66. Grane (i, j), (d, i), (i, h), (a, g), (b, h), (d, g),
(j, f) i (b, e)
www.vtsurosevac.com 67
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a komponenta 1
b
d e
h f
i j
Slika 1.67. Grane (i, j), (d, i), (i, h), (a, g),
(b, h), (d, g), (j, f) i (b, e)
www.vtsurosevac.com 68
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće
dužine
a komponenta 1
b
d e
h f
i j
Slika 1.68. Grane (i, j), (d, i), (i, h), (a, g),
(b, h), (d, g), (j, f) i (b, e)
www.vtsurosevac.com 69
1.7. Algoritam za iznalaženje
razapinjućeg drveta najveće dužine
a
b
d e c
h f
i j
www.vtsurosevac.com 71