Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΠΡΟΒΛΗΜΑΤΑ ΡΟΩΝ ΣΕ ΔΙΚΤΥΑ ( ΚΑΤΕΥΘΥΝΟΜΕΝΑ ΓΡΑΦΗΜΑΤΑ ) 1.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΠΡΟΒΛΗΜΑΤΑ ΡΟΩΝ ΣΕ ΔΙΚΤΥΑ ( ΚΑΤΕΥΘΥΝΟΜΕΝΑ ΓΡΑΦΗΜΑΤΑ ) 1."— Μεταγράφημα παρουσίασης:

1 ΠΡΟΒΛΗΜΑΤΑ ΡΟΩΝ ΣΕ ΔΙΚΤΥΑ ( ΚΑΤΕΥΘΥΝΟΜΕΝΑ ΓΡΑΦΗΜΑΤΑ ) 1

2 Τι θα πούμε; - Εισαγωγή σε: δίκτυα, πρόβλημα μέγιστης ροής χωρητικότητα, ροή - Μέθοδος Ford-Fulkerson ψευδοκώδικα, δίκτυα υπολοίπων, αυξητικά μονοπάτια αποκοπή γραφημάτων θεώρημα μέγιστης ροής ελάχιστης τομής παράδειγμα εκτέλεσης ανάλυση, χρόνος εκτέλεσης παραλλαγές προβλήματος μέγιστης ροής εφαρμογές 2

3 Δίκτυα Πρακτικά παραδείγματα δικτύων - Ρευστά σε σωλήνες - κομμάτια σε γραμμές παραγωγής - ρεύμα σε ηλεκτρικό δίκτυο - πληροφορία σε δίκτυο επικοινωνίας - μεταφορά αγαθών σε δρόμους… 3

4 4 Δεν καταλαβαίνω. Δώσε μου ένα παράδειγμα.

5 Δίκτυα Παράδειγμα: σωλήνες πετρελαίου Αναπαράσταση Δίκτυο ροών: κατευθυνόμενο γράφημα G=(V,E) S t v1 v2 v3 v4 S t v1 v2 v3 v4 Πηγή (κόμβος προέλευσης) Προορισμός (κόμβος απόληξης) 5

6 Το Πρόβλημα Μέγιστης Ροής Άτυπος ορισμός προβλήματος μέγιστης ροής: Ποιος είναι ο μεγαλύτερος ρυθμός με τον οποίο μπορούμε να στείλουμε το υλικό από τη πηγή στον προορισμό χωρίς παραβίαση των περιορισμών χωρητικότητας; 6 Παράδειγμα: σωλήνες πετρελαίου S t v1 v2 v3 v4 S t v1 v2 v3 v4 Πηγή (κόμβος προέλευσης) Προορισμός (κόμβος απόληξης) Αναπαράσταση Δίκτυο ροών: κατευθυνόμενο γράφημα G=(V,E)

7 Εδώ πες για διαίσθηση. Δηλαδή διαδρομή επαύξησης μέγιστη ροή/ελάχιστη αποκοπή 7

8 Χωρητικότητα uv 12 uv 6 c(u,v)=12 c(u,v)=6 Μεγάλος σωλήνας Μικρός σωλήνας 8 Παράδειγμα: σωλήνες πετρελαίου Αναπαράσταση Δίκτυο ροών: κατευθυντό γράφημα G=(V,E) S t v1 v2 v3 v4 S t v1 v2 v3 v4 Πηγή (κόμβος προέλευσης) Προορισμός (κόμβος απόληξης)

9 Χωρητικότητα v4 v2 v3 v4 Αν (u,v)  E  c(u,v) = Παράδειγμα: σωλήνες πετρελαίου S t v1 v2 v3 v4 S t v1 v2 v3 v4 Πηγή (κόμβος προέλευσης) Προορισμός (κόμβος απόληξης) Αναπαράσταση Δίκτυο ροών: κατευθυνόμενο γράφημα G=(V,E)

10 Χωρητικότητα – Ροή uv 6/12 uv 6/6 f(u,v)=6 Ροή μικρότερη της χωρητικότητας Μέγιστη Ροή 10 Παράδειγμα: σωλήνες πετρελαίου S t v1 v2 v3 v4 S t v1 v2 v3 v4 Πηγή (κόμβος προέλευσης) Προορισμός (κόμβος απόληξης) Αναπαράσταση Δίκτυο ροών: κατευθυνόμενο γράφημα G=(V,E)

11 Ροή S t v1 v2 v3 v4 S t v1 v2 v3 v Παράδειγμα: σωλήνες πετρελαίου Αναπαράσταση Δίκτυο ροών: κατευθυνόμενο γράφημα G=(V,E)

