Μέγιστη ροή

100
Μέγιστη ροή υνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα 16 13 12 14 7 9 20 4 4 10 αφετηρίακός κόμβος τερματικός κόμβος Ροή δικτύου με τις ακόλουθες ιδιότητες για όλα τα ζεύγη Περιορισμός χωρητικότητας: για όλα τα ζεύγη Αντισυμμετρία: για κάθε Διατήρηση ροής:

description

Μέγιστη ροή. Κατευθυνόμενο γράφημα. 12. Συνάρτηση χωρητικότητας. 1 6. 20. 7. 10. 4. 9. αφετηρίακός κόμβος. τερματικός κόμβος. 13. 4. Ροή δικτύου. 14. Συνάρτηση με τις ακόλουθες ιδιότητες. Περιορισμός χωρητικότητας :. για όλα τα ζεύγη. Αντισυμμετρία :. για όλα τα ζεύγη. - PowerPoint PPT Presentation

Transcript of Μέγιστη ροή

Page 1: Μέγιστη ροή

Μέγιστη ροή

Συνάρτηση χωρητικότητας

Κατευθυνόμενο γράφημα

16

13

12

14

79

20

4

410

αφετηρίακόςκόμβος

τερματικόςκόμβος

Ροή δικτύου

Συνάρτηση με τις ακόλουθες ιδιότητες

για όλα τα ζεύγηΠεριορισμός χωρητικότητας:

για όλα τα ζεύγηΑντισυμμετρία:

για κάθεΔιατήρηση ροής:

Page 2: Μέγιστη ροή

Μέγιστη ροή

Συνάρτηση χωρητικότητας

Κατευθυνόμενο γράφημα

10/16

7/13

10/12

7/14

3/79

13/20

4/4

410

Ροή δικτύου

Συνάρτηση με τις ακόλουθες ιδιότητες

για όλα τα ζεύγηΠεριορισμός χωρητικότητας:

για όλα τα ζεύγηΑντισυμμετρία:

για κάθεΔιατήρηση ροής:

Π.χ.

Page 3: Μέγιστη ροή

Μέγιστη ροή

Συνάρτηση χωρητικότητας

Κατευθυνόμενο γράφημα

10/16

7/13

10/12

7/14

3/79

13/20

4/4

410

Ροή δικτύου

Συνάρτηση με τις ακόλουθες ιδιότητες

για όλα τα ζεύγηΠεριορισμός χωρητικότητας:

για όλα τα ζεύγηΑντισυμμετρία:

για κάθεΔιατήρηση ροής:

Π.χ.

Page 4: Μέγιστη ροή

Μέγιστη ροή

Συνάρτηση χωρητικότητας

Κατευθυνόμενο γράφημα

10/16

7/13

10/12

7/14

3/79

13/20

4/4

410

Ροή δικτύου

Συνάρτηση με τις ακόλουθες ιδιότητες

για όλα τα ζεύγηΠεριορισμός χωρητικότητας:

για όλα τα ζεύγηΑντισυμμετρία:

για κάθεΔιατήρηση ροής:

Π.χ.

Τιμή ροής:

Page 5: Μέγιστη ροή

Μέγιστη ροή

Συνάρτηση χωρητικότητας

Κατευθυνόμενο γράφημα

10/16

7/13

10/12

7/14

3/79

13/20

4/4

410

Ροή δικτύου

Συνάρτηση με τις ακόλουθες ιδιότητες

για όλα τα ζεύγηΠεριορισμός χωρητικότητας:

για όλα τα ζεύγηΑντισυμμετρία:

για κάθεΔιατήρηση ροής:

Π.χ.

Τιμή ροής: Θέλουμε να βρούμε μια ροή με μέγιστη τιμή

Page 6: Μέγιστη ροή

Μέγιστη ροή

Σημαντικό πεδίο έρευνας, πολλές εφαρμογές…

Page 7: Μέγιστη ροή

Μέγιστη ροή

Ροή δικτύου

Συνάρτηση με τις ακόλουθες ιδιότητες

για όλα τα ζεύγηΠεριορισμός χωρητικότητας:

για όλα τα ζεύγηΑντισυμμετρία:

για κάθεΔιατήρηση ροής:

Τιμή ροής: Θέλουμε να βρούμε μια ροή με μέγιστη τιμή

Ολική θετική εισροή:

Ολική θετική εκροή:

