Μέγιστη ροή
description
Transcript of Μέγιστη ροή
Μέγιστη ροή
Συνάρτηση χωρητικότητας
Κατευθυνόμενο γράφημα
16
13
12
14
79
20
4
410
αφετηρίακόςκόμβος
τερματικόςκόμβος
Ροή δικτύου
Συνάρτηση με τις ακόλουθες ιδιότητες
για όλα τα ζεύγηΠεριορισμός χωρητικότητας:
για όλα τα ζεύγηΑντισυμμετρία:
για κάθεΔιατήρηση ροής:
Μέγιστη ροή
Συνάρτηση χωρητικότητας
Κατευθυνόμενο γράφημα
10/16
7/13
10/12
7/14
3/79
13/20
4/4
410
Ροή δικτύου
Συνάρτηση με τις ακόλουθες ιδιότητες
για όλα τα ζεύγηΠεριορισμός χωρητικότητας:
για όλα τα ζεύγηΑντισυμμετρία:
για κάθεΔιατήρηση ροής:
Π.χ.
Μέγιστη ροή
Συνάρτηση χωρητικότητας
Κατευθυνόμενο γράφημα
10/16
7/13
10/12
7/14
3/79
13/20
4/4
410
Ροή δικτύου
Συνάρτηση με τις ακόλουθες ιδιότητες
για όλα τα ζεύγηΠεριορισμός χωρητικότητας:
για όλα τα ζεύγηΑντισυμμετρία:
για κάθεΔιατήρηση ροής:
Π.χ.
Μέγιστη ροή
Συνάρτηση χωρητικότητας
Κατευθυνόμενο γράφημα
10/16
7/13
10/12
7/14
3/79
13/20
4/4
410
Ροή δικτύου
Συνάρτηση με τις ακόλουθες ιδιότητες
για όλα τα ζεύγηΠεριορισμός χωρητικότητας:
για όλα τα ζεύγηΑντισυμμετρία:
για κάθεΔιατήρηση ροής:
Π.χ.
Τιμή ροής:
Μέγιστη ροή
Συνάρτηση χωρητικότητας
Κατευθυνόμενο γράφημα
10/16
7/13
10/12
7/14
3/79
13/20
4/4
410
Ροή δικτύου
Συνάρτηση με τις ακόλουθες ιδιότητες
για όλα τα ζεύγηΠεριορισμός χωρητικότητας:
για όλα τα ζεύγηΑντισυμμετρία:
για κάθεΔιατήρηση ροής:
Π.χ.
Τιμή ροής: Θέλουμε να βρούμε μια ροή με μέγιστη τιμή
Μέγιστη ροή
Σημαντικό πεδίο έρευνας, πολλές εφαρμογές…
Μέγιστη ροή
Ροή δικτύου
Συνάρτηση με τις ακόλουθες ιδιότητες
για όλα τα ζεύγηΠεριορισμός χωρητικότητας:
για όλα τα ζεύγηΑντισυμμετρία:
για κάθεΔιατήρηση ροής:
Τιμή ροής: Θέλουμε να βρούμε μια ροή με μέγιστη τιμή
Ολική θετική εισροή:
Ολική θετική εκροή:
Ολική καθαρή ροή:
Μέγιστη ροή
Ροή δικτύου
Συνάρτηση με τις ακόλουθες ιδιότητες
για όλα τα ζεύγηΠεριορισμός χωρητικότητας:
για όλα τα ζεύγηΑντισυμμετρία:
για κάθεΔιατήρηση ροής:
Τιμή ροής: Θέλουμε να βρούμε μια ροή με μέγιστη τιμή
Ολική θετική εισροή:
Ολική θετική εκροή:
Ολική καθαρή ροή:
λόγω διατήρησηςτης ροής
Μέγιστη ροή
Παρατήρηση Το μοντέλο της ροής δικτύου που χρησιμοποιούμε δεν επιτρέπει την καταστάσεις σαν την ακόλουθη
Παραβιάζει την αντισυμμετρία
Μέγιστη ροή
Πολλαπλοί αφετηριακοί και τερματικοί κόμβοι
Μέγιστη ροή
Έστω σύνολα και
Ορίζουμε
Άρα
Λήμμα Ισχύουν οι ακόλουθες ισότητες
1. Για κάθε
2. Για κάθε
3. Για κάθε τέτοια ώστε
και
Μέγιστη ροή
Λήμμα Ισχύουν οι ακόλουθες ισότητες
1. Για κάθε
2. Για κάθε
3. Για κάθε τέτοια ώστε
και
Πόρισμα
(από την 3, )
(από την 1, )
(από την 2)
(από την 3)
(από διατήρηση ροής )
Μέγιστη ροή
Μέθοδος Ford-Fulkerson
10/16
7/13
10/12
7/14
3/79
13/20
4/4
410
Αυξητική διαδρομή: διαδρομή από το στο που μπορεί να δεχθεί επιπλέον ροή
1. θέτουμε τη ροή ίση με 0
2. ενόσω υπάρχει αυξητική διαδρομή
3. αυξάνουμε τη ροή κατά μήκος της
Μέγιστη ροή
Μέθοδος Ford-Fulkerson
Υπολειπόμενη χωρητικότητα
5/8 3
5
Υπολειπόμενο δίκτυο
5/8 3
116
όπου
Μέγιστη ροή
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
Μέγιστη ροή
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
Έστω οι ακμές του με ανεστραμμένη φορά
Τότε
Μέγιστη ροή
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
Αυξητική διαδρομή: διαδρομή από το στο που μπορεί να δεχθεί επιπλέον ροή
Μέγιστη ροή
Μέθοδος Ford-Fulkerson
Υπολειπόμενη χωρητικότητα
Υπολειπόμενο δίκτυο όπου
Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή
Άθροισμα ροών
Αντισυμμετρία
Απόδειξη Πρώτα θα δείξουμε οτι το άθροισμα είναι ροή στο
Μέγιστη ροή
Μέθοδος Ford-Fulkerson
Υπολειπόμενη χωρητικότητα
Υπολειπόμενο δίκτυο όπου
Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή
Άθροισμα ροών
Χωρητικότητα
Απόδειξη Πρώτα θα δείξουμε οτι το άθροισμα είναι ροή στο
Ισχύει
άρα
Μέγιστη ροή
Μέθοδος Ford-Fulkerson
Υπολειπόμενη χωρητικότητα
Υπολειπόμενο δίκτυο όπου
Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή
Άθροισμα ροών
Διατήρηση ροής
Απόδειξη Πρώτα θα δείξουμε οτι το άθροισμα είναι ροή στο
Για κάθε κόμβο έχουμε
Επειδή και είναι ροές και έχουμε
Μέγιστη ροή
Μέθοδος Ford-Fulkerson
Υπολειπόμενη χωρητικότητα
Υπολειπόμενο δίκτυο όπου
Λήμμα Έστω μία ροή στο υπολειπόμενο δίκτυο. Τότε το άθροισμα είναιροή στο με τιμή
Άθροισμα ροών
Τιμή της ροής
Απόδειξη
Μέγιστη ροή
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
Αυξητική διαδρομή: διαδρομή από το στο που μπορεί να δεχθεί επιπλέον ροή
Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής :
Π.χ. και
Μέγιστη ροή
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
Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής
Η συνάρτηση όπου
αποτελεί ροή στο
Επομένως η συνάρτηση αποτελεί ροή στο και
Μέγιστη ροή
Τομές δικτύων ροής
Δίκτυο ροής
Τομή διαμέριση του συνόλου των κόμβων και
έτσι ώστε και
12/16
7/13
12/12
9/14
5/72/9
15/20
4/4
410
Καθαρή ροή δια μέσου της τομής
Χωρητικότητα της τομής
Π.χ.
Ισχύει
Μέγιστη ροή
Τομές δικτύων ροής
Δίκτυο ροής
Τομή διαμέριση του συνόλου των κόμβων και
έτσι ώστε και
Καθαρή ροή δια μέσου της τομής :
Χωρητικότητα της τομής :
Λήμμα Έστω μια ροή στο και μία τομή του . Τότε
Μέγιστη ροή
Τομές δικτύων ροής
Λήμμα Έστω μια ροή στο και μία τομή του . Τότε
12/16
7/13
12/12
9/14
5/72/9
15/20
4/4
410
Απόδειξη
Όμως
Άρα
Έχουμε
Μέγιστη ροή
Τομές δικτύων ροής
Λήμμα Έστω μια ροή στο και μία τομή του . Τότε
12/16
7/13
12/12
9/14
5/72/9
15/20
4/4
410
Απόδειξη
Όμως
Άρα
Έχουμε
Επιπλέον
Μέγιστη ροή
Τομές δικτύων ροής
Θεώρημα Οι ακόλουθες συνθήκες είναι ισοδύναμες
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
Μέγιστη ροή
Τομές δικτύων ροής
Θεώρημα Οι ακόλουθες συνθήκες είναι ισοδύναμες
1. Η είναι μια μέγιστη ροή στο
2. Δεν υπάρχει αυξητική διαδρομή στο υπολειπόμενο δίκτυο
3. Υπάρχει τομή του τέτοια ώστε
Απόδειξη
Έστω ότι η είναι μέγιστη ροή αλλά το περιλαμβάνει αυξητική
διαδρομή . Επομένως υπάρχει στο ροή και όπως έχουμε δείξει το άθροισμα
αποτελεί ροή στο με τιμή
Αυτό όμως αντιβαίνει το γεγονός ότι η είναι μέγιστη ροή.
Μέγιστη ροή
Τομές δικτύων ροής
Θεώρημα Οι ακόλουθες συνθήκες είναι ισοδύναμες
1. Η είναι μια μέγιστη ροή στο
2. Δεν υπάρχει αυξητική διαδρομή στο υπολειπόμενο δίκτυο
3. Υπάρχει τομή του τέτοια ώστε
ΑπόδειξηΥποθέτουμε τώρα πως δεν υπάρχει αυξητική διαδρομή στο
Θέτουμε το ως το σύνολο των κόμβων που είναι προσβάσιμοι από το στο
. Προφανώς άρα το είναι μία τομή τουκαικαι
Έστω οποιοιδήποτε κόμβοι και . Πρέπει να ισχύει
έτσι ώστε γιατί διαφορετικά το περιέχει
μονοπάτι από το στο
Άρα
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
για κάθε ακμή
ενόσω υπάρχει αυξητική διαδρομή στο
για κάθε ακμή
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
Μέγιστη ροή
Ο βασικός αλγόριθμος των 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
δεν υπάρχειαυξητική διαδρομή
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
για κάθε ακμή
ενόσω υπάρχει αυξητική διαδρομή στο
για κάθε ακμή
Ανάλυση: Υποθέτουμε ακέραιες χωρητικότητες.
Τότε ο χρόνος εκτέλεσης είναι όπου η τιμή της μέγιστης ροής.
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
για κάθε ακμή
ενόσω υπάρχει αυξητική διαδρομή στο
για κάθε ακμή χρόνος για την εύρεση και
επεξεργασία της αυξητικής διαδρομής
Ανάλυση: Υποθέτουμε ακέραιες χωρητικότητες.
Τότε ο χρόνος εκτέλεσης είναι όπου η τιμή της μέγιστης ροής.
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
για κάθε ακμή
ενόσω υπάρχει αυξητική διαδρομή στο
για κάθε ακμή χρόνος για την εύρεση και
επεξεργασία της αυξητικής διαδρομής
αύξηση της ροής κατά 1 μονάδα
Ανάλυση: Υποθέτουμε ακέραιες χωρητικότητες.
Τότε ο χρόνος εκτέλεσης είναι όπου η τιμή της μέγιστης ροής.
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
0/1000
0/1000
0/1
0/1000
0/1000 1000
1000
1
1000
1000
δίκτυο υπολειπόμενο δίκτυο
Μια κακή περίπτωση
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
0/1000
0/1000
0/1
0/1000
0/1000 1000
1000
1
1000
1000
δίκτυο υπολειπόμενο δίκτυο
Μια κακή περίπτωση
υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
1/1000
0/1000
1/1
1/1000
0/1000 1000
1000
1
1000
1000
δίκτυο υπολειπόμενο δίκτυο
Μια κακή περίπτωση
υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
1/1000
0/1000
1/1
1/1000
0/1000 999
1
δίκτυο υπολειπόμενο δίκτυο
1000
10001
1
999
Μια κακή περίπτωση
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
1/1000
0/1000
1/1
1/1000
0/1000 999
1
δίκτυο υπολειπόμενο δίκτυο
1000
10001
1
999
Μια κακή περίπτωση
υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
1/1000
1/1000
0/1
1/1000
1/1000 999
1
δίκτυο υπολειπόμενο δίκτυο
1000
10001
1
999
Μια κακή περίπτωση
υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
1/1000
1/1000
0/1
1/1000
1/1000 999
1
δίκτυο υπολειπόμενο δίκτυο
1
1
999
Μια κακή περίπτωση
999
999
1
1
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
1/1000
1/1000
0/1
1/1000
1/1000 999
1
δίκτυο υπολειπόμενο δίκτυο
1
1
999
Μια κακή περίπτωση
999
999
1
1
υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1
Μέγιστη ροή
Ο βασικός αλγόριθμος των Ford-Fulkerson
2/1000
1/1000
1/1
2/1000
1/1000 999
1
δίκτυο υπολειπόμενο δίκτυο
1
1
999
Μια κακή περίπτωση
999
999
1
1
υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1κ.ο.κ.
Μέγιστη ροή
Ο αλγόριθμος των Edmonds-Karp
για κάθε ακμή
ενόσω υπάρχει αυξητική διαδρομή στο
για κάθε ακμή
βραχύτατη αυξητική διαδρομή Με αυτήν την τροποποίησηο χρόνος εκτέλεσης γίνεται
Μέγιστη ροή
Ο αλγόριθμος των Edmonds-Karp
για κάθε ακμή
ενόσω υπάρχει αυξητική διαδρομή στο
για κάθε ακμή
βραχύτατη αυξητική διαδρομή Με αυτήν την τροποποίησηο χρόνος εκτέλεσης γίνεται
μήκος βραχύτατης διαδρομής απότο μέχρι το στο
Λήμμα Για κάθε κόμβο το μήκος αυξάνεται μονότοναμε κάθε αύξηση της ροής.
Μέγιστη ροή
Ο αλγόριθμος των Edmonds-Karp
Λήμμα Για κάθε κόμβο το μήκος αυξάνεται μονότοναμε κάθε αύξηση της ροής.
Απόδειξη Υποθέτουμε ότι για κάποιο το μήκος μειώνεται μετά από μία πράξη αύξησης ροής.
Έστω η ροή πριν την πράξη αύξησης και η ροή μετά την πράξη αύξησης
Επιλέγουμε ως τον κόμβο με την ελάχιστη τιμήτέτοιον ώστε
Έστω μια βραχύτατη διαδρομή στο από το στο
Έχουμε και
Αν τότε
Αντιβαίνει την υπόθεση
Μέγιστη ροή
Ο αλγόριθμος των Edmonds-Karp
Λήμμα Για κάθε κόμβο το μήκος αυξάνεται μονότοναμε κάθε αύξηση της ροής.
Απόδειξη Υποθέτουμε ότι για κάποιο το μήκος μειώνεται μετά από μία πράξη αύξησης ροής.
Έστω η ροή πριν την πράξη αύξησης και η ροή μετά την πράξη αύξησης
Επιλέγουμε ως τον κόμβο με την ελάχιστη τιμήτέτοιον ώστε
Έστω μια βραχύτατη διαδρομή στο από το στο
Έχουμε και
Άρα και η ροή από το στο αυξήθηκε
η βραχύτατη διαδρομή από μέχρι το στο να ήταν
επομένως ΑΤΟΠΟ
Μέγιστη ροή
Ο αλγόριθμος των Edmonds-Karp
Θεώρημα Το συνολικό πλήθος των πράξεων αυξήσεως ροής είναι .
Απόδειξη
5
5
12
11
75
15
4
31111
4
3
5
8
κρίσιμη ακμή αυξητικής διαδρομής
Μέγιστη ροή
Ο αλγόριθμος των 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
οι κρίσιμες ακμές εξαλείφονται από τουπολειπόμενο δίκτυο μετά την αύξηση ροής
Μέγιστη ροή
Ο αλγόριθμος των Edmonds-Karp
Θεώρημα Το συνολικό πλήθος των πράξεων αυξήσεως ροής είναι .
Απόδειξη Θα δείξουμε ότι μια ακμή μπορεί να καταστεί κρίσιμη φορές
Όταν η γίνει κρίσιμη τότε
Μετά την πράξη αύξησης η εξαλείφεται. Για να γίνει ξανά κρίσιμη πρέπει
να αυξηθεί η ροή από το στο
Επειδή έχουμε
Ο ισχυρισμός μας συνεπάγεται από το ότι αν η
γίνει κρίσιμη.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Ροή εμποδισμού (blocking flow)
Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή
3 3
3
1
3
2/3 3/3
2/3
1/1
3/3
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Ροή εμποδισμού (blocking flow)
Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή
3 3
3
1
3
2/3 3/3
2/3
1/1
3/3
Η ροή δεν μπορεί να αυξηθεί μέσω μονοπατιών του (αν δεν είναι μέγιστη
τότε μπορεί να αυξηθεί μέσω μονοπατιών του )
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Ροή εμποδισμού (blocking flow)
Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή
3 4
3 32
1
4 3
μήκος συντομότερης διαδρομής στο από το στο
3 4
3 32
4 3
Γράφημα επιπέδων
Επίπεδο
Περιέχει τις ακμές
για τις οποίες ισχύει
(0)
(1)(1)
(2) (2)
(3)
Μέγιστη ροή
Ο αλγόριθμος του 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)ροή εμποδισμού του
Παρατήρηση: Το είναι άκυκλο
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Ροή εμποδισμού (blocking flow)
Ροή για την οποία κάθε μονοπάτι από το στο περιέχει κορεσμένη ακμή
μήκος συντομότερης διαδρομής στο από το στο
Γράφημα επιπέδων
Επίπεδο
Περιέχει τις ακμές για τις οποίες ισχύει
ροή εμποδισμού του
Αλγόριθμος Αρχικά . Επαναλαμβάνει το παρακάτω βήμα μέχρι ο να μην ανήκει στο :
Βρες ροή εμποδισμού στο . Η ροή του γίνεται
Βήμα εμποδισμού:
Παρατήρηση: Το είναι άκυκλο
Μέγιστη ροή
Ο αλγόριθμος του 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
Μέγιστη ροή
Ο αλγόριθμος του 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
Μέγιστη ροή
Ο αλγόριθμος του 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
Μέγιστη ροή
Ο αλγόριθμος του 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
Μέγιστη ροή
Ο αλγόριθμος του 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
( )
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Δείχνουμε ότι το επίπεδο του αυξάνει σε κάθε βήμα. Αφούγια όλους του κόμβους τότε μπορούμε να έχουμε το πολύ βήματα
Έστω και η συνάρτηση και το γράφημα επιπέδων αντίστοιχα μετά από
ένα βήμα εμποδισμού. Έστω το υπολειπόμενο δίκτυο μετά το βήμα.
Για κάθε ακμή ισχύει
Για κάθε ακμή ισχύει ή άρα
Αυτό συνεπάγεται ότι
Λήμμα Ο αλγόριθμος τερματίζει μετά από το πολύ βήματα εμποδισμού
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Λήμμα Ο αλγόριθμος τερματίζει μετά από το πολύ βήματα εμποδισμού
Έστω οποιαδήποτε συντομότερη διαδρομή του από το στο
Για κάθε έχουμε άρα
Όμως η είναι ροή εμποδισμού άρα τουλάχιστον μια ακμή είναι
κορεσμένη και επομένως
Άρα
Δείχνουμε ότι το επίπεδο του αυξάνει σε κάθε βήμα. Αφούγια όλους του κόμβους τότε μπορούμε να έχουμε το πολύ βήματα
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
3 4
3 32
4 3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
3 4
3 32
4 3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
2/3 4
3 32/2
4 2/3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
2/3 4
3 32/2
4 2/3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
3/3 4
1/3 32/2
1/4 2/3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
3/3 4
1/3 32/2
1/4 2/3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
3/3 4
1/3 32/2
1/4 2/3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
3/3 1/4
1/3 1/32/2
1/4 3/3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Επαναλαμβάνουμε το παρακάτω βήμα μέχρι να μην υπάρχει μονοπάτι από το στο
3/3 1/4
1/3 1/32/2
1/4 3/3
(0)
(1)(1)
(2) (2)
(3)
Βρίσκουμε ένα μονοπάτι από το στο και δίνουμε αρκετή ροή ώστε να
κορεστεί μια ακμή του. Σβήνουμε κάθε ακμή που έχει κορεστεί.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Υπολογισμός ροής εμποδισμού σε άκυκλο γράφημα
Η εύρεση του μονοπατιού μπορεί να γίνει με καθοδική διερεύνηση, που υλοποιείται από τις παρακάτω ρουτίνες:
αρχικοποίηση: . Πήγαινε στη ρουτίνα πρόοδος.
πρόοδος: Aν δεν υπάρχει εξερχόμενη ακμή πήγαινε στη ρουτίνα υποχώρηση.
επαύξηση: .. Πρόσθεσε μονάδες ροής σε κάθε ακμή
υποχώρηση: Αν τερμάτισε. Διαφορετικά έστω η τελευταία ακμή του .
Διαφορετικά . . Αν επανάλαβε τη ρουτίνα πρόοδος.
Αν πήγαινε στη ρουτίνα επαύξηση.
του , σβήσε τις κορεσμένες ακμές και πήγαινε στη ρουτίνα αρχικοποίηση.
Σβήσε τη από το και το από το . Κάνε και πήγαινε
στη ρουτίνα πρόοδος.
Μέγιστη ροή
Ο αλγόριθμος του Dinic
Η προηγούμενη ρουτίνα βρίσκει μια ροή εμποδισμού σε χρόνο
Ο αλγόριθμος τερματίζει μετά από το πολύ βήματα εμποδισμού
Επομένως ο χρόνος εκτέλεσης είναι
Με δυναμικά δένδρα ο χρόνος εκτέλεσης γίνεται
Μέγιστη ροή σε επίπεδα γραφήματα
Επίσης έχουν σχεδιαστεί αλγόριθμοι που επιτυγχάνουν χρόνο
[G. Borradaile and P. Klein, J. ACM 56(2), 2009], [J. Erickson, SODA 2010]
Μέγιστη ροή σε επίπεδα γραφήματα
Θα περιγράψουμε τον αλγόριθμο των Hassin και Itai-Shiloach για την εύρεση
της μέγιστης ροής σε ένα st-επίπεδο γράφημα G, όπου ο αφετηριακός κόμβος
s και ο τερματικός κόμβος t βρίσκονται στην εξωτερική όψη.
s t
4
5
3
7
2
1
3
1
46
3
57
Για απλότητα θα θεωρήσουμε ότι το G είναι μη κατευθυνόμενο. (Ο αλγόριθμος μπορεί να εφαρμοστεί και σε κατευθυνόμενα γραφήματα με κατάλληλο ορισμό του δυϊκού γραφήματος.)
Μέγιστη ροή σε επίπεδα γραφήματα
e
Έστω e μια ακμή ενός κατευθυνόμενου επίπεδου γραφήματος, η οποία βρίσκεται μεταξύ των όψεων fα και fδ, όπου η fα βρίσκεται στα αριστερά της e ως προς την
κατεύθυνση της e και η fδ βρίσκεται στα δεξιά της e. Τότε η αντίστοιχη δυική ακμή
έχει κατεύθυνση από τον κόμβο που αντιστοιχεί στην όψη
fδ προς τον κόμβο που αντιστοιχεί στην όψη fα.
e*
e
e*
fαfδ
fδfα
Μέγιστη ροή σε επίπεδα γραφήματα
c
Ο αλγόριθμος βασίζεται στην παρατήρηση ότι ο υπολογισμός της μέγιστης ροής
σε ένα st-επίπεδο γράφημα G αντιστοιχεί στην εύρεση συντομότερων
μονοπατιών στο δυϊκό γράφημα G*.
Αναθέτουμε στη δυϊκή ακμή e* που αντιστοιχεί στην ακμή e, μήκος ,
όπου c(e) η χωρητικότητα της e.
Οι συντομότερες διαδρομές από έναν αφετηριακό κόμβο προς όλους τους άλλους
κόμβους σε ένα επίπεδο γράφημα μπορούν να υπολογιστούν σε O(n) χρόνο [M.
Henzinger, P. Klein, S. Rao, and S. Subramanian, JCSS 55(1), 1997].
Μέγιστη ροή σε επίπεδα γραφήματα
Αναγωγή στον υπολογισμό ελαφρύτατων διαδρομών
Ξεκινάμε με το st-επίπεδο γράφημα G και εκτελούμε τα παρακάτω βήματα:
• Εισαγάγουμε μια ψεύτικη ακμή (s,t) πάνω από το G.
• Κατασκευάζουμε το δυϊκό γράφημα G*, το οποίο περιλαμβάνει δύο κόμβους s*
και t*, όπου ο s* βρίσκεται πάνω από το αρχικό γράφημα και κάτω από την ακμή
(s,t), ενώ ο t* βρίσκεται κάτω από το G.
• Τέλος, διαγράφουμε την ακμή (s*,t*) από το G*.
• Υπολογίζουμε τις συντομότερες διαδρομές στο G* από τον s* προς τον t*.
Έστω
d(t*) το μήκος αυτής της διαδρομής. Τότε η μέγιστη ροή στο G έχει τιμή d(t*).
Μέγιστη ροή σε επίπεδα γραφήματα
s t
4
5
3
7
2
1
3
1
46
3
57
Μέγιστη ροή σε επίπεδα γραφήματα
s t
4
5
3
7
2
1
3
1
46
3
57
Μέγιστη ροή σε επίπεδα γραφήματα
s t
4
5
3
7
2
1
3
1
46
3
57
s*
t*
Μέγιστη ροή σε επίπεδα γραφήματα
s t
4
5
3
7
2
1
3
1
46
3
57
s*
t*
Μέγιστη ροή σε επίπεδα γραφήματα
s t
4
5
3
7
2
1
3
1
46
3
57
s*
t*
Μέγιστη ροή σε επίπεδα γραφήματα
Έστω d(j*) το μήκος της ελαφρύτατης διαδρομής από τον s* στον v* για κάθε
κόμβο v* του G*. Έστω (u*, v*) μια ακμή του G*που αντιστοιχεί στην (u,v) του G,
όπου . Αναθέτουμε στην (u,v) ροή
από τον u στον v.
Αναγωγή στον υπολογισμό ελαφρύτατων διαδρομών
Μέγιστη ροή σε επίπεδα γραφήματα
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
Μέγιστη ροή σε επίπεδα γραφήματα
Έστω d(j*) το μήκος της ελαφρύτατης διαδρομής από τον s* στον v* για κάθε
κόμβο v* του G*. Έστω (u*, v*) μια ακμή του G*που αντιστοιχεί στην (u,v) του G,
όπου . Αναθέτουμε στην (u,v) ροή
από τον u στον v.
Αναγωγή στον υπολογισμό ελαφρύτατων διαδρομών
Επιπλέον αν η (u*,v*) είναι ακμή συντομότερης διαδρομής από τον s* στον
v* τότε η (u,v) είναι κορεσμένη αφού θα έχουμε
Για κάθε ακμή (u*,v*) ισχύει :
Άρα ικανοποιείται ο περιορισμός χωρητικότητας. Απομένει να δείξουμε ότι
ικανοποιείται η διατήρηση ροής. (Η αντισυμμετρία ικανοποιείται εξ ορισμού.)
Μέγιστη ροή σε επίπεδα γραφήματα
Έστω 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
Άρα ικανοποιείται και η διατήρηση ροής.