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

Σχετικά έγγραφα
Αλγόριθµοι και Πολυπλοκότητα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

3η Σειρά Γραπτών Ασκήσεων

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

Δομές Δεδομένων Ενότητα 6

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

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

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

Κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Πολυγραφήµατα (Multigraphs)

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

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

Ουρά Προτεραιότητας: Heap

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

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

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

Στοιχεία Θεωρίας Γραφηµάτων (1)

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

3η Σειρά Γραπτών Ασκήσεων

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap

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

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

Συντομότερες Διαδρομές

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

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Ελαφρύτατες διαδρομές

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

Παράδειγµα (4) Στοιχεία Θεωρίας Γραφηµάτων (2) Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς. v 2. u 3.

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

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

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

Ουρά Προτεραιότητας: Heap

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

Συντομότερες ιαδρομές

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

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

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

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

Αλγόριθμοι Eλάχιστα μονοπάτια

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

Στοιχεία Θεωρίας Γραφηµάτων (2)

Union Find, Λεξικό. Δημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

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

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.

Transcript:

Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 /

Απληστοι (Greedy) Αλγόριθµοι και Γραφήµατα έντρα Επικάλυψης (spanning trees) Βέλτιστη Υπακολουθία Απληστη Επιλογή Αλγόριθµος του Prim Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 2 /

Γραφήµατα Κατευθυνόµενο Γράφηµα: Ενας κατευθυνόµενο γράφηµα G = (V, E) είναι ένα διατεταγµένο Ϲεύγος που αποτελείται από: ένα σύνολο V κορυφών ένα σύνολο E V V ακµών µη Κατευθυνόµενο Γράφηµα: Σε έναν µην κατευθυνόµενο γράφηµα G = (V, E), το σύνολο των ακµών E αποτελείται από µη διατεταγµένα Ϲεύγη από κορυφές. Και στις δυο περιπτώσεις ισχύει: E = O(V 2 ) Αν το γράφηµα είναι συνδεδεµένο ισχύει: E V 1 log E = Θ(log V) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 3 /