Ολική καθαρή ροή:

Page 8: Μέγιστη ροή

Μέγιστη ροή

Ροή δικτύου

Συνάρτηση με τις ακόλουθες ιδιότητες

για όλα τα ζεύγηΠεριορισμός χωρητικότητας:

για όλα τα ζεύγηΑντισυμμετρία:

για κάθεΔιατήρηση ροής:

Τιμή ροής: Θέλουμε να βρούμε μια ροή με μέγιστη τιμή

Ολική θετική εισροή:

Ολική θετική εκροή:

Ολική καθαρή ροή:

λόγω διατήρησηςτης ροής

Page 9: Μέγιστη ροή

Μέγιστη ροή

Παρατήρηση Το μοντέλο της ροής δικτύου που χρησιμοποιούμε δεν επιτρέπει την καταστάσεις σαν την ακόλουθη

Παραβιάζει την αντισυμμετρία

Page 10: Μέγιστη ροή

Μέγιστη ροή

Πολλαπλοί αφετηριακοί και τερματικοί κόμβοι

Page 11: Μέγιστη ροή

Μέγιστη ροή

Έστω σύνολα και

Ορίζουμε

Άρα

Λήμμα Ισχύουν οι ακόλουθες ισότητες

1. Για κάθε

2. Για κάθε

3. Για κάθε τέτοια ώστε

και

Page 12: Μέγιστη ροή

Μέγιστη ροή

Λήμμα Ισχύουν οι ακόλουθες ισότητες

1. Για κάθε

2. Για κάθε

3. Για κάθε τέτοια ώστε

και

Πόρισμα

(από την 3, )

(από την 1, )

(από την 2)

(από την 3)

(από διατήρηση ροής )

Page 13: Μέγιστη ροή

Μέγιστη ροή

Μέθοδος Ford-Fulkerson

10/16

7/13

10/12

7/14

3/79

13/20

4/4

410

Αυξητική διαδρομή: διαδρομή από το στο που μπορεί να δεχθεί επιπλέον ροή

1. θέτουμε τη ροή ίση με 0

2. ενόσω υπάρχει αυξητική διαδρομή

3. αυξάνουμε τη ροή κατά μήκος της

Page 14: Μέγιστη ροή

Μέγιστη ροή

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

5/8 3

5

Υπολειπόμενο δίκτυο

5/8 3

116

όπου

Page 15: Μέγιστη ροή

Μέγιστη ροή

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

12

7

12

9

575

4

4104

6 5

2

15

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

5/8 3

5

Υπολειπόμενο δίκτυο

5/8 3

116

όπου

2

Page 16: Μέγιστη ροή

Μέγιστη ροή

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

12

7

12

9

575

4

4104

6 5

2

15

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

2

Έστω οι ακμές του με ανεστραμμένη φορά

Τότε

Page 17: Μέγιστη ροή

Μέγιστη ροή

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

12

7

12

9

575

4

4104

6 5

2

15

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

2

Αυξητική διαδρομή: διαδρομή από το στο που μπορεί να δεχθεί επιπλέον ροή

Page 18: Μέγιστη ροή

Μέγιστη ροή

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή

Άθροισμα ροών

Αντισυμμετρία

Απόδειξη Πρώτα θα δείξουμε οτι το άθροισμα είναι ροή στο

Page 19: Μέγιστη ροή

Μέγιστη ροή

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή

Άθροισμα ροών

Χωρητικότητα

Απόδειξη Πρώτα θα δείξουμε οτι το άθροισμα είναι ροή στο

Ισχύει

άρα

Page 20: Μέγιστη ροή

Μέγιστη ροή

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή

Άθροισμα ροών

Διατήρηση ροής

Απόδειξη Πρώτα θα δείξουμε οτι το άθροισμα είναι ροή στο

Για κάθε κόμβο έχουμε

Επειδή και είναι ροές και έχουμε

Page 21: Μέγιστη ροή

Μέγιστη ροή

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή

Άθροισμα ροών

Τιμή της ροής

Απόδειξη

Page 22: Μέγιστη ροή

Μέγιστη ροή

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

12

7

12

9

575

4

4104

6 5

2

15

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

2

Αυξητική διαδρομή: διαδρομή από το στο που μπορεί να δεχθεί επιπλέον ροή

Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής :

Π.χ. και

Page 23: Μέγιστη ροή

Μέγιστη ροή

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

12

