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

Σχετικά έγγραφα
Συντομότερες ιαδρομές

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

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

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

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

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

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

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

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

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

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

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

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

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

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

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

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

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Υπολογιστική Πολυπλοκότητα

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

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

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

Ασυμπτωτικός Συμβολισμός

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

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

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

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

ιµελής Σχέση ιατεταγµένο ζεύγος (α, β): ύο αντικείµενα (όχι κατ ανάγκη διαφορετικά) σε καθορισµένη σειρά. Γενίκευση: διατεταγµένη τριάδα (α, β, γ), δι

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

Μέγιστη Ροή Ελάχιστη Τομή

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

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

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

Μέγιστη Ροή Ελάχιστη Τομή

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

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

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

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

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

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

υναμικός Προγραμματισμός

υναμικός Προγραμματισμός

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

Δυναμικός Προγραμματισμός

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

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

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

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

Σχεδίαση & Ανάλυση Αλγορίθμων

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Αλγόριθμοι Αναζήτησης

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

Δυναμικός Προγραμματισμός

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

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

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

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths)

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

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

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

Σχέση Μερικής ιάταξης Σχέση Μερικής ιάταξης (ή µερική διάταξη): ανακλαστική, αντισυµµετρική, και µεταβατική. Αριθµοί: α β (αλλά όχι α < β), α β, Σύνολ

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

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

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

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

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

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

Σχέσεις Μερικής ιάταξης

2 n N: 0, 1,..., n A n + 1 A

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

για NP-Δύσκολα Προβλήματα

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Σχέσεις Μερικής ιάταξης

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

υναμικός Προγραμματισμός

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

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

Δυναμικός Προγραμματισμός

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

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

Transcript:

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

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς.

Συντομότερη ιαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής Απόσταση d(u, v): μήκος συντομότερης u v διαδρομής. Αν δεν υπάρχει u v διαδρομή, d(u, v) =. Ζητούμενο: αποστάσεις και συντομότερες διαδρομές από αρχική κορυφή s προς όλες τις κορυφές. Θεμελιώδες πρόβλημα συνδυαστικής βελτιστοποίησης. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 2

Κύκλοι Αρνητικού Μήκους ιαδρομή: ακολ. κορυφών όπου διαδοχικές συνδέονται με ακμή. Μονοκονδυλιά: διαδρομή χωρίς επαναλαμβανόμενες ακμές. (Απλό) μονοπάτι: διαδρομή χωρίς επαναλαμβανόμενες κορυφές. Υπάρχει διαδρομή u v ανν υπάρχει μονοπάτι u v. Συντομότερη διαδρομή είναι μονοπάτι εκτός αν... Υπάρχει κύκλος αρνητικού μήκους! Αποστάσεις δεν ορίζονται γιατί συνολικό μήκος διαδρομής μπορεί να μειώνεται επ άπειρο! Κύκλος αρνητικού μήκους σε κάποια u v διαδρομή d(u, v) =. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 3

Συντομότερα Μονοπάτια Αν p = (v 0, v 1,, v k ) είναι συντομότερο μονοπάτι, κάθε v i v j τμήμα του αποτελεί συντομότερο v i v j μονοπάτι. Αρχή βελτιστότητας. Συντομότερα μονοπάτια από s προς όλες τις κορυφές: έντρο Συντομότερων Μονοπατιών (SPT, ΣΜ). Αν συντομότερα s v 1 και s v 2 μονοπάτια έχουν κοινή κορυφή u, χρησιμοποιούν (ίδιο) συντομότερο s u μονοπάτι. ΣΜ αναπαρίσταται με πίνακα γονέων. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 4

Συντομότερα Μονοπάτια Ταυτίζεται ΣΜ με ΕΣ ; Έστω συντομότερα μονοπάτια από s σε G(V, E, w). Τι συμβαίνει σε G(V, E, kw), k > 0; Τι συμβαίνει σε G(V, E, kw), k < 0; Τι συμβαίνει σε G(V, E, w+k), k > 0; Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 5

