Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Σχετικά έγγραφα
Αλγόριθμοι ελαχιστοποίησης κατανάλωσης ενέργειας σε ασύρματα αδόμητα δίκτυα

Αλγόριθμοι ελαχιστοποίησης κατανάλωσης ενέργειας σε ασύρματα αδόμητα δίκτυα

Αλγόριθμοι ελαχιστοποίησης κατανάλωσης ενέργειας σε ασύρματα αδόμητα δίκτυα

Ειδικά θέματα σε κινητά και ασύρματα δίκτυα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Δένδρα. συνεκτικό μη κατευθυνόμενο γράφημα που δεν περιέχει απλά κυκλώματα

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Πρόβλημα του ελάχιστα εκτεταμένου δένδρου - Minimum spanning tree. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό έντρο

Στοιχεία Θεωρίας Γράφων (Graph Theory)

Θεωρία Γραφημάτων 5η Διάλεξη

Ελάχιστο Συνδετικό έντρο

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

Αλγόριθµοι και Πολυπλοκότητα

u v 4 w G 2 G 1 u v w x y z 4

Αλγόριθμοι και Πολυπλοκότητα

Επιχειρησιακή Έρευνα I

Αλγόριθµοι και Πολυπλοκότητα

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

Κατανεμημένα Συστήματα Ι

Αλγόριθμοι Γραφημάτων

Αναζήτηση Κατά Πλάτος

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Θεωρία Γραφημάτων 5η Διάλεξη

Δένδρα. συνεκτικό μη κατευθυνόμενο γράφημα που δεν περιέχει απλά κυκλώματα

Δένδρα επικάλ επικ υψης ελάχιστου στους

Αναζήτηση Κατά Πλάτος

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

Αλγόριθμοι για Ασύρματα Δίκτυα. Θεωρία Γραφημάτων

Ελάχιστα Γεννητορικά ένδρα

Αναζήτηση Κατά Πλάτος

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αναζήτηση Κατά Πλάτος

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Αλγόριθµοι και Πολυπλοκότητα

e 2 S F = [V (H), V (H)]. 3-1 e 1 e 3

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Θεωρία Γραφημάτων 6η Διάλεξη

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Φεβρουάριος 2017

Δομές Δεδομένων και Αλγόριθμοι

Τίτλος Μαθήματος: Θεωρία Γραφημάτων. Ενότητα: Συνεκτικότητα και Δισυνεκτικότητα. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

Αλγόριθμοι και Πολυπλοκότητα

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγόριθμους

ΔΕΝΔΡΙΚΑ ΓΡΑΦΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 3

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

Διδάσκων: Παναγιώτης Ανδρέου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Σεπτέμβριος 2017

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Συνεκτικότητα Γραφήματος

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Γράφοι: κατευθυνόμενοι και μη

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

12/1/2006 Διακριτά Μαθηματικά. Ορισμός. Υπό γράφημα Τ γραφήματος Γ καλείται συνδετικό (ή επικαλύπτον)

Μαθηματικά Πληροφορικής

Θεωρία Γραφημάτων 11η Διάλεξη

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Διάλεξη 3: Σχήμα 3.3: Το σύνολο των κόκκινων ακμών είναι ακμοδιαχωριστής αλλά όχι τομή. Το σύνολο ακμών {1, 2, 3} είναι τομή. Από

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

d(v) = 3 S. q(g \ S) S

Θεωρία Γραφημάτων 4η Διάλεξη

Κατανεμημένα Συστήματα Ι

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

jτο πλήθος των ταξιδιών που κάνει η αεροσυνοδός µέχρι την j ηµέρα. Σχηµατίζω µία ακολουθία που αποτελείται από τα a.

Transcript:

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Γεννητικό δέντρο (Spanning Tree) Ένα γεννητικό δέντρο για ένα γράφημα G είναι ένα υπογράφημα του G που είναι δέντρο (δηλ., είναι συνεκτικό και δεν περιέχει κύκλους) και περιέχει όλες τις κορυφές του G Ένα γεννητικό δέντρο για κάθε γράφημα G με n κορυφές έχει n-1 ακμές G

Γεννητικό δέντρο (Spanning Tree) Ένα γεννητικό δέντρο για ένα γράφημα G είναι ένα υπογράφημα του G που είναι δέντρο (δηλ., είναι συνεκτικό και δεν περιέχει κύκλους) και περιέχει όλες τις κορυφές του G Ένα γεννητικό δέντρο για κάθε γράφημα G με n κορυφές έχει n-1 ακμές G

Γεννητικό δέντρο (Spanning Tree) Ένα γεννητικό δέντρο για ένα γράφημα G είναι ένα υπογράφημα του G που είναι δέντρο (δηλ., είναι συνεκτικό και δεν περιέχει κύκλους) και περιέχει όλες τις κορυφές του G Ένα γεννητικό δέντρο για κάθε γράφημα G με n κορυφές έχει n-1 ακμές G X