7

12

9

575

4

4104

6 5

2

15

Μέθοδος Ford-Fulkerson

Υπολειπόμενη χωρητικότητα

Υπολειπόμενο δίκτυο όπου

2

Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής

Η συνάρτηση όπου

αποτελεί ροή στο

Επομένως η συνάρτηση αποτελεί ροή στο και

Page 24: Μέγιστη ροή

Μέγιστη ροή

Τομές δικτύων ροής

Δίκτυο ροής

Τομή διαμέριση του συνόλου των κόμβων και

έτσι ώστε και

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

Καθαρή ροή δια μέσου της τομής

Χωρητικότητα της τομής

Π.χ.

Ισχύει

Page 25: Μέγιστη ροή

Μέγιστη ροή

Τομές δικτύων ροής

Δίκτυο ροής

Τομή διαμέριση του συνόλου των κόμβων και

έτσι ώστε και

Καθαρή ροή δια μέσου της τομής :

Χωρητικότητα της τομής :

Λήμμα Έστω μια ροή στο και μία τομή του . Τότε

Page 26: Μέγιστη ροή

Μέγιστη ροή

Τομές δικτύων ροής

Λήμμα Έστω μια ροή στο και μία τομή του . Τότε

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

Απόδειξη

Όμως

Άρα

Έχουμε

Page 27: Μέγιστη ροή

Μέγιστη ροή

Τομές δικτύων ροής

Λήμμα Έστω μια ροή στο και μία τομή του . Τότε

12/16

7/13

12/12

9/14

5/72/9

15/20

4/4

410

Απόδειξη

Όμως

Άρα

Έχουμε

Επιπλέον

Page 28: Μέγιστη ροή

Μέγιστη ροή

Τομές δικτύων ροής

Θεώρημα Οι ακόλουθες συνθήκες είναι ισοδύναμες

1. Η είναι μια μέγιστη ροή στο

2. Δεν υπάρχει αυξητική διαδρομή στο υπολειπόμενο δίκτυο

3. Υπάρχει τομή του τέτοια ώστε

12/16

11/13

12/12

11/14

7/79

19/20

4/4

410

12

11

12

791

4

4104

2 3

19

11

Page 29: Μέγιστη ροή

Μέγιστη ροή

Τομές δικτύων ροής

Θεώρημα Οι ακόλουθες συνθήκες είναι ισοδύναμες

1. Η είναι μια μέγιστη ροή στο

2. Δεν υπάρχει αυξητική διαδρομή στο υπολειπόμενο δίκτυο

3. Υπάρχει τομή του τέτοια ώστε

Απόδειξη

Έστω ότι η είναι μέγιστη ροή αλλά το περιλαμβάνει αυξητική

διαδρομή . Επομένως υπάρχει στο ροή και όπως έχουμε δείξει το άθροισμα

αποτελεί ροή στο με τιμή

Αυτό όμως αντιβαίνει το γεγονός ότι η είναι μέγιστη ροή.

Page 30: Μέγιστη ροή

Μέγιστη ροή

Τομές δικτύων ροής

Θεώρημα Οι ακόλουθες συνθήκες είναι ισοδύναμες

1. Η είναι μια μέγιστη ροή στο

2. Δεν υπάρχει αυξητική διαδρομή στο υπολειπόμενο δίκτυο

3. Υπάρχει τομή του τέτοια ώστε

ΑπόδειξηΥποθέτουμε τώρα πως δεν υπάρχει αυξητική διαδρομή στο

Θέτουμε το ως το σύνολο των κόμβων που είναι προσβάσιμοι από το στο

. Προφανώς άρα το είναι μία τομή τουκαικαι

Έστω οποιοιδήποτε κόμβοι και . Πρέπει να ισχύει

έτσι ώστε γιατί διαφορετικά το περιέχει

μονοπάτι από το στο

Άρα

Page 31: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

για κάθε ακμή

ενόσω υπάρχει αυξητική διαδρομή στο

για κάθε ακμή

Page 32: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

0/16

0/13

0/12

0/14

0/70/9

0/20

0/4

0/40/10

δίκτυο υπολειπόμενο δίκτυο

16

13

12

14

79

20

4

410

Page 33: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

0/16

0/13

0/12

0/14

0/70/9

0/20

0/4

0/40/10

δίκτυο υπολειπόμενο δίκτυο

16

13

12

14

79

20

4

410

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 4

