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

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

ΠΡΟΒΛΗΜΑΤΑ ΡΟΩΝ ΣΕ ΔΙΚΤΥΑ (κατευθυνομενα γραφηματα)

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


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

1 ΠΡΟΒΛΗΜΑΤΑ ΡΟΩΝ ΣΕ ΔΙΚΤΥΑ (κατευθυνομενα γραφηματα)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) S t v1 v2 v3 v4 10 12/13 12/12 11/16 1/4 4/4 19/20 7/7 0/9 11/14 T 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 The net flow across the cut and the capacity of the cut normally functions like f take as arguments two vertices in a flow network, if one or both arguments are sets of vertices we interpret that as the sum of all possible ways of replacing the arguments with their members. Note/observe that we can have a net flow below 0 but all capacities are all composed of nonnegative values

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

39 Ford Fulkerson – Αποκοπές Δικτύων Ροής
Η τιμή μίας ροής σε ένα δίκτυο είναι ίση με τη συνολική ροή σε οποιαδήποτε αποκοπή του δικτύου Λήμμα: f (S ,T) = | 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) 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  X y  Y Απόδειξη: σελ. 394

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

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

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

43 Θεώρημα Μέγιστης Ροής – Ελάχιστης Αποκοπής
Αν f είναι μία ροή στο δίκτυο G = (V,E) με πηγή s και προορισμό t, τότε τα εξής είναι ισοδύναμα: Η f είναι μέγιστη ροή στο G. Το υπολειπόμενο δίκτυο Gf δεν περιέχει διαδρομές επαύξησης. | f | = c (S, T) για κάποια αποκοπή (S, T) του G. Απόδειξη: (2)  (3): Ορίζουμε S = {v V |  διαδρομή p από s σε v στο Gf } T = V \ S (το t  S σύμφωνα με (2)) Υπολειπόμενο δίκτυο Gf 3 We suppose that Gf has no augmenting path according to 2, that is that Gf contains no path from s to t. We define a set S which contains the source s and all from s reachable vertices v in Gf. T will be the complementary set of S in V. Then this partition will be a cut, as t cannot be an element of S according to 2. v1 v3 2 2 3 4 6 1 S t 2 6 5 8 v2 v4 1

44 Θεώρημα Μέγιστης Ροής – Ελάχιστης Αποκοπής
Αν f είναι μία ροή στο δίκτυο G = (V,E) με πηγή s και προορισμό t, τότε τα εξής είναι ισοδύναμα: Η f είναι μέγιστη ροή στο G. Το υπολειπόμενο δίκτυο Gf δεν περιέχει διαδρομές επαύξησης. | f | = c (S, T) για κάποια αποκοπή (S, T) του G. Απόδειξη: (2)  (3): Ορίζουμε S = {v V |  διαδρομή p από s σε v στο Gf } T = V \ S (το t  S σύμφωνα με (2))  u  S, v  T: f (u, v) = c (u, v) (διαφορετικά (u, v)  Ef και v  S) | f | = f (S, T) = c (S, T) Αρχικό δίκτυο G S t v1 v2 v3 v4 6/8 3/3 4/6 8/8 5/6 6/6 1/3 The connecting vertices of S and T must all have a maximum flow, we call these edges critical edges. As all edges are critical edges the flow over our cut must be maximum and therefore equal to the capacity of our cut. As we know from before the flow in the network equals the flow over any cut and equals in our example als the capacity of our cut. Therefore we have proofed the implication of 2 to 3.

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

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

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

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

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

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

51 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης
(υπολειπόμενο ) δίκτυο Gf 12 v1 v3 16 20 10 4 7 S t 9 4 13 v2 v4 14 Προσωρινή μεταβλητή: cf (p) = 12

52 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης
(υπολειπόμενο ) δίκτυο Gf 12 v1 v3 16 20 10 4 7 S t 9 4 13 v2 v4 14 Νέο δίκτυο G 12/12 v1 v3 12/16 12/20 Προσωρινή Μεταβλητή: cf (p) = 12 10 4 7 S t 9 4 13 v2 v4 14

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

54 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης
(υπολειπόμενο ) δίκτυο Gf 12 v1 v3 4 8 12 10 4 7 12 S t 9 4 13 v2 v4 14 Νέο Δίκτυο G 12/12 v1 v3 12/16 12/20 10 4 7 S t 9 4 13 v2 v4 14

55 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης
(υπολειπόμενο ) δίκτυο Gf 12 v1 v3 4 8 12 10 4 7 12 S t 9 4 13 v2 v4 14 Νέο Δίκτυο G 12/12 v1 v3 12/16 12/20 10 4 7 S t 9 4 13 v2 v4 14

56 Ο αλγόριθμος του Ford Fulkerson παράδειγμα εκτέλεσης
(υπολειπόμενο ) δίκτυο Gf 12 v1 v3 4 8 12 10 4 7 12 S t 9 4 13 v2 v4 14 Νέο Δίκτυο G 12/12 v1 v3 12/16 12/20 10 4 7 S t 9 Προσωρινή Μεταβλητή: cf (p) = 4 4 13 v2 v4 14

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

79 Κλιμάκωση Χωρητικότητας: Πολυπλοκότητα
Λήμμα 2: Έστω f η ροή στο τέλος μίας φάσης -κλιμάκωσης. Τότε η μέγιστη τιμή συνολικής ροής είναι | f | + m. Απόδειξη: (σχεδόν ίδια με το θεώρημα μέγιστης ροής ελάχιστης αποκοπής) Θα δείξουμε ότι στο τέλος της -φάσης, υπάρχει αποκοπή (A, B) έτσι ώστε c(A, B)  | f | + m. Το A είναι το σύνολο κόμβων που φτάνει ο s στο Gf(). s  A. t  A. A B intuition: f is max flow in Gf(). Adding back arc with capacity less than  can only increase capacity of cut by at most m. t s Αρχικό δίκτυο

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

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

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

83 Διμερες Ταιριαςμα

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

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

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

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

88 Διμερές Ταίριασμα: Ορθότητα
Θεώρημα: Μέγιστο Ταίριασμα στο G = τιμή μέγιστης ροής στο G'. Απόδειξη: ≤ Δοθέντος μέγιστου ταιριάσματος M μεγέθους k. Έστω η ροή που στέλνω 1 μονάδα από αυτές τις k διαδρομές. Η f είναι μία ροή και έχει τιμή k. ▪ s 1 3 5 1' 3' 5' t 2 4 2' 4' G' 1 3 5 1' 3' 5' 2 4 2' 4' 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) ▪ s 1 3 5 1' 3' 5' t 2 4 2' 4' G' 1 3 5 1' 3' 5' 2 4 2' 4' G flow across cut (L  s, R  t) = flow entering t = k


Κατέβασμα ppt "ΠΡΟΒΛΗΜΑΤΑ ΡΟΩΝ ΣΕ ΔΙΚΤΥΑ (κατευθυνομενα γραφηματα)"

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


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