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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

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

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

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

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

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

Transcript:

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

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

Κύκλοι Αρνητικού Μήκους ιαδρομή: ακολ. κορυφών όπου διαδοχικές συνδέονται με ακμή. Μονοκονδυλιά: διαδρομή χωρίς επαναλαμβανόμενες ακμές. (Απλό) μονοπάτι: διαδρομή χωρίς επαναλαμβανόμενες κορυφές. Υπάρχει διαδρομή u v ανν υπάρχει μονοπάτι u v. Συντομότερη διαδρομή είναι μονοπάτι εκτός αν... Υπάρχει κύκλος αρνητικού μήκους! Αποστάσεις δεν ορίζονται γιατί συνολικό μήκος διαδρομής μπορεί να μειώνεται επ άπειρο! Κύκλος αρνητικού μήκους σε κάποια u v διαδρομή d(u, v) =. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Συντομότερες ιαδρομές 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 μονοπάτι. ΣΜ αναπαρίσταται με πίνακα γονέων. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Συντομότερες ιαδρομές 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; Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Συντομότερες ιαδρομές 5

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

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

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

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

Αλγ. Bellman-Ford ως DP Ιδέα: δοκιμή όλων των ακμών σε κάθε πιθανή θέση για συντομότερο 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, με δυναμικό προγραμματισμό. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016)

Αλγ. 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). Αλγόριθμος δεν επιστρέφει ένδειξη για κύκλο αρνητικού μήκους. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016)

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

Συντομότερα Μονοπάτια σε 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 ) αφού Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Συντομότερες ιαδρομές 13

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

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

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

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

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

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

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

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

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

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

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

Παράδειγμα 30

Υπολογισμός Συντομότερων Μονοπατιών 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. Εύκολη τροποποίηση προηγούμενης υλοποίησης. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Συντομότερες ιαδρομές 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. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2016) Συντομότερες ιαδρομές 33

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