12 Ροή S t v1 v2 v3 v4 S t v1 v2 v3 v /8 6/ Παράδειγμα: σωλήνες πετρελαίου Αναπαράσταση Δίκτυο ροών: κατευθυνόμενο γράφημα G=(V,E)

13 Ροή S t v1 v2v4 v3 S t v1 v2 v3 v /8 6/ Παράδειγμα: σωλήνες πετρελαίου

14 Ροή S t v1 v2v4 v3 S t v1 v2 v3 v4 3/8 3/3 3/6 6/8 6/ Παράδειγμα: σωλήνες πετρελαίου

15 Ροή S t v1 v2v4 v3 S t v1 v2 v3 v4 3/8 3/3 3/6 6/8 6/ Παράδειγμα: σωλήνες πετρελαίου

16 Ροή S t v1 v2v4 v3 S t v1 v2 v3 v4 5/8 3/3 3/6 8/8 6/6 2/ Παράδειγμα: σωλήνες πετρελαίου

17 Ακύρωση S t v1 v2v4 v3 S t v1 v2 v3 v4 5/8 3/3 3/6 8/8 6/6 2/ Παράδειγμα: σωλήνες πετρελαίου

18 Ακύρωση S t v1 v2v4 v3 S t v1 v2 v3 v4 6/8 3/3 4/6 8/8 5/6 6/6 3/3 1/3 u v 104 u v 8/104 u v 3/4 u v 5/ Παράδειγμα: σωλήνες πετρελαίου

19 Ιδιότητες Ροών 19

20 Ιδιότητες Ροών St v1 v2 v3 v4 10 8/13 12/12 11/16 1/4 4/4 11/14 15/20 7/7 4/9 Δίκτυο ροών G = (V,E) Προσοχή: Λόγω συμμετρίας f(v3,v1) =

21 Συνολική Ροή και Τιμή Ροής S t v1 v2 v3 v4 6/8 3/3 4/6 8/8 5/6 6/6 3/3 1/3 u v 8/103/4 u v 5/104 f(u,v) = 5 f(v,u) = -5 21

22 Το Πρόβλημα της Μέγιστης Ροής Άτυπος ορισμός προβλήματος μέγιστης ροής: Ποιος είναι ο μεγαλύτερος ρυθμός με τον οποίο μπορούμε να στείλουμε το υλικό από την πηγή στον προορισμό χωρίς παραβίαση των περιορισμών χωρητικότητας; Τυπικός ορισμός του προβλήματος μέγιστης ροής: Το πρόβλημα μέγιστης ροής είναι η εύρεση νόμιμης ροής για ένα δοθέν κατευθυνόμενο γράφημα G με βάρη, που έχει τη μέγιστη τιμή από όλες τις ροές. 22

23 23 Τι αλγόριθμο θα χρησιμοποιήσω;

24 Η Μέθοδος Ford-Fulkerson ένας τρόπος εύρεσης μέγιστης ροής Υποθέσεις: 1.Θεωρούμε θετικές ακέραιες χωρητικότητες (C η τιμή της μέγιστης) 2.Η πηγή (κόμβος προέλευσης) δεν έχει εισερχόμενη ακμή 3.Ο προορισμός (κόμβος απόληξης) δεν έχει εξερχόμενη ακμή Αυτή η μέθοδος περιέχει 3 σημαντικές ιδέες: 1) Υπολειπόμενο γράφημα (residual network) 2) Διαδρομές επαύξησης 3) Αποκοπές δικτύων ροής 24

25 Ford-Fulkerson – ψευδοκώδικας 1 Αρχικοποίηση τιμής ροής f σε 0 2 Όσο υπάρχει διαδρομή επαύξησης p 3 κάνε δώσε ροή f στη διαδρομή p 4 Επέστρεψε f 25

26 Ford Fulkerson – Υπολειπόμενα Δίκτυα St v1 v2 v3 v4 10 8/13 12/12 11/16 1/4 4/4 11/14 15/20 7/7 4/9 Το υπολειπόμενο δίκτυο G f ενός δικτύου ροών G με νόμιμη ροή f αποτελείται από τις ίδιες κορυφές v  V όπως στο G που συνδέονται με ακμές υπολοίπων (u,v)  E f που μπορούν να δεχτούν αυστηρά περισσότερη συνολική ροή. Η υπολειπόμενη χωρητικότητα c f αναπαριστά το βάρος κάθε ακμής E f και είναι η επιπρόσθετη συνολική ροή f(u,v) πριν ξεπεραστεί η χωρητικότητα c(u,v) Δίκτυο ροών G = (V,E) c f (u,v) = c(u,v) – f(u,v) St v1 v2 v3 v4 Υπολειπόμενο δίκτυο G f = (V,E f )

