Kommutatsiya va marshrutizatsiya




Download 2,72 Mb.
Pdf ko'rish
bet22/26
Sana18.12.2023
Hajmi2,72 Mb.
#122954
1   ...   18   19   20   21   22   23   24   25   26
Bog'liq
Kommutatsiya va marshrutizatsiya (1-qism)

Asosiy k-qadam. Yetakchi satr va yetakchi ustun sifatida k satr va k ustunni 
beramiz. Uchburchak operatorni D
k-1
matritsaning barcha d
ij 
elementlariga qo‗llash 
imkoniyatini ko‗rib chiqamiz. Agar d
ik
+ d
kj
< d
ij
, (i<>k, j<>k, i<>j) tengsizlik 
bajarilsa, quyidagi amallarni bajaramiz: 
− 
D
k-1
matritsadagi d
ij
elementni d
ik
+ d
kj
yig‗indi bilan almashtirish 
orqali D
k
matritsani hosil qilamiz; 
− 
S
k-1
matritsadagi s
ij
elementni k ga almashtirish orqali S
k
matrisani 
hosil qilamiz.
k = k + 1 o‗rnatamiz va k qadamni takrorlaymiz. 
8.3-rasmda tasvirlanganidek, D
k-1
matritsani taqdim qilish orqali 
algoritmning k-nchi qadamida bajarilgan amallarni tushuntiramiz. Bu rasmda k satr 


56 
va k ustun yetakchi hisoblanadi. i satr 1 dan k - 1 gacha bo‗lgan istalgan satr, r satr 
esa k + 1 dan n gacha bo‗lgan raqamli istalgan satr hisoblanadi. Xuddi shunday 
tarzda ј ustun 1 dan k - 1 gacha bo‗lgan istalgan ustunni anglatadi, q ustun k + 1 
dan n gacha bo‗lgan raqamli istalgan ustun hisoblanadi. 

7.14- rasm. Floyd algoritmini tasvirlash 
Uchburchak operatori quyidagicha amalga oshiriladi. Agar yetakchi satr va 
ustun elementlarining yig‗indisi (kvadratlarda ko‗rsatilgan) qaralayotgan yetakchi 
elementlarga mos keladigan ustun va satrning kesishmasida joylashgan 
elementlardan (doiralarda ko‗rsatilgan) kichik bo‗lsa, u holda masofa (doiradagi 
element) yetakchi elementlar orqali ko‗rsatilgan masofalar yig‗indisi bilan 
almashtiriladi (8.3- rasm). 
Algoritmning n qadamlari bajarilgandan keyin D
n
va S
n
matritsalar bo‗ycha i 
va ј tugunlar orasidagi eng qisqa yo‗lni aniqlash quyidagi qoidalar bo‗yicha amalga 
oshiriladi. 
i va ј tugunlari orasidagi masofa D
n
matritsadagi d
ij
elementga teng. 
i tugundan ј tugungacha bo‗lgan yo‗ldagi oraliq tugunlar S
n
matritsa 
bo‗yicha aniqlanadi. s
ij
= k bo‗lsin, u holda i→ k → ј yo‗lga ega bo‗lamiz. Agar 
satr
ustun 
Yetakchi 
ustun 
ustun
Yetakchi 
satr 
satr 


57 
s
ik
= k va s
kj
= ј bo‗lsa, u holda barcha oraliq tugunlar topilganligi sababli, butun 
yo‗l aniqlangan deb faraz qilamiz. Aks holda, ј tugundan k tugunga va k tugundan 
ј tugungacha bo‗lgan yo‗llar uchun tavsiflangan protsedurani takrorlaymiz. 
Misol. 8.4-rasmda tasvirlangan tarmoq uchun istalgan ikkita tugunlar 
orasidagi eng qisqa yo‗llarni topamiz. Bu tarmoqning tugunlari orasidagi masofa 
8.4-rasmda mos qirralarning yaqinidagi qo‗yilgan. (3, 5) qirra yo‗naltirilgan, 
shuning uchun 5-nchi tugundan 3-nchi tugungacha harakatlanish mumkin emas. 
Qolgan barcha qirralar har ikkala tomonlarga harakatlanishga ruxsat etadi (8.4-
rasm). 
7.15- rasm. Floyd algoritmi uchun tarmoq tuzilishi 
0-qadam. Dastlabki D
0
va S
0
matritsalar to‗g‗ridan-to‗g‗ri berilgan tarmoq 
sxemasiga binoan quriladi. D
0
matritsa d
35
va d
53 
elementlar juftligidan tashqari, 
nosimmetrik hisoblanadi, bu yerda d
53
cheksizlikka teng, chunki 5-nchi tugundan 
3-nchi tugunga o‗tish mumkin emas: 
7.16-rasm. Berilgan tarmoq grafi uchun dastlabki holatlar matritsalari 
1-qadam. D
0
matritsada yetakchi satr va ustun (k = 1) tanlangan. Juft ramka 
bilan d
23
va d
32
elementlar ajratilgan, ular qiymatlarini uchburchak operator orqali 