Page 34: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

4/16

0/13

4/12

4/14

0/74/9

0/20

4/4

0/40/10

δίκτυο υπολειπόμενο δίκτυο

16

13

12

14

79

20

4

410

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 4

Page 35: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

4/16

0/13

4/12

4/14

0/74/9

0/20

4/4

0/40/10

δίκτυο υπολειπόμενο δίκτυο

12

13

8

4

75

20

4

4104

4

4

10

Page 36: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

4/16

0/13

4/12

4/14

0/74/9

0/20

4/4

0/40/10

δίκτυο υπολειπόμενο δίκτυο

12

13

8

4

75

20

4

4104

4

4

10

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 7

Page 37: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

0/13

4/12

11/14

7/74/9

7/20

4/4

0/47/10

δίκτυο υπολειπόμενο δίκτυο

12

13

8

4

75

20

4

4104

4

4

10

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 7

Page 38: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

0/13

4/12

11/14

7/74/9

7/20

4/4

0/47/10

δίκτυο υπολειπόμενο δίκτυο

5

13

8

11

75

7

4

11311

4

4

3

13

Page 39: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

0/13

4/12

11/14

7/74/9

7/20

4/4

0/47/10

δίκτυο υπολειπόμενο δίκτυο

5

13

8

11

75

7

4

11311

4

4

3

13

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 8

Page 40: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

8/13

12/12

11/14

7/74/9

15/20

4/4

1/40/10

δίκτυο υπολειπόμενο δίκτυο

5

13

8

11

75

7

4

11311

4

4

3

13

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 8

Page 41: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

8/13

12/12

11/14

7/74/9

15/20

4/4

1/40/10

δίκτυο υπολειπόμενο δίκτυο

5

5

12

11

75

15

4

31111

4

3

5

8

Page 42: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

8/13

12/12

11/14

7/74/9

15/20

4/4

1/40/10

δίκτυο υπολειπόμενο δίκτυο

5

5

12

11

75

15

4

31111

4

3

5

8

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 4

Page 43: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

12/13

12/12

11/14

7/70/9

19/20

4/4

1/40/10

δίκτυο υπολειπόμενο δίκτυο

5

5

12

11

75

15

4

31111

4

3

5

8

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 4

Page 44: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

11/16

12/13

12/12

11/14

7/70/9

19/20

4/4

1/40/10

δίκτυο υπολειπόμενο δίκτυο

5

1

12

11

7

19

4

31111

9

3

1

12

δεν υπάρχειαυξητική διαδρομή

Page 45: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

για κάθε ακμή

ενόσω υπάρχει αυξητική διαδρομή στο

για κάθε ακμή

Ανάλυση: Υποθέτουμε ακέραιες χωρητικότητες.

Τότε ο χρόνος εκτέλεσης είναι όπου η τιμή της μέγιστης ροής.

Page 46: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

για κάθε ακμή

ενόσω υπάρχει αυξητική διαδρομή στο

για κάθε ακμή χρόνος για την εύρεση και

επεξεργασία της αυξητικής διαδρομής

Ανάλυση: Υποθέτουμε ακέραιες χωρητικότητες.

Τότε ο χρόνος εκτέλεσης είναι όπου η τιμή της μέγιστης ροής.

Page 47: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

για κάθε ακμή

ενόσω υπάρχει αυξητική διαδρομή στο

για κάθε ακμή χρόνος για την εύρεση και

επεξεργασία της αυξητικής διαδρομής

αύξηση της ροής κατά 1 μονάδα

Ανάλυση: Υποθέτουμε ακέραιες χωρητικότητες.

Τότε ο χρόνος εκτέλεσης είναι όπου η τιμή της μέγιστης ροής.

Page 48: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

0/1000

0/1000

0/1

0/1000

0/1000 1000

1000

1

1000

1000

δίκτυο υπολειπόμενο δίκτυο

Μια κακή περίπτωση

Page 49: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

0/1000

0/1000

0/1

0/1000

0/1000 1000

1000

1

1000

1000

δίκτυο υπολειπόμενο δίκτυο

Μια κακή περίπτωση

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Page 50: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

1/1000

0/1000

1/1

1/1000

0/1000 1000

1000

1

1000

1000

δίκτυο υπολειπόμενο δίκτυο

Μια κακή περίπτωση

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Page 51: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

1/1000

0/1000

1/1

1/1000

0/1000 999

