KompüterProqramlaşdırma

Kruskal nin alqoritm - optimal çərçivəsində tikinti

erkən 19-cu əsrdə Geometer In Berlin Jakob Steiner uzunluğu qısa idi ki, üç kəndləri birləşdirmək necə tapşırıq verib. Sonra o, problemi ümumiləşdirmək: bir təyyarə bir nöqtəsi tapmaq üçün tələb olunur n digər bal ondan məsafə aşağı idi. 20-ci əsrdə, bu mövzuda işlərini davam etdirir. Bu bir neçə xal almaq və onların arasında məsafə qısa idi, belə bir şəkildə onlara qoşulmaq barədə qərar qəbul edilib. Bütün bu öyrənilir problemin xüsusi haldır.

"Greedy" alqoritm

Kruskal nin alqoritm "görməmiş" alqoritm (həmçinin gradient) aiddir. o mahiyyəti - hər bir addım ən yüksək qələbə. Həmişə "görməmiş" alqoritmləri problemin ən yaxşı həll təmin edir. nəzəriyyə müəyyən vəzifələri onların tətbiqi onlar optimal həll olduğunu göstərən var. Bu matroids nəzəriyyəsidir. Kruskal nin alqoritm belə problemlərə aiddir.

bir minimum karkas çəki tapmaq

Baxılanlar alqoritm optimal çərçivə sayı yaradır. aşağıdakı kimi problemidir. Dan paralel kənarları və loops olmadan graph yönsüz, və kənarları set hər kənar e sayı atar w çəki funksiyası verilir - çəki qabırğa - (e) w. qabırğa plüralizmi hər alt çəki onun kənarları çəkilər cəmidir. kiçik çəki skelet tapmaq üçün tələb olunur.

təsvir

Kruskal nin alqoritm çalışır. Birincisi, ilkin graph bütün kənarları çəkilər sifariş artan təşkil edilir. Əvvəlcə çərçivəsində hər hansı bir qabırğa ehtiva lakin bütün vertices daxildir deyil. bir əhatə meşə karkas, artıq inşa hissəsi alqoritm növbəti addım sonra, bir kənar əlavə olunur. Bu özbaşına seçilmiş deyil. grafik Bütün kənarları çərçivəsində aid deyil, qırmızı və yaşıl adlandırmaq olar. hər qırmızı kənarları yuxarı tikinti meşə keçid eyni komponenti və yaşıl zirvələri - müxtəlif. Əgər qırmızı kənarında əlavə et Buna görə, bir dövrü deyil, əgər yaşıl - Bu addım sonra aldığı ağac bağlı komponentləri bir az olacaq. Belə ki, nəticədə tikinti heç bir qırmızı kənar əlavə edə bilməz, ancaq hər hansı bir yaşıl kənar meşə almaq üçün əlavə edə bilərsiniz. Və minimum çəki ilə yaşıl kənar edir. nəticə minimum çəki çərçivəsində edir.

həyata keçirilməsi

F. Bu keçid sahəsində təpə toplusunu ayıran cari meşə işarə (onların ittifaqı formaları F, və onlar aralaşdırmaq var). qırmızı təpə həm kənarları onlar bir parça yalan. Part (x) - Hər bir vertex x adı bir hissəsini qaytarır funksiyası, bu x məxsusdur. Unite (x, y) - x və y hissələri və bütün digər hissələri birləşdirən ibarət yeni bölüm qurur bir qaydası. n edək - kənarları sayı. Bütün bu anlayışlar Kruskal alqoritm daxildir. İcra:

  1. n-ci artan çəkilər 1-dən graph bütün kənarları təşkil edir. (Ai, bi - i APEX kənar sayı ilə).

  2. i = 1 n yoxdur.

  3. x = Part (ai).

  4. y: = Part (bi).

  5. x bərabər sonra y Unite (x, y) Əgər, kənar F i sıra daxildir.

dürüstlük

T edək - öz ixtiyari çərçivəsində - Orijinal graph çərçivəsində Kruskal alqoritmi və S istifadə inşa. (T) (S) w üstün deyil w Biz ki, sübut var.

M edək - fins S P plüralizmi - T. varsa S T bərabər deyil fins bir plüralizmi, sonra çərçivə rib et T, S. S. et aid deyil, C. C adlanır dövrü, hər hansı bir kənar illərində aradan qaldırılması aid qoşma var kənarları və vertices eyni çünki S. Biz yeni çərçivə almaq. Onun çəkisi (S), w (et) bəri artıq güc Kruskal alqoritm (es) w w daha böyükdür. Bu əməliyyat (qabırğa on əvəz T S qabırğa) kimi uzun T. hər sonrakı qəbul çərçivəsində çəki almaq kimi təkrar olacaq nəzərdə tutur əvvəlki çəki, daha böyük deyil ki, (T) (S) w daha böyük deyil w.

Kruskal nin alqoritm möhkəmlik matroids on Rado-Edmonds teoremi belə.

Application nümunələr Kruskal alqoritm

qovşaqlarının a, b, c, d, e və qabırğa (a, b), (a, e), (b, c), (b, e) ilə Dan graph (c, d), (c, e) (d, e). kənarları çəkilər cədvəldə və rəqəm göstərilir. Əvvəlcə, Tikinti meşə F grafik bütün vertices var və hər hansı bir qabırğa yoxdur. sonra qabırğa çəki aşağı idi-ci ildən alqoritmi Kruskal ilk qabırğa (a, e) əlavə və vertices bir və e ağac keçid F (rib (a, e) yaşıl) müxtəlif komponentləri (c, d), çünki graph kənarları ki, ən azı bu kənar çəki deyil, F aid və bu yaşıl, eyni səbəblərdən kənar hesablanır sonra (a, b). Amma kənar (b, e) o və qalan kənarları minimum çəkisi qırmızı, çünki, baxmayaraq ki, qəbul edilir: vertices b və e meşə keçid F eyni komponenti aid ki, biz F kənar (b, e) əlavə əgər, formalaşır edir dövrü. Sonra yaşıl kənar (b, c), qəbul edilir qırmızı kənar (c, e), və sonra d, e əlavə edib. Belə ki, kənarları əlavə olunur ardıcıl (a, e), (c, d), (a, b), (b, c). və nihera optimal çərçivəsində orijinal graph ibarətdir. Belə ki, bu halda bir alqoritm fəaliyyət Kruskal. Misal göstərilir.

rəqəm iki bağlı komponentdən ibarətdir bir grafik göstərir. qalın xətləri (yaşıl) Kruskal alqoritmi istifadə inşa optimal çərçivə qabırğa göstərir.

minimal çəki bir skelet, onun üçün inşa alqoritm istifadə edərək, - top şəkil orijinal grafik, və alt göstərir.

əlavə qabırğa ardıcıllığı (1.6); (0,3), (2,6) və ya (2,6), (0,3) - əhəmiyyətli deyil; (3,4); (0,1), (1,6) və ya (1,6), (0,1), həmçinin qayğı (5,6).

Kruskal nin alqoritm hər bir ölkədə yeni yaşayış massivləri yerlərində, eləcə də digər hallarda gasket rabitə, yollar optimize, məsələn, tətbiq tapır.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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