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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

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

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

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

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Transcript:

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

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

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

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

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

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

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

Αλγόριθµοι Γραφηµάτων Πράξεις σε ασύνδετα σύνολα Ενα γράφηµα µε τέσσερις συνεκτικές συνιστώσες: {a, b, c, d},{e, f, g},{h, i},{j}. a b e f h j c d g i Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 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 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 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} Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 201 11 /

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

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

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

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

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

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

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

Βέλτιστη Υπακολουθία Τ: Ελαφρύτατο Συνδετικό έντρο Οι άλλες ακµές του γραφήµατος δεν ϕαίνονται Αφαίρεση κάποιας ακµής (u, v) T. Το T χωρίζεται σε δυο υποδέντρα T 1 και T 2. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 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. Ατοπο Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 201 20 /

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

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

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

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

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

Αλγόριθµος του Prim Ιδέα: ιατηρούµε τους κόµβους V A σε µια ουρά προτεραιότητας ελαχίστου Q µε ϐάση ένα πεδίο κλειδί. Για κάθε κόµβο v το key[v] = µε το ελάχιστο από τα ϐάρη των ακµών που συνδέουν τον v µε ένα κόµβο στο A. ΕΣ -PRIM(G, w, s) for each u V(G) key [u] = π[u] = NULL key[s] = 0 Q V(G) 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 Το{(v, π[v])} σχηµατίζει το Ελαφρύτατο Συνδετικό έντρο Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 201 26 /

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

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

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

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

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

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

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

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

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

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

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

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

Παράδειγµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 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 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 201 0 /

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

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

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

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

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

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

Prim b c d 2 9 15 a i 6 1 2 h g f 10 e Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 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 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 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) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 201 2 /

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

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

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

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

log E = O(log V) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 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 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Μαΐου 201 /

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

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

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

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

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

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

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