Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο Ορισμοί Παραδείγματα Δικτυακή Simplex (προβλήματα με και χωρίς φραγμούς).
Δίκτυα Ροής Ελάχιστου Κόστους (Minimum Cost Flow Networks) Ένα δίκτυο μεταφόρτωσης αποτελείται από: Ένα σύνολο κόμβων (nodes): Ο κόμβος αντιπροσωπεύει σημείο παραγωγής (supply) ή ζήτησης (demand) ή σημείο μεταφόρτωσης (transshipment point). Κάθε κόμβος έχει εισροή η εκροή ίση με b: b>0 (εισροή): Ο κόμβος αντιπροσωπεύει πηγή (source). b<0 (εκροή): Ο κόμβος αντιπροσωπεύει δέκτη ή προορισμό (sink, destination). b=0: Ενδιάμεσος κόμβος (intermediate node) ή σημείο μεταφόρτωσης (transshipment point). Ένα σύνολο τόξων (arcs): Προϊόντα ρέουν κατά μήκος ενός τόξου το οποίο πηγαίνει από ένα κόμβο σε κάποιο άλλο. Κάθε τόξο μπορεί να έχει τις εξής ιδιότητες. Κόστος: Το κόστος ροής μίας μονάδας κατά μήκος του τόξου. Μέγιστη Δυνατότητα (Capacity): Ο μέγιστος αριθμός μονάδων πού μπορούν να περάσουν από το τόξο. Ελάχιστη Δυνατότητα (Floor): Ο ελάχιστος αριθμός μονάδων πού μπορούν να περάσουν από το τόξο.
Προβλήματα Αποθήκευσης και Διανομής D1 D2 D3 F1 F2 W1 W2 Παροχή Μεταφόρτωση Ζήτηση
Διατύπωση Προβλήματος Subject to:
Ιδιότητες Εφικτή λύση: Ακέραια λύση: Η απαραίτητη συνθήκη για την ύπαρξη εφικτής λύσης στο πρόβλημα ελάχιστου κόστους ροής (minimum cost flow problem) είναι η συνολική εισροή σε όλου τους κόμβους εισροής πρέπει να ισούται με τη συνολική εκροή από όλους τους κόμβους εκροής. Ακέραια λύση: Για προβλήματα ελαχίστου κόστους ροής (minimum cost flow problems) όπου όλες οι παράμετροι bi και uij έχουν ακέραιες τιμές, όλες οι βασικές μεταβλητές σε κάθε βασική εφικτή λύση περνούν επίσης ακέραιες τιμές.
Northern Airplane (NA) Co. Μήν. Μην. ζήτ. Μέγιστη παραγωγική δυνατότητα Μοναδιαίο κόστος παραγωγής x$1,000,000 Μοναδιαίο κόστος αποθήκευσης Αποθ. δυνατ. 1 2 3 4 10 15 25 20 35 30 1.08 1.11 1.10 1.13 0.015
Northern Airplane Co. – Διατύπωση ΓΠ Μεταβλητές: xi: Αριθμός μηχανών που θα παραχθούν κατά τον μήνα i Αντικειμενική συνάρτηση: Περιορισμοί απαιτούμενης ζήτηση: Περιορισμοί μέγιστης παραγωγής: Northern Airplane Co:
Northern Airplane Co. – Διατύπωση Προβλήματος Μεταφοράς S1 S2 S3 S4 D1 D2 D3 D4 1.14 1.11 1.125 1.115 1.10 1.13
Northern Airplane Co. – Διατύπωση Ελάχιστου Κόστους Ροής σε Δίκτυο
Northern Airplane Co. - Διατύπωση Ελάχιστου Κόστους Ροής σε Δίκτυο [25] [30] [10] [35] S1 S3 S4 S2 [-10] [-15] [-20] [-25] D1 D3 D4 D2 1.10 1.11 1.08 1.13 D [-30]
Δέντρα Επικάλυψης (Spanning Trees) Δέντρο Επικάλυψης: Ένα συναπτό δέντρο χωρίς κύκλους Κατασκευή Δέντρου Επικάλυψης: Σε κάθε βήμα προσθέτουμε ένα τόξο μεταξύ ενός κόμβου είδη ενωμένου και ενός κόμβου μη συνδεδεμένου. Παράδειγμα: Α Β Ε Γ Δ Α Β Ε Γ Δ
Δέντρα Επικάλυψης (Spanning Tree) Οι πιο κάτω ορισμοί δέντρων επικάλυψης είναι ισοδύναμοι Συναπτό γράφημα χωρίς κύκλους Συναπτό γράφημα που αποτελείται από n κόμβους και n-1 ακμές. Γράφημα στο οποίο κάθε ζεύγος κόμβων συνδέεται με ένα και μόνο μονοπάτι. Συναπτό γράφημα στο οποίο η απαλοιφή οποιασδήποτε ακμής το μετατρέπει σε μη συναπτό.
Απεικόνιση Γραφήματος με Πίνακα Πίνακας Γειτνίασης (Adjacency Matrix): Κάθε στοιχείο aij=1 εάν υπάρχει ακμή που συνδέει τους κόμβους i και j κατά τη φορά i j και aij=0 εάν δεν υπάρχει ακμή. Πίνακας Πρόσπτωσης (Incidence Matrix): Κάθε στοιχείο aij=1 εάν το τόξο j έχει φορά μακριά από τον κόμβο i. aij=-1 εάν το τόξο j έχει φορά προς τον κόμβο i, και aij=0 εάν δεν υπάρχει σύνδεση μεταξύ κόμβου i και τόξου j. Παράδειγμα: 2 1 4 6 5 7 3
Απεικόνιση Γραφήματος με Πίνακα 2 1 4 6 5 7 3 Πίνακας Γειτνίασης: Πίνακας Πρόσπτωσης:
Δικτυακή Simplex Επαναληπτική μέθοδος κατά την οποία το σύνολο των ακμών με xij>0 διαμορφώνουν ένα δέντρο επικάλυψης T με n κόμβους και n-1 ακμές. Βήμα 1: Για κάθε κόμβο j του δικτύου υπολογίζονται οι ποσότητες yi + cij = yj για κάθε κλάδο (i, j) του T. Βήμα 2: Στο δέντρο προστίθεται μία νέα ακμή (i, j) για την οποία ισχύει: yi + cij < yj. Βήμα 3: Καθορίζεται η μέγιστη ποσότητα xij=t η οποία μπορεί να μεταφερθεί μέσω της ακμής (i, j) έτσι ώστε να ισχύουν οι εξισώσεις συνεχείας σε όλους τους κόμβους, χωρίς να παραβιάζονται οι περιορισμοί μη αρνητικότητας. Στη συνέχεια αναθεωρούνται όλες οι μεταβλητές του προβλήματος ως εξής: Εάν η φορά της (i, j) είναι ορθή Εάν η φορά της (i, j) είναι αντίστροφη Εάν η (i, j) δεν ανήκει στο T
Δικτυακή Simplex yi + cij < yj Κατασκευή Αρχικού Δέντρου: Ξεκινώντας από ένα τυχαίο κόμβο w, κατασκευάζουμε ένα δέντρο επικάλυψης Tw με n κόμβους και n-1 τόξα (υπαρκτά ή τεχνητά) και θέτουμε: Εάν bj0 και jw Εάν bj<0 και jw Εάν η (i, j) δεν ανήκει στο Tw Για κάθε τεχνητό τόξο, τίθεται ποινή πij =1 και για κάθε πραγματικό τόξο πij =1 και λύνουμε το βοηθητικό πρόβλημα Εάν βρεθεί Z*=0 τότε το πρόβλημα έχει αρχική λύση. Εάν Z*>0 τότε το πρόβλημα δεν έχει εφικτή λύση. Μια λύση είναι βέλτιστη εάν δεν υπάρχει τόξο για το οποίο να ισχύει yi + cij < yj
Παράδειγμα [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3
Παράδειγμα [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3
Εισερχόμενη Βασική Μεταβλητή [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 30 20 40 60 7 Για κάθε κόμβο που δεν βρίσκεται στο δέντρο, υπολογίζουμε τις ποσότητες yi + cij - yj. Εισερχόμενη μεταβλητή είναι αυτή με την πιο αρνητική τιμή.
Εξερχόμενη Βασική Μεταβλητή [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 30 20 40 60 7 -2 -1 Εξερχόμενη Μεταβλητή: Αυτή που θα μειωθεί πρώτη στο 0 και βρίσκεται στον κύκλο που έχει δημιουργήσει η εισερχόμενη μεταβλητή.
Νέα Λύση [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 Βρήκαμε τη βέλτιστη λύση;
Επόμενη Επανάληψη [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 Η μέγιστη εφικτή μείωση είναι 40 στα τόξα BD και DF.
Νέα Λύση [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 Βρήκαμε τη βέλτιστη λύση; Υπάρχουν πολλαπλές βέλτιστές λύσεις;
Δικτυακή Simplex με Άνω Φραγμένες Ακμές Κάθε ακμή στην οποία ρέει xij=uij θεωρείται μη βασική. Αυτό επιτυγχάνεται με την αντικατάσταση xij=uij –yij έτσι ώστε όταν xij=uij η νέα μεταβλητή yij=0 (είναι δηλαδή μη βασική). Πώς παρουσιάζεται η αντικατάσταση «γραφικά» πάνω στο δίκτυο; Εάν σε επόμενο βήμα yij=uij τότε συνεπάγεται ότι xij=0 οπόταν η ίδια διαδικασία επαναλαμβάνεται στην αντίστροφη κατεύθυνση.
Παράδειγμα με Άνω Φραγμούς [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 Αρχική Λύση: Βρέστε ένα αρχικό δέντρο επικάλυψης (5 άγνωστοι 6 εξισώσεις).
Εισερχόμενη Βασική Μεταβλητή [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 30 20 40 60 7 (40) Για κάθε κόμβο που δεν βρίσκεται στο δέντρο, υπολογίζουμε τις ποσότητες yi + cij - yj. Εισερχόμενη μεταβλητή είναι αυτή με την πιο αρνητική τιμή.
Εξερχόμενη Βασική Μεταβλητή 4 5 2 3 [0] A B C E F [30] [60] [-50] [-40] 7 (40) Εξερχόμενη Μεταβλητή: Αυτή που θα μειωθεί πρώτη στο 0 ή θα φτάσει πρώτη στον άνω φραγμό και βρίσκεται στον κύκλο που έχει δημιουργήσει η εισερχόμενη μεταβλητή.
Νέα Λύση [0] A B C D E F [30] [60] [-50] [-40] 4 5 2 3 (40) A B C D E Η xCE έγινε μη βασική αφού έφτασε στο φραγμό, οπόταν πρέπει να κάνουμε την αντικατάσταση xCE= uCE - yCE (40) A B C D E F [0] [30] [60] [-40] 4 5 2 3 30 10 40 50 Βρήκαμε τη βέλτιστη λύση;