Μέγιστη Ροή Ελάχιστη Τομή Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Δίκτυα και Ροές Δίκτυο : κατευθυνόμενο γράφημα G(V, E). Πηγή, προορισμός, χωρητικότητα ακμής b e. 4 6 7 6 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Δίκτυα και Ροές Δίκτυο : κατευθυνόμενο γράφημα G(V, E). Πηγή, προορισμός, χωρητικότητα ακμής b e. ροή μεγέθους d : Χωρητικότητα: Διατήρηση ροής: Μέγεθος: 4 (4) 4 (6) () 4 (7) (6) 9 ( ) 4 (4) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Μέγιστη Ροή Πρόβλημα Μέγιστης Ροής (Max-Flow): Δεδομένου δικτύου G(V, E,,, b) 4 6 7 6 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4 4
Μέγιστη Ροή Πρόβλημα Μέγιστης Ροής (Max-Flow): Δεδομένου δικτύου G(V, E,,, b) Υπολόγισε ροή με μέγιστη τιμή. 4 (4) 4 (6) () 4 (7) (6) 4 (4) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Μέγιστη Ροή Πρόβλημα Μέγιστης Ροής (Max-Flow): Δεδομένου δικτύου G(V, E,,, b) Υπολόγισε ροή με μέγιστη τιμή. 4 (4) 4 (6) () 4 (7) (6) 4 (4) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 6
Τομή τομή χωρητικότητας d : Διαμέριση (S, V \ S) με S και V \ S. Χωρητικότητα 4 6 7 6 4 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 7
Τομή τομή χωρητικότητας d : Διαμέριση (S, V \ S) με S και V \ S. Χωρητικότητα 4 6 7 6 4 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 8
Τομή τομή χωρητικότητας d : Διαμέριση (S, V \ S) με S και V \ S. Χωρητικότητα Ακμές χωρητικότητας d που χωρίζουν από. 4 6 7 6 4 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 9
Ελάχιστη Τομή Πρόβλημα Ελάχιστης Τομής (Min Cu): Δεδομένου δικτύου G(V, E,,, b) Υπολόγισε τομή με ελάχιστη χωρητικότητα. 4 6 7 6 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 0 4
Ελάχιστη Τομή Πρόβλημα Ελάχιστης Τομής (Min Cu): Δεδομένου δικτύου G(V, E,,, b) Υπολόγισε τομή με ελάχιστη χωρητικότητα. 4 6 7 6 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Ροές και Τομές Έστω ροή f και τομή (S, V \ S). () (6) 4 (6) () () 4 (6) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Ροές και Τομές Έστω ροή f και τομή (S, V \ S). Κάθε ροή f και τομή (S, V \ S): () (6) 4 (6) () () 4 (6) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Ροές και Τομές Έστω ροή f και τομή (S, V \ S). Κάθε ροή f και τομή (S, V \ S): () (6) 4 (6) () () 4 (6) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Ροές και Τομές Έστω ροή f και τομή (S, V \ S). Κάθε ροή f και τομή (S, V \ S): Μέγιστη ροή ελάχιστη τομή. () (6) () () 4 (6) 4 (6) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Μέγιστη Ροή και Ελάχιστη Τομή Μέγιστη ροή = Ελάχιστη τομή! Max-Flow Min-Cu Θεώρημα. Ακμές ελάχιστης τομής κορεσμένες σε μέγιστη ροή. 4 (4) 4 (6) () 4 (7) (6) 4 (4) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 6
Μέγιστη Ροή και Ελάχιστη Τομή Μέγιστη ροή = Ελάχιστη τομή! Max-Flow Min-Cu Θεώρημα. Ακμές ελάχιστης τομής κορεσμένες σε μέγιστη ροή. Μέγιστη ροή, ελάχιστη τομή: συνεκτικότητα / μεταφορική ικανότητα δικτύου. 4 (4) () 4 (7) (6) 4 (4) 4 (6) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 7
Υπολειμματικό Δίκτυο Δίκτυο G(V, E, b) και ροή f. (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 8
Υπολειμματικό Δίκτυο Δίκτυο G(V, E, b) και ροή f. Υπολειμματικό δίκτυο G f (V, E f, r f ) : Χωρητικότητα (μπρος-ακμές): Ροή (πίσω-ακμές): (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 9
Υπολειμματικό Δίκτυο Δίκτυο G(V, E, b) και ροή f. Υπολειμματικό δίκτυο G f (V, E f, r f ) : Χωρητικότητα (μπρος-ακμές): Ροή (πίσω-ακμές): (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 0
Υπολειμματικό Δίκτυο Δίκτυο G(V, E, b) και ροή f. Υπολειμματικό δίκτυο G f (V, E f, r f ) : Χωρητικότητα (μπρος-ακμές): Ροή (πίσω-ακμές): μονοπάτι στο υπολειμματικό: επαυξητικό μονοπάτι. (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Χαρακτηρισμός Μέγιστης Ροής Μέγιστη ροή ανν όχι επαυξητικό μονοπάτι. (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Χαρακτηρισμός Μέγιστης Ροής Μέγιστη ροή ανν όχι επαυξητικό μονοπάτι. Επαυξητικό μονοπάτι αύξηση ροής όχι μέγιστη ροή. (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Χαρακτηρισμός Μέγιστης Ροής Μέγιστη ροή ανν όχι επαυξητικό μονοπάτι. Επαυξητικό μονοπάτι αύξηση ροής όχι μέγιστη ροή. 4 (6) () () () () () 0 () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Χαρακτηρισμός Μέγιστης Ροής Μέγιστη ροή ανν όχι επαυξητικό μονοπάτι. Επαυξητικό μονοπάτι αύξηση ροής όχι μέγιστη ροή. Όχι επαυξητικό μονοπάτι : (6) () () () () 0 () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Χαρακτηρισμός Μέγιστης Ροής Μέγιστη ροή ανν όχι επαυξητικό μονοπάτι. Επαυξητικό μονοπάτι αύξηση ροής όχι μέγιστη ροή. Όχι επαυξητικό μονοπάτι : Κορυφές προσπελάσιμες από ορίζουν τομή χωρητικότητας ίσης με ροή. (6) () () () () 0 () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 6
Χαρακτηρισμός Μέγιστης Ροής Μέγιστη ροή ανν όχι επαυξητικό μονοπάτι. Επαυξητικό μονοπάτι αύξηση ροής όχι μέγιστη ροή. Όχι επαυξητικό μονοπάτι : Κορυφές προσπελάσιμες από ορίζουν τομή χωρητικότητας ίσης με ροή. Μέγιστη ροή και ελάχιστη τομή λόγω Θ. Max-Flow-Min-Cu! (6) () () () () 0 () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 7
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 8
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. (6) () () () () () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 9
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. 4 (6) () () () () 0 () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 0
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. 4 (6) () () () () 0 () () 4 () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. 4 (6) () () () () 0 () () 4 () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. (6) () () () () 0 () () 4 () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. (6) () () () () 0 () () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Αλγόριθμος Ford-Fulkeron Ενόσω επαυξητικό μονοπ. p στο υπολειμματικό, Χωρητικότητα επαυξητικού Αύξηση ροής κατά δ στο p και ενημέρωση υπολειμματικού δικτύου. Επαυξητικό μονοπάτι με π.χ. DFS, BFS. Επαύξηση σε χρόνο Ο(m). (6) () () () () () 0 () () Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Χρόνος Εκτέλεσης Ακέραιες χωρητικότητες U: Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 6
Χρόνος Εκτέλεσης Ακέραιες χωρητικότητες U: Επαύξηση αυξάνει ροή τουλάχιστον κατά. Χρόνος εκτέλεσης Ο(m U). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 7
Χρόνος Εκτέλεσης Ακέραιες χωρητικότητες U: Επαύξηση αυξάνει ροή τουλάχιστον κατά. Χρόνος εκτέλεσης Ο(m U). Δίκτυο με ακέραιες χωρητικότητες έχει ακέραιη μέγιστη ροή. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 8
Χρόνος Εκτέλεσης Ακέραιες χωρητικότητες U: Επαύξηση αυξάνει ροή τουλάχιστον κατά. Χρόνος εκτέλεσης Ο(m U). Δίκτυο με ακέραιες χωρητικότητες έχει ακέραιη μέγιστη ροή. Μπορεί εκθετικός χρόνος για 0 0 μεγάλες χωρητικότητες! 0 0 0 0 0 0 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 9
Χρόνος Εκτέλεσης Ακέραιες χωρητικότητες U: Επαύξηση αυξάνει ροή τουλάχιστον κατά. Χρόνος εκτέλεσης Ο(m U). Δίκτυο με ακέραιες χωρητικότητες έχει ακέραιη μέγιστη ροή. Μπορεί εκθετικός χρόνος για μεγάλες χωρητικότητες! Μπορεί να μην τερματίσει για άρρητες χωρητικότητες. 0 0 0 0 0 0 0 0 Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 40
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αντί «μέγιστης», «αρκετά μεγάλης» χωρητικότητας: Υπολειμματικό γράφημα μόνο με χωρητικότητες Δ. Αν όχι επαυξητικό μονοπάτι, Δ Δ /. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αντί «μέγιστης», «αρκετά μεγάλης» χωρητικότητας: Υπολειμματικό γράφημα μόνο με χωρητικότητες Δ. Αν όχι επαυξητικό μονοπάτι, Δ Δ /. Χρόνος εκτέλεσης Ο(m log U). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 44
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αντί «μέγιστης», «αρκετά μεγάλης» χωρητικότητας: Υπολειμματικό γράφημα μόνο με χωρητικότητες Δ. Αν όχι επαυξητικό μονοπάτι, Δ Δ /. Χρόνος εκτέλεσης Ο(m log U). Επαυξητικό μονοπάτι ελάχιστου μήκους (ακμών). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 4
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αντί «μέγιστης», «αρκετά μεγάλης» χωρητικότητας: Υπολειμματικό γράφημα μόνο με χωρητικότητες Δ. Αν όχι επαυξητικό μονοπάτι, Δ Δ /. Χρόνος εκτέλεσης Ο(m log U). Επαυξητικό μονοπάτι ελάχιστου μήκους (ακμών). Υπολογισμός με BFS σε χρόνο Ο(m). #επαυξήσεων Ο(n m), χρόνος εκτέλεσης Ο(n m ). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 46
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αντί «μέγιστης», «αρκετά μεγάλης» χωρητικότητας: Υπολειμματικό γράφημα μόνο με χωρητικότητες Δ. Αν όχι επαυξητικό μονοπάτι, Δ Δ /. Χρόνος εκτέλεσης Ο(m log U). Επαυξητικό μονοπάτι ελάχιστου μήκους (ακμών). Υπολογισμός με BFS σε χρόνο Ο(m). #επαυξήσεων Ο(n m), χρόνος εκτέλεσης Ο(n m ). Βελτίωση Dinic: υπολογισμός με BFS σε χρόνο Ο(n)! Χρόνος εκτέλεσης Ο(n m). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 47
Βελτιώσεις Edmond-Karp Επαυξητικό μονοπάτι με μέγιστη χωρητικότητα. m επαυξήσεις μέγιστη χωρητικότητα στο μισό. Αντί «μέγιστης», «αρκετά μεγάλης» χωρητικότητας: Υπολειμματικό γράφημα μόνο με χωρητικότητες Δ. Αν όχι επαυξητικό μονοπάτι, Δ Δ /. Χρόνος εκτέλεσης Ο(m log U). Επαυξητικό μονοπάτι ελάχιστου μήκους (ακμών). Υπολογισμός με BFS σε χρόνο Ο(m). #επαυξήσεων Ο(n m), χρόνος εκτέλεσης Ο(n m ). Βελτίωση Dinic: υπολογισμός με BFS σε χρόνο Ο(n)! Χρόνος εκτέλεσης Ο(n m). Καλύτεροι αλγόριθμοι με blocking-flow και puh-relabel τεχνικές έχουν χρόνους O(n m log n) και O(n ) αντιστ. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 48
Μέγιστο Ταίριασμα Διμερές γράφημα: υπολογισμός μέγιστου αριθμού ακμών χωρίς κοινά άκρα (ταίριασμα). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 49
Μέγιστο Ταίριασμα Διμερές γράφημα: υπολογισμός μέγιστου αριθμού ακμών χωρίς κοινά άκρα (ταίριασμα). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07) 0
Μέγιστο Ταίριασμα Διμερές γράφημα: υπολογισμός μέγιστου αριθμού ακμών χωρίς κοινά άκρα (ταίριασμα). Μέγιστη ροή: πηγή, προορισμός, προσανατολισμός, χωρητικότητα. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Μέγιστο Ταίριασμα Διμερές γράφημα: υπολογισμός μέγιστου αριθμού ακμών χωρίς κοινά άκρα (ταίριασμα). Μέγιστη ροή: πηγή, προορισμός, προσανατολισμός, χωρητικότητα. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)
Μέγιστο Ταίριασμα Διμερές γράφημα: υπολογισμός μέγιστου αριθμού ακμών χωρίς κοινά άκρα (ταίριασμα). Μέγιστη ροή: πηγή, προορισμός, προσανατολισμός, χωρητικότητα. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 07)