Computers, Programming
Kruskal lub algorithm - qhov kev siv ntawm ib qho kev pom moj khaum
Nyob rau hauv thaum ntxov 19th caug xyoo geometer Jakob Steiner los ntawm Berlin teev cov neeg ua hauj lwm ntawm yuav ua li cas mus cuag peb lub zos thiaj li hais tias lawv ntev yog tus shortest. Tom qab ntawd, nws sau ua ke qhov teeb meem: nws yuav tsum tau mus nrhiav ib tug taw tes nyob rau hauv ib tug dav hlau, qhov kev ncua deb ntawm nws mus rau lwm yam ntsiab lus n yog cov qis tshaj. Nyob rau hauv lub xyoo pua 20th, nws tseem mus ua hauj lwm nyob rau hauv no lub npe. Nws tau txiav txim siab mus coj ib tug ob peb cov ntsiab lus thiab txuas rau lawv kom qhov kev ncua deb nruab nrab ntawm lawv yog cov shortest. Qhov no tag nrho yog ib tug tshwj xeeb cov ntaub ntawv ntawm qhov teeb meem raug kawm.
"Siab hlob" algorithm
Kruskal lub algorithm hais txog lub "siab hlob" algorithm (kuj hu ua gradient). Lub essence ntawm cov neeg - lub siab tshaj plaws yeej nyob rau txhua kauj ruam. Tsis yeej ib txwm, "siab hlob" algorithms muab qhov zoo tshaj plaws tshuaj rau qhov teeb meem. Muaj yog ib tug kev tshawb xav, uas qhia tias nyob rau hauv lawv daim ntawv thov mus kev pab raws qib lawv muab lub zoo tshuaj. Qhov no yog lub hom phiaj ntawm matroids. Kruskal lub algorithm hais txog tej teeb meem.
Nrhiav ib tug tsawg kawg nkaus cev hnyav
Saib algorithm constructs ib qho kev pom ncej suav. Qhov teeb meem ntawm nws yog raws li nram no. Dan undirected teeb tsis muaj thaum uas tig mus npoo thiab loops, thiab lub teeb ntawm npoo yog muab tus luj muaj nuj nqi w, uas assigns lub xov tooj mus rau txhua ntug e - ceeb thawj tav - w (e). Tus luj ntawm txhua subset ntawm lub plurality ntawm tav yog lub sum ntawm cov tes taw hnyav li ntawm cov npoo. Yuav tsum tau mus nrhiav lub cev pob txha ntawm ib tug me me ceeb thawj.
piav qhia
Kruskal lub algorithm ua hauj lwm. Ua ntej, tag nrho cov npoo ntawm cov thawj teeb cov txheej txheem ntawm nyob rau hauv ascending kev txiav txim ntawm rau tes taw hnyav. Chiv, tus ncej tsis muaj tav tab sis muaj xws li tag nrho cov vertices. Tom qab lub kauj ruam tom ntej ntawm lub algorithm mus rau lub twb lub tsev yog ib feem ntawm lub cev, uas yog ib tug ib tsob hav zoov, ib tug ntug ntxiv. Nws yog tsis tau xaiv arbitrarily. Tag nrho cov npoo ntawm lub teeb, tsis teej tug mus rau tus ncej, yuav hu ua liab thiab ntsuab. Lub sab saum toj ntawm txhua liab sawv yog nyob rau hauv tib tivthaiv nyob rau hauv kev tsim kho hav zoov connectivity, thiab ntsuab saum - sib txawv. Yog li ntawd, yog koj ntxiv mus rau lub liab ntug, muaj ib lub voj voog, thiab yog hais tias tus ntsuab - raws li tau txais tom qab cov kauj ruam no cov ntoo kev cob cog rua lub Cheebtsam yuav tsum tsawg tshaj li ib tug. Yog li, lub resulting siv tsis tau ntxiv tsis muaj liab ntug, tab sis tej ntsuab ntug yuav muab ntxiv rau tau lub hav zoov. Thiab ntxiv ib tug ntsuab ntug nrog yam tsawg kawg nkaus ceeb thawj. Cov no ib tug lub moj khaum ntawm yam tsawg kawg nkaus ceeb thawj.
siv
Txhais lub tam sim no lub hav zoov F. Nws faib lub teeb ntawm vertices nyob rau hauv lub teb ntawm connectivity (lawv union ntaub ntawv F, thiab lawv yog disjoint). Thaum ob leeg sawv ntawm lub liab lub vertices lawv pw nyob rau hauv ib tug piece. Part (x) - lub muaj nuj nqi hais tias txhua txhua kab los sib ntsib x rov ib feem ntawm lub npe, nws yog x. Unite (x, y) - ib txoj kev uas ua ib tug tshiab muab faib, muaj raws ntawm combining qhov chaw ntawm x thiab y thiab tag nrho rau lwm qhov chaw. Cia n - tus naj npawb ntawm npoo. Tag nrho cov ntsiab lus muaj nyob rau hauv Kruskal lub algorithm. Yuav ua raws li:
Tsi tag nrho cov npoo ntawm lub teeb los ntawm lub 1 rau n-th ascending teev. (Ai, lis - kuv nrog apex ntug tooj).
rau kuv = 1 mus rau n ua li cas.
x: = Part (ai).
y: = Part (lis).
Yog hais tias x tsis sib npaug zos y ces Unite (x, y), kom muaj nrog rau cov ntug F kuv tus xov tooj.
correctness
Cia T - thav duab ntawm lub thawj teeb lub tsev siv cov Kruskal algorithm thiab S - nws arbitrary ncej. Peb yuav tsum ua pov thawj tias w (T) yog tsis ntau tshaj li w (S).
Cia M - plurality ntawm fins S, P - ib tug plurality ntawm fins T. Yog hais tias S yog tsis sib npaug zos rau T, ces muaj yog ib tug ncej tav thiab T, tsis teej tug mus rau S. S. thiab adjoin lub voj voog, nws yog hu ua C. C tshem tawm los ntawm tej ntug es, teej tug S. Peb nrhiav tau ib tug tshiab ncej, vim hais tias cov npoo thiab vertices yog tib yam. Nws luj yog tsis ntau tshaj li w (S), txij thaum w (et) tsis w (es) nyob rau hauv ib lub hwj chim Kruskal algorithm. Qhov no lub lag luam (hloov tav S ntawm cov npoo ntawm T) yuav tau rov qab kom ntev li ntev raws li peb tau T. Cov luj ntawm txhua tom ntej tau txais ncej yog tsis muaj ntev yav dhau los luj, uas implies hais tias ntawm w (T) yog tsis ntau tshaj li w (S).
Lub robustness ntawm Kruskal lub algorithm li nram no los ntawm lub theorem ntawm Rado-Edmonds rau matroids.
Daim ntawv thov piv txwv Kruskal algorithm
Dan teeb nrog ntshav ib tug, b, c, d, e thiab tav (a, b), (a, e), (b, c), (b, e), (c, d), (c, e) , (d, e). Cov tes taw hnyav li ntawm npoo yog qhia nyob rau hauv lub rooj thiab nyob rau hauv daim duab. Chiv, siv hav zoov F muaj tag nrho cov vertices ntawm lub teeb thiab tsis muaj ib yam ribs. Algorithm Kruskal thawj ntxiv tav (a, e), txij thaum tus luj tau tus nqi qis tshaj, thiab lub vertices ib tug thiab e yog nyob rau hauv txawv Cheebtsam ntoo connectivity F (tav (a, e) yog ntsuab), ces tus tav (c, d), vim hais tias uas nyob rau ntawm tsawg kawg yog qhov no ntug luj ntawm teeb npoo, tsis teej tug mus rau F, thiab nws yog ntsuab, ces rau tib yog vim li cas ntxiv ntug (a, b). Tab sis lub ntug (b, e) yog dhau, txawm yog nws thiab qhov tsawg kawg nkaus luj ntawm lub seem sawv, vim hais tias nws yog liab: lub vertices b thiab e yuav mus rau tib lub feem ntawm lub hav zoov connectivity F, uas yog, yog hais tias peb ntxiv rau F ntawm ntug (b, e), yog tsim voj voog. Ces ntxiv ntsuab ntug (b, c), yog dhau liab ntug (c, e), thiab ces d, e. Yog li, npoo yog ntxiv sequentially (a, e), (c, d), (a, b), (b, c). Los ntawm nihera pom ncej thiab muaj tus thawj teeb. Yog li ntawd nyob rau hauv cov ntaub ntawv no nws ua hauj lwm ib tug algorithm Kruskal. Ib qho piv txwv yog muaj.
Tus naj npawb qhia tau hais tias ib lub teeb, uas muaj ob kev cob cog rua lub Cheebtsam. Lub bold kab qhia seb pom ncej tav (ntsuab) ua lub tsev siv cov Kruskal algorithm.
Lub sab saum toj daim duab qhia tau hais tias tus thawj teeb, thiab hauv qab - ib tug pob txha ntawm tsawg heev luj, ua rau nws los ntawm kev siv lub algorithm.
Cov kab sab ntawm tas li ntawd ntawm tav (1.6); (0,3), (2,6) los yog (2,6), (0,3) - yog tsis tseem ceeb; (3,4); (0,1), (1,6) los yog (1,6), (0,1), kuj tu (5,6).
Kraskala algorithm pom ua daim ntawv thov, piv txwv li, rau optimize cov gasket kev sib txuas lus, txoj kev nyob rau hauv vaj tse tshiab Estates localities nyob rau hauv txhua lub teb chaws, raws li tau zoo raws li nyob rau hauv lwm tus neeg mob.
Similar articles
Trending Now