Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών Αλγόριθμοι και πολυπλοκότητα Στάθης Ζάχος, Δημήτρης Φωτάκης
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς.
Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών Υπολογισμός απόστασης 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 ). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 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 }: Φαύλος κύκλος(;): d(v i, v k ) d(v i ) και d(v i ) d(v i, v k ) υναμικός προγραμματισμός: υπολογισμός όλων με συστηματικό bottom-up τρόπο! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 27
Αλγόριθμος Floyd-Warshall 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 0, D 1,, D n : Υπολογισμός D n με δυναμικό προγραμματισμό. Κύκλος αρνητικού μήκους αν D n, v i ] < 0. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 28
Αλγόριθμος Floyd-Warshall Τυπικός δυναμικός προγραμματισμός: Χρόνος: Θ(n 3 ) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 29
Παράδειγμα 30
Υπολογισμός Συντομότερων Μονοπατιών 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. Εύκολη τροποποίηση προηγούμενης υλοποίησης. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 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. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 33
Αλγόριθμος Johnson Χρονική πολυπλοκότητα: Bellman-Ford και n φορές Dijkstra: Θ(nm+ n 2 log n). Ορθότητα: Νέαμήκημηαρνητικά: h( ) αποστάσεις από s, και ισχύει ότι Μεταβολή στα μήκη δεν επηρεάζει συντομότερα μονοπάτια. Μήκος κάθε α β μονοπατιού μεταβάλλεται κατά h(β) h(α). Έστω p (α = v 0, v 1,, v k = β) οποιοδήποτε α β μονοπάτι. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 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 για μετατροπή σε θετικά! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Συντομότερες ιαδρομές 35
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.