KompyuterlarDasturlash

Kruskal ning algoritm - optimal doirasida qurilishi

19-asr mutaxassisi Berlin dan Jakob Steiner ularning uzunligi qisqa edi, shunday qilib, uchta qishloqdan ulash uchun qanday vazifani belgilash. Keyinchalik, u muammoni umumlashtirilishi: u bir samolyot bir nuqtasini topish kerak, n boshqa nuqtalari uchun undan masofa eng past edi. 20 asrda, bu mavzu ustida ishlash davom etmoqda. Bu bir necha ochko olish va ular orasidagi masofa qisqa edi, bunday tarzda ularni ulash uchun qaror qabul qilindi. Barcha bu o'rganilmoqda muammoning maxsus shundaydir.

"Ochko'z" algoritm

Kruskal ning algoritm "ochko'z" algoritm (deb ham ataladi gradient) anglatadi. o'sha mohiyati - har qadamda eng yuqori g'alaba. Har doim emas, "ochko'z" algoritmlarni muammo uchun eng yaxshi yechim beradi. a nazariyasi aniq vazifalar, ularning qo'llash ular optimal yechim berish, deb ko'rsatib, bor. Bu matroids nazariyasi hisoblanadi. Kruskal ning algoritm kabi muammolari bilan bog'liq.

minimal karkas og'irligi topish

Ko'rib chiqilgan algoritm optimal ramka sonini barpo. quyidagicha undan muammo hisoblanadi. Dan parallel qirralarning va halqalarni holda, grafik adressiz va tomonlarining majmui har dam E raqam soladi w vazn vazifasini, berilgan - vazn qovurg'asidan - (e) w. qovurg'alar ko'p har kœpligidan vazn tomonlarining massalar yig'indisi hisoblanadi. kichik vazn suyaklarni topish uchun zarur.

Tavsif

Kruskal ning algoritm ishlaydi. Birinchidan, dastlabki grafik barcha qirralarning massalar tartibini narvondan ajratilgan. Dastlab, ramka har qanday qovurg'a o'z ichiga lekin barcha burchaklar o'z ichiga oladi emas. bir yoyilgan o'rmon bo'lgan karkas, allaqachon barpo qismi algoritm keyingi bosqich so'ng, bir dam qo'shiladi. Bu o'zboshimchalik bilan tanlangan emas. chizma barcha qirralarning, rom tegishli emas, qizil va yashil, deb atash mumkin. Har bir qizil chetiga yuqori qurilish o'rmon ulanish ostida bir xil topgan bo'ladi, va yashil toplar - turli. Agar qizil chetiga kiritish bo'lsa Shuning uchun, u erda bir davr bo'lib, agar yashil - bu qadam so'ng qabul qilib yog'och bog'liq qismlariga nisbatan kamroq bo'ladi. Shunday qilib, The Yuzaga qurilish olmaydi Add hech Red Edge, lekin har qanday yashil dam berishi mumkin Qo'shilgan uchun Ishga The o'rmon. Va minimal og'irligi bir yashil chetini qo'shadi. Natijada minimal og'irligi bir ramkaga.

amalga oshirish

F. Bu ulanish sohasida uchlari majmuini ajratib joriy o'rmon belgilaymiz (ularning uyushmalari shakllari F, va ular og'riqqa bo'lgan). qizil uchlari ikkala chetiga ular bir parcha yolg'on. Qismi (x) - har bir uchidan x nomi bir qismini qaytaradi funktsiyasi, u x xosdir. Unite (x, y) - x va y qismlarini va boshqa barcha qismlar birlashtirish iborat, yangi disk qismini hosil qiladi tartibi. n bo'lsin - qirralarning soni. Barcha bu tushunchalar Kruskal ning algoritm kiritilgan. amalga oshirish:

  1. n-th o'sish bo'yicha og'irliklariga 1 dan chizma barcha qirralarning ajrating. (Ai, bi - i Apex dam raqami bilan).

  2. uchun i = 1 n qilish.

  3. x: = qism (elektron miya).

  4. y: = qism (bi).

  5. x emas teng keyin Y Unite (x, y) bo'lsa, chet F i raqami bilan o'z ichiga uchun.

