Δένδρα επικάλυψης ελάχιστου κόστους Αλγόριθμος Kruskal
Αλγόριθμος Kruskal Ξεκινάμε από ένα δάσος από n δένδρα, κάθε ένα δένδρο εκφυλισμένο σε ένα μεμονωμένο κόμβο. Σε κάθε επανάληψη, προσθέτουμε τη πλευρά με το μικρότερο κόστος και η οποία δεν δημιουργεί κύκλο με τις ήδη επιλεγμένες πλευρές. Σταματάμε όταν έχουμε ένα δένδροδ επικάλυψης (γράφος συνεκτικός) ή όταν δεν ευρίσκουμε πλέον πλευρά να προσθέσουμε (ο γράφος δεν είναι συνεκτικός)
Αλγόριθμος Kruskal - Παράδειγμα Δ ια& τ αξη π λευρω& ν κατα& α & υ ξουσα τ & α ξη 3, : κοστος &, : κ & ο σ τος 3, : κοστος & 3 3, : κοστος & 3, : κοστος & 3, : κοστος & 3, : κ & ο σ τος, : κοστος & 3, : κ & ο σ τος, : κοστος &
Αριθμός συνιστωσών n = αριθμός μεμονομένων κόμβων Δ ι & α τ αξη π λευρω& ν κατα& αυξουσα & ταξη &, 3 : κ & ο σ τος, : κοστος &, : κ & ο στος 3 3 3, : κοστος &, : κοστος & 3, : κ & ο σ τος, 3, : κοστος & : κ & ο στος 3, : κοστος &, : κοστος &
Αλγόριθμος Kruskal: βήμα Διαταξη & πλευρων & κατα& αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος & 3, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος &
Αλγόριθμος Kruskal: βήμα Διαταξη & πλευρων & κατα& αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος &
Αλγόριθμος Kruskal: βήμα 3 Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal: βήμα Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal: βήμα Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal: βήμα Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal: βήμα 7 Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3 δέντρο επικάλυψης: τέλος
Αλγόριθμος Kruskal: βήμα 8 Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal: βήμα 9 Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal: βήμα 0 Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal: βήμα 0 Διαταξη & πλευρων & κατα & αυξουσα & ταξη & 3, : κοστος &, : κοστος &, : κοστος & 3 3, : κοστος &, : κοστος & 3, : κοστος & 3, : κοστος &, : κοστος & 3, : κοστος &, : κοστος & 3
Αλγόριθμος Kruskal T while ( T < n-) and (E ) do e smallest edge in E; E E - {e}; if (T {e} has no cycle) then T T {e} if ( T < n-) then write network disconnected ; (****) Πολυπλκότητα: O(mlogn) Πολυπλκότητα: O(mlogn) Εξακρίβωση σχηματισμού κύκλου σε O(logn)
Αλγόριθμος Kruskal - Δάσος Επικάλυψης Αν ο γράφος είναι μη συνεκτικός, γιαναβρούμε ένα δάσος επικάλυψης με τον αλγόριθμο λό Pi Prim θα πρέπει να επαναλάβουμε τον αλγόριθμο σε κάθε συνεκτική συνιστώσα Ο λό θ K k l ί θί έ Ο αλγόριθμος Kruskal ευρίσκει απ ευθείας ένα δάσος επικάλυψης ελάχιστου κόστους.
Αλγόριθμος Kruskal - Πολυπλοκότητα Ταξινόμηση πλευρών: Ο(m logn) (m αριθμός πλευρών) Εξακρίβωση σχηματισμού κύκλου: Ο(logn) Επαναλήψεις: m Ο(mlogn) + Ο(mlogn) =Ο(mlogn) δεδομένου ότι m < n
Σύγκριση των αλγορίθμων ( ) Prim : O n Kruskal = O( mlogn) πυκνοι& m = O ( n ) ( ) ( ) Prim O n < O n logn Αραιοι& m = O ( n) O ( ) O ( ) n > nlogn Kruskal
Θεώρημα βέλτιστου για το ΔΕΕΚ G = ( V, E) ) G συνεκτικός Έστω F= F,F,...F με F = V,E ένα δάσος του γράφου και u, v [ ] ένα άκρο στο V ( ) ( ) k i i i η πλευρά με το ελάχιστο κόστος έχουσα Τότε, ανάμεσα σε όλα τα δένδρα επικάλυψης που περιέχουν αυτό το δάσος, υπάρχει ένα, το καλύτερο το οποίο περιέχει αυτή την πλευρά.
Θεώρημα βέλτιστου για το ΔΕΕΚ - Απόδειξη k U U i= ` Ε στω T = E οι πλευρε& ς του δ & α σους F. i y F 3 x u v F F
Θεώρημα βέλτιστου για το ΔΕΕΚ - Απόδειξη k U U i= ` Ε στω T = E οι πλευρε& ς του δ & α σους F. i y F 3 x u v F F
Θεώρημα βέλτιστου για το ΔΕΕΚ - Απόδειξη y F 3 x u v F F Ai δέντρο επικάλυψης που περιέχει το Τ Α δέντρο επικάλυψης περιέχον το Τ αλλά όχι τη πλευρά [u,v], με Κ(Α) < Κ(Ai )
Θεώρημα βέλτιστου για το ΔΕΕΚ - Απόδειξη y F 3 x u v F F Πρόσθεση της πλευράς [u, v] δημιουργεί κύκλο και υπάρχει [x, y] με x V και y V\V. W > W [ uv, ] T. x y u v
Θεώρημα βέλτιστου για το ΔΕΕΚ - Απόδειξη y F 3 x u v F F ( [ uv ] [ xy ] ) A= V,E U, \, W > W xy uv Κ & οστος <Κ ' ( ) ( ) ( ) K A K A K A i ( A ) & οστος ( A ) αδύνατο