Μέγιστη Ροή Ελάχιστη Τομή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Δίκτυα και Ροές Δίκτυο : κατευθυνόμενο γράφημα G(V, E). Πηγή, προορισμός, χωρητικότητα ακμής b e. ροή μεγέθους d : Χωρητικότητα: Διατήρηση ροής: Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Μέγεθος: 4 6 7 6 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 4 Μέγιστη Ροή Πρόβλημα Μέγιστης Ροής (Max-Flow): Δεδομένου δικτύου G(V, E,,, b) Υπολόγισε ροή με μέγιστη τιμή. Τομή τομή χωρητικότητας d : Διαμέριση (S, V \ S) με S και V \ S. Χωρητικότητα Ακμές χωρητικότητας d που χωρίζουν από. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 4
Ελάχιστη Τομή Πρόβλημα Ελάχιστης Τομής (Min Cu): Δεδομένου δικτύου G(V, E,,, b) Υπολόγισε τομή με ελάχιστη χωρητικότητα. Ροές και Τομές Έστω ροή f και τομή (S, V \ S). Κάθε ροή f και τομή (S, V \ S): Μέγιστη ροή ελάχιστη τομή. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 6 Μέγιστη Ροή και Ελάχιστη Τομή Μέγιστη ροή = Ελάχιστη τομή! Max-Flow Min-Cu Θεώρημα. Ακμές ελάχιστης τομής κορεσμένες σε μέγιστη ροή. Μέγιστη ροή, ελάχιστη τομή: συνεκτικότητα / μεταφορική ικανότητα δικτύου. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 7 Υπολειμματικό Δίκτυο Δίκτυο G(V, E, b) και ροή f. Υπολειμματικό δίκτυο G f (V, E f, r f ) : Χωρητικότητα (μπρος-ακμές): Ροή (πίσω-ακμές): μονοπάτι στο υπολειμματικό: επαυξητικό μονοπάτι. (6) () () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 8
Χαρακτηρισμός Μέγιστης Ροής Μέγιστη ροή ανν όχι επαυξητικό μονοπάτι. Επαυξητικό μονοπάτι αύξηση ροής όχι μέγιστη ροή. Όχι επαυξητικό μονοπάτι : Κορυφές προσπελάσιμες από ορίζουν τομή χωρητικότητας ίσης με ροή. Μέγιστη ροή και ελάχιστη τομή λόγω Θ. Max-Flow-Min-Cu! (6) () () () () () () 0 () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 9 Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. Επαυξητικό μονοπάτι με π.χ. DFS, BFS. Επαύξηση σε χρόνο Ο(m). () 4 (6) () () () 0 () 4 () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 0 Χρόνος Εκτέλεσης Βελτιώσεις Edmond-Karp Ακέραιες χωρητικότητες U: Επαύξηση αυξάνει ροή τουλάχιστον κατά. Χρόνος εκτέλεσης Ο(m U). Δίκτυο με ακέραιες χωρητικότητες έχει ακέραιη μέγιστη ροή. Μπορεί εκθετικός χρόνος για μεγάλες χωρητικότητες! Μπορεί να μην τερματίσει για άρρητες χωρητικότητες. Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αντί «μέγιστης», «αρκετά μεγάλης» χωρητικότητας: Υπολειμματικό γράφημα μόνο με χωρητικότητες Δ. Αν όχι επαυξητικό μονοπάτι, Δ Δ /. Χρόνος εκτέλεσης Ο(m log U). Επαυξητικό μονοπάτι ελάχιστου μήκους (ακμών). Υπολογισμός με BFS σε χρόνο Ο(m). #επαυξήσεων Ο(nm), χρόνος εκτέλεσης Ο(nm ). Βελτίωση Dinic: υπολογισμός με BFS σε χρόνο Ο(n)! Χρόνος εκτέλεσης Ο(n m). Καλύτεροι αλγόριθμοι με blocking-flow και puh-relabel τεχνικές έχουν χρόνους O(nmlogn) και O(n ) αντιστ. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή
Μέγιστο Ταίριασμα Διμερές γράφημα: υπολογισμός μέγιστου αριθμού ακμών χωρίς κοινά άκρα (ταίριασμα). Μέγιστη ροή: πηγή, προορισμός, προσανατολισμός, χωρητικότητα. Ελάχιστη Τομή Μη κατευθυνόμενο συνεκτικό πολυγράφημα G(V, E). Πολλαπλές ακμές, όχι χωρητικότητες / βάρη. Τομή: διαμέριση κορυφών (S, V \ S) με S V. Σύνολο ακμών που αφαίρεσή τους δημιουργεί τουλ. συνεκτικές συνιστώσες. Μέγεθος τομής Πρόβλημα: υπολογισμός μιας ελάχιστης τομής. Λύνεται σε χρόνο Ο(n 4 ) με διαδοχικές εφαρμογές αλγόριθμου μέγιστης ροής. Υπάρχουν εξειδικευμένοι αλγόριθμοι με χρόνο Ο(n ). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 4 Σύμπτυξη Κορυφών Σύμπτυξη κορυφών u και v: Αντικατάσταση u, v από μία νέα κορυφή uv. Κάθε ακμή {x, u} / {x, v} αντικαθίσταται από ακμή {x, uv}. Ακμές {u, v} παραλείπονται. Διαδοχικές συμπτύξεις κορυφών, και,. Τομή σε γράφημα μετά από διαδοχικές συμπτύξεις αντιστοιχεί σε τομή σε αρχικό γράφημα. Λειτουργία σύμπτυξης δεν μειώνει ελάχιστη τομή. Πιθανοτικός Αλγόριθμος [Karger, 9] Ενόσω το γράφημα που απομένει έχει > κορυφές: Διάλεξε μια τυχαία ακμή {u, v}. Αντικατέστησε γράφημα με αυτό που προκύπτει από σύμπτυξη κορυφών u και v. Ακμές τομής αυτές μεταξύ κορυφών που απομένουν. Τομή ορίζεται από κορυφές που συμπτύχθηκαν στις κορυφές που απομένουν. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 6
Παράδειγμα Αρχικές συμπτύξεις,, και,. Σύμπτυξη, 4. Σύμπτυξη, 4. Πιθανοτικός Αλγόριθμος [Karger, 9] Mone Carlo αλγόριθμος: Πάντα τερματίζει έπειτα από n συμπτύξεις. Υπολογίζει μία τομή, μπορεί όχι ελάχιστη. Ποιά πιθανότητα p να καταλήξει σε ελάχιστη τομή; Αν p όχι αμελητέα, μεγαλώνει γρήγορα με επαναλήψεις. Π.χ. αν p /n, πιθανότητα τουλ. μία από n lnn επαναλήψεις να καταλήξει σε ελάχιστη τομή /n. Έστω ελάχιστη τομή C = {e,, e k } μεγέθους k. Αλγ. επιστρέφει C ανν καμία από ακμές C δεν επιλεγεί για σύμπτυξη. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 7 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 8 Πιθανότητα Επιτυχίας Συγκεκριμένη ελάχιστη τομή C = {e,, e k } μεγέθους k. Πιθανότητα καμία από ακμές C δεν επιλέγεται για σύμπτυξη. Ελάχιστος βαθμός κορυφής ελάχιστη τομή. G(V, E) έχει ελάχιστο βαθμό κορυφής k. G έχει #ακμών nk/. Πιθανότητα δεν επιλέγεται ακμή C για η σύμπτυξη: Μετά από συμπτύξεις, γράφημα έχει ελάχιστο βαθμό k. #ακμών (n )k/. Πιθανότητα δεν επιλέγεται ακμή C για (+) η σύμπτυξη: Πιθανότητα Επιτυχίας Συγκεκριμένη ελάχιστη τομή C = {e,, e k } μεγέθους k. Πιθανότητα καμία από ακμές C δεν επιλέγεται για σύμπτυξη: Άρα p /n, και πιθανότητα τουλ. μία από n logn επαναλήψεις να καταλήξει σε ελάχιστη τομή /n. Χρόνος εκτέλεσης Ο(n ) / επανάληψη. Συνολικός χρόνος Ο(n 4 logn). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 9 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή 0
Χρόνος Εκτέλεσης Όμως (σχετικά) μικρή πιθανότητα αποτυχίας στις πρώτες μισές συμπτύξεις! Π.χ. πιθανότητα να μην συμπτυχθεί καμία ακμή C στις πρώτες (n )/ συμπτύξεις /4. «Ακριβές» συμπτύξεις είναι «επιτυχημένες». Αναδρομική υλοποίηση σε φάσεις: Εκτέλεση βασικού αλγόριθμου για n/ συμπτύξεις 4 φορές. Συνεχίσουμε αναδρομικά για καθένα από τα αποτελέσματα. Χρόνος εκτέλεσης Ο(n log n) για πιθανότητα επιτυχίας = Ο(/n). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 009) Μέγιστη Ροή - Ελάχιστη Τομή