Ελάχιστο γεννητικό δέντρο (Minimum Spanning Tree) Ένα ελάχιστο γεννητικό δέντρο για ένα γράφημα G με βάρη στις ακμές είναι ένα υπογράφημα του G που είναι δέντρο (δηλ., είναι συνεκτικό και δεν περιέχει κύκλους), περιέχει όλες τις κορυφές του G και έχει ελάχιστο βάρος E G Α 2 6 6 8 4 Β 1 D 8 9 C 5

Ελάχιστο γεννητικό δέντρο (Minimum Spanning Tree) E Ένα ελάχιστο γεννητικό δέντρο για ένα γράφημα G με βάρη στις ακμές είναι ένα υπογράφημα του G που είναι δέντρο (δηλ., είναι συνεκτικό και δεν περιέχει κύκλους), περιέχει όλες τις κορυφές του G και έχει ελάχιστο βάρος G Α 2 6 8 6 4 Β E W=26 Α 8 6 Β E 2 W=22 Α 6 Β 7 D 8 9 C 5 7 5 D C D 9 C 5

Ελάχιστο γεννητικό δέντρο (Minimum Spanning Tree) Ένα ελάχιστο γεννητικό δέντρο για ένα γράφημα G με βάρη στις ακμές είναι ένα υπογράφημα του G που είναι δέντρο (δηλ., είναι συνεκτικό και δεν περιέχει κύκλους), περιέχει όλες τις κορυφές του G και έχει ελάχιστο βάρος E 7 G Α 2 6 6 8 4 8 D C 9 5 Β E D 8 W=24 Α 4 7 5 C Β Για να βρούμε το MST πρέπει να βρούμε κάθε πιθανό ST και να διαλέξουμε αυτό με το μικρότερο βάρος???

Το πρόβλημα εύρεσης ελάχιστου γεννητικού δένδρου MST: Minimum Spanning Tree Δεδομένα: Συνεκτικό, μη κατευθυνόμενο γράφημα, με βάρη στις ακμές Ζητούμενο: Υπογράφημα χωρίς κύκλους (δηλ., δέντρο) που συνδέει όλες τις κορυφές (= γεννητικό) και έχει ελάχιστο βάρος Βάρος υπογραφήματος = άθροισμα βαρών των ακμών του Ένα γράφημα μπορεί να έχει πολλά γεννητικά δέντρα που το καθένα έχει διαφορετικό βάρος Ένα ελάχιστο γεννητικό δέντρο ενός γραφήματος έχει μικρότερο βάρος από κάθε άλλο γεννητικό δέντρο για το γράφημα αυτό

Το πρόβλημα εύρεσης ελάχιστου γεννητικού δένδρου

Το πρόβλημα εύρεσης ελάχιστου γεννητικού δένδρου

Αλγόριθμοι εύρεσης MST: πρακτικό ενδιαφέρον Σενάριο 1: Οι κορυφές αντιστοιχούν σε περιοχές σε αρχαιολογικό χώρο και τα βάρη σε αποστάσεις Ζητούμενο: να περάσουν οι επισκέπτες από όλες τις περιοχές περπατώντας όσο το δυνατόν λιγότερο

Αλγόριθμοι εύρεσης MST: πρακτικό ενδιαφέρον Σενάριο 2: Οι κορυφές αντιστοιχούν σε αισθητήρες που συλλέγουν πληροφορίες σε κάποιο χώρο και τα βάρη στην ακτίνα εκπομπής τους Ζητούμενο: να κρατήσω ενεργοποιημένους κάποιους από τους αισθητήρες ώστε να υπάρχει συνεκτικότητα στο WSN και να ελαχιστοποιείται η συνολική ενέργεια που καταναλώνεται

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο T (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές ΑΕ=2 EC=4 AC=4 BC=5 AB=6 BE=6 DE=7 AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές ΑΕ=2 (1) EC=4 AC=4 BC=5 AB=6 BE=6 DE=7 AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές ΑΕ=2 (1) EC=4 (2) AC=4 BC=5 AB=6 BE=6 DE=7 AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές ΑΕ=2 (1) EC=4 (2) AC=4 (κύκλος) BC=5 AB=6 BE=6 DE=7 AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές ΑΕ=2 (1) EC=4 (2) AC=4 (κύκλος) BC=5 (3) AB=6 BE=6 DE=7 AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές ΑΕ=2 (1) EC=4 (2) AC=4 (κύκλος) BC=5 (3) AB=6 (κύκλος) BE=6 (κύκλος) DE=7 AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάταξε όλες τις ακμές σε αύξουσα σειρά ως προς το βάρος τους Βήμα 2: Διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν περισσότερες από μία, διάλεξε τυχαία) Βήμα 3: Από τις ακμές που μένουν, διάλεξε αυτή με τα μικρότερο βάρος που δε σχηματίζει κύκλο και πρόσθεσέ την στο T Βήμα 4: Επανάλαβε το Βήμα 3 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ. μέχρι να συνδεθούν όλες οι κορυφές ΑΕ=2 (1) EC=4 (2) AC=4 (κύκλος) BC=5 (3) AB=6 (κύκλος) BE=6 (κύκλος) DE=7 (4) AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal Ο αλγόριθμος τερματίζει αφού: Έχουμε ST με n-1 (=5-1=4) ακμές, ή εναλλακτικά, Έχουμε ST που περιέχει όλες τις κορυφές του δοσμένου γραφήματος Παρατηρήστε ότι καμία από τις AD, BD, CD δε μπορεί έτσι κι αλλιώς να προστεθεί στο ST γιατί θα δημιουργούσε κύκλο Το MST που βρήκε περιέχει τις ακμές: ΑΕ (2), ΕC (4), BC (5), DE (=7) και έχει συνολικό βάρος 2+4+5+7=18 ΑΕ=2 (1) EC=4 (2) AC=4 (κύκλος) BC=5 (3) AB=6 (κύκλος) BE=6 (κύκλος) DE=7 (4) AD=8 BD=8 CD=9