27 St v1 v2 v3 v4 10 8/13 12/12 11/16 1/4 4/4 11/14 15/20 7/7 4/9 c f (u,v) = c(u,v) – f(u,v) St v1 v2 v3 v Το υπολειπόμενο δίκτυο G f ενός δικτύου ροών G με νόμιμη ροή f αποτελείται από τις ίδιες κορυφές v  V όπως στο G που συνδέονται με ακμές υπολοίπων (u,v)  E f που μπορούν να δεχτούν αυστηρά περισσότερη συνολική ροή. Η υπολειπόμενη χωρητικότητα c f αναπαριστά το βάρος κάθε ακμής E f και είναι η επιπρόσθετη συνολική ροή f(u,v) πριν ξεπεραστεί η χωρητικότητα c(u,v) Δίκτυο ροών G = (V,E)Υπολειπόμενο δίκτυο G f = (V,E f ) Ford Fulkerson – Υπολειπόμενα Δίκτυα

28 Ford Fulkerson – Διαδρομές Επαύξησης St v1 v2 v3 v4 10 8/13 12/12 11/16 1/4 4/4 11/14 15/20 7/7 4/9 c f (p) = min{c f (u,v): (u,v) ανήκει στο p} Ορισμός: Μία διαδρομή επαύξησης p είναι μία απλή (χωρίς κύκλους) διαδρομή από το s στο t στο υπολειπόμενο δίκτυο G f Υπολειπόμενη χωρητικότητα του p St v1 v2 v3 v Δίκτυο ροών G = (V,E)Υπολειπόμενο δίκτυο G f = (V,E f )

29 St v1 v2 v3 v4 10 8/13 12/12 11/16 1/4 4/4 11/14 15/20 7/7 4/9 St v1 v2 v3 v Διαδρομή Επαύξησης 29 c f (p) = min{c f (u,v): (u,v) ανήκει στο p} Υπολειπόμενη χωρητικότητα του p Ορισμός: Μία διαδρομή επαύξησης p είναι μία απλή (χωρίς κύκλους) διαδρομή από το s στο t στο υπολειπόμενο δίκτυο G f Δίκτυο ροών G = (V,E)Υπολειπόμενο δίκτυο G f = (V,E f ) Ford Fulkerson – Διαδρομές Επαύξησης

30 St v1 v2 v3 v4 10 8/13 12/12 11/16 1/4 4/4 11/14 15/20 7/7 4/9 St v1 v2 v3 v Ορίζουμε μία ροή: f p : V x V  R έτσι ώστε: c f (p) αν (u,v) ανήκει στο p f p (u,v) = - c f (p) αν (v,u) ανήκει στο p 0 διαφορετικά 30 Δίκτυο ροών G = (V,E)Υπολειπόμενο δίκτυο G f = (V,E f ) Ford Fulkerson – Διαδρομές Επαύξησης

31 St v1 v2 v3 v4 10 8/13 12/12 11/16 1/4 4/4 11/14 15/20 7/7 4/9 St v1 v2 v3 v / /5 7 -4/5 11 4/ /15 4/4 Η ιδεατή ροή f p στη διαδρομή επαύξησης p στο G f 31 Ορίζουμε μία ροή: f p : V x V  R έτσι ώστε: c f (p) αν (u,v) ανήκει στο p f p (u,v) = - c f (p) αν (v,u) ανήκει στο p 0 διαφορετικά Δίκτυο ροών G = (V,E)Υπολειπόμενο δίκτυο G f = (V,E f ) Ford Fulkerson – Διαδρομές Επαύξησης

32 Ford Fulkerson – Αυξάνοντας τη Ροή St v1 v2 v3 v /13 12/12 11/16 1/4 4/4 11/14 19/20 7/7 0/9 St v1 v2 v3 v Νέα Ροή: f´: V x V  R : f´=f + f p 32 Ορίζουμε μία ροή: f p : V x V  R έτσι ώστε: c f (p) αν (u,v) ανήκει στο p f p (u,v) = -c f (p) αν (v,u) ανήκει στο p 0 διαφορετικά Δίκτυο ροών G = (V,E)Υπολειπόμενο δίκτυο G f = (V,E f ) Η ιδεατή ροή f p στη διαδρομή επαύξησης p στο G f

33 Ford Fulkerson – Νέα ροή απόδειξη περιορισμού χωρητικότητας Απόδειξη: f p (u,v) < c f (u,v) = c (u,v) – f (u,v)  (f + f p ) (u,v) = f (u,v) + f p (u,v) < c (u,v) Λήμμα: f´ : V x V  R : f´ = f + f p στο G Περιορισμός χωρητικότητας: Για κάθε u,v  V, απαιτούμε f(u,v) < c(u,v) c f (p) = min{c f (u,v): (u,v) is on p} c f (u,v) = c(u,v) – f(u,v) 33 c f (p) αν (u,v) ανήκει στο p f p (u,v) = -c f (p) αν (v,u) ανήκει στο p 0 διαφορετικά