Αποστάσεις Αποστάσεις ικανοποιούν την «τριγωνική ανισότητα»: Ισότητα ισχύει ανν συντ. s u μονοπάτι περιέχει ακμή (v, u) (αντίστοιχα, διέρχεται από κορυφή v). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 6

Υπολογισμός Συντομότερων Μονοπατιών ιατηρούμε «απαισιόδοξη» εκτίμηση D[u] για d(s, u). Αρχικά: Αλγόριθμος εξετάζει ακμές (v, u) και αναπροσαρμόζει D[u]. D[u] = μήκος συντομότερου γνωστού s u μονοπατιού. Επαγωγικά: αν ισχύει πριν τελευταία εξέταση ακμής (v, u), ισχύει και μετά αφού Πάντα Όταν ακμές συντομότερου s v μονοπατ. εξεταστούν με τη σειρά, γίνεται D[u] = d(s, u) και δεν μειώνεται στο μέλλον. Συστηματική εξέταση ακμών και κριτήριο τερματισμού. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 7

Αλγόριθμος Bellman-Ford Ιδέα: δοκιμή όλων των ακμών σε κάθε πιθανή θέση για συντομότερο s u μονοπάτι (ταυτόχρονα για όλες τις u). D(u, i) = μήκος συντομότερου s u μονοπ. με i ακμές. Αρχικά D(s, 0) = 0 και D(u, 0) = για κάθε u s. Από ΣΜ με i ακμέςσεσμμε i+1 ακμές: (Απλό) μονοπάτι έχει n 1 ακμές D(u, n 1) = d(s, u) D(u, n) < D(u, n 1) ανν κύκλος αρνητικού μήκους. Υπολογισμός τιμών D(u, i), u V, i = 1,, n, με δυναμικό προγραμματισμό. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014)

Αλγ. Bellman-Ford: Υλοποίηση «Απαισιόδοξη» εκτίμηση D[u]. Τέλος κάθε φάσης i, D[u] D[u, i] Σε φάση i = 1,, n 1, κάθε ακμή εξετάζεται μία φορά. Επιπλέον φάση για έλεγχο ύπαρξης κύκλου αρνητικού μήκος. Χρόνος εκτέλεσης Θ(nm). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 9

Αλγ. Bellman-Ford: Παράδειγμα Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 10

Αλγ. Bellman-Ford: Ορθότητα Αν όχι κύκλος αρνητικού μήκους, D[u] = d(s, u) στο τέλος. Συντομότερο s u μονοπάτι s = v 0, v 1,, v k = u με k ακμές. Επαγωγική υπόθ.: Τέλος φάσης i 1, D[v i-1 ] = d(s, v i-1 ). Τέλος φάσης i: εξέταση ακμής (v i-1, v i ) και D[v i ] = d(s, v i ): Tέλος φάσης n 1: D[u] = d(s, u) για κάθε κορυφή u. D[u] δεν μειώνεται άλλο, αφού πάντα D[u] d(s, u). Αλγόριθμος δεν επιστρέφει ένδειξη για κύκλο αρνητικού μήκους. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014)

Αλγ. Bellman-Ford: Ορθότητα Αν κύκλος αρνητικού μήκους, ένδειξη στο τέλος. Έστω κύκλος αρνητικού μήκους v 0, v 1,, v k 1, v k (= v 0 ) προσπελάσιμος από s. Εκτιμήσεις D[v i ] πεπερασμένες στο τέλος φάσης n 1. Αν όχι ένδειξη, πρέπει στη φάση n για κάθε v i στον κύκλο: Αθροίζοντας κατά μέλη: Άτοπο! Άρα ο αλγόριθμος επιστρέφει ένδειξη για κύκλο αρνητικού μήκους. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014)

Συντομότερα Μονοπάτια σε DAG Σε DAG, σειρά εμφάνισης κορυφών σε κάθε μονοπάτι (άρα και ΣΜ) ακολουθεί τοπολογική διάταξη! Έστω τοπολογική διάταξη s = v 1, v 2,, v n. d(s, v k ) εξαρτάται μόνο από d(s, v j ) με j < k : Κορυφές εντάσσονται στο ΣΜ με σειρά τοπολογ. διάταξης και εξετάζονται εξερχόμενες ακμές τους (μια φορά κάθε ακμή!). Ορθότητα με επαγωγή (παρόμοια με Bellman-Ford). Επαγωγική υπόθ.: ακριβώς πριν την ένταξη του v k στο ΣΜ, ισχύει ότι D[v j ]=d(s,v j ) για κάθε j = 0,, k. Ακριβώς πριν ένταξη v k+1 στο ΣΜ, D[v k+1 ]=d(s,v k+1 ) αφού Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 13

