Minimal kenglikdagi daraxt Kruskal algoritmi
Minimal kenglikdagi daraxt: Kruskal algoritmi Mundarija KIRISH ASOSIY QISM 1.Ma’lumot: 1.1. Minimal kenglikdagi daraxt haqida tushuncha 2. Amaliy : 2.1. Krusakal algaritmi 2.2 . Kruskal algoritmiga kirish 2.3. Krusakal algartmlari C++ dasturlash tilda ifodalash 2.4. Dasturni murakkabligini baholash 2.5. Minimal kenglikdagi daraxt uchun Prim algoritmi 2.6 Prim va Kruskal algoritmlar o’rtasidagi farqlari 2.7. Minimal kenglikdagi daraxt uchun Boruvka algoritmi 2.8. Minimal kenglikdagi daraxt uchun teskari o'chirish algoritmi Xulosa Foydanilgan adabiyotlar 1
Kirish Bugungi kunda mamlakatimizda axborot-kommunikatsiya texnologiyalarini qo‘llamaydigan korxonalar deyarli qolmadi va ulardan aksariyatining hozirgi vaqtdagi muammosi u yoki bu jarayonlarni avtomatlashtirilmaganligida emas, balki uzoq muddatli rejalarsiz amalga oshirilgan, ko‘r-ko‘rona avtomatlashtirish oqibatidir. Hisoblash texnikasi va dasturiy ta'minotni rejasiz xarid qilish, mayda kompaniyalarda yangilanmaydiga biznes takliflarga buyurtma berilishi va ularning joriy etilishi, turli bo‘linmalarga joriy etilgan bir vazifani hal etish uchun turli takliflarning mavjudligi, har xil segmentlangan tarmoqlarni ma'muriylashtirish va himoyalash muammolari — bularning barchasi turli kompaniyalar axborotkommunikatsiya texnologiyalar bo‘linmalari rahbarlari duch keladigan muammolar jumlasiga kiradi. AKTning rivojlanishi raqamli va matnli axborotga ishlov berishning barcha texnik vositalarini firma ichidagi yagona axborot tizimiga birlashtirish imkonini berdi. Bir vaqtning o‘zida hisoblash texnikasi va matnli axborotlarga avtomatlashtirilgan tarzda ishlov berish vositalaridan foydalanishga asoslangan axborot tizimi eng samarali hisoblanmoqda.Korxona faoliyati mobaynida ko‘p hajmdagi axborotlarni to‘playdi, ularni tezda qidirib topish esa ushbu axborot samarali joylashtirilgan va saqlangan taqdirda mumkin bo‘ladi. Ma'lumotlar bazasi firmaning ishlab chiqarish-sotish bo‘linmalarining xo‘jalik faoliyatini tavsiflovchi statistik ko‘rsatkichlar majmuini, shuningdek, firma rivojlanishining holati va tendensiyalariga ta'sir ko‘rsatuvchi barcha omillarga nisbatan materiallarni o‘z ichiga oladi. Ma'lumotlar bazasi uchun statistik ko‘rsatkichlar to‘plami puxta ishlab chiqiladi va firmaning faoliyat ko‘rsatishi natijalari va istiqbollarini chuqur iqtisodiy tahlil qilish uchun zarur bo‘lgan ko‘rsatkichlarni qamrab oladi. Odatda ma'lumotlar bazasini shakllantirishda ma'lumotlarni saqlash va yangilash tizimi to‘g‘risidagi masala ham hal etiladi. 2
1.1 Minimal kenglikdagi daraxt haqida tushuncha Eng kichik uzunlikdagi daraxt – berilgan grafning eng kam darajaga ega bo lgan daraxti, bu yerda daraxtning darajasi uning qirralari daajalari yig indisiʻ ʻ sifatida tushuniladi. Misol. Minimal uzunlikdagi daraxtni topish muammosi ko'pincha xuddi shunday sharoitda uchraydi: masalan, har qanday shahardan boshqasiga (to'g ridan-to'g ri yoki boshqa shaharlar orqali) o'tish uchun n ta shaharlarni yo'llar ʻ ʻ bilan bog lash kerak. Berilgan juft shaharlar o'rtasida yo'llar qurishga ruxsat ʻ beriladi va har bir bunday yo'lni qurish qiymati ma'lum. Qurilishning umumiy narxini minimallashtirish uchun qaysi yo'llarni qurish kerakligini hal qilish talab qilinadi. Ushbu muammoni grafika nazariyasi nuqtai nazaridan shakllantirish mumkin. Bu yerda berilgan grafnin uchlari shaharlarni, qirralari esa to'g ri yo'l ʻ qurilishi mumkin bo'lgan va qirralarning og irliklari teng bo'lgan shaharlarni ʻ ifodalaydigan minimal daraxtini topish muammosidir. Minimal uzunlikdagi daraxtni topish uchun bir nechta algoritmlar mavjud. Eng mashhurlari quyida keltirilgan: 1) Kruskal algoritmi; 2) Prima algoritmi; 3) Boruvka algoritmi; 4) Teskari o'chirish algoritmi; Quyida ushbu algoritmlarni ko rib chiqamiz ʻ 2.1 Kruskal algoritmi Kruskal algoritmida qirralarning butun birlashtirilgan ro'yxati kamaymaydigan uch darajalariga muvofiq tartiblangan. Bundan tashqari, qirralar darajalari kichikroq bo'lgan qirralardan yuqori tomonga siljiydi va keyingi uch 3
ilgari tanlangan qirralar bilan sikl hosil qilmasa, karkasga qo'shiladi. Xususan, grafdagi minimal darajadagi qirralaridan biri har doim birinchi bo'lib tanlanadi.Tanlangan qirralarning sikl hosil qilmasligini tekshirish uchun biz grafni bir nechta bog langan komponentlarning birlashishi sifatida namoyish etamiz. Engʻ boshida, grafning chekkalari tanlanmaganida, har bir uch alohida bog langan ʻ komponent hisoblanadi. Yangi qirralar qo'shilganda, ulanish komponentlari bitta umumiy ulanish komponenti bo'lguncha birlashadi. Barcha bog langan tarkibiy ʻ qismlarni raqamlaymiz va har bir uch uchun uning ulangan qismlarini sonini saqlaymiz, shuning uchun har bir uch uchun boshida uning bog langan ʻ komponentlari soni uchning o'zi soniga teng bo'ladi va oxirgi barcha uchlar bir- biriga bog langan komponentning bir xil raqamlariga tegishli bo'ladi. ʻ Keyingi qirrani ko'rib chiqayotganda, ushbu qirraning uchlariga to'g ri ʻ keladigan ulangan komponentlarning raqamlarini ko'rib chiqamiz. Agar bu raqamlar bir xil bo'lsa, unda qirra allaqachon bir xil bog langan komponentda ʻ joylashgan ikkita uchni birlashtiradi, shuning uchun bu qirrani qo'shish siklni tashkil qiladi. Agar qirra ikki xil bog langan komponentni, masalan, a va b ʻ raqamlari bilan bog lasa, u holda qirra asosiy daraxtning bir qismiga qo'shiladi va ʻ bu ikkita bog langan komponentlar birlashtiriladi. Buning uchun, masalan, ilgari ʻ komponentida bo'lgan barcha uchlar uchun komponent raqaminiga o'zgartirish kerak. Kruskal algoritmini amalga oshirish bosqichlari quyidagicha: 1) Barcha qirralarni quyidan yuqorigacha saralash. 2) Vazni eng kichik qirrasini oling va uni daraxtga qo'shing. Agar qirra qo shilganda, sikl hosil bo lsa, u holda bu qirrani olib tashlang. ʻ ʻ 3) Barcha uchlarga yetguncha qirralarni qo'shishni davom eting. 2.2 Kruskal algoritmiga kirish: Bu yerda biz berilgan vaznli grafikning MST (Minumum Spanning Tree) ni topish uchun Kruskal algoritmini muhokama qilamiz . 4
Kruskal algoritmida berilgan grafikning barcha qirralarini ortib borish tartibida tartiblang. Keyin, agar yangi qo'shilgan chekka tsikl hosil qilmasa, MSTga yangi qirralar va tugunlarni qo'shishda davom etadi. U dastlab minimal og'irlikdagi qirrani, oxirida maksimal og'irlikdagi chetini tanlaydi. Shunday qilib, optimal echimni topish uchun har bir bosqichda mahalliy optimal tanlovni amalga oshiradi, deb aytishimiz mumkin. Demak, bu ochko'z algoritmdir . Kruskal algoritmi yordamida MST ni qanday topish mumkin? Quyida Kruskal algoritmi yordamida MST ni topish bosqichlari keltirilgan: 1. Barcha qirralarni og'irligi bo'yicha kamaymaydigan tartibda tartiblang. 2. Eng kichik chetini tanlang. Hozirgacha hosil bo'lgan oraliq daraxt bilan tsikl hosil qilishini tekshiring. Agar tsikl shakllanmagan bo'lsa, bu chekka qo'shing.Aks holda, uni tashlang. 3. Yopiladigan daraxtda (N-1) qirralar paydo bo'lguncha 2-qadamni takrorlang. Kruskalning minimal xarajat daraxtini topish algoritmi ochko'z yondashuvdan foydalanadi. Ochko'z tanlovi hozirgacha qurilgan MSTda tsiklga olib kelmaydigan eng kichik og'irlik chegarasini tanlashdir. Keling, buni misol bilan tushunamiz: Tasvir: Quyida yuqoridagi yondashuvning tasviri keltirilgan: Kirish grafigi : Grafikda 9 ta burchak va 14 ta burchak mavjud. Shunday qilib, hosil bo'lgan minimal kenglikdagi daraxt (9 - 1) = 8 qirraga ega bo'ladi. Saralashdan keyin: Og'irlig Manba Manzil 5