Albr d coprtur mnm
Sommro Albr d coprtur mnm pr grf pst Algortmo d Kruskl Algortmo d Prm
Albro d coprtur mnmo Un problm d notvol mportnz consst nl dtrmnr com ntrconnttr fr d loro dvrs lmnt mnmzzndo crt vncol sull connsson Un smpo clssco è qullo dll progttzon d crcut lttronc dov s vuol mnmzzr l qunttà d flo lttrco pr collgr fr loro morstt d dvrs componnt
Albro d coprtur mnmo Il problm può ssr modllto con un grfo non orntto connsso n cu l ntrconnsson sono rch pst (u,v) dov l pso spcfc l costo pr connttr u con v L soluzon dl problm consst nll dtrmnzon d un sottogrfo cclco T E ch conntt tutt vrtc n modo d mnmzzr l pso totl w(t)=σ (u,v) T w(u,v) Dto ch T è cclco collg tutt vrtc dv ssr un lbro Tl lbro è chmto lbro d coprtur mnmo o mnmum spnnng tr MST
Esmpo
Unctà L lbro d coprtur mnmo non è unco Ad smpo s possono dr du lbro d coprtur mnm pr l grfo n sm
Algortmo gnrco Vrrnno llustrt du lgortm d tpo grdy o golos: Algortmo d Kruskl Algortmo d Prm L pprocco grdy consst nllo scglr fr pù ltrntv qull pù convnnt sul momnto Not: n gnrl non è dtto ch n ogn tpo d problm qusto port d un soluzon globlmnt ottm. Pr l soluzon dl problm dll lbro d coprtur mnm un soluzon grdy concd con un soluzon globlmnt ottm
Arco scuro L d è d ccrscr un sottonsm A d rch d un lbro d coprtur ggungndo un rco ll volt Ad ogn psso s dtrmn un rco ch può ssr ggunto d A mntnndo l proprtà pr A d ssr un sottonsm d rch d un lbro d coprtur Un rco d qusto tpo è dtto rco scuro
Psudocodc Gnrc-MST(G,w) A whl A non form un lbro d coprtur 3 do trov un rco scuro (u,v) A A {(u,v)} 5 rturn A
Algortm concrt Pr potr mplmntr l lgortmo gnrco bbmo bsogno d dtrmnr gl rch scur Pr crttrzzr gl rch scur dobbmo ntrodurr lcun dfnzon: un tglo (S,V-S) d un grfo non orntto G=(V,E) è un prtzon d V un rco ttrvrs l tglo s uno d suo strm è n S l ltro è n V-S un tglo rsptt un nsm d rch A s nssun rco d A ttrvrs l tglo un rco lggro è un rco con pso mnmo
Vsulzzzon d conctt Arco lggro ch ttrvrs l tglo Tglo Insm A: rch n grgo l tglo rsptt A
Arch scur L rgol pr rconoscr gl rch scur è dt dl sgunt: Torm: S G=(V,E) un grfo non orntto connsso con un funzon pso w vlor rl dfnt su E. S A un sottonsm d E contnuto n un qulch lbro d coprtur mnmo pr G. S (S,V-S) un qulunqu tglo ch rsptt A. S (u,v) un rco lggro ch ttrvrs l tglo. Allor l rco (u,v) è scuro pr A
Vsulzzzon rco non scuro prché tglo non rsptt Arco scuro Arco non scuro
Vsulzzzon rco non scuro prché non lggro Arco non scuro Arco scuro
Arch scur Dmostrzon: s T l lbro d coprtur mnmo ch contn A l rco (u,v) o pprtn T, qund è scuro pr A oppur non pprtn T: n qusto cso frmo vdr ch sosttundo un rco (x,y)n T con l nuovo rco (u,v) ottnmo un T ch è smpr un lbro d coprtur mnmo, nftt: dv ssrc un ltro rco (x,y) d T ch ttrvrs l tglo prché T è un nsm connsso su tutt vrtc (un qulss tglo non rsptt T) qund dv ssrc un prcorso fr u v ch sono d prt oppost dl tglo noltr (x,y) non è n A prché l tglo rsptt A s costrusco T com T-(x,y)+(u,v) ho crto un nsm connsso con costo complssvo d T ch copr tutt vrtc ch h costo mnmo qund dv ssr un lbro d coprtur mnmo n prtc (u,v) dv ssr un rco con costo quvlnt (x,y)
Arch scur cos' bbmo ftto vdr ch (u,v) ' scuro pr un sottonsm d T', m no voglmo fr vdr ch (u,v) ' scuro pr A n T non n T', m... s T è un lbro d coprtur mnmo llor dto ch A è comprso n T ch (x,y) non r n A llor A è nch comprso n T nftt l unco cmbmnto d T n T è stto solo pr l rco (x,y) (u,v) ch non sono n A, gl ltr rch sono rmst nltrt d consgunz ggungr (u,v) d A mntn A un sottonsm dll lbro d coprtur (T qust volt) dunqu è un rco scuro pr A
Arch scur Corollro: S G=(V,E) un grfo non orntto connsso con un funzon pso w vlor rl dfnt su E. S A un sottonsm d E contnuto n un lbro d coprtur mnmo pr G S C un componnt connss (un lbro) nll forst G A =(V,A) S (u,v) è un rco lggro ch conntt C qulch ltr componnt n G A llor (u,v) è scuro pr A Dmostrzon: l tglo (C,V-C) rsptt A: qund l rco lggro (u,v) è un rco scuro pr A pr l torm prcdnt
Algortmo d Kruskl L d dll lgortmo d Kruskl è d ngrndr sottonsm dsgunt dll lbro d coprtur mnmo connttndol fr d loro fno d vr l lbro complssvo In prtcolr s ndvdu un rco scuro d ggungr ll forst scglndo un rco (u,v) d pso mnmo tr tutt gl rch ch connttono du dstnt lbr (componnt connss) dll forst L lgortmo è grdy prché d ogn psso s ggung ll forst un rco con l pso mnor possbl
Algortmo d Kruskl L d è ch, com rchsto dll lgortmo strtto: ogn componnt connss n A pprtn ll lbro d coprtur unndo componnt connss trmt rch lggr (pr l corollro) s stnno ggungndo rch scur d ogn fuson d componnt connss stmo spndndo A s può contnur fno qundo non s sono cqust tutt vrtc dl grfo
Implmntzon L lgortmo prsntto è sml qullo usto pr clcolr l componnt connss S us un struttur dt pr nsm dsgunt Ogn nsm contn vrtc d un lbro dll forst corrnt S può dtrmnr s du vrtc pprtngono llo stsso lbro vrfcndo l'guglnz dgl lmnt rpprsntnt rsttut d Fnd-St S fondono du lbr trmt l Unon
Psudocodc Kruskl MST-Kruskl(G,w) A for ll v n V[G] 3 do Mk-St(v) ordn gl rch d E pr pso w non dcrscnt 5 for ll (u,v) n E n ordn d pso non dcrscnt do f Fnd-St(u) Fnd-St(v) thn A A {(u,v)} Unon(u,v) rturn A
Spgzon dllo psudocodc L ln -3 nzlzzno l nsm A con l nsm vuoto crno V lbr, uno pr ogn vrtc l ln ordn gl rch pr pso nll ln 5- l cclo for controll ch vrtc d ogn rco pprtngno d lbr dvrs n cso ffrmtvo l rco vn ggunto d A l ln fond du lbr n un unco nsm Not: s vrtc pprtnssro llo stsso lbro collghrmmo du vrtc d un lbro ottnndo un cclo, fcndo vnr mno l condzon d cclctà dl sottogrfo d rcoprmnto
Vsulzzzon
Vsulzzzon
Vsulzzzon
Vsulzzzon
Anls Il tmpo d scuzon pr l lgortmo d Kruskl dpnd dll rlzzzon dll struttur dt pr nsm dsgunt S s utlzz l rlzzzon con forst con l urstch dl rngo dll comprsson d cmmn: l nzlzzzon rchd O(V) l tmpo ncssro pr ordnr gl rch è O(E lg E) n totl s fnno O(E) oprzon sull forst d nsm dsgunt (O(E) fnd-st O(E) unon), ovvro complssvmnt un tmpo O(E) In totl l tmpo d scuzon dll lgortmo d Kruskl è O(V+E lg E + E)=O(E lg E)
Algortmo d Prm L lgortmo d Prm procd mntnndo n A un sngolo lbro (un sngol componnt connss) L lbro prt d un vrtc rbtrro r (l rdc) crsc fno qundo non rcopr tutt vrtc Ad ogn psso vn ggunto un rco lggro ch collg un vrtc n A con un vrtc n V-A Pr l corollro qust rch sono scur pr A qund qundo l lgortmo trmn, n A v è un lbro d coprtur mnmo Anch qusto lgortmo è grdy poché l lbro vn stso d ogn psso scglndo l rco d pso mnmo tr qull possbl
Algortmo d Prm In qusto cso A h un unc componnt connss ch è l ntro lbro d coprtur ch st crscndo Il tglo (A, V-A) rsptt A.. qund pr l corollro qulss rco lggro ch ttrvrs l tglo è un rco scuro
Algortmo d Prm Pr vr un lgortmo ffcnt s dv prstr ttnzon com rndr fcl l sclt d un nuovo rco d ggungr d A Qusto vn ftto mmorzzndo tutt vrtc ch non sono nll lbro n costruzon n un cod con prortà Q Pr ogn nodo l prortà è bst su un cmpo ky[v] ch contn l mnmo tr ps dgl rch ch collgno v d un qulunqu vrtc dll lbro n costruzon Pr ogn nodo s ntroduc un cmpo prnt p[x] ch srv pr potr rcostrur l lbro
Algortmo d Prm L nsm A è mntnuto mplctmnt com A={(v,p[v]) : v n V - {r} - Q} Qundo l lgortmo trmn Q è vuot l lbro d coprtur n A è dunqu: A={(v,p[v]) : v n V - {r}}
Psudocodc Prm MST-Prm(G,w,r) Q V[G] for ll u n Q 3 do ky[u] ky[r] 0 5 p[r] NIL whl Q do u Extrct-Mn(Q) for ll v n Adj[u] do f v n Q nd w(u,v)<ky[v] thn p[v] u ky[v] w(u,v)
Spgzon psudocodc L ln - nzlzzno l cod Q con tutt vrtc pongono l ttrbuto ky pr ogn vrtc d cczon dl vrtc r pr l qul ky[r]=0 n modo d strrr r com lmnto mnmo nll fs nzl durnt l'lgortmo A ' mplctmnt costtuto dgl rch (v,p[v]) con v nll nsm V-Q, co' l'lbro d coprtur n costruzon h vrtc n V-Q l ln dntfc un vrtc u ncdnt su d un rco lggro ch ttrvrs l tglo (V-Q,Q) s lmn u d Q lo s ggung vrtc dll lbro
Spgzon psudocodc L ln - ggornno cmp ky p d ogn vrtc v dcnt u ch non pprtn ncor ll lbro durnt l'scuzon dll'lgortmo l cmpo ky[v] rpprsnt smpr l costo mnmo tr ps dgl rch ch collgno v d un qulunqu vrtc dll lbro n costruzon qust proprt' è prsrvt prché s s trov un rco ch collg v con l lbro d costo nfror, s ggorn ky l nuovo vlor mnmo durnt l'scuzon dll'lgortmo s ggorn l vlor ky d nod dcnt l nodo sotto sm ch vrrà nsrto nll lbro d coprtur
Spgzon dllo psudocodc Al cclo succssvo s smnrà l cod Q s trovrà ch uno d v smnt prcdntmnt è dmnuto tnto d ssr l vrtc con chv pù pccol llor s ggungrà mplctmnt v ll lbro, fssndo l rlzon pdr-fglo mglor trovt s procdrà d spndr l frontr d vrtc dcnt v, stblndo nuov potnzl rlzon pdr-fglo
Vsulzzzon ky= ky= ky= ky= ky= ky= ky= ky= ky= ky= ky= ky=
Vsulzzzon ky= ky= ky= ky= ky= ky= ky= ky= ky= ky=
Vsulzzzon
Anls L ffcnz dll lgortmo d Prm dpnd d com vn rlzzt l cod con prortà Q s Q vn rlzzt con uno hp bnro: s us Buld-Hp pr l nzlzzzon n tmpo O(V) l cclo ll ln vn sguto V volt d ogn oprzon Extrct-Mn è O(lg V) pr un totl d O(V lg V) l cclo ll ln vn sguto n tutto O(E) volt prch' l somm dll lunghzz d tutt l lst d dcnz ' E l controllo d pprtnnz ll ln può ssr sguto n O() usndo un mtodo d ndrzzmnto drtto l ssgnzon ll ln mplc un oprzon d Dcrs-Ky mplct sullo hp ch cost O(lg V) Il tmpo totl è prtnto un O(V+V lg V + E lg V) = O(E lg V) sntotcmnt gul qullo pr l lgortmo d Kruskl