58 
yaxshilash mumkin bo‗lgan D

matritsa elementlari orasida yagona elementlar 
hisoblanadi. Shunday qilib, D
0
va S
0
matritsalar asosida D
1
va S
1
matritsalarni olish 
uchun quyidagi amallarni bajaramiz. 
d
23
ni d
21
+ d
13
= 3 + 10 = 13 bilan almashtiramiz va s
23
= 1 ni o‗rnatamiz. 
d
32
ni d
31
+ d
12
= 10 + 3 = 13 bilan almashtiramiz va s
32
= 1 ni o‗rnatamiz. 
D
1
va S
1
matritsalar quyidagi shaklga ega: 
7.17-rasm. D
1
va S
1
matritsalari 
2-qadam. k = 2 deb olamiz; D
1
matritsada yetakchi satr va ustun ajratilgan. 
Uchburchak operator juft ramka bilan ajratilgan D
1
va S
1
matritsalar elementlariga 
qo‗llaniladi. Natijada D
2
va S
2
matritsalarini olamiz: 
7.18-rasm. D
2
va S
2
matritsalar 
3-qadam. k = 3 deb olamiz; D
2
matritsada yetakchi satr va ustun ajratilgan. 
Uchburchak operator juft ramka bilan ajratilgan D
2
va S
2
matritsalar elementlariga 
qo‗llaniladi. Natijada D
3
va S
3
matritsalarni olamiz: 


59 
7.19-rasm. D
3
va S
3
matritsalar 
4-qadam. k = 4 deb olamiz, D
3
matritsada yetakchi satr va ustun ajratilgan. 
D
4
va S
4
yangi matritsalarni olamiz: 
7.20-rasm. D
4
va S
4
matritsalari 
5-qadam. k = 5 olamiz, D
4
matritsadagi yetakchi satr va ustun ajratilgan. Bu 
qadamda hech qanday amallarni bajarmaymiz; hisoblashlar yakunlandi. 
D
4
va S
4
yakuniy matritsalar istalgan tarmoqning ikkita tugunlari orasidagi 
eng qisqa yo‗llarni aniqlash uchun zarur bo‗ladigan barcha ma‘lumotlarni o‗z 
ichiga oladi. Masalan, 1- va 5-nchi tugunlar orasidagi eng qisqa masofa d
15
= 12 ga 
teng bo‗ladi. 
Mos marshrutlarni topish uchun marshrutning ta‘kidlaymizki, (i, j) segment 
faqat s
ij
= j bo‗lganda (i, j) qirradan iborat bo‗ladi. Aks holda, i va ј tugunlar 
kamida bitta oraliq tugun orqali ulanadi. Masalan, s
15
= 4 va s
45
= 5 bo‗lganligi 
sababli, avval 1 va 5 tugunlar orasidagi eng qisqa yo‗l 1→ 4 → 5 bo‗ladi. Ammo 
s
14
4 ga teng emasligi sababli, 1 va 4 tugunlar ma‘lum bir yo‗lda bitta qirra bilan 


60 
ulanmagan (lekin dastlabki tarmoqda ular to‗g‗ridan-to‗g‗ri bog‗langan bo‗lishi 
mumkin).
Keyin 1 va 4 - tugunlar orasidagi oraliq tugunlarni aniqlash kerak bo‗ladi. s
14
= 2 va s
24
= 4 ga egamiz, shuning uchun 1→4 marshrutni 1→ 2→ 4 marshrut bilan 
almashtiramiz. s
12
= 2 va s
24
= 4 bo‗lganligi sababli, boshqa oraliq tugunlar mavjud 
emas. Marshrutning ma‘lum segmentlarini birlashtirish bilan nihoyat 1 tugundan 5 
tugungacha bo‗lgan eng qisqa yo‗l - 1→ 2→ 4→ 5 ni olamiz. Bu yo‗lning uzunligi 
12 kilometrga teng. 

Download 2,72 Mb.
1   ...   18   19   20   21   22   23   24   25   26




Download 2,72 Mb.
Pdf ko'rish