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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

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

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

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

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

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

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

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

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

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

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

Μετασχηματισμοί, Αναπαράσταση και Ισομορφισμός Γραφημάτων

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

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

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

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Transcript:

Συντομότερη Διαδρομή Συντομότερες Διαδρομές Διδάσκοντες: Σ Ζάχος, Δ Φωτάκης Επιμέλεια διαφανειών: Δ Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής Απόσταση d(u, v): μήκος συντομότερης u v διαδρομής Αν δεν υπάρχει u v διαδρομή, d(u, v) = Ζητούμενο: αποστάσεις και συντομότερες διαδρομές από αρχική κορυφή s προς όλες τις κορυφές Θεμελιώδες πρόβλημα συνδυαστικής βελτιστοποίησης Εθνικό Μετσόβιο Πολυτεχνείο Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές Κύκλοι Αρνητικού Μήκους Συντομότερα Μονοπάτια Διαδρομή: ακολ κορυφών όπου διαδοχικές συνδέονται με ακμή Μονοκονδυλιά: διαδρομή χωρίς επαναλαμβανόμενες ακμές (Απλό) μονοπάτι: διαδρομή χωρίς επαναλαμβανόμενες κορυφές Υπάρχει διαδρομή u v ανν υπάρχει μονοπάτι u v Συντομότερη διαδρομή είναι μονοπάτι εκτός αν Υπάρχει κύκλος αρνητικού μήκους! Αποστάσεις δεν ορίζονται γιατί συνολικό μήκος διαδρομής μπορεί να μειώνεται επ άπειρο! Κύκλος αρνητικού μήκους σε κάποια u v διαδρομή d(u, v) = Αν p = (v 0, v 1,, v k ) είναι συντομότερο μονοπάτι, κάθε v i v j τμήμα του αποτελεί συντομότερο v i v j μονοπάτι Αρχή βελτιστότητας Συντομότερα μονοπάτια από s προς όλες τις κορυφές: Δέντρο Συντομότερων Μονοπατιών (SPT, ΔΣΜ) Αν συντομότερα s v 1 και s v μονοπάτια έχουν κοινή κορυφή u, χρησιμοποιούν (ίδιο) συντομότερο s u μονοπάτι ΔΣΜ αναπαρίσταται με πίνακα προγόνων Ταυτίζεται ΔΣΜ με ΕΣΔ; Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 3 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 4

Αποστάσεις Υπολογισμός Συντομότερων Μονοπατιών Αποστάσεις ικανοποιούν την «τριγωνική ανισότητα»: Διατηρούμε «απαισιόδοξη» εκτίμηση D[u] για d(s, u) Αρχικά: Ισότητα ισχύει ανν συντ s u μονοπάτι περιέχει ακμή (v, u) (αντίστοιχα, διέρχεται από κορυφή v) Αλγόριθμος εξετάζει ακμές (v, u) και αναπροσαρμόζει D[u] Έστω συντομότερα μονοπάτια από s σε G(V, E, w) Τι συμβαίνει σε G(V, E, kw), k > 0; Τι συμβαίνει σε G(V, E, kw), k < 0; Τι συμβαίνει σε G(V, E, w+k), k > 0; D[u] = μήκος συντομότερου γνωστού s u μονοπατιού Επαγωγικά: αν ισχύει πριν τελευταία εξέταση ακμής (v, u), ισχύει και μετά αφού Πάντα Όταν ακμές συντομότερου s v μονοπατ εξεταστούν με τη σειρά, γίνεται D[u] = d(s, u) και δεν μειώνεται στο μέλλον Συστηματική εξέταση ακμών και κριτήριο τερματισμού Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 5 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 6 Αλγόριθμος Bellman-Ford Αλγ Bellman-Ford: Υλοποίηση Ιδέα: δοκιμή όλων των ακμών σε κάθε πιθανή θέση για συντομότερο s u μονοπάτι (ταυτόχρονα για όλες τις u) D(u, i) = μήκος συντομότερου s u μονοπ με i ακμές Αρχικά D(s, 0) = 0 και D(u, 0) = για κάθε u s «Απαισιόδοξη» εκτίμηση D[u] Τέλος κάθε φάσης i, D[u] D[u, i] Από ΣΜ με 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, με δυναμικό προγραμματισμό Σε φάση i = 1,, n 1, κάθε ακμή εξετάζεται μία φορά Επιπλέον φάση για έλεγχο ύπαρξης κύκλου αρνητικού μήκος Χρόνος εκτέλεσης Θ(nm) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 8