34 Ford Fulkerson – Νέα Ροή απόδειξη συμμετρίας Απόδειξη: (f + f p )(u,v) = f (u,v) + f p (u,v) = –f (v,u) – f p (v,u) = –(f (v,u) + f p (v,u)) = –(f + f p ) (v,u) Συμμετρία: Για κάθε u,v  V, απαιτούμε f(u,v) = –f(v,u) Λήμμα: f´ : V x V  R : f´ = f + f p στο G 34

35 Ford Fulkerson – Νέα Ροή απόδειξη διατήρησης ροής Απόδειξη: u  V – {s,t}   (f + f p ) (u,v) =  (f(u,v) + f p (u,v)) =  f (u,v) +  f p (u,v) = = 0 Διατήρηση Ροής: Για κάθε u  V \ {s,t} :  f(u,v) = 0 v  V Λήμμα: f´ : V x V  R : f´ = f + f p στο G 35

36 36 Γιατί η Ροή που Επιστρέφεται από τον Αλγόριθμο είναι η Μέγιστη Δυνατή;

37 Ford Fulkerson – Αποκοπές Δικτύων Ροών Νέα έννοια: αποκοπή (S,T) ενός δικτύου ροών Μία αποκοπή (S,T) ενός δικτύου ροών G=(V,E) είναι μία διαμέριση του V σε S και T = V \ S έτσι ώστε s  S και t  T. Με σημειογραφία αθροίσματος: f (S, T) =   f (u, v) St v1 v2 v3 v /13 12/12 11/16 1/4 4/4 19/20 7/7 0/9 11/14 TS S = {s,v1,v2), T = {v3,v4,t} Συνολική ροή f(S,T) = f(v1,v3) + f(v2,v4) + f(v2,v3) = (-0) = 23 Χωρητικότητα c(S,T) = c(v1,v3) + c(v2,v4) = = 26 Παράδειγμα: u  S v  T 37

38 Ford Fulkerson – Αποκοπές Δικτύων Ροών Λήμμα: Η τιμή μίας ροής σε ένα δίκτυο είναι ίση με τη συνολική ροή σε οποιαδήποτε αποκοπή του δικτύου f (S,T) = | f | St v1 v2 v3 v /13 12/12 11/16 1/4 4/4 19/20 7/7 0/9 11/14 38

39 Ford Fulkerson – Αποκοπές Δικτύων Ροής Η τιμή μίας ροής σε ένα δίκτυο είναι ίση με τη συνολική ροή σε οποιαδήποτε αποκοπή του δικτύου Λήμμα: f (S,T) = | f | f (S, T) = f (S, V\S) = f (S, V) – f (S, S) = f (S, V) = f (s  [S\s], V) = f (s, V) + f (S\s, V) = f (s, V) = | f | Ιδιότητες ροών: X,Y,Z  V and X  Y =  f (X, Y) =   f (x, y) f (X, X) = 0 f (X, Y) = ̶ f(Y, X) f (u, V) = 0 for all u  V \ {s, t} f (X  Y, Z) = f (X, Z) + f (Y, Z) f (Z, X  Y) = f (Z, X) + f (Z, Y) x  X y  Y Απόδειξη: 39

40 Ford Fulkerson – Αποκοπές Η τιμή κάθε ροής f σε ένα δίκτυο ροών G φράσσεται από πάνω από τη χωρητικότητα οποιασδήποτε αποκοπής του G Λήμμα: | f | < c (S, T) | f | = f (S, T) =   f (u, v) <   c (u, v) = c (S, T) v  T u  S v  T u  S St v1 v2 v3 v /13 12/12 11/16 1/4 4/4 19/20 7/77/7 0/9 11/14 40

41 Θεώρημα Μέγιστης Ροής – Ελάχιστης Αποκοπής Αν f είναι μία ροή στο δίκτυο G = (V,E) με πηγή s και προορισμό t, τότε τα εξής είναι ισοδύναμα: 1.Η f είναι μέγιστη ροή στο G. 2.Το υπολειπόμενο δίκτυο G f δεν περιέχει διαδρομές επαύξησης. 3.| f | = c (S, T) για κάποια αποκοπή (S, T) του G. Απόδειξη: (1)  (2): Υποθέτουμε ότι η f είναι μέγιστη ροή στο G αλλά υπάρχει διαδρομή επαύξησης p στο G f. Τότε, μπορούμε να αυξήσουμε τη ροή στο G σύμφωνα με το τύπο : f´= f + f p. Αυτό θα δημιουργούσε μία νέα ροή f´ που θα ήταν αυστηρά μεγαλύτερη από την f που είναι αντίφαση μιας και η f είναι μέγιστη ροή. 41