O αλγόριθμος του Kruskal: εξάσκηση Εκτελέστε τον αλγόριθμο του Kruskal για την εύρεση MST στα δύο γραφήματα που ακολουθούν Ποιο είναι το βάρος του MST σε κάθε περίπτωση;

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές

O αλγόριθμος του Prim Βρίσκει το ελάχιστο γεννητικό δέντρο (MST) Τ σε δοσμένο γράφημα Βήμα 1: Διάλεξε αυθαίρετη κορυφή να είναι η πρώτη στο δέντρο T Βήμα 2: Δες ποιες ακμές από κορυφές στο T συνδέονται με κορυφές εκτός του Τ και διάλεξε την ακμή με το μικρότερο βάρος να ανήκει στο Τ (αν υπάρχουν παραπάνω από μία, διάλεξε τυχαία) Βήμα 3: Επανάλαβε το Βήμα 2 μέχρι να υπάρχουν n-1 ακμές στο Τ δηλ., μέχρι να συνδεθούν όλες οι κορυφές MST: AE EC BC ED 2 4 5 7 Συνολικό βάρος: 18

O αλγόριθμος του Prim: εξάσκηση Εκτελέστε τον αλγόριθμο του Prim για την εύρεση MST στα δύο γραφήματα που ακολουθούν ξεκινώντας από την κορυφή Α Ποιο είναι το βάρος του MST σε κάθε περίπτωση;

Το πρόβλημα εύρεσης ελάχιστου γεννητικού δένδρου: ο αλγόριθμος του Kruskal Άπληστος αλγόριθμος που βρίσκει ένα ελάχιστο γεννητικό δέντρο (MST) σε δοσμένο συνεκτικό γράφημα με βάρη Βρίσκει σύνολο από ακμές που σχηματίζουν δέντρο που περιέχει όλες τις κορυφές του γραφήματος και έχει ελάχιστο συνολικό βάρος Ο αλγόριθμος προτάθηκε από τον Joseph Kruskal εμφανίστηκε στα Πρακτικά του American Mathematical Society, σελ. 48 50 το 1956

Το πρόβλημα εύρεσης ελάχιστου γεννητικού δένδρου: ο αλγόριθμος του Prim Άπληστος αλγόριθμος που βρίσκει ένα ελάχιστο γεννητικό δέντρο (MST) σε δοσμένο συνεκτικό γράφημα με βάρη Βρίσκει σύνολο από ακμές που σχηματίζουν δέντρο που περιέχει όλες τις κορυφές του γραφήματος και έχει ελάχιστο συνολικό βάρος Ο αλγόριθμος προτάθηκε από τον Τσέχο μαθηματικό Vojtěch Jarník το 1930 και αργότερα ανεξάρτητα - από τον επιστήμονα υπολογιστών Robert C. Prim το 1957 και ανακαλύφθηκε εκ νέου από τον Edsger Dijkstra το 1959 V. Jarník: O jistém problému minimálním [About a certain minimal problem], Práce Moravské Přírodovědecké Společnosti, 6, 1930, pp. 57 63. R. C. Prim: Shortest connection networks and some generalizations. In: Bell System Technical Journal, 36 (1957), pp. 1389 1401

Σύγκριση Αλγόριθμος Kruskal Ξεκινάει με ακμή Διατηρεί δάσος (forest) όχι συνεκτική συνιστώσα Επιλέγει ακμές όχι απαραίτητα γειτονικές Εξετάζει κάθε ακμή μία φορά Λειτουργεί και σε μη συνεκτικά γραφήματα Καλύτερος για αραιά γραφήματα O(n 2 logn) για πυκνά γραφήματα O(nlogn) για αραιά γραφήματα Αλγόριθμος Prim Ξεκινάει με κορυφή Διατηρεί συνεκτική συνιστώσα Δημιουργεί το δέντρο από κορυφή σε κορυφή Εξετάζει μία ακμή πολλές φορές Το γράφημα πρέπει να είναι συνεκτικό Καλύτερος για πυκνά γραφήματα O(n 2 )

Αλγόριθμος Kruskal Σύγκριση

Αλγόριθμος Prim Σύγκριση