1

δίκτυο υπολειπόμενο δίκτυο

1000

10001

1

999

Μια κακή περίπτωση

Page 52: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

1/1000

0/1000

1/1

1/1000

0/1000 999

1

δίκτυο υπολειπόμενο δίκτυο

1000

10001

1

999

Μια κακή περίπτωση

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Page 53: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

1/1000

1/1000

0/1

1/1000

1/1000 999

1

δίκτυο υπολειπόμενο δίκτυο

1000

10001

1

999

Μια κακή περίπτωση

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Page 54: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

1/1000

1/1000

0/1

1/1000

1/1000 999

1

δίκτυο υπολειπόμενο δίκτυο

1

1

999

Μια κακή περίπτωση

999

999

1

1

Page 55: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

1/1000

1/1000

0/1

1/1000

1/1000 999

1

δίκτυο υπολειπόμενο δίκτυο

1

1

999

Μια κακή περίπτωση

999

999

1

1

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Page 56: Μέγιστη ροή

Μέγιστη ροή

Ο βασικός αλγόριθμος των Ford-Fulkerson

2/1000

1/1000

1/1

2/1000

1/1000 999

1

δίκτυο υπολειπόμενο δίκτυο

1

1

999

Μια κακή περίπτωση

999

999

1

1

υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1κ.ο.κ.

Page 57: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος των Edmonds-Karp

για κάθε ακμή

ενόσω υπάρχει αυξητική διαδρομή στο

για κάθε ακμή

βραχύτατη αυξητική διαδρομή Με αυτήν την τροποποίησηο χρόνος εκτέλεσης γίνεται

Page 58: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος των Edmonds-Karp

για κάθε ακμή

ενόσω υπάρχει αυξητική διαδρομή στο

για κάθε ακμή

βραχύτατη αυξητική διαδρομή Με αυτήν την τροποποίησηο χρόνος εκτέλεσης γίνεται

μήκος βραχύτατης διαδρομής απότο μέχρι το στο

Λήμμα Για κάθε κόμβο το μήκος αυξάνεται μονότοναμε κάθε αύξηση της ροής.

Page 59: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος των Edmonds-Karp

Λήμμα Για κάθε κόμβο το μήκος αυξάνεται μονότοναμε κάθε αύξηση της ροής.

Απόδειξη Υποθέτουμε ότι για κάποιο το μήκος μειώνεται μετά από μία πράξη αύξησης ροής.

Έστω η ροή πριν την πράξη αύξησης και η ροή μετά την πράξη αύξησης

Επιλέγουμε ως τον κόμβο με την ελάχιστη τιμήτέτοιον ώστε

Έστω μια βραχύτατη διαδρομή στο από το στο

Έχουμε και

Αν τότε

Αντιβαίνει την υπόθεση

Page 60: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος των Edmonds-Karp

Λήμμα Για κάθε κόμβο το μήκος αυξάνεται μονότοναμε κάθε αύξηση της ροής.

Απόδειξη Υποθέτουμε ότι για κάποιο το μήκος μειώνεται μετά από μία πράξη αύξησης ροής.

Έστω η ροή πριν την πράξη αύξησης και η ροή μετά την πράξη αύξησης

Επιλέγουμε ως τον κόμβο με την ελάχιστη τιμήτέτοιον ώστε

Έστω μια βραχύτατη διαδρομή στο από το στο

Έχουμε και

Άρα και η ροή από το στο αυξήθηκε

η βραχύτατη διαδρομή από μέχρι το στο να ήταν

επομένως ΑΤΟΠΟ

Page 61: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος των Edmonds-Karp

Θεώρημα Το συνολικό πλήθος των πράξεων αυξήσεως ροής είναι .

Απόδειξη

5

5

12

11

75

15

4

31111

4

3

5

8

κρίσιμη ακμή αυξητικής διαδρομής

Page 62: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος των Edmonds-Karp

Θεώρημα Το συνολικό πλήθος των πράξεων αυξήσεως ροής είναι .

Απόδειξη

5

5

12

11

75

15

4

31111

4

3

5

8

κρίσιμη ακμή αυξητικής διαδρομής

5

1

12

11

7

19

4

31111

9

3

1

12

οι κρίσιμες ακμές εξαλείφονται από τουπολειπόμενο δίκτυο μετά την αύξηση ροής

Page 63: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος των Edmonds-Karp

Θεώρημα Το συνολικό πλήθος των πράξεων αυξήσεως ροής είναι .

Απόδειξη Θα δείξουμε ότι μια ακμή μπορεί να καταστεί κρίσιμη φορές

Όταν η γίνει κρίσιμη τότε

Μετά την πράξη αύξησης η εξαλείφεται. Για να γίνει ξανά κρίσιμη πρέπει

να αυξηθεί η ροή από το στο

Επειδή έχουμε

Ο ισχυρισμός μας συνεπάγεται από το ότι αν η

γίνει κρίσιμη.

Page 64: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Ροή εμποδισμού (blocking flow)

Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή

3 3

3

1

3

2/3 3/3

2/3

1/1

3/3

Page 65: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Ροή εμποδισμού (blocking flow)

Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή

3 3

3

1

3

2/3 3/3

2/3

1/1

3/3

Η ροή δεν μπορεί να αυξηθεί μέσω μονοπατιών του (αν δεν είναι μέγιστη

τότε μπορεί να αυξηθεί μέσω μονοπατιών του )

Page 66: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Ροή εμποδισμού (blocking flow)

Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή

3 4

3 32

1

4 3

μήκος συντομότερης διαδρομής στο από το στο

3 4

3 32

4 3

Γράφημα επιπέδων

Επίπεδο

Περιέχει τις ακμές

για τις οποίες ισχύει

(0)

(1)(1)

(2) (2)

(3)

Page 67: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Ροή εμποδισμού (blocking flow)

Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή

3 4

3 32

1

4 3

μήκος συντομότερης διαδρομής στο από το στο

3/3 1/4

1/3 1/32/2

1/4 3/3

Γράφημα επιπέδων

Επίπεδο

Περιέχει τις ακμές

για τις οποίες ισχύει

(0)

(1)(1)

(2) (2)

(3)ροή εμποδισμού του

Παρατήρηση: Το είναι άκυκλο

Page 68: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Ροή εμποδισμού (blocking flow)

Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή

μήκος συντομότερης διαδρομής στο από το στο

Γράφημα επιπέδων

Επίπεδο

Περιέχει τις ακμές για τις οποίες ισχύει

ροή εμποδισμού του

Αλγόριθμος Αρχικά . Επαναλαμβάνει το παρακάτω βήμα μέχρι ο να μην ανήκει στο :

Βρες ροή εμποδισμού στο . Η ροή του γίνεται

Βήμα εμποδισμού:

Παρατήρηση: Το είναι άκυκλο

Page 69: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

3 4

3 32

1

4 3

3/3 1/4

1/3 1/32/2

1/4 3/3

(0)

(1)(1)

(2) (2)

(3)

3 4

3 32

1

4 3

Page 70: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

33

2 32

1

3 3

3

2 3

3

(0)

(1)(2)

(2)

(4)

3/3 1/4

1/3 1/32/2

1

1/4 3/3

1

1

1(3)

1

Page 71: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

33

2 32

1

3 3

1/3

1/2 3

1/3

(0)

(1)(2)

(2)

(4)

3/3 1/4

1/3 1/32/2

1

1/4 3/3

1

1

1(3)

1/1

Page 72: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

32

1 12

1

2 3

2

1 2

2

(0)

(1)(3)

(2)

(5)

3/3 2/4

2/3 1/32/2

1/1

2/4 3/3

2

2

2(4)

22

Page 73: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

31

21

1

1 3

1

1

1

(0)

(1)(3)

(2)

3/3 3/4

3/3 2/31/2

1/1

3/4 3/3

3

3

3( )

111

( )

Page 74: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Δείχνουμε ότι το επίπεδο του αυξάνει σε κάθε βήμα. Αφούγια όλους του κόμβους τότε μπορούμε να έχουμε το πολύ βήματα

Έστω και η συνάρτηση και το γράφημα επιπέδων αντίστοιχα μετά από

ένα βήμα εμποδισμού. Έστω το υπολειπόμενο δίκτυο μετά το βήμα.

Για κάθε ακμή ισχύει

Για κάθε ακμή ισχύει ή άρα

Αυτό συνεπάγεται ότι

Λήμμα Ο αλγόριθμος τερματίζει μετά από το πολύ βήματα εμποδισμού

Page 75: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Λήμμα Ο αλγόριθμος τερματίζει μετά από το πολύ βήματα εμποδισμού

Έστω οποιαδήποτε συντομότερη διαδρομή του από το στο

Για κάθε έχουμε άρα

Όμως η είναι ροή εμποδισμού άρα τουλάχιστον μια ακμή είναι

κορεσμένη και επομένως

Άρα

Δείχνουμε ότι το επίπεδο του αυξάνει σε κάθε βήμα. Αφούγια όλους του κόμβους τότε μπορούμε να έχουμε το πολύ βήματα

Page 76: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

3 4

3 32

4 3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 77: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

3 4

3 32

4 3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 78: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

2/3 4

3 32/2

4 2/3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 79: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

2/3 4

3 32/2

4 2/3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 80: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

3/3 4

1/3 32/2

1/4 2/3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 81: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

3/3 4

1/3 32/2

1/4 2/3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 82: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

3/3 4

1/3 32/2

1/4 2/3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 83: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

3/3 1/4

1/3 1/32/2

1/4 3/3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 84: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο

3/3 1/4

1/3 1/32/2

1/4 3/3

(0)

(1)(1)

(2) (2)

(3)

Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να

κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.

Page 85: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα

Η εύρεση του μονοπατιού μπορεί να γίνει με καθοδική διερεύνηση, που υλοποιείται από τις παρακάτω ρουτίνες:

αρχικοποίηση: . Πήγαινε στη ρουτίνα πρόοδος.

πρόοδος: Aν δεν υπάρχει εξερχόμενη ακμή πήγαινε στη ρουτίνα υποχώρηση.

επαύξηση: .. Πρόσθεσε μονάδες ροής σε κάθε ακμή

υποχώρηση: Αν τερμάτισε. Διαφορετικά έστω η τελευταία ακμή του .

Διαφορετικά . . Αν επανάλαβε τη ρουτίνα πρόοδος.

Αν πήγαινε στη ρουτίνα επαύξηση.

του , σβήσε τις κορεσμένες ακμές και πήγαινε στη ρουτίνα αρχικοποίηση.

Σβήσε τη από το και το από το . Κάνε και πήγαινε

στη ρουτίνα πρόοδος.

Page 86: Μέγιστη ροή

Μέγιστη ροή

Ο αλγόριθμος του Dinic

Η προηγούμενη ρουτίνα βρίσκει μια ροή εμποδισμού σε χρόνο

Ο αλγόριθμος τερματίζει μετά από το πολύ βήματα εμποδισμού

Επομένως ο χρόνος εκτέλεσης είναι

Με δυναμικά δένδρα ο χρόνος εκτέλεσης γίνεται

Page 87: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

Επίσης έχουν σχεδιαστεί αλγόριθμοι που επιτυγχάνουν χρόνο

[G. Borradaile and P. Klein, J. ACM 56(2), 2009], [J. Erickson, SODA 2010]

Page 88: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

Θα περιγράψουμε τον αλγόριθμο των Hassin και Itai-Shiloach για την εύρεση

της μέγιστης ροής σε ένα st-επίπεδο γράφημα G, όπου ο αφετηριακός κόμβος

s και ο τερματικός κόμβος t βρίσκονται στην εξωτερική όψη.

s t

4

5

3

7

2

1

3

1

46

3

57

Για απλότητα θα θεωρήσουμε ότι το G είναι μη κατευθυνόμενο. (Ο αλγόριθμος μπορεί να εφαρμοστεί και σε κατευθυνόμενα γραφήματα με κατάλληλο ορισμό του δυϊκού γραφήματος.)

Page 89: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

e

Έστω e μια ακμή ενός κατευθυνόμενου επίπεδου γραφήματος, η οποία βρίσκεται μεταξύ των όψεων fα και fδ, όπου η fα βρίσκεται στα αριστερά της e ως προς την

κατεύθυνση της e και η fδ βρίσκεται στα δεξιά της e. Τότε η αντίστοιχη δυική ακμή

έχει κατεύθυνση από τον κόμβο που αντιστοιχεί στην όψη

fδ προς τον κόμβο που αντιστοιχεί στην όψη fα.

e*

e

e*

fαfδ

fδfα

Page 90: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

c

Ο αλγόριθμος βασίζεται στην παρατήρηση ότι ο υπολογισμός της μέγιστης ροής

σε ένα st-επίπεδο γράφημα G αντιστοιχεί στην εύρεση συντομότερων

μονοπατιών στο δυϊκό γράφημα G*.

Αναθέτουμε στη δυϊκή ακμή e* που αντιστοιχεί στην ακμή e, μήκος ,

όπου c(e) η χωρητικότητα της e.

Οι συντομότερες διαδρομές από έναν αφετηριακό κόμβο προς όλους τους άλλους

κόμβους σε ένα επίπεδο γράφημα μπορούν να υπολογιστούν σε O(n) χρόνο [M.

Henzinger, P. Klein, S. Rao, and S. Subramanian, JCSS 55(1), 1997].

Page 91: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

Αναγωγή στον υπολογισμό ελαφρύτατων διαδρομών

Ξεκινάμε με το st-επίπεδο γράφημα G και εκτελούμε τα παρακάτω βήματα:

• Εισαγάγουμε μια ψεύτικη ακμή (s,t) πάνω από το G.

• Κατασκευάζουμε το δυϊκό γράφημα G*, το οποίο περιλαμβάνει δύο κόμβους s*

και t*, όπου ο s* βρίσκεται πάνω από το αρχικό γράφημα και κάτω από την ακμή

(s,t), ενώ ο t* βρίσκεται κάτω από το G.

• Τέλος, διαγράφουμε την ακμή (s*,t*) από το G*.

• Υπολογίζουμε τις συντομότερες διαδρομές στο G* από τον s* προς τον t*.

Έστω

d(t*) το μήκος αυτής της διαδρομής. Τότε η μέγιστη ροή στο G έχει τιμή d(t*).

Page 92: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

s t

4

5

3

7

2

1

3

1

46

3

57

Page 93: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

s t

4

5

3

7

2

1

3

1

46

3

57

Page 94: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

s t

4

5

3

7

2

1

3

1

46

3

57

s*

t*

Page 95: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

s t

4

5

3

7

2

1

3

1

46

3

57

s*

t*

Page 96: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

s t

4

5

3

7

2

1

3

1

46

3

57

s*

t*

Page 97: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

Έστω d(j*) το μήκος της ελαφρύτατης διαδρομής από τον s* στον v* για κάθε

κόμβο v* του G*. Έστω (u*, v*) μια ακμή του G*που αντιστοιχεί στην (u,v) του G,

όπου . Αναθέτουμε στην (u,v) ροή

από τον u στον v.

Αναγωγή στον υπολογισμό ελαφρύτατων διαδρομών

Page 98: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

s t

4/4

3/5

2/3

0/7

1/1

3/3

1/1

3/4 6/6

3/3

2/25/7

s*

t*

(2)

(4)

(7)

(9)

(3)

(4)

(6)

2/2

Page 99: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

Έστω d(j*) το μήκος της ελαφρύτατης διαδρομής από τον s* στον v* για κάθε

κόμβο v* του G*. Έστω (u*, v*) μια ακμή του G*που αντιστοιχεί στην (u,v) του G,

όπου . Αναθέτουμε στην (u,v) ροή

από τον u στον v.

Αναγωγή στον υπολογισμό ελαφρύτατων διαδρομών

Επιπλέον αν η (u*,v*) είναι ακμή συντομότερης διαδρομής από τον s* στον

v* τότε η (u,v) είναι κορεσμένη αφού θα έχουμε

Για κάθε ακμή (u*,v*) ισχύει :

Άρα ικανοποιείται ο περιορισμός χωρητικότητας. Απομένει να δείξουμε ότι

ικανοποιείται η διατήρηση ροής. (Η αντισυμμετρία ικανοποιείται εξ ορισμού.)

Page 100: Μέγιστη ροή

Μέγιστη ροή σε επίπεδα γραφήματα

Έστω d(j*) το μήκος της ελαφρύτατης διαδρομής από τον s* στον v* για κάθε

κόμβο v* του G*. Έστω (u*, v*) μια ακμή του G*που αντιστοιχεί στην (u,v) του G,

όπου . Αναθέτουμε στην (u,v) ροή

από τον u στον v.

Αναγωγή στον υπολογισμό ελαφρύτατων διαδρομών

2/3

0/7

1/1

1/1

(2)

(4)

(3)

(4)

Θεωρούμε ένα κόμβο v και τις ακμές που

προσπίπτουν σε αυτόν. Οι δυικές ακμές ορίζουν

ένα κύκλο γύρω από τον v

όπου

v

Άρα ικανοποιείται και η διατήρηση ροής.