Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Bellman Ford Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 1 / 52
Εύρεση Ελάχιστου Μονοπατιού Αλγόριθµος Bellman-Ford Γραµµικός Προγραµµατισµός (linear programming) και περιορισµοί διάταξη VLSI Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 2 / 52
Κύκλοι Αρνητικού Βάρους Επιλύει το πρόβληµα στην περίπτωση που οι ακµές ενδέχεται να έχουν αρνητικά ϐάρη. Αν ένα γράφηµα G = (V, E) περιέχει ένας κύκλο αρνητικού ϐάρους, τότε πιθανώς να µην υπάρχουν κάποια ελάχιστα µονοπάτια. Παράδειγµα: Αλγόριθµος Bellman-Ford: Βρίσκει όλα τα ελάχιστα µονοπάτια από µια πηγή s V προς όλες τις κορυφές v V ή αποφασίζει αν υπάρχει κύκλος αρνητικού ϐάρους. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 3 / 52
Αλγόριθµος Bellman-Ford d[s] 0 για κάθε v V {s} d[v] αρχικοποίηση για i 1 έως V 1 για κάθε ακµή (u, v) E αν d[v] > d[u]+w(u, v) τότε d[v] d[u]+w(u, v) } ϐήµα χαλάρωσης για κάθε ακµή (u, v) E αν d[v] > d[u]+w(u, v) τότε υπάρχει κύκλος αρνητικού ϐάρους d[v] = δ(s, v), αν δεν υπάρχουν αρνητικού ϐάρους κύκλοι χρόνος: O(VE) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 4 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 5 / 52
Παράδειγµα Bellman-Ford Αρχικοποίηση Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 6 / 52
Παράδειγµα Bellman-Ford ιάταξη χαλάρωσης ακµών Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 7 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 8 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 9 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 10 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 11 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 12 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 13 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 14 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 15 / 52
Παράδειγµα Bellman-Ford Τέλος πρώτης επανάληψης Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 16 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 17 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 18 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 19 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 20 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 21 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 22 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 23 / 52
Παράδειγµα Bellman-Ford Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 24 / 52
Παράδειγµα Bellman-Ford Τέλος 2ης επανάληψης (και 3ης και 4ης) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 25 / 52
Ορθότητα (Correctness) Theorem Αν G = (V, E) δεν περιλαµβάνει αρνητικού ϐάρους κύκλους, µετά την εφαρµογή του αλγορίθµου Bellman-Ford, d[v] = δ(s, v) για κάθε v V. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 26 / 52
Ορθότητα (Correctness) Απόδειξη Εστω v V µια οποιαδήποτε κορυφή και p το ελάχιστο µονοπάτι από την s στη v µε το ελάχιστο πλήθος ακµών. Αφού το p είναι ελάχιστο µονοπάτι, έχουµε: δ(s, v i ) = δ(s, v i 1 )+w(v i 1, v i ). Αρχικά, d[v 0 ] = 0 = δ(s, v 0 ), και d[v 0 ] είναι αµετάβλητο(d[v] δ(s, v)) µετά από 1 πέρασµα του E, d[v 1 ] = δ(s, v 1 ). µετά από 2 περάσµατα του E, d[v 2 ] = δ(s, v 2.). µετά από k περάσµατα του E, d[v k ] = δ(s, v k ). Αφού ο G δεν περιέχει αρνητικού ϐάρους κύκλους, το p είναι απλό. Το µεγαλύτερο απλό µονοπάτι έχει V 1 ακµές. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 27 / 52
Ανίχνευση Κύκλου µε Αρνητικό Βάρος Corollary Αν µια τιµή d[v] δεν συγκλίνει µετά από V 1 περάσµατα, τότε υπάρχει κύκλος µε αρνητικό ϐάρος στον G προσβάσιµο από την s. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 28 / 52
Γραµµικός Προγραµµατισµός Εστω A ένας πίνακας m n, b m διάνυσµα και c n διάνυσµα. Βρες n διάνυσµα x που µεγιστοποιεί το c T x δεδοµένου ότι Ax b, ή αποφάσισε ότι δεν υπάρχει τέτοια λύση. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 29 / 52
Αλγόριθµοι Γραµµικού Προγραµµατισµού Αλγόριθµοι για το γενικό πρόβληµα Μέθοδοι Simplex : πρακτικές αλλά εκθετικοί χρόνοι (χείριστη περίπτωση). Μέθοδοι Εσωτερικού Σηµείου: πολυωνυµικός χρόνος και ανταγωνίζεται την simplex. Πρόβληµα επιλυσιµότητας: κανένα κριτήριο ϐελτιστοποίησης απλά ϐρες κάποιο x τέτοιο ώστε A b. γενικά, τόσο δύσκολο όσο τα κοινά LP. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 30 / 52
Λύνοντας ένα σύστηµα µε διαφορετικές συνιστώσες Γραµµικός προγραµµατισµός όπου κάθε γραµµή του A περιέχει ακριβώς ένα 1, ένα -1 και τα υπόλοιπα 0. Παράδειγµα: x 1 x 2 3 x 2 x 3 2 x 1 x 3 2 Γράφος Περιορισµών x j x i w ij Λύση: x 1 = 3 x 2 = 0 x 3 = 2 (Ο πίνακας Α έχει διαστάσεις E V ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 31 / 52
Μη Ικανοποιήσιµοι Περιορισµοί Theorem Αν ο γράφος περιορισµών περιέχει έναν κύκλο αρνητικού ϐάρους, τότε το σύστηµα των διαφορών είναι µη ικανοποιήσιµο. Proof. Εστω ότι ο κύκλος µε αρνητικό ϐάρος είναι ο v 1 v 2... v k v 1. Τότε, έχουµε x 2 x 1 w 12 x 3 x 2 w 23. x k x k 1 w k 1,k x 1 x k w k1 0 weight of cycle < 0 Συνεπώς δεν υπάρχει τιµή του x i περιορισµούς. που µπορεί να ικανοποιήσει τους Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 32 / 52
Ικανοποίηση Περιορισµών Theorem Αν ο γράφος περιορισµών δεν περιέχει κανέναν κύκλο αρνητικού ϐάρους, τότε το σύστηµα των διαφορών είναι ικανοποιήσιµο. Proof. Πρόσθεσε µια νέα κορυφή s στο V µε µηδενικό ϐάρος ακµής προς κάθε κορυφή v i V. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 33 / 52
Ικανοποίηση Περιορισµών Theorem Αν ο γράφος περιορισµών δεν περιέχει κανέναν κύκλο αρνητικού ϐάρους, τότε το σύστηµα των διαφορών είναι ικανοποιήσιµο. Proof. Πρόσθεσε µια νέα κορυφή s στο V µε µηδενικό ϐάρος ακµής προς κάθε κορυφή v i V. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 34 / 52
Απόδειξη (συν.) Ισχυρισµός: Η ανάθεση x i = δ(s, v i ) λύνει το σύστηµα των περιοριµών. Εστω περιορισµός x j x i w ij, και τα ελάχιστα µονοπάντια από το s στο v j και v i : Η τριγωνική ανισότητα µας δίνει δ(s, v j ) δ(s, v i )+w ij. Αφού x i = δ(s, v i ) και x j = δ(s, v j ), τότε ο περιορισµός x j x i w ij ικανοποιείται. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 35 / 52
Bellman-Ford και Γραµµικός Προγραµµατισµός Corollary Ο αλγόριθµος Bellman-Ford λύνει ένα σύστηµα µε m περιορισµούς διαφορών και n µεταβλητές σε χρόνο O(mn). Τα ελάχιστα µονοπάτια µιας πηγής είναι ένα απλό πρόβληµα LP. O Bellman-Ford µεγιστοποιεί το x 1 + x 2 +...+x n αναφορικά µε το x j x i w ij και x i 0 (άσκηση) O Bellman-Ford επίσης ελαχιστοποιεί το max i {x i } min i {x i } (άσκηση) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 36 / 52
VLSI Πρόβληµα: Συνέπτηξε (σε µια διάσταση) τον χώρο µεταξύ των γνωρισµάτων ενός σχεδιαγράµµατος VLSI χωρίς να έρθουν πολύ κοντά κάποια από τα χαρακτηριστικά. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 37 / 52
VLSI Περιορισµός: x 2 x 1 d 1 +λ Ο Bellman-Ford ελαχιστοποιεί την max i {x i } min i {x i }, που συµπιέζει το σχεδιάγραµµα στη χ-διάσταση. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 38 / 52
Συντοµότερα µονοπάτια στα ΚΑΓ Χαλαρώνοντας τις ακµές σε ένα ΚΑΓ µε ϐάρη σύµφωνα µε την τοπολογική ταξινόµηση µπορούµε να υπολογίσουµε τα συντοµότερα µονοπάτια από µια απλή πηγή σε Θ(V+E) χρόνο. Τα συντοµότερα µονοπάτια είναι πάντα καλά ορισµένα σε ένα ΚΑΓ αφού ακόµα και αν υπάρχουν ακµές µε αρνητικά ϐάρη, δεν µπορούν να υπάρχουν κύκλοι µε αρνητικά ϐάρη. Ο αλγόριθµος ξεκινάει µε την τοπολογική ταξινόµηση του ΚΑΓ Γίνεται µια διάταξη όλων των κορυφών της τοπολογικής ταξινόµησης και χαλαρώνεται κάθε ακµή που ϕεύγει από µια κορυφή. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 39 / 52
Συντοµότερα µονοπάτια στα ΚΑΓ DAG - Shortest- Paths (G,w,s) Topological Sort (G,w,s) d[s] = 0 for each v V {s} do d[v] = αρχικοποίηση Θ(V) Analysis for each vertex u, taken in topological order do for each vertex v Adj[u] do if d[v] > d[u]+w(u, v) then d[v] d[u]+w(u, v) E times Θ(V+E) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 40 / 52
Theorem Μετά το τέλος της εκτέλεσης DAG -Shortest -Paths (G,w,s) ισχύει για όλα τα v V ότι d[v] = δ(s, v). Απόδειξη Εστω p : v 0 v 1 v k, όπου v 0 = s και v k = v είναι το συντοµότερο µονοπάτι. Λόγω του ότι χρησιµοποιείται τοπολογική ταξινόµηση, οι ακµές του p χαλαρώνουν µε την εξής διάταξη Από το Λήµµα 3 προκύπτει ότι για i = 0, 1,..., k. (v 0, v 1 ),(v 1, v 2 ),...,(v k 1, v k ). d[v i ] = δ(s, v i ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 41 / 52
6 1 r s t x y z 5 2 7-1 -2 0 3 4 2 (α) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 42 / 52
6 1 r s t x y z 5 2 7-1 -2 0 3 4 2 (β) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 43 / 52
6 1 r s t x y z 5 2 7-1 -2 0 2 6 3 4 2 (γ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 44 / 52
6 1 r s t x y z 5 2 7-1 -2 0 2 6 6 4 3 4 2 (δ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 45 / 52
6 1 r s t x y z 5 2 7-1 -2 0 2 6 5 4 3 4 (ǫ) 2 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 46 / 52
6 1 r s t x y z 5 2 7-1 -2 0 2 6 5 4 3 4 2 (στ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 47 / 52
6 1 r s t x y z 5 2 7-1 -2 0 2 6 5 4 3 4 (ζ) 2 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 48 / 52
Σηµειώµατα Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 49 / 52
Σηµείωµα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήµιον Αθηνών 2015, Νικόλαος Μισυρλής, Αλγόριθµοι και Πολύπλοκότητα. Ενότητα 3 - Αλγόριθµοι Γραφηµάτων Εκδοση:1.01. Αθήνα 2015. ιαθέσιµο από τη δικτυακή διεύθυνση:http://opencourses.uoa.gr/courses/di13/. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 50 / 52
Σηµείωµα Αδειοδότησης Το παρόν υλικό διατίθεται µε τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εµπορική Χρήση Παρόµοια ιανοµή 4.0 [1] ή µεταγενέστερη, ιεθνής Εκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ϕωτογραφίες, διαγράµµατα κ.λ.π., τα οποία εµπεριέχονται σε αυτό και τα οποία αναφέρονται µαζί µε τους όρους χρήσης τους στο «Σηµείωµα Χρήσης Εργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εµπορική ορίζεται η χρήση: που δεν περιλαµβάνει άµεσο ή έµµεσο οικονοµικό όφελος από την χρήση του έργου, για το διανοµέα του έργου και αδειοδόχο που δεν περιλαµβάνει οικονοµική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προορίζει στο διανοµέα του έργου και αδειοδόχο έµµεσο οικονοµικό όφελος (π.χ. διαφηµίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος µπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιµοποιεί το έργο για εµπορική χρήση, εφόσον αυτό του Ϲητηθεί. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 51 / 52
ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει: το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman Ford 52 / 52