Πίνακας Γειτνίασης Πίνακας Γειτνίασης: Πίνακας γειτνίασης ενός γραφήµατος G = (V, E), όπου V = {1, 2,..., n}, είναι ο πίνακας A[1... n, 1...n] µε { 1 αν (i, j) E, A[i, j] = 0 αν (i, j) / E Για πυκνή απεικόνιση απαιτείταιθ(v 2 ) χώρος αποθήκευσης Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Λίστα Γειτνίασης Λίστα Γειτνίασης: Λίστα γειτνίασης µιας κορυφής v V είναι η λίστα Adj[v] από κορυφές γειτονικές της v. Παράδειγµα Για µη κατευθυνόµενα γραφήµατα, Adj[v] = degree(v). Ενώ για κατευθυνόµενα γραφήµατα, Adj[v] = out degree(v). Θεώρηµα της Χειραψίας: Για µη κατευθυνόµενα γραφήµατα, v V = 2 E οι λίστες γειτνίασης χρησιµοποιούν Θ(V + E) αποθηκευτικό χώρο - αραιή απεικόνιση (και για τους δύο τύπους γραφηµάτων) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 5 /

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα εδοµένου ενός συνόλου στοιχείων ϑέλουµε να χωρίσουµε τα στοιχεία αυτά σε διαφορετικές µη επικαλυπτόµενες οµάδες. Κάθε µία από τις οµάδες αναγνωρίζεται από ένα στοιχείο της (αντιπρόσωπος-representative). Μία από τις πολλές εφαρµογές των ασύνδετων συνόλων είναι η εύρεση των συνεκτικών συνιστωσών ενός γράφου. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 6 /

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα Οι ϐασικές πράξεις είναι οι εξής: Find(x): εδοµένου ενός στοιχείου x απαντά τον αντιπρόσωπο της οµάδας στην οποία ανήκει το x. Union(x, y): Ενώνει τις δύο οµάδες / σύνολα που έχουν αντιπροσώπους τα x και y αντίστοιχα, σε µία νέα οµάδα. Αντιπρόσωπος της νέας οµάδας µπορεί να είναι οποιοδήποτε στοιχείο των δύο οµάδων αν και συνήθως επιλέγεται ένας εκ των x και y. Make-Set(x): ηµιουργεί µια νέα οµάδα η οποία περιέχει το στοιχείο x (το οποίο γίνεται και αντιπρόσωπος της οµάδας). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα Ενα παράδειγµα χρήσης τωνunion καιfind 1 5 2 6 3 Find(5) = 6 Find() = 9 Union(6, 9) = 9 9 null Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα Ενας γράφος µε τέσσερις συνεκτικές συνιστώσες: {a, b, c, d},{e, f, g},{h, i},{j}. a b e f h j c d g i Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 9 /

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα Αλγόριθµος Εύρεσης Συνεκτικών Συνιστωσών µε χρήση της δοµής ασύνδετων συνόλων Connected-Components (G) 1. for each v V 2. Make-Set(v) 3. for each (u, v) E. a = Find(u) 5. b = Find(v) 6. if a b then Union(a, b). end for Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 10 /

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα Κατασκευή των συνόλων για τον γράφο του σχήµατος Πλευρά Συλλογή από ασύνδετα σύνολα αρχικά σύνολα {a} {b} {c} {d} {e} {f} {g} {h} {i} {j} (b, d) {a} {b, d} {c} {e} {f} {g} {h} {i} {j} (e, g) {a} {b, d} {c} {e, g} {f} {h} {i} {j} (a, c) {a, c} {b, d} {e, g} {f} {h} {i} {j} (h, i) {a, c} {b, d} {e, g} {f} {h, i} {j} (a, b) {a, b, c, d} {e, g} {f} {h, i} {j} (e, f) {a, b, c, d} {e, f, g} {h, i} {j} (b, c) {a, b, c, d} {e, f, g} {h, i} {j} Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 11 /

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα Εχοντας λοιπόν κατασκευάσει τα σύνολα, µπορούµε να ϐρούµε εύκολα αν δύο κόµβοι ανήκουν στην ίδια συνεκτική συνιστώσα, ελέγχοντας απλά εάν οι αντιπρόσωποι των οµάδων τους (το αποτέλεσµα τηςfind σε κάθε έναν) ταυτίζονται. Ο χρόνος εκτέλεσης της πράξηςunion είναι σταθερός. Η πράξηfind, µπορεί να εκτελεσθεί σε γραµµικό χρόνο στην περίπτωση που η αναπαράσταση των στοιχείων ενός συνόλου έχει εκφυλιστεί σε γραµµική λίστα. Εάν όµως κατά την ένωση δύο συνόλων επιλέγουµε να ενώνουµε το σύνολο µε τα λιγότερα στοιχεία σε αυτό µε τα περισσότερα στοιχεία τότε ο χρόνος εκτέλεσης της Find γίνεται O(log n) (άσκηση). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 12 /

Ελάχιστο έντρο Επικάλυψης (Minimum Spanning Tree) Είσοδος: ένα συνδεδεµένο µη κατευθυνόµενο γράφηµα G = (V, E) µε συνάρτηση ϐάρων w : E R. Εξοδος: ένα δέντρο επικάλυψης T - είναι ένα δέντρο το οποίο συνδέει όλες τις κορυφές-µε το ελάχιστο ϐάρος: w(t) = w(u, v). (u,v) T Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 13 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 15 /

Βέλτιστη Υπακολουθία Ε Ε Τ: Οι άλλες ακµές του γραφήµατος δεν ϕαίνονται Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 16 /

Βέλτιστη Υπακολουθία Ε Ε Τ: Οι άλλες ακµές του γραφήµατος δεν ϕαίνονται Αφαίρεση κάποιας ακµής (u, v) T. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 /

Βέλτιστη Υπακολουθία Ε Ε Τ: Οι άλλες ακµές του γραφήµατος δεν ϕαίνονται Αφαίρεση κάποιας ακµής (u, v) T. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 /

Βέλτιστη Υπακολουθία Ε Ε Τ: Οι άλλες ακµές του γραφήµατος δεν ϕαίνονται Αφαίρεση κάποιας ακµής (u, v) T. Το T χωρίζεται σε δυο υποδέντρα T 1 και T 2. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 19 /

Theorem Το υποδέντρο T 1 είναι ένα ελάχιστο δέντρο επικάλυψης του G 1 = (V 1, E 1 ) του υπογραφήµατος του G παραγόµενου από τις κορυφές του T 1 όπου V 1 = κορυφές του T 1, E 1 = {(x, y) E : x, y V 1 } Οµοια και για το T 2 Απόδειξη: w(t) = w(u, v) + w(t 1 )+w(t 2 ) Αν υπήρχε δέντρο επικάλυψης T 1 µε µικρότερο ϐάρος από το T 1 για το G 1, τότε T = {(u, v) T 1 T 2} ϑα ήταν ένα ελάχιστο δέντρο επικάλυψης µε µικρότερο ϐάρος από το T για το G. Ατοπο Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 20 /

Απληστοι (greedy) Αλγόριθµοι Ιδιότητα Απληστης Επιλογής: Μια τοπικά ϐέλτιστη επιλογή είναι και καθολικά ϐέλτιστη. Θεώρηµα: Εστω T το ελάχιστο δέντρο επικάλυψης του G = (V, E), και A V. Εστω (u, v) E είναι η ακµή µε το ελάχιστο ϐάρος που συνδέει το A µε το V A. Τότε,(u, v) T. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 21 /

Απόδειξη Θεωρήµατος Εστω(u, v) / T. Η ακµή (u,v) είναι η ακµή µε το ελάχιστο ϐάρος συνδέουσα το Α µε το V-A. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 22 /

Απόδειξη Θεωρήµατος Εστω(u, v) / T. Η ακµή (u,v) είναι η ακµή µε το ελάχιστο ϐάρος συνδέουσα το Α µε το V-A. Θεωρήστε το µοναδικό απλό µονοπάτι από το u στο v στο T. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 23 /

Απόδειξη Θεωρήµατος Εστω(u, v) / T. Η ακµή (u,v) είναι η ακµή µε το ελάχιστο ϐάρος συνδέουσα το Α µε το V-A. Θεωρήστε το µοναδικό απλό µονοπάτι από το u στο v στο T. Αντικαταστήστε την πρώτη ακµή στο µονοπάτι που συνδέει µια κορυφή του A µε µια κορυφή του V A, µε την (u, v). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 2 /

Απόδειξη Θεωρήµατος Εστω(u, v) / T. Η ακµή (u,v) είναι η ακµή µε το ελάχιστο ϐάρος συνδέουσα το Α µε το V-A. Θεωρήστε το µοναδικό απλό µονοπάτι από το u στο v στο T. Αντικαταστήστε την (u, v) µε την πρώτη ακµή στο µονοπάτι που συνδέει µια κορυφή του A µε µια κορυφή του V A. Προκύπτει ένα δέντρο επικάλυψης µε µικρότερο ϐάρος από το T. Ατοπο Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 25 /

Αλγόριθµος του Prim Ιδέα: ιατηρούµε τις κορυφές V A σε µια ουρά προτεραιότητας Q. Με την key εισάγουµε κάθε κορυφή στην Q µε την ακµή µε το µικρότερο ϐάρος που τη συνδέει µε µια κορυφή στο A. Q V key[v] for all v V key[s] 0 for some arbitrary s V while Q do u Extract Min(Q) for each v Adj[u] do if v Q and w(u, v) < key[v] then key[v] w(u, v) / Decrease-Key / π[v] u Το{(u, π[v])} σχηµατίζει το Ελάχστο έντρο Επικάλυψης Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 26 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 2 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 2 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 29 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 30 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 31 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 32 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 33 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 3 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 35 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 36 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 3 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 3 /

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 39 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 0 /

Ανάλυση Αλγορίθµου Prim V times Θ(V) total Συνολικός Χρόνος: Q V key[v] for all v V key[s] 0 for some arbitrary s V while Q do u Extract Min(Q) degree(u) times for each v Adj[u] do if v Q and w(u, v) < key[v] then key[v] w(u, v) Θ(E) π[v] u T = Θ(V) T Extract Min +Θ(E) T Decrease Key Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 /

Ανάλυση Αλγορίθµου Prim (συνέχεια) T = Θ(V) T Extract Min +Θ(E) T Decrease Key Q T Extract Min T Decrease Key Συνολικό array O(V) O(1) O(V 2 ) binary Heap O(log V) O(log V) O(E log V) fibonacci Heap O(log V) O(1) O(E + V log V) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 2 /

Αλγόριθµοι MST Αλγόριθµος του Kruskal χρησιµοποιεί τις συνεκτικές συνιστώσες έχει πολυπλοκότητα O(E log V) Karger, Klein, Tarjan [1993] πιθανοτικός αλγόριθµος αναµενόµενος χρόνος O(V + E) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 3 /

Ο αλγόριθµος του Kruskal Στον αλγόριθµο του Kruskal Το σύνολο A είναι ένα δάσος. Η ασφαλής ακµή που προστίθεται στο A είναι πάντοτε µια ακµή ελαχίστου ϐάρους στο γράφηµα, η οποία συνδέει δυο διαφορετικές συνιστώσες. Στον αλγόριθµο του Prim Το σύνολο A συνιστά ένα µοναδικό δένδρο. Η ασφαλής ακµή που προστίθεται στο A είναι πάντοτε µια ακµή ελαχίστου ϐάρους η οποία συνδέει το δένδρο µε έναν κόµβο εκτός του δένδρου. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal Ο αλγόριθµος του Kruskal Προσδιορίζει την ασφαλή ακµή που ϑα προστεθεί στο επεκτεινόµενο δάσος εντοπίζοντας από όλες τις ακµές που συνδέουν δυο οποιαδήποτε δένδρα του δάσους, µια ακµή (u, v) ελαχίστου ϐάρους. Ανήκει στην κατηγορία των άπληστων αλγορίθµων, διότι σε κάθε ϐήµα προσθέτει στο δάσος µια ακµή µε το ελάχιστο δυνατό ϐάρος. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 5 /

Ο αλγόριθµος του Kruskal ΕΣ -Kruskal Η υλοποίησή µας είναι παρόµοια µε τον αλγόριθµο για τον υπολογισµό των συνδεδεµένων συνιστωσών. Βασίζεται στην τήρηση κάποιων ξένων συνόλων από στοιχεία µέσω µιας δοµής δεδοµένων ξένων συνόλων. Κάθε τηρούµενο σύνολο περιέχει τους κόµβους ενός δένδρου του τρέχοντος δάσους. Η πράξη Εύρεση Συνόλου(u) επιστρέφει ένα στοιχείο-αντιπρόσωπο του συνόλου στο οποίο ανήκει ο u. Εποµένως, µπορούµε να προσδιορίσουµε, εάν δυο κόµβοι u και v ανήκουν στο ίδιο δένδρο ελέγχοντας εάν το στοιχείοεύρεση Συνόλου(u) συµπίπτει µε τοεύρεση Συνόλου(v). Η σύζευξη των δένδρων πραγµατοποιείται µέσω της πράξηςσυνένωση. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 6 /

log E log V. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 / Ο αλγόριθµος του Kruskal ΕΣ -Kruskal ΕΣ -Kruskal(G, w) 1 A 2 για κάθε κόµβο v V[G] 3 Κατασκευή Συνόλου(v) O(v) ταξινοµούµε τις ακµές E κατά µη ϕθίνουσα σειρά ως προς το ϐάρος w O(ElogE) 5 για κάθε ακµή(u, v) E, κατά µη ϕθίνουσα σειρά ως προς το ϐάρος 6 αν Εύρεση Συνόλου(u) Εύρεση Συνόλου(v) O(logV) Εφορές τότε A A {(u, v)} O(1) Συνένωση(u, v) 9 επιστροφή A Πολυπλοκότητα O(V + E log E + E log V) = O(E log V)

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /

Ο αλγόριθµος του Kruskal b c d 2 9 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 /