42 Απόδειξη: (2)  (3): S t v1 v2 v3 v4 6/8 3/3 4/6 8/8 5/6 6/6 3/3 1/3 S t v1 v2 v3 v Υπολειπόμενο δίκτυο G f Αρχικό δίκτυο G 42 Θεώρημα Μέγιστης Ροής – Ελάχιστης Αποκοπής Αν f είναι μία ροή στο δίκτυο G = (V,E) με πηγή s και προορισμό t, τότε τα εξής είναι ισοδύναμα: 1.Η f είναι μέγιστη ροή στο G. 2.Το υπολειπόμενο δίκτυο G f δεν περιέχει διαδρομές επαύξησης. 3.| f | = c (S, T) για κάποια αποκοπή (S, T) του G.

43 Απόδειξη: (2)  (3): Ορίζουμε S = {v  V |  διαδρομή p από s σε v στο G f } T = V \ S (το t  S σύμφωνα με (2)) S t v1 v2 v3 v Υπολειπόμενο δίκτυο G f 43 Θεώρημα Μέγιστης Ροής – Ελάχιστης Αποκοπής Αν f είναι μία ροή στο δίκτυο G = (V,E) με πηγή s και προορισμό t, τότε τα εξής είναι ισοδύναμα: 1.Η f είναι μέγιστη ροή στο G. 2.Το υπολειπόμενο δίκτυο G f δεν περιέχει διαδρομές επαύξησης. 3.| f | = c (S, T) για κάποια αποκοπή (S, T) του G.

44 Απόδειξη: (2)  (3): Ορίζουμε S = {v  V |  διαδρομή p από s σε v στο G f } T = V \ S (το t  S σύμφωνα με (2))  u  S, v  T: f (u, v) = c (u, v) (διαφορετικά (u, v)  E f και v  S)  | f | = f (S, T) = c (S, T) S t v1 v2 v3 v4 6/8 3/3 4/6 8/8 5/6 6/6 3/3 1/3 Αρχικό δίκτυο G 44 Θεώρημα Μέγιστης Ροής – Ελάχιστης Αποκοπής Αν f είναι μία ροή στο δίκτυο G = (V,E) με πηγή s και προορισμό t, τότε τα εξής είναι ισοδύναμα: 1.Η f είναι μέγιστη ροή στο G. 2.Το υπολειπόμενο δίκτυο G f δεν περιέχει διαδρομές επαύξησης. 3.| f | = c (S, T) για κάποια αποκοπή (S, T) του G.

45 Απόδειξη: (3)  (1): όπως αποδείξαμε πριν | f | = f (S, T) < c (S, T) Το (3) ορίζει : | f | = c (S, T) που σημαίνει ότι f είναι μέγιστη ροή 45 Θεώρημα Μέγιστης Ροής – Ελάχιστης Αποκοπής Αν f είναι μία ροή στο δίκτυο G = (V,E) με πηγή s και προορισμό t, τότε τα εξής είναι ισοδύναμα: 1.Η f είναι μέγιστη ροή στο G. 2.Το υπολειπόμενο δίκτυο G f δεν περιέχει διαδρομές επαύξησης. 3.| f | = c (S, T) για κάποια αποκοπή (S, T) του G.

46 46 Επειδή ξέχασα. Ποιος είναι ο αλγόριθμος;

47 Ο αλγόριθμος του Ford Fulkerson 47

48 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης St v1 v2 v3 v (υπολειπόμενο ) δίκτυο G f 48

49 St v1 v2 v3 v4 0/10 0/13 0/12 0/16 0/4 0/14 0/20 7 0/9 49 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης (υπολειπόμενο ) δίκτυο G f

50 St v1 v2 v3 v Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης (υπολειπόμενο ) δίκτυο G f

51 St v1 v2 v3 v Προσωρινή μεταβλητή: c f (p) = Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης (υπολειπόμενο ) δίκτυο G f

52 St v1 v2 v3 v Προσωρινή Μεταβλητή: c f (p) = 12 St v1 v2 v3 v /12 12/ / Νέο δίκτυο G 52 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης (υπολειπόμενο ) δίκτυο G f

53 St v1 v2 v3 v St v1 v2 v3 v /12 12/ / Νέο δίκτυο G Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης (υπολειπόμενο ) δίκτυο G f

54 St v1 v2 v3 v St v1 v2 v3 v /12 12/ / Νέο Δίκτυο G Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης (υπολειπόμενο ) δίκτυο G f

55 St v1 v2 v3 v St v1 v2 v3 v /12 12/ / Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