Αλγ Bellman-Ford: Παράδειγμα Αλγ Bellman-Ford: Ορθότητα 1 80 1 4 8 3 Αν όχι κύκλος αρνητικού μήκους, D[u] = d(s, u) στο τέλος Συντομότερο s u μονοπάτι s = v 0, v 1,, v k = u με k ακμές Επαγωγική υπόθ: Τέλος φάσης i 1, D-1 ] = d(s, v i-1 ) Τέλος φάσης i: εξέταση ακμής (v i-1, v i ) και D ] = d(s, v i ): 0 7 1 1 6 5 4 6 10 3 4 5 Tέλος φάσης n 1: D[u] = d(s, u) για κάθε κορυφή u D[u] δεν μειώνεται άλλο, αφού πάντα D[u] d(s, u) Αλγόριθμος δεν επιστρέφει ένδειξη για κύκλο αρνητικού μήκους Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 9 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Αλγ Bellman-Ford: Ορθότητα Συντομότερα Μονοπάτια σε DAG Αν κύκλος αρνητικού μήκους, ένδειξη στο τέλος Έστω κύκλος αρνητικού μήκους v 0, v 1,, v k = v 0 προσπελάσιμος από s Εκτιμήσεις D ] πεπερασμένες στο τέλος φάσης n 1 Αν όχι ένδειξη, πρέπει στη φάση n για κάθε v i στον κύκλο: Αθροίζοντας κατά μέλη: Άτοπο! Άρα ο αλγόριθμος επιστρέφει ένδειξη για κύκλο αρνητικού μήκους Σε DAG, σειρά εμφάνισης κορυφών σε κάθε μονοπάτι (άρα και ΔΣΜ) ακολουθεί τοπολογική διάταξη! Έστω τοπολογική διάταξη s = v 1, v,, v n d(s, v k ) εξαρτάται μόνο από d(s ) με 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 ) αφού Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 1

Παράδειγμα Παράδειγμα -6-8 -8 7-1 -3 0-4 - - 1 3 1-5 -7-3 -6-4 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 13 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 14 Συντομότερα Μονοπάτια σε DAG Αλγόριθμος Dijkstra Χρόνος εκτέλεσης: γραμμικός, Θ(n+m) Χρησιμοποιείται και για υπολογισμό μακρύτερων μονοπατιών Αν G(V, E, w) ακυκλικό, p μακρύτερο s u μονοπάτι ανν p συντομότερη s u διαδρομή στο G(V, E, w) Ταχύτερα αν όχι αρνητικά μήκη! Αποτελεί γενίκευση BFS Ταχύτερα αν υπάρχει πληροφορία για σειρά εμφάνισης κορυφών σε συντομότερα μονοπάτια (και ΔΣΜ) Μη αρνητικά μήκη: κορυφές σε αύξουσα σειρά απόστασης Κορυφές εντάσσονται σε ΔΣΜ σε αύξουσα απόσταση και εξετάζονται εξερχόμενες ακμές τους (μια φορά κάθε ακμή!) Αρχικά D[s] = 0 και D[u] = για κάθε u s Κορυφή u εκτός ΔΣΜ με ελάχιστο D[u] εντάσσεται σε ΔΣΜ Για κάθε ακμή Ορθότητα: όταν u εντάσσεται σε ΔΣΜ, D[u] = d(s, u) Μη αρνητικά μήκη: κορυφές v με μεγαλύτερο D[v] σε μεγαλύτερη απόσταση και δεν επηρεάζουν D[u] Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 15 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 16

Αλγόριθμος Dijkstra Κάτι μου Θυμίζει ;! Άπληστος αλγόριθμος Υλοποίηση: Ελάχιστο D[v]: ουρά προτεραιότητας Binary heap: Θ(mlogn) Fibonacci heap: Θ(m+nlogn) Ελάχιστο D[v] γραμμικά: Θ(n ) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 17 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 18 Αλγόριθμος Dijkstra: Παράδειγμα Αλγόριθμος Dijkstra: Ορθότητα 8 10 9 6 4 5 0 3 8 6 4 5 8 4 7 3 15 14 Θδο όταν κορυφή 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 στο ΔΣΜ; Όχι! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 19 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009)