to'g'ri

T bo'lsin - uning o'zboshimchalik ramka - original grafik ramka Kruskal algoritmi va S yordamida qurilgan. (T) (S) w buyuk emas w Biz isbotlash uchun bor.

M bo'lsin - qirralarning S, P o'rnatish - S T teng bo'lmasa T. chekkalarida majmui bo'lib, keyin bir dam ramka et T, har qanday chet as oling, bir xalqqa S. shakllantirish S. ET uchun yondashmoq tegishli C C uni qo'ng'iroq emas bor, egalik qirralarning va burchaklar bir xil bo'ladi, chunki S. Biz yangi bir kvadrat olish. Uning vazni (S), w (ET) buyon endi bir kuch Kruskal algoritmida (es) w w buyuk emas. (T) w (S) w buyuk emas, deb shama oldingi og'irligi, endi bu operatsiya (T chekkalarida almashtirish qovurg'a S) kabi uzoq, biz T. har bir keyingi qabul ramkaning og'irligini olish kabi uchun takrorlanadi hisoblanadi.

Kruskal ning algoritm mustahkamligi matroids haqida Rado-Edmonds teoremasiga dan quyidagicha.

Application misollar Kruskal algoritm

tugunlari a, b, c, d, e va qovurg'alar (a, b), (a, e), (b, c), (b, e) bilan Dan grafik, (c, d), (c, d) (d, e). tomonlarining vazni jadvalda va rasmda ko'rsatilgan. Dastlab, qurilish o'rmon F chizma barcha burchaklar o'z ichiga oladi va har qanday qovurg'a o'z ichiga olmaydi. Algoritm Kruskal birinchi Add yon (a, e), beri The vazn edi The eng past va The vertices A va E turli qismlariga yog'och ulanishi F (qovurg'a (a, e) yashil), so'ngra The qovurg'a (c, d), chunki grafik chekka kamida, bu dam og'irligi, balki F tegishli va u yashil, shu sabablar chetini kelgan keyin uchun (a, b). Lekin chet (b, e) u va qolgan qirralarning eng kam og'irligi, qizil, chunki, hatto, uzatiladi: vertices b va e o'rmon ulanish F shu komponent tegishli, biz F chetini (b, e) qo'shing bo'lsa, hosil bo'ladi, deb aylanishi. So'ngra yashil chetini (b, c), o'tgan qizil chetini (c, d), so'ngra D, E qo'shiladi. Shunday qilib, qirralarning qo'shiladi ketma-ket (a, e), (c, d), (a, b), (b, c). va nihera optimal rom asl chizma iborat. Shunday qilib, bu holatda u bir algoritm faoliyat Kruskal. Bir misol, ko'rsatilgan.

ko'rsatkich ikki ulangan tarkibiy qismlardan iborat grafik, ko'rsatadi. qalin chiziqlar (yashil) Kruskal algoritm bilan barpo optimal ramka qovurg'a ko'rsatadi.

minimal og'irlik suyaklarni, uning uchun qurilgan algoritm yordamida - eng rasm original grafigi va pastki ko'rsatadi.

qo'shimcha qovurg'a natija (1,6); (0,3), (2,6) yoki (2,6), (0,3) - muhim emas; (3,4); (0,1), (1,6) yoki (1,6), (0,1), shuningdek, g'amxo'rlik (5,6).

Kruskal ning algoritm har bir mamlakatda yangi uy-joy massivi joylarda, shuningdek, boshqa hollarda qistirma aloqa, yo'llar optimallashtirish uchun, masalan, amaliy topadi.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 uz.delachieve.com. Theme powered by WordPress.