Παράδειγμα Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 14

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 15 Παράδειγμα 20-8 7 1-3 2 0-2 20-8 -4 1-6 -3 2 0-2 20-8 -4 1-6 -3 2 0-2 20 0-8 -4 1-6 -3 2 0-2 -6-3 -1-8 -4 1-6 -3 2 0-2 -6-4 -1-8 -4 1-6 -3 2 0-2 -6-4 -1-8 -4 1-6 -3 2 0-2 -6-4 -1-8 -4 1-6 -3 2 0-2 -6-4 -1-8 -4 1-6 -3 2 0-2

Συντομότερα Μονοπάτια σε DAG Χρόνος εκτέλεσης: γραμμικός, Θ(n+m) Χρησιμοποιείται και για υπολογισμό μακρύτερων μονοπατιών. Αν G(V, E, w) ακυκλικό, p μακρύτερο s u μονοπάτι ανν p συντομότερη s u διαδρομή στο G(V, E, w). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 16

Αλγόριθμος Dijkstra Ταχύτερα αν όχι αρνητικά μήκη! Αποτελεί γενίκευση BFS. Ταχύτερα αν υπάρχει πληροφορία για σειρά εμφάνισης κορυφών σε συντομότερα μονοπάτια (και ΣΜ). Μη αρνητικά μήκη: κορυφές σε αύξουσα σειρά απόστασης. Κορυφές εντάσσονται σε ΣΜ σε αύξουσα απόσταση και εξετάζονται εξερχόμενες ακμές τους (μια φορά κάθε ακμή!). Αρχικά D[s] = 0 και D[u] = για κάθε u s. Κορυφή u εκτός ΣΜ με ελάχιστο D[u] εντάσσεται σε ΣΜ. Για κάθε ακμή Ορθότητα: όταν u εντάσσεται σε ΣΜ, D[u] = d(s, u). Μη αρνητικά μήκη: κορυφές v με μεγαλύτερο D[v] σε μεγαλύτερη απόσταση και δεν επηρεάζουν D[u]. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 17

Αλγόριθμος Dijkstra: Παράδειγμα Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 18

Αλγόριθμος Dijkstra Άπληστος αλγόριθμος. Υλοποίηση: Ελάχιστο D[v]: ουρά προτεραιότητας. Binary heap: Θ(mlogn) Fibonacci heap: Θ(m+nlogn) Ελάχιστο D[v] γραμμικά: Θ(n 2 ). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 19

Κάτι μου Θυμίζει...;! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 20

Αλγόριθμος Dijkstra: Εξέλιξη Απόσταση (και συντομότερο μονοπάτι) από s προς κοντινότερη (στην s), 2 η κοντινότερη (στην s) κορυφή, κοκ. Συντομότερα μονοπάτια για κοντινότερες κορυφές, με υπολογισμένες αποστάσεις, σχηματίζουν υποδέντρο του ΣΜ. Επόμενη κοντινότερη (στην s) κορυφή είναι συνοριακή κορυφή. Συνοριακή κορυφή: δεν ανήκει σε υποδέντρο ΣΜ και έχει εισερχόμενη ακμή από υποδέντρο. Εκτιμήσεις απόστασης συνοριακών κορυφών διατηρούνται σε ουρά προτεραιότητας. Συνοριακή κορυφή με ελάχιστη εκτίμηση απόστασης «βγαίνει» από ουρά προτεραιότητας και προστίθεται στο υποδέντρο. Εκτιμήσεις απόστασης συνοριακών κορυφών ενημερώνονται με προσθήκη νέας κορυφής στο υποδέντρο (για εξερχόμενες ακμές της). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 21

