0.0.009 Kap. 6.: Mnmal Spannäum Ürlk Proor Dr. Kartn Kln 6.: Mnmal Spannäum (MST) : Lrtul ür Alortm Ennrn, LS Fakultät ür Inormatk, TU Dortmun 0. VO. TEIL DAP SS 009. Jul 009 SS08 Grunn MST: Kürzt W n Grapn (. nät Vorlun): Alortmu von Djktra B nutzn änl Konzpt: Gry (r, räß) Prorty Quu pätr mr azu Lan nzlnn Baum wan art au MST Enat: MST Enat art au: Autr Mn T von Kantn: E xtrt n MST, r all Kantn von T ntält. MST Enat Lmma (Wrolun): S G=(V,E) z. mt Gwtunkton w : E R. Sn: S V T E autr un kn Kant au T vrlät S E Kant mt mnmalm Gwt, S vrlät Dann t T {} autr. 3
0.0.009 PRIM Alortmu: la Baum von au wan MST mt Enat MST Enat Kantnmn T, autr Kant vrläßt S mt mn. Gwt Vl. mt Krukal: Krukal läßt Wal wan mt Unon-Fn Spannaum rzut Prm läßt von Startknotn nn nzlnn Baum wan MST n nt nut!! Knotnmn S Dann: T autr 6 I: Vrwalt Mn S von Knotn n Untraum,aun von, T lr Wäl llt S vrlan Kant =(u,v), v S, T (Lmma ) T autr Stop, all S=V T lt MST Sma: Wäl Startknotn V S := {}; T := ø // S Untraumknotn, T Kantn wl S V o { Wäl = (u, v), vrläßt S mt mn. Gwt T := T {}: S:= S {v} } 8 Korrktt Prm Inukton ür Kantn,, k, zu T nzuüt wrn: Z: T = {,, } autr ür 0 k = 0: T 0 = ø autr k: T - autr, S Knotnmn vor Hnzunam von, kn Kant au T - vrläßt S ltt S vrlan Kant Mt Lmma : T = T - { } autr Un: Kn Kant au T vrläßt nu S Am En at T nau V - Kantn MST 9 0 Knotnmn S, Kantnmn T: In Tlaum T 8 9 0
0.0.009 0 8 0 8 Knotnmn S, Kantnmn T: In Tlaum T Knotnmn S, Kantnmn T: In Tlaum T 0 8 0 8 Knotnmn S, Kantnmn T: In Tlaum T Knotnmn S, Kantnmn T: In Tlaum T 3 0 8 0 8 Knotnmn S, Kantnmn T: In Tlaum T Knotnmn S, Kantnmn T: In Tlaum T 6 3
0.0.009 0 8 0 8 Knotnmn S, Kantnmn T: In Tlaum T Knotnmn S, Kantnmn T: In Tlaum T 8 Sma: 9 0 8 Wäl Startknotn V S := {}; T := ø // S Untraumknotn, T Kantn wl S V o { Wäl = (u, v), vrläßt S mt mn. Gwt T := T {}: S:= S {v} } Knotnmn S, Kantnmn T: In Tlaum T Eznt Ralrun? 9 30 Ralrun von Prm Ttn au Kr (Unon-Fn Partton) w Krukal nt nöt Kn Sortrn nöt Auwal lttr Kant nöt Prorty Quu Wr prn nt Kantn lt, onrn Knotn v V \ S. Prortät t a Gwt r Kant von S na v Dazu: ADT Prorty Quu Dyn. Vrwaltun von Elmntmn mt Prortätn Opratonn: INSERT(p, v) : Poton // Knotn v, Prortät p DELETE(po) MINIMUM() : Poton EXTRACTMIN() : P x V //Rük: mn-knotn un pro DECREASEPRIORITY(po, p) // nu Prortät p Bkannt: Bnary (Mn-)Hap n Array 3 3
0.0.009 Puo-Co: Intalrun G=(V, E), loat w[e] // Grap un Gwt () var π[v], PrortyQuu Q, po[v] // π: Voränr n MST // po: Poton n Q () or a u V \ {} o { (3) po[u] := Q.INSERT(, u) () } () po[] := Q.INSERT(0, ) (6) π[] := nl Puo-Co Prm () wl not Q.ISEMPTY() o // ür all Knotn (8) (p, u) := Q.EXTRACTMIN() (9) po[u] := nl // wältn Knotn ntrnn (0) or all = (u,v) E(u) o { // aun Kantn () po[v] nl an // vrlät S? () w() < Q.PRIORITY(po[v]) tn { // üntr? (3) Q.DECREASEPRIORITY(po[v], w()) () π[v] := u () } } } 33 3 Analy Auau Hap ür PQ: n Θ( V ) V Durläu r wl-sl mt EXTRACTMIN O( V lo V ) Durläu r orall-sl ür j Kant max. E Auru von DECREASEPRIORITY O( E lo V ) Gamtlauzt O( E lo V ), a E V - Warum kann Gry- Vrarn unktonrn? MST tt au Tläumn, nall MST n Lokal t Entun (ltt Kant) ürt zu MST nät VO: kürzt W Alortmn 3 36