56 St v1 v2 v3 v /12 12/ / Προσωρινή Μεταβλητή: c f (p) = 4 St v1 v2 v3 v Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

57 St v1 v2 v3 v St v1 v2 v3 v4 10 4/13 12/12 12/16 4 4/4 4/14 12/ Προσωρινή Μεταβλητή: c f (p) = 4 57 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

58 St v1 v2 v3 v St v1 v2 v3 v4 10 4/13 12/12 12/16 4 4/4 4/14 12/ Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

59 St v1 v2 v3 v St v1 v2 v3 v4 10 4/13 12/12 12/16 4 4/4 4/14 12/ Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

60 St v1 v2 v3 v St v1 v2 v3 v4 10 4/13 12/12 12/16 4 4/4 4/14 12/ Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

61 St v1 v2 v3 v St v1 v2 v3 v4 10 4/13 12/12 12/16 4 4/4 4/14 12/ Προσωρινή Μεταβλητή: c f (p) = 7 61 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

62 St v1 v2 v3 v St v1 v2 v3 v /13 12/12 12/16 4 4/4 11/14 19/20 7/ Προσωρινή Μεταβλητή: c f (p) = 7 62 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο ) δίκτυο G f

63 St v1 v2 v3 v /13 12/12 12/16 4 4/4 11/14 19/20 7/7 9 St v1 v2 v3 v Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο) δίκτυο G f

64 St v1 v2 v3 v /13 12/12 12/16 4 4/4 11/14 19/20 7/7 9 St v1 v2 v3 v Άρα: | f | = f (s, V) = Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης Νέο Δίκτυο G (υπολειπόμενο) δίκτυο G f Άλλο Παράδειγμα

65 65 Πόσο βήματα εκτελεί ο αλγόριθμος για να τερματίσει;

66 Ανάλυση Ο χρόνος εκτέλεσης εξαρτάται από τον τρόπο με τον οποίο καθορίζονται τα αυξητικά μονοπάτια p στη γραμμή 4. 66

67 Ford Fulkerson – Ανάλυση Απόδειξη: | (f + f p ) | =  (f + f p ) (s,v) =  (f (s,v) + f p (s,v)) =  f (s,v) +  f p (s,v) = | f | + | f p | Λήμμα: | (f + f p ) | = | f | + | f p | v  V Τιμής ροής f: |f| =  f(s,v) v  V 67 Η τιμή της ροής είναι πάντα ακέραιος αριθμός.

68 Ford Fulkerson – Ανάλυση Συνέπεια: | (f + f p ) | = | f | + | f p | > | f | f´ : V x V  R : f´ = f + f p στο G Το λήμμα δείχνει: Αν μπορεί να βρεθεί μία διαδρομή επαύξησης τότε η αύξηση της ροής θα δώσει καλύτερη ροή. 68

69 Ανάλυση Χρόνος Εκτέλεσης (αυθαίρετη επιλογή p) O(|E|) O(|E| |f max |) Χρόνος εκτέλεσης: O ( |E| |f max | ) με f max τη μέγιστη ροή (1) Η διαδρομή επαύξησης επιλέγεται αυθαίρετα και όλες οι χωρητικότητες είναι ακέραιοι O(|E|) 69

70 Ανάλυση Χρόνος εκτέλεσης (αυθαίρετη επιλογή p) Συνέπειες αυθαίρετης επιλογής: Παράδειγμα αν |f*| είναι μεγάλο: t v2 v1 s 1,000, Χρόνος εκτέλεσης: O ( |E| |f max | ) με f max τη μέγιστη ροή (1) Η διαδρομή επαύξησης επιλέγεται αυθαίρετα και όλες οι χωρητικότητες είναι ακέραιοι

71 t v2 v1 s 1 / 1,000,000 1,000,000 1 / 1,000,000 1 / 1 t v2 v1 s 999,999 1,000, ,999 1 Υπολειπόμενο Δίκτυο G f Χρόνος εκτέλεσης: O ( |E| |f max | ) με f max τη μέγιστη ροή Ανάλυση Χρόνος εκτέλεσης (αυθαίρετη επιλογή p) Συνέπειες αυθαίρετης επιλογής: Παράδειγμα αν |f*| είναι μεγάλο: (1) Η διαδρομή επαύξησης επιλέγεται αυθαίρετα και όλες οι χωρητικότητες είναι ακέραιοι

72 t v2 v1 s 1 / 1,000,000 1 t v2 v1 s 999, Ανάλυση Χρόνος εκτέλεσης (αυθαίρετη επιλογή p) Χρόνος εκτέλεσης: O ( |E| |f max | ) με f max τη μέγιστη ροή Υπολειπόμενο Δίκτυο G f Συνέπειες αυθαίρετης επιλογής: Παράδειγμα αν |f*| είναι μεγάλο: (1) Η διαδρομή επαύξησης επιλέγεται αυθαίρετα και όλες οι χωρητικότητες είναι ακέραιοι