Αλγόριθμος 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 Αλγ Dijkstra ταχύτερος κατά n αλλά δεν εφαρμόζεται για αρνητικά μήκη Βασίζεται στο ότι αποστάσεις δεν μειώνονται κατά μήκος συντομότερου μονοπατιού Αλγ Bellman-Ford εφαρμόζεται για αρνητικά μήκη Αποστάσεις μπορεί να μειώνονται κατά μήκος συντομότερου μονοπατιού «Τελευταία» κορυφή μπορεί σε μικρότερη απόσταση από αρχική Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές Ερωτήσεις Ασκήσεις Συντομότερα Μονοπάτια για ΌλαταΖεύγηΚορυφών Αρνητικά μήκη προσθέτουμε μεγάλο αριθμό θετικά μήκη αλγόριθμος Dijkstra; Νδο BFS υπολογίζει ΔΣΜ όταν ακμές μοναδιαίου μήκους Bottleneck Shortest Paths: Κόστος μονοπατιού p: Υπολογισμός ΔΣΜ για bottleneck κόστος; Τροποποίηση Dijkstra λύνει Bottleneck Shortest Paths (ακόμη και για αρνητικά μήκη): Υπολογισμός απόστασης d(u, v) και συντομότερου u v μονοπατιού για κάθε ζεύγος (u, v) V V Αλγόριθμος για ΣΜ από μία κορυφή για κάθε s V Αρνητικά μήκη: Bellman-Ford σε χρόνο Θ(n m) Mη-αρνητικά μήκη: Dijkstra σε χρόνο Θ(nm+ n log n) Αρνητικά μήκη: Floyd-Warshall σε χρόνο Θ(n 3 ) Αναπαράσταση λύσης: Αποστάσεις: πίνακας D[1n][1n] Συντομότερα μονοπάτια: n ΔΣΜ, ένα για κάθε αρχική κορυφή Πίνακας P[1n][1n]: n πίνακες προγόνων Γραμμή P[i]: πίνακας προγόνων ΔΣΜ(v i ) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 3 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 4

Αλγόριθμος Floyd-Warshall Αλγόριθμος Floyd-Warshall Θεωρούμε γράφημα G(V, E, w) με μήκη στις ακμές Καθορισμένη (αυθαίρετη) αρίθμηση κορυφών v 1, v,, v n Αναπαράσταση γραφήματος με πίνακα γειτνίασης: D k ]: μήκος συντομότερου v i v j μονοπατιού με ενδιάμεσες κορυφές μόνο από V k = {v 1,, v k } Αρχικά D 0 ] = w(v i ) γιατί V 0 = Έστω ότι γνωρίζουμε D k 1 ] για όλα τα ζεύγη v i D k ] διέρχεται από v k καμία ή μία φορά (μονοπάτι!): Υπολογισμός απόστασης d(v i,v j ) από d(v i,v k ), d(v k,v j ) για όλα τα k V \ {v i }: Αναδρομική σχέση για D 0, D 1,, D n : Φαύλος κύκλος(;): d(v i, v k ) d(v i ) και d(v i ) d(v i, v k ) Δυναμικός προγραμματισμός: υπολογισμός όλων με συστηματικό bottom-up τρόπο! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 5 Υπολογισμός D n με δυναμικό προγραμματισμό Κύκλος αρνητικού μήκους αν D n, v i ] < 0 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 6 Αλγόριθμος Floyd-Warshall Παράδειγμα Τυπικός δυναμικός προγραμματισμός: Χρόνος: Θ(n 3 ) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 7 8

Υπολογισμός Συντομότερων Μονοπατιών Παράδειγμα P k, ] : ΔΣΜ(v i ) με ενδιάμεσες κορυφές μόνο από V k Αποστάσεις D k, ] αντιστοιχούν σε μονοπάτια P k, ] P k ]: προηγούμενη κορυφή της v j στο συντομότερο v i v j μονοπάτι με ενδιάμεσες κορυφές μόνο από V k P 0 καθορίζεται από πίνακα γειτνίασης: Αναδρομική σχέση για P 0, P 1,, P n : Υπολογισμός P n ταυτόχρονα με υπολογισμό D n Εύκολη τροποποίηση προηγούμενης υλοποίησης Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 9 30 Αλγόριθμος Johnson Αλγόριθμος Johnson Συντομότερα μονοπάτια για όλα τα ζεύγη κορυφών σε αραιά γραφήματα με αρνητικά μήκη: Μετατροπή αρνητικών μηκών σε μη αρνητικά χωρίς να αλλάξουν τα συντομότερα μονοπάτια Αλγόριθμος για γράφημα G(V, E, w): Νέα κορυφή s που συνδέεται με κάθε v V με ακμή μηδενικού μήκους: G (V {s}, E {(s, v)}, w) Bellman-Ford για G με αρχική κορυφή s Έστω h(v) απόσταση κορυφής v V από s Αν όχι κύκλος αρνητικού μήκους, υπολόγισε νέα (μη αρνητικά) μήκη: Για κάθε v V, Dijkstra σε με αρχική κορυφή v Χρονική πολυπλοκότητα: Bellman-Ford και n φορές Dijkstra: Θ(nm+ n log n) Ορθότητα: Νέαμήκημηαρνητικά: h( ) αποστάσεις από s, καιισχύειότι Μεταβολή στα μήκη δεν επηρεάζει συντομότερα μονοπάτια Μήκος κάθε α β μονοπατιού μεταβάλλεται κατά h(β) h(α) Έστω p (α = v 0, v 1,, v k = β) οποιοδήποτε α β μονοπάτι Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 31 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Συντομότερες Διαδρομές 3

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