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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

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

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

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

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

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

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

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

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

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

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

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

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

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

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

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

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

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

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

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

Υπολογιστικό Πρόβληµα

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

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

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

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

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

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

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

Transcript:

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

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

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

Συντομότερα Μονοπάτια Αν p = (v, v,, v k ) είναι συντομότερο μονοπάτι, κάθε v i v j τμήμα του αποτελεί συντομότερο v i v j μονοπάτι. Αρχή βελτιστότητας. Συντομότερα μονοπάτια από s προς όλες τις κορυφές: Δέντρο Συντομότερων Μονοπατιών (SPT, ΔΣΜ). Αν συντομότερα s v και s v μονοπάτια έχουν κοινή κορυφή u, χρησιμοποιούν (ίδιο) συντομότερο s u μονοπάτι. ΔΣΜ αναπαρίσταται με πίνακα γονέων. b - e 8 s c f 6 a6 d -9 Αλγόριθμοι & Πολυπλοκότητα () Συντομότερες Διαδρομές

Συντομότερα Μονοπάτια Ταυτίζεται ΔΣΜ με ΕΣΔ; Έστω συντομότερα μονοπάτια από s σε G(V, E, w). Τι συμβαίνει σε G(V, E, kw), k > ; Τι συμβαίνει σε G(V, E, kw), k < ; Τι συμβαίνει σε G(V, E, w+k), k > ; b e 8 s c f 6 a d Αλγόριθμοι & Πολυπλοκότητα () Συντομότερες Διαδρομές

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

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

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

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

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

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

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

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

Αλγόριθμοι & Πολυπλοκότητα () Συντομότερες Διαδρομές Παράδειγμα 9 9 6 9 6 9 6 9 6

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

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

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

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

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

Αλγόριθμος Dijkstra: Παράδειγμα 8 9 6 6 8 8 Αλγόριθμοι & Πολυπλοκότητα () Συντομότερες Διαδρομές

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

Αλγόριθμος 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 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. Κορυφές στο ΔΣΜ (σύνολο S) Κορυφές εκτός ΔΣΜ (σύνολο V \ S) Απόσταση d u z p Αλγόριθμοι & Πολυπλοκότητα () s x y

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

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

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

Αλγόριθμος Floyd-Warshall Θεωρούμε γράφημα G(V, E, w) με μήκη στις ακμές. Καθορισμένη (αυθαίρετη) αρίθμηση κορυφών v, v,, 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 τρόπο! Αλγόριθμοι & Πολυπλοκότητα () Συντομότερες Διαδρομές

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

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

Παράδειγμα

Υπολογισμός Συντομότερων Μονοπατιών 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 καθορίζεται από πίνακα γειτνίασης: Αναδρομική σχέση για P, P,, P n : Υπολογισμός P n ταυτόχρονα με υπολογισμό D n. Εύκολη τροποποίηση προηγούμενης υλοποίησης. Αλγόριθμοι & Πολυπλοκότητα () Συντομότερες Διαδρομές

Παράδειγμα

Αλγόριθμος 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. Αλγόριθμοι & Πολυπλοκότητα () Συντομότερες Διαδρομές

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

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