73 7.3: Πώς επιλέγω καλές διαδρομές επαύξησης;

74 Καλές Διαδρομές Επαύξησης Προσοχή στην επιλογή των διαδρομών Μερικές επιλογές (όπως πριν) οδηγούν σε εκθετικούς αλγόριθμους. Έξυπνες επιλογές δίνουν πολυωνυμικούς αλγόριθμους. Αν οι χωρητικότητες είναι άρρητοι, τότε ο αλγόριθμος μπορεί να μην τερματίσει! Στόχος: επιλογή διαδρομών ώστε: Αποδοτική εύρεση των διαδρομών επαύξησης. Λίγες επαναλήψεις. Επιλογή διαδρομών με: [Edmonds-Karp 1972, Dinitz 1970] Μέγιστη υπολειπόμενη χωρητικότητα. Αρκετά μεγάλη υπολειπόμενη χωρητικότητα. Ελάχιστο πλήθος ακμών.

75 Κλιμάκωση Χωρητικότητας Διαίσθηση: Η εύρεση της διαδρομής με μέγιστη υπολειπόμενη χωρητικότητα αυξάνει τη ροή κατά τη μέγιστη τιμή. Δεν χρειάζεται να μπλέξουμε με το μέγιστο (δαπανηρό). Παράμετρο κλιμάκωσης . Έστω G f (  ) το υπογράφημα του υπολειπόμενου γραφήματος με ακμές με χωρητικότητα τουλάχιστον . 110 s 4 2 t GfGf 110 s 4 2 t G f (100)

76 Κλιμάκωση Χωρητικότητας Scaling-Max-Flow(G, s, t, c) { Για κάθε e  E f(e)  0   μεγαλύτερη δύναμη του 2 που είναι μικρότερη από τη μέγιστη χωρητικότητα ακμών που εξέρχονται του s G f  υπολειπόμενο γράφημα while (   1) { G f (  )   -υπολειπόμενο γράφημα while (υπάρχει διαδρομή επαύξησης P στο G f (  )) { f  augment(f, c, P) ενημέρωση G f (  ) }    / 2 } return f }

77 Κλιμάκωση Χωρητικότητας: Ορθότητα Υπόθεση: Όλες οι χωρητικότητες είναι ακέραιοι στο [1, C]. Αμετάβλητη Ιδιότητα: Όλες οι ροές και υπολειπόμενες χωρητικότητες είναι ακέραιοι. Ορθότητα: Αν ο αλγόριθμος τερματίζει, τότε το f είναι μέγιστη ροή. Απόδειξη: Όταν  = 1  G f (  ) = G f. Όταν τερματίζει στην φάση  = 1, τότε δεν υπάρχουν διαδρομές επαύξησης. ▪

78 Κλιμάκωση Χωρητικότητας: Πολυπλοκότητα Λήμμα 1: Το εξωτερικό while επαναλαμβάνεται 1 +  log 2 C  φορές. Απόδειξη: Αρχικά  ≤ C. Το  υποδιπλασιάζεται σε κάθε επανάληψη. ▪ Λήμμα 2: Έστω f η ροή στο τέλος μίας φάσης  -κλιμάκωσης. Τότε η μέγιστη τιμή συνολικής ροής είναι | f | + m . Λήμμα 3: Υπάρχουν το πολύ 2m επαυξήσεις σε κάθε φάση κλιμάκωσης. Έστω f η ροή στο τέλος της προηγούμενης φάσης κλιμάκωσης. Κάθε επαύξηση σε μία  -φάση κλιμάκωσης αυξάνει το | f | κατά . Λήμμα 2  | f* |  | f | + m (2  ). ▪ Θεώρημα: Ο αλγόριθμος μέγιστης ροής με κλιμάκωση ανακαλύπτει τη μέγιστη ροή σε O(m log C) επαύξησης. Μπορεί να υλοποιηθεί ώστε να τρέχει σε O(m 2 log C) χρόνο. Η απόδειξη έρχεται…

79 Λήμμα 2: Έστω f η ροή στο τέλος μίας φάσης  -κλιμάκωσης. Τότε η μέγιστη τιμή συνολικής ροής είναι | f | + m . Απόδειξη: (σχεδόν ίδια με το θεώρημα μέγιστης ροής ελάχιστης αποκοπής) Θα δείξουμε ότι στο τέλος της  -φάσης, υπάρχει αποκοπή (A, B) έτσι ώστε c(A, B)  | f | + m . Το A είναι το σύνολο κόμβων που φτάνει ο s στο G f (  ). s  A. t  A. Αρχικό δίκτυο s t A B Κλιμάκωση Χωρητικότητας: Πολυπλοκότητα