Αλγόριθμος Dijkstra: Ορθότητα Θ.δ.ο όταν κορυφή u εντάσσεται σε ΣΜ, D[u] = d(s, u). Επαγωγή: έστω D[v] = d(s, v) για κάθε v ήδη στο ΣΜ. u έχει ελάχιστο D[u] (εκτός ΣΜ). Έστω ότι D[u] > d(s, u). p συντομότερο s u μονοπάτι με μήκος d(s, u) < D[u], και z τελευταία κορυφή πριν u στο p: Μπορεί z στο ΣΜ; Κορυφές στο ΔΣΜ (σύνολο S) Κορυφές εκτός ΔΣΜ (σύνολο V\S) Όχι! Απόσταση d Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) s z p u

Αλγόριθμος Dijkstra: Ορθότητα Θ.δ.ο όταν κορυφή u εντάσσεται σε ΣΜ, D[u] = d(s, u). Επαγωγή: έστω D[v] = d(s, v) για κάθε v ήδη στο ΣΜ. u έχει ελάχιστο D[u] (εκτός ΣΜ). Έστω ότι D[u] > d(s, u). p συντομότερο s u μονοπάτι με μήκος d(s, u) < D[u], και z τελευταία κορυφή πριν u στο p: Έστω x ( z) τελευταία κορυφή του p στο ΣΜ και y (μπορεί y = z) επόμενη της x στο p. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014)

Dijkstra vs Bellman-Ford Αλγ. Dijkstra ταχύτερος κατά n αλλά δεν εφαρμόζεται για αρνητικά μήκη. Βασίζεται στο ότι αποστάσεις δεν μειώνονται κατά μήκος συντομότερου μονοπατιού. Αλγ. Bellman-Ford εφαρμόζεται για αρνητικά μήκη. Αποστάσεις μπορεί να μειώνονται κατά μήκος συντομότερου μονοπατιού. «Τελευταία» κορυφή μπορεί σε μικρότερη απόσταση από αρχική. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 24

Ερωτήσεις Ασκήσεις Αρνητικά μήκη προσθέτουμε μεγάλο αριθμό θετικά μήκη αλγόριθμος Dijkstra; Νδο BFS υπολογίζει ΣΜ όταν ακμές μοναδιαίου μήκους. Όταν μη-αρνητικά μήκη, μπορεί ένα ΣΜ και ένα ΕΣ να μην έχουν καμία κοινή ακμή; Bottleneck Shortest Paths: Κόστος μονοπατιού p: Υπολογισμός ΣΜ για bottleneck κόστος; Τροποποίηση Dijkstra λύνει Bottleneck Shortest Paths (ακόμη και για αρνητικά μήκη): Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 25

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών Υπολογισμός απόστασης d(v, u) και συντομότερου v u μονοπατιού για κάθε ζεύγος (v, u) V V. Αλγόριθμος για ΣΜ από μία κορυφή για κάθε s V. Αρνητικά μήκη: Bellman-Ford σε χρόνο Θ(n 2 m). Mη-αρνητικά μήκη: Dijkstra σε χρόνο Θ(nm+ n 2 log n). Αρνητικά μήκη: Floyd-Warshall σε χρόνο Θ(n 3 ). Αναπαράσταση λύσης: Αποστάσεις: πίνακας D[1..n][1..n] Συντομότερα μονοπάτια: n ΣΜ, ένα για κάθε αρχική κορυφή. Πίνακας P[1..n][1..n]: n πίνακες προγόνων. Γραμμή P[i]: πίνακας προγόνων ΣΜ(v i ). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 26

Αλγόριθμος Floyd-Warshall Θεωρούμε γράφημα G(V, E, w) με μήκη στις ακμές. Καθορισμένη (αυθαίρετη) αρίθμηση κορυφών v 1, v 2,, v n. Αναπαράσταση γραφήματος με πίνακα γειτνίασης: Υπολογισμός απόστασης d(v i,v j ) από d(v i,v k ), d(v k,v j ) για όλα τα k V \ {v i, v j }: Φαύλος κύκλος(;): d(v i, v k ) d(v i, v j ) και d(v i, v j ) d(v i, v k ) υναμικός προγραμματισμός: υπολογισμός όλων με συστηματικό bottom-up τρόπο! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 27

Αλγόριθμος Floyd-Warshall D k [v i, v j ]: μήκος συντομότερου v i v j μονοπατιού με ενδιάμεσες κορυφές μόνο από V k = {v 1,, v k } Αρχικά D 0 [v i, v j ] = w(v i, v j ) γιατί V 0 =. Έστω ότι γνωρίζουμε D k 1 [v i, v j ] για όλα τα ζεύγη v i, v j. D k [v i, v j ] διέρχεται από v k καμία ή μία φορά (μονοπάτι!): Αναδρομική σχέση για D 0, D 1,, D n : Υπολογισμός D n με δυναμικό προγραμματισμό. Κύκλος αρνητικού μήκους αν D n [v i, v i ] < 0. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 28

Αλγόριθμος Floyd-Warshall Τυπικός δυναμικός προγραμματισμός: Χρόνος: Θ(n 3 ) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 29

Παράδειγμα

Υπολογισμός Συντομότερων Μονοπατιών P k [v i, ] : ΣΜ(v i ) με ενδιάμεσες κορυφές μόνο από V k. Αποστάσεις D k [v i, ] αντιστοιχούν σε μονοπάτια P k [v i, ]. P k [v i, v j ]: προηγούμενη κορυφή της v j στο συντομότερο v i v j μονοπάτι με ενδιάμεσες κορυφές μόνο από V k. P 0 καθορίζεται από πίνακα γειτνίασης: Αναδρομική σχέση για P 0, P 1,, P n : Υπολογισμός P n ταυτόχρονα με υπολογισμό D n. Εύκολη τροποποίηση προηγούμενης υλοποίησης. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 31

Παράδειγμα 32

Αλγόριθμος Johnson Συντομότερα μονοπάτια για όλα τα ζεύγη κορυφών σε αραιά γραφήματα με αρνητικά μήκη: Μετατροπή αρνητικών μηκών σε μη αρνητικά χωρίς να αλλάξουν τα συντομότερα μονοπάτια. Αλγόριθμος για γράφημα G(V, E, w): Νέα κορυφή s που συνδέεται με κάθε u V με ακμή μηδενικού μήκους: G (V {s}, E {(s, u)}, w). Bellman-Ford για G με αρχική κορυφή s. Έστω h(u) απόσταση κορυφής u V από s. Αν όχι κύκλος αρνητικού μήκους, υπολόγισε νέα (μη αρνητικά) μήκη: Για κάθε u V, Dijkstra σε με αρχική κορυφή u. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 33

Αλγόριθμος Johnson Χρονική πολυπλοκότητα: Bellman-Ford και n φορές Dijkstra: Θ(nm+ n 2 log n). Ορθότητα: Νέαμήκημηαρνητικά: h( ) αποστάσεις από s, και ισχύει ότι Μεταβολή στα μήκη δεν επηρεάζει συντομότερα μονοπάτια. Μήκος κάθε α β μονοπατιού μεταβάλλεται κατά h(β) h(α). Έστω p (α = v 0, v 1,, v k = β) οποιοδήποτε α β μονοπάτι. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 34

Σύνοψη Συντομότερα μονοπάτια από μία αρχική κορυφή s: Αρνητικά μήκη: Bellman-Ford σε χρόνο Θ(nm). υναμικός προγραμματισμός. DAGs με αρνητικά μήκη σε χρόνο Θ(m + n). Mη-αρνητικά μήκη: Dijkstra σε χρόνο Θ(m + n log n). (Προσαρμοστικός) άπληστος αλγόριθμος. Συντομότερα μονοπάτια για όλα τα ζεύγη κορυφών: Αρνητικά μήκη: Floyd-Warshall σε χρόνο Θ(n 3 ). υναμικός προγραμματισμός. (Mη-)αρνητικά μήκη και αραιά γραφήματα, m = o(n 2 ): n φορές Dijkstra σε χρόνο Θ(nm+ n 2 log n). Αν αρνητικά μήκη, αλγ. Johnson για μετατροπή σε θετικά! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2014) Συντομότερες ιαδρομές 35

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.