Amakhompyutha, Izinhlelo
Kruskal sika algorithm - ukwakhiwa nohlaka elilungile
Ngasekuqaleni kwawo-19 geometer ekhulwini Jakob Steiner kusukela Berlin usethe umsebenzi nendlela ukuxhuma amadolobhana amathathu ukuze obuphelele yabo kwaba emfushane. Kamuva, wafingqa inkinga: kuyadingeka ukuze uthole iphuzu indiza, ibanga kuwo n nezinye amaphuzu kwakungamadodana aphansi. Ekhulwini lama-20, kuqhubeka ukusebenza kulesi sihloko. Kwanqunywa ukuthatha amaphuzu ambalwa bese uxhuma nabo ngendlela yokuthi ibanga elibahlukanisile kwaba emfushane. Lokhu konke icala ekhethekile yenkinga lafundvwako.
"Abahahayo" algorithm
algorithm Kruskal sika libhekisela "abahahayo" algorithm (obizwa nangokuthi umyela). Ingqikithi labo - win kakhulu isinyathelo ngasinye. Hhayi ngaso sonke isikhathi, ama-algorithm "abahahayo" ukunikeza ikhambi elingcono kakhulu lenkinga. Kukhona theory, okubonisa ukuthi isicelo sabo imisebenzi ethize anika isixazululo elikhulu. Lena imfundiso yokuziphendukela matroids. algorithm Kruskal kubhekisela zinkinga.
Ukuthola okungenani isidumbu isisindo
algorithm Okubukwe lolwakha i elilungile Uhlaka ukubala. Inkinga yalo kanje. Dan undirected igrafu ngaphandle emaphethelweni kuqondane and izihibe, kanye iqoqo imiphetho unikezwa umsebenzi isisindo w, leniketa inamba onqenqemeni ngamunye e - isisindo ubambo - w (e). Isisindo isethi engezansi sebuningini lwezimbambo ngamunye isamba izisindo imiphetho yayo. Kuyadingeka ukuthola amathambo endoda isisindo encane.
incazelo
algorithm Kruskal sika isebenza. Okokuqala, bonke imiphetho igrafu kokuqala ahlelwe sinyuka oda izisindo. Ekuqaleni, uzimele ayinazo izimbambo kodwa lihlanganisa zonke vertices. Ngemva isinyathelo esilandelayo-algorithm engxenyeni kakade kwakhiwa isidumbu, okuyinto ihlathi lokuwela, omunye onqenqemeni sengezwe. It is hhayi ekhethiwe ezinqumela. Zonke imiphetho igrafu, engekho nakunoma uzimele, angabizwa ngokuthi obomvu kanye green. Phezulu ngamunye imiphetho obomvu basesimweni ingxenye efanayo ngaphansi ihlathi ukwakhiwa kwenethiwekhi, bese eziqongweni green - ezahlukene. Ngakho-ke, uma wengeza ku-edge ebomvu, kukhona umjikelezo, futhi uma oluhlaza - njengoba wathola emva lesi sinyathelo izinkuni exhunywe izingxenye buzoba buncane kweyodwa. Ngakho, ukwakhiwa okuholela Awukwazi ukwengeza kungekho onqenqemeni obomvu, kodwa iyiphi onqenqemeni oluhlaza kungaba ukungezwa uthole ihlathi. Futhi uyanezela onqenqemeni obuluhlaza isisindo okungenani. Imiphumela iba yinhlanganisela yokukhandleka kohlaka isisindo okungenani.
ukuqaliswa
Isho ihlathi zamanje F. Uyahlukana isethi vertices emkhakheni zokuxhuma (mafomu inyunyana F, zinjalo disjoint). Ngezinye kokubili imiphetho vertices obomvu ayelala yinye. Ingxenye (x) - umsebenzi ukuthi vertex ngamunye x ibuyisa ingxenye igama, lingelikaJehova x. Unite (x, y) - inqubo eyakha ukwahlukanisa entsha, ehlanganisa ngokuhlanganisa izingxenye x kanye y futhi zonke ezinye izingxenye. Ake n - nenani emaphethelweni. Zonke imiqondo lena ihlanganisiwe algorithm Kruskal sika. Ukuqala kokusetshenziswa:
Hlela konke imiphetho igrafu kusukela 1st n-th inyuka izinsimbi. (Ai, bi - i nenombolo onqenqemeni isihloko).
ngoba i = 1 kuya n do.
x: = Ingxenye (ai).
y: = Ingxenye (bi).
Uma x kungaqali y alinganayo ke Unite (x, y), ukufaka nge inombolo onqenqemeni F i.
ngokunemba
Ake T - Uhlaka igrafu yasekuqaleni esakhiwe usebenzisa Kruskal algorithm S - nensika yalo ngaphandle kokubonisana nomkayo. Sine ukufakazela ukuthi w (T) asisikhulu kunenkosi w (S).
Ake M - sebuningini amaphiko S, P - sebuningini amaphiko T. Uma S akulingani T ke kukhona et Uhlaka ubambo T, engekho nakunoma S. S. et adjoin umjikelezo, ibizwa ngokuthi C. C ukususa kusuka kunoma iyiphi es onqenqemeni, okuqondene S. Thina ukuthola Uhlaka olusha, ngoba emaphethelweni kanye vertices uyefana. Isisindo sayo asisikhulu kunenkosi w (S), njengoba w (et) ayisekho w (es) emandleni Kruskal algorithm. ngeke okuphindaphindiwe nje ukuthola T. Isisindo Uhlaka ngamunye okwalandela wathola ukuthi lo msebenzi (esikhundleni T S izimbambo ku izimbambo) asisikhulu kunenkosi isisindo odlule, okusho ukuthi w (T) asisikhulu kunenkosi w (S).
Ukuqina algorithm Kruskal kulandela kusukela theorem ka Rado-Edmonds ku matroids.
Isicelo Izibonelo Kruskal algorithm
Dan igrafu nge ISIZINDA a, b, c, d, e izimbambo (a, b), (a, e), (b, c), (b, e), (c, d), (c, e) , (d, e). Izisindo imiphetho ziboniswa etafuleni kanye figure. Ekuqaleni, ihlathi ukwakhiwa F iqukethe wonke vertices igrafu futhi ayinazo izimbambo. Algorithm Kruskal wengeze kuqala i onqenqemeni (a, e), njengoba isisindo kulencane yakhe, futhi vertices a e ku izingxenye ezahlukene exhunyiwe yehlathi F (onqenqemeni (a, e) oluhlaza), khona-ke onqenqemeni (c, d), ngoba ukuthi okungenani isisindo emaphethelweni igrafu imiphetho, engekho nakunoma F, futhi kuba oluhlaza ke ngezizathu ezifanayo ezicela onqenqemeni (a, b). Kodwa onqenqemeni (b, e) sidlulile, nakuba isisindo ubuncane emaphethelweni ezisele, ngoba ebomvu: vertices b e basonta ingxenye efanayo yehlathi lwenethiwekhi F, okungukuthi, uma sinezela F onqenqemeni (b, e) kwakhiwa, is umjikelezo. Khona-ke wanezela onqenqemeni oluhlaza (b, c), sidlulile onqenqemeni obomvu (c, e), bese d, e. ngokulandelana Ngakho, imiphetho kunezelwa (a, e), (c, d), (a, b), (b, c). Kusukela nihera Uhlaka elilungile futhi siqukethe igrafu yasekuqaleni. Ngakho kulesi simo esebenza algorithm Kruskal. Isibonelo siyakhonjiswa.
Lesi sibalo sikhombisa igrafu, esakhiwa izingxenye ezimbili axhunyiwe. Imigqa ngokugqamile ukhombise elilungile Uhlaka izimbambo (green) esakhiwe usebenzisa Kruskal algorithm.
Isithombe phezulu ubonisa igrafu yokuqala, futhi phansi - lwamathambo of inesisindo esincane, eyakhelwe kuye ngokusebenzisa algorithm.
Kulandzelana kwalokucuketfwe lokuhleliwe izimbambo wanezela (1.6); (0.3), (2,6) noma (2,6), (0.3) - ayibalulekile; (3,4); (0,1), (1.6) noma (1.6), (0.1), futhi anakekele (5,6).
algorithm Kruskal sika uthola isicelo olungokoqobo, ngokwesibonelo, ukuze nokwandisa ukuxhumana gasket, imigwaqo entsha yezindlu izigodi ezindaweni ezweni ngalinye, kanye nezinye izimo.
Similar articles
Trending Now