80 Πολυπλοκότητες Ο αλγόριθμος Ford-Fulkerson: Ο(m C) (Εκθετικός/Ψευδοπολυωνυμικός) Μέγιστη Ροή με Κλιμάκωση: Ο(m 2 logC) (Ασθενώς πολυωνυμικός) Edmonds-Karp (συντομότερες διαδρομές ως διαδρομές επαύξησης): Ο(nm 2 ) (ισχυρά πολυωνυμικός) 80

81 Παραλλαγές Μέγιστης Ροής Μία 2η συνάρτηση χωρητικότητας για κάτω φράγμα με b(u,v) < f(u,v) < c(u,v) Μία συνάρτηση κόστους όπου κάθε ακμή (u,v) έχει και ένα δεύτερος βάρος cost(u,v) και έχουμε το πρόβλημα μέγιστης ροής ελαχίστου κόστους Δίκτυα με πολλαπλές πηγές και προορισμούς 81

82 Πολλαπλές Πηγές και Προορισμοί s1 s3 s2 t2 t1 s4 S´ T´ Υπερπηγή Υπερπροορισμός 82

83 Δ ΙΜΕΡΕΣ Τ ΑΙΡΙΑΣΜΑ

84 Είσοδος: ακατεύθυντο γράφημα G = (V, E). M  E είναι ένα ταίριασμα αν κάθε κόμβος εμφανίζεται σε μία το πολύ ακμή του M. Μέγιστο Ταίριασμα: εύρεση ταιριάσματος μέγιστου πλήθους ακμών. Ταίριασμα

85 Διμερές Ταίριασμα Είσοδος: ακατεύθυντο και διμερές γράφημα G = (L  R, E). M  E είναι ένα ταίριασμα αν κάθε κόμβος εμφανίζεται σε μία το πολύ ακμή του M. Μέγιστο Ταίριασμα: εύρεση ταιριάσματος μέγιστου πλήθους ακμών ' 3' 5' 2 4 2' 4' ταίριασμα 1-2', 3-1', 4-5' RL

86 ' 3' 5' 2 4 2' 4' RL Μέγιστο ταίριασμα 1-1', 2-2', 3-3' 4-4' Διμερές Ταίριασμα Είσοδος: ακατεύθυντο και διμερές γράφημα G = (L  R, E). M  E είναι ένα ταίριασμα αν κάθε κόμβος εμφανίζεται σε μία το πολύ ακμή του M. Μέγιστο Ταίριασμα: εύρεση ταιριάσματος μέγιστου πλήθους ακμών.

87 Χρήση Μέγιστης Ροής. Κατασκευή κατευθυντικού γραφήματος G' = (L  R  {s, t}, E' ). Όλες οι ακμές θα δείχνουν από το L στο R, και δώσε χωρητικότητα 1 σε κάθε μία. Πρόσθεση πηγής s, με ακμές προς L με χωρητικότητα 1. Πρόσθεση προορισμού t, με ακμές από R με χωρητικότητα 1. s ' 3' 5' t 2 4 2' 4' RL G' Διμερές Ταίριασμα

88 Θεώρημα: Μέγιστο Ταίριασμα στο G = τιμή μέγιστης ροής στο G'. Απόδειξη: ≤ Δοθέντος μέγιστου ταιριάσματος M μεγέθους k. Έστω η ροή που στέλνω 1 μονάδα από αυτές τις k διαδρομές. Η f είναι μία ροή και έχει τιμή k. ▪ Διμερές Ταίριασμα: Ορθότητα ' 3' 5' 2 4 2' 4' G s ' 3' 5' t 2 4 2' 4' 11 1 G'

89 Θεώρημα: Μέγιστο Ταίριασμα στο G = τιμή μέγιστης ροής στο G'. Απόδειξη.  Έστω f η μέγιστη ροή στο G' με τιμή k. Το k είναι ακέραιος και η ροή σε κάθε ακμή είναι 0-1. M = σύνολο ακμών e από το L στο R με f(e) = 1. Κάθε κόμβος στο L και R συμμετάσχει σε το πολύ μία ακμή του Μ |M| = k: θεωρήστε την αποκοπή (L  s, R  t) ▪ ' 3' 5' 2 4 2' 4' G s ' 3' 5' t 2 4 2' 4' 11 1 G' Διμερές Ταίριασμα: Ορθότητα Πολυπλοκότητα;


Κατέβασμα ppt "ΠΡΟΒΛΗΜΑΤΑ ΡΟΩΝ ΣΕ ΔΙΚΤΥΑ ( ΚΑΤΕΥΘΥΝΟΜΕΝΑ ΓΡΑΦΗΜΑΤΑ ) 1."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google