Επιχειρησιακή Έρευνα I Operations/Operational Research (OR) Κωστής Μαμάσης Παρασκευή 9: : Σημειώσεις των Α. Platis, K. Mamasis
Περιεχόμενα EE & Εισαγωγή Μαθηματικός Προγραμματισμός - Γραμμικός Προγραμματισμός Βελτιστοποίηση δικτύων Μαθηματικός Προγραμματισμός - Ακέραιος Προγραμματισμός Μαθηματικός Προγραμματισμός - Δυναμικός προγραμματισμός Μαθηματικός Προγραμματισμός - Μη γραμμικός προγραμματισμός
Περιεχόμενα EE Εισαγωγή Γραμμικός Προγραμματισμός Μοντελοποίηση Προβλημάτων Επίλυση Προβλημάτων Γραφική μέθοδος Μέθοδος Simplex Μέθοδος μεγάλου Μ Δυϊκότητα Βελτιστοποίηση δικτύων Γράφοι και δίκτυα Πρόβλημα της συντομότερης διαδρομής Πρόβλημα του ελάχιστου ζευγνύοντος δέντρου Πρόβλημα μέγιστης ροής Πρόβλημα ροής ελαχίστου κόστους 3
Βελτιστοποίηση δικτύων Ανάλυση Δικτύων
Κατευθυνόμενος γράφος Παράδειγμα: δίκτυο διανομής Κορυφές : A, B, C, D, E Ακμές : (A,B), (A,C), (A,D), (B,C), (C,E), (D,E), (E,D)
Μη-κατευθυνόμενος γράφος Παράδειγμα: οδικό σύστημα πάρκου Κορυφές : O, A, B, C, D, E, T Ακμές : {O,A}, {O,B}, {O,C}, {B,C}, {A,D}, {A,B}, {B,D}, {B,E}, {C,E}, {D,E}, {D,T}, {E,T} Ο αριθμός σε κάθε ακμή αντιπροσωπεύει την απόσταση μεταξύ δύο κορυφών 6
Μονοπάτια και κύκλοι Μονοπάτι: ακολουθία ακμών (χωρίς επαναλήψεις ακμών) που συνδέουν δύο κορυφές (κόμβους). Directional Path Μη-Κατευθυνόμενο Μονοπάτι: ακολουθία ακμών (χωρίς επαναλήψεις ακμών) που συνδέουν δύο κορυφές (κόμβους) όταν δεν παίρνουμε υπ όψη την κατεύθυνση των ακμών. Non-Directional Path Κύκλος: μονοπάτι που ξεκινάει και καταλήγει στην ίδια κορυφή (κλειστό μονοπάτι). Directional Cycle Μη-Κατευθυνόμενος Κύκλος: μη-κατευθυνόμενο μονοπάτι που ξεκινάει και τελειώνει στην ίδια κορυφή (κλειστό μονοπάτι). Non Directional Cycle
Μονοπάτια και κύκλοι (παραδείγματα) A->C->E->D = μονοπάτι (= μη-κατευθυνόμενο μονοπάτι) A->D->E->C->B = μη-κατευθυνόμενο μονοπάτι ( μονοπάτι) D->E->D = κύκλος (= μη-κατευθυνόμενος κύκλος) A->B->C->A = μη-κατευθυνόμενος κύκλος ( κύκλος) 8
Συνεκτικότητα Δύο κορυφές είναι συνεκτικές όταν υπάρχει τουλάχιστον ένα μηκατευθυνόμενο μονοπάτι που τα συνδέει. Ένα γράφημα είναι συνεκτικό όταν κάθε ζεύγος κορυφών είναι συνεκτικό. Ο μικρότερος συνεκτικός γράφος με n κορυφές έχει n- ακμές. Ονομάζεται δέντρο Εναλλακτικός ορισμός: ένα δέντρο είναι ένας συνεκτικός γράφος που δεν περιέχει κύκλους. Ζευγνύον δέντρο: δέντρο που προκύπτει από ένα συνεκτικό γράφο που περιέχει όλες τις κορυφές του. 9
Ζευγνύον δέντρο Δεν είναι ζευγνύον δέντρο: Δεν είναι συνεκτικό Δεν είναι ζευγνύον δέντρο: Περιέχει κύκλους Ζευγνύον δέντρο
Ροή σε ένα δίκτυο Δίκτυο: γράφος που έχει: Ρυθμούς ροής στις ακμές Κορυφές προσφοράς (πηγές - sources) Κορυφές ζήτησης (δέκτες - sink) Κορυφές μεταφοράς Ροή σε ένα δίκτυο: αριθμός μονάδων που κυκλοφορούν στις ακμές του δικτύου έτσι ώστε να τηρούνται οι περιορισμοί διατήρησης της ροής. Σε κάθε κορυφή: ροή εξόδου ροή εισόδου = προσφορά (εάν η κορυφή είναι πηγή) ροή εξόδου ροή εισόδου = - ζήτηση (εάν η κορυφή είναι δέκτης) ροή εξόδου ροή εισόδου = (εάν η κορυφή είναι μεταφοράς)
Ροή σε μαθηματική μορφή x ij = ποσότητα ροής που περνάει στην ακμή (i,j) b i = (μεταφορά), προσφορά (πηγή), -ζήτηση (δέκτης) x x ij ji + ( i, j) A ( i) ( j, i) A ( i) = b i i V V = σύνολο κορυφών A = σύνολο ακμών του δικτύου A + (i) = σύνολο των ακμών που εξέρχονται από την κορυφή i A - (i) = σύνολο των ακμών που εισέρχονται στην κορυφή i
Βελτιστοποίηση δικτύων Το πρόβλημα της συντομότερης διαδρομής
Το πρόβλημα της συντομότερης διαδρομής Έστω ένας μη κατευθυνόμενος και συνεκτικός γράφος Υπάρχουν δύο ειδικές κορυφές: Πηγή (ή προέλευση) O Δέκτης (ή προορισμός) T Για κάθε ακμή {i,j}, αντιστοιχεί και μία απόσταση c ij Αναζητούμε το πιο σύντομο μη-κατευθυνόμενο μονοπάτι που συνδέει το O στο T Συντομότερη διαδρομή: το μονοπάτι του οποίου η συνολική απόσταση (άθροισμα των αποστάσεων των ακμών του μονοπατιού) είναι η ελάχιστη από όλα τα μονοπάτια που συνδέουν το O στο T
Αλγόριθμος του Dijkstra (93-) Επαναληπτικός αλγόριθμος Σε κάθε επανάληψη, επιλέγουμε την κορυφή j που βρίσκεται πιο κοντά στο O και υπολογίζουμε την d(j), μεταβλητή που υπολογίζει την απόσταση μεταξύ O και j: λέμε ότι η κορυφή j έχει σήμανση Αρχικά, η πηγή O έχει σήμανση και d(o) = Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση. Η κορυφή j επιλέγεται ως εξής: min κορυφή j χωρίς σήμανση {d(i) + c ij για όλες τις κορυφές i με σήμανση} Θέτουμε αυτή τη τιμή στην d(j). Ο αλγόριθμος τερματίζει όταν ο προορισμός T αποκτήσει σήμανση
6 Min {d(a)+c AF } Min {d(a)+c AG ;d(b)+c BG ; d(c)+c CG } Min {d(c)+c CH } + + ; + ; + 3 + Ο Α Β C Ο Α Β C Α Β C 3 F G H Ο Α Β C Ο Α Β C Α Β C 3 F G H Αλγόριθμος του Dijkstra (93-)
Αλγόριθμος Dijkstra (βήμα ) Ο Α Β C D E T 3 Ο Α Β C Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση.
Αλγόριθμος Dijkstra (βήμα ) Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση. Α D Ο Β T 3 C E 8
Αλγόριθμος Dijkstra (βήμα 3) 9 Α Β C Ο D E T 3 D 9 Β Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση.
Αλγόριθμος Dijkstra (βήμα ) Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση. Α Min{+,+}=8 D Ο Β T 3 C E Min{,+}= 3+=
Αλγόριθμος Dijkstra (βήμα ) Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση. Α Min{+,+}=8 D Ο Β T 3 C E Min{+,+3}=
Αλγόριθμος Dijkstra (βήμα 6) Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση. Α Min{+,+,+}=8 D Ο Β T 3 += C E
Αλγόριθμος Dijkstra (βήμα ) Η πιο κοντινή κορυφή επιλέγεται από όλες τις κορυφές χωρίς σήμανση που συνδέεται σε τουλάχιστον μία κορυφή με σήμανση. Α 8 D Min{8+,+}=3 Ο Β T 3 3 C E 3
Παράδειγμα σε μορφή πίνακα i με σήμανση συνδεδεμένο με j χωρίς σήμανση Το πιο κοντινό j χωρίς σήμανση Απόσταση Ελάχιστη απόσταση Το πιο κοντινό j p(j) O A A O O C C O A B B A A D 9 B E E B C E 8 A D 9 B D 8 8 D B E D 8 8 D E D T 3 3 T D E T
Άσκηση με γράφο Μία απ ευθείας πτήση από το Σιατλ στο Λονδίνο μπορεί να πραγματοποιηθεί μέσω διάφορων διαδρομών ανάλογα με τις μετεωρολογικές συνθήκες. Ο παρακάτω κατευθυνόμενος γράφος δείχνει σε κάθε ακμή τον χρόνο διαδρομής πτήσης (σε ώρες) ανάλογα με τις επικρατούσες μετεωρολογικές συνθήκες. A 3. D.6 3. 3. 3.6 SE. B 3. E 3.6 LN 3.3. 3. 3.8 C 3. F Ζητείται η ελαχιστοποίηση του συνολικού χρόνου πτήσης μεταξύ Σιατλ και Λονδίνου με βάση τις επικρατούσες μετεωρολογικές συνθήκες. Να επιλυθεί το πρόβλημα με τον αλγόριθμο Dijkstra
Ο αλγόριθμος του Dijkstra εφαρμόζεται σε γράφο ως μοντέλο ροής σε δίκτυο Συντομότερη διαδρομή = ροή σε ένα δίκτυο δίκτυο = κατευθυνόμενος γράφος O είναι η μοναδική πηγή με προσφορά = T είναι ο μοναδικός δέκτης με ζήτηση = - Η ροή σε κάθε ακμή (i,j) είναι είτε, εάν η ακμή ανήκει στην συντομότερη διαδρομή, είτε είναι. 6
Άλλες εκδόσεις Κατευθυνόμενος γράφος: ο αλγόριθμος του Dijkstra εφαρμόζεται. Οι συντομότερες διαδρομές μεταξύ της πηγής και όλων των άλλων κορυφών: ο αλγόριθμος του Dijkstra εφαρμόζεται. Οι συντομότερες διαδρομές μεταξύ όλων των ζεύγων κορυφών: n εφαρμογές του αλγόριθμου του Dijkstra. Αν κάποιες αποστάσεις είναι αρνητικές: ο αλγόριθμος δεν εφαρμόζεται. Αυτό συμβαίνει γιατί ο αλγόριθμος βασίζεται στην υπόθεση ότι αν προστεθεί στο μονοπάτι μια ακμή, η απόσταση αυξάνει. Οπότε η επιλογή της συντομότερης ακμης για την τρέχουσα κορυφή (τοπικό βέλτιστο) είναι και το ολικό βέλτιστο για την κορυφή αυτή.
Βελτιστοποίηση δικτύων Πρόβλημα του ελάχιστου ζευγνύοντος δέντρου
Πρόβλημα του ελάχιστου ζευγνύοντος δέντρου Έστω ένας γράφος μη-κατευθυνόμενος και συνεκτικός. Για κάθε ακμή {i,j}, αντιστοιχεί μία απόσταση c ij. Πρέπει να κατασκευαστεί ένα ζευγνύον δέντρο (ο μικρότερος συνεκτικός γράφος που περιέχει όλες τις κορυφές) του οποίου το σύνολο των αποστάσεων είναι το ελάχιστο απ όλα τα ζευγνύοντα δέντρα του γράφου. 9
Πρόβλημα του ελάχιστου ζευγνύοντος δέντρου Ο στόχος είναι να συνδέσουμε τους κόμβους ενός δικτύου με ένα ελάχιστο συνολικό μήκος ακμών. Για παράδειγμα, είναι πολύ χρήσιμο στον προγραμματισμό δικτύων τηλεπικοινωνίας, όπου πρέπει να βρεθεί κάποιο δέντρο που να συνδέει όλους τους κόμβους μεταξύ τους με κάποιο μονοπάτι με τον πιο οικονομικό τρόπο. Οι κόμβοι μπορεί να είναι τηλεπικοινωνιακοί σταθμοί, οι κλάδοι καλώδια μεταφοράς του σήματος και οι αποστάσεις το κόστος κατασκευής του αντίστοιχου κλάδου. Στα πλαίσια αυτά, το πρόβλημα του δέντρου ελάχιστης κάλυψης είναι ο προσδιορισμός εκείνων των κλάδων (ακμών), που εξυπηρετούν όλους τους σταθμούς (κορυφές) με το ελάχιστο συνολικό κόστος. 3
Αλγόριθμος του PRIM Αρχικοποίηση: επιλογή μίας κορυφής i (τυχαίας) και σύνδεση στην κορυφή j την πιο κοντινή: πρόσθεση {i,j} Για κάθε επανάληψη: επιλογή της μη-συνδεδεμένης κορυφής j που είναι πιο κοντά σε μία κορυφή i ήδη συνδεδεμένη : πρόσθεση {i,j} Τερματισμός όταν όλες οι κορυφές συνδέθηκαν. Σε περίπτωση ισότητας, μπορούμε να επιλέξουμε αυθαίρετα Αυτές οι ισότητες μπορεί να υποδεικνύουν την ύπαρξη πολλών βέλτιστων λύσεων. 3
Αλγόριθμος του PRIM: παράδειγμα A Ο B D Τ 3 C Αρχικοποίηση: επιλογή της κορυφής Ο και σύνδεση στην πιο κοντινή κορυφή: Πρόσθεση {Ο,Α} E 3
Αλγόριθμος του PRIM: παράδειγμα A Ο B D Τ 3 C E Η μη-συνδεδεμένη κορυφή που είναι η πιο κοντινή στο Ο ή στο Α είναι η Β. Επειδή είναι πιο κοντά στο Α, προσθέτουμε {Α,Β}. 33
Αλγόριθμος του PRIM: παράδειγμα A Ο B D Τ 3 C E Η μη-συνδεδεμένη κορυφή που είναι η πιο κοντινή στο Ο ή στο Α ή στο Β είναι η C. Επειδή είναι πιο κοντά στο B, προσθέτουμε {B,C} 3
Αλγόριθμος του PRIM: παράδειγμα A Ο B D Τ 3 C E Η μη-συνδεδεμένη κορυφή που είναι η πιο κοντινή σε μία από τις κορυφές είναι το Ε. Επειδή είναι πιο κοντά στο B, προσθέτουμε {B,Ε} 3
Αλγόριθμος του PRIM: παράδειγμα A Ο B D Τ 3 C E Η μη-συνδεδεμένη κορυφή που είναι η πιο κοντινή σε μία από τις κορυφές είναι το D. Επειδή είναι πιο κοντά στο E, προσθέτουμε {E,D} 36
Αλγόριθμος του PRIM: παράδειγμα A Ο B D Τ 3 C E Η μη-συνδεδεμένη κορυφή που είναι η πιο κοντινή σε μία από τις κορυφές είναι το T. Επειδή είναι πιο κοντά στο D, προσθέτουμε {D,T} Τερματίζεται ο αλγόριθμος διότι όλες οι κορυφές συνδέθηκαν και η βέλτιστη τιμή αντιστοιχεί στο σύνολο των αποστάσεων των ακμών δηλαδή. 3
Αλγόριθμος του PRIM: παράδειγμα Έστω ότι αναλαμβάνετε την μελέτη πεζοδρόμησης σε ένα θεματικό πάρκο που εκτείνεται σε στρέμματα και περιλαμβάνει σημεία ενδιαφέροντος. Σαν μηχανικός θέλετε:. να μπορούν να επικοινωνούν μεταξύ τους όλες οι εγκαταστάσεις άμεσα ή έμμεσα,. Να ολοκληρώσετε την πεζοδρόμηση με με τη μικρότερη δυνατή συνολική επιβάρυνση της έκτασης με τσιμεντένιες πλάκες πεζοδρομίου 38
Αλγόριθμος του PRIM: παράδειγμα 39
Βελτιστοποίηση δικτύων Πρόβλημα μέγιστης ροής
Πρόβλημα της μέγιστης ροής Έστω ένας κατευθυνόμενος και συνεκτικός γράφος Για κάθε ακμή (i,j), αντιστοιχεί μία χωρητικότητα u ij > Υπάρχουν δύο ειδικές κορυφές Πηγή (ή προέλευση) Ο Δέκτης (ή προορισμός) Τ Όλες οι άλλες κορυφές είναι κορυφές μεταφοράς. Η προσφορά στο Ο και η ζήτηση στο Τ είναι μεταβλητές Προσφορά στο Ο = Ζήτηση στο Τ = τιμή της ροής μεταξύ Ο και Τ. Στόχος είναι η μεγιστοποίηση της τιμής της ροής μεταξύ Ο και Τ.
Πρόβλημα της μέγιστης ροής Πρακτική σημασία: Ένα δίκτυο μεταφοράς είναι ένα γενικό μοντέλο με διαδρομές μεταφοράς υλικών, ρευστών, αυτοκινήτων, κεφαλαίων, ηλεκτρικού φορτίου, κλπ., από ένα κόμβο-αφετηρία σε ένα κόμβο-προορισμό. Οι ακμές ενός δικτύου μεταφοράς αντιπροσωπεύουν τη μέγιστη χωρητικότητα της ακμής/διαδρομής από ένα κόμβο σε ένα άλλο την οποία δεν μπορεί να υπερβεί η μεταφερόμενη ποσότητα. Π.χ.: για ρευστά, οι κλάδοι θα είναι η μέγιστη παροχή των σωληνώσεων, για μεταφορές, το μέγιστο φορτίο, για συγκοινωνίες, οι μέγιστες θέσεις επιβατών, κ.λ.π.
Παράδειγμα στόλου λεωφορείων Σε περίοδο μεγάλης κίνησης, υπάρχει ένας στόλος λεωφορείων για την επίσκεψη παρατηρητήριων ενός πάρκου. Η νομοθεσία περιορίζει τον αριθμό λεωφορείων που μπορεί να κυκλοφορήσει σε κάθε τμήμα οδού. Πώς πρέπει να κυκλοφορούν τα λεωφορεία ώστε να μεγιστοποιήσουμε τον αριθμό λεωφορείων που μετακινούνται από την αφετηρία (Ο) προς τον προορισμό (Τ); 3
Παράδειγμα στόλου λεωφορείων Το πρόβλημα της μέγιστης ροής μπορεί να διαμορφωθεί ως πρόβλημα γραμμικού προγραμματισμού και επομένως μπορεί να λυθεί με τη μέθοδο simplex. Όμως, υπάρχει ένας ακόμα πιο αποτελεσματικός αλγόριθμος για την επίλυση του προβλήματος. Αυτός ο αλγόριθμος βασίζεται σε δύο σημαντικές έννοιες, το υπολειπόμενο δίκτυο (residual network) και το επαυξάνον μονοπάτι (augmenting path).
Γράφος υπολοίπων Αν υποθέσουμε ότι έχουμε ήδη θέσει μία ροή στις ακμές Η χωρητικότητα ροής που απομένει (Υπολειπόμενη χωρητικότητα) σε μία ακμή (i,j) είναι: u ij -x ij Γράφος υπολοίπων: μη-κατευθυνόμενος γράφος Για κάθε ακμή, αντιστοιχούν δύο τιμές: Υπολειπόμενη χωρητικότητα ροής Ροή που έχει ήδη διατεθεί Παράδειγμα: έχουν διατεθεί μονάδες ροής στην ακμή (Ο,Β) η οποία έχει χωρητικότητα μονάδες Ο Β
Ερμηνεία του γράφου υπολοίπων Ο Β Ο Β Εάν έχουν διατεθεί μονάδες ροής στην ακμή (Ο,Β) η οποία έχει χωρητικότητα μονάδες ροής Εάν διασχίσουμε Ο Β = Υπολειπόμενη/Απομένουσα χωρητικότητα = ροή στο (Ο,Β) Εάν διασχίσουμε Β Ο = Υπολειπόμενη/ Απομένουσα χωρητικότητα = ροή στο (Β,Ο) 6
Γράφος υπολοίπων: εναλλακτική ορολογία Ο γράφος υπολοίπων λέγεται επίσης γράφος διαφορών Εάν για παράδειγμα έχουν διατεθεί μονάδες ροής στην ακμή (Ο,Β) Ροή που έχει διατεθεί στην ακμή [] Υπολειπόμενη/απομένουσα χωρητικότητα Ο Β
Μονοπάτι αύξησης Μονοπάτι πού πηγαίνει από την πηγή στο δέκτη στον κατευθυνόμενο γράφο του γράφου υπολοίπων. Για κάθε ακμή {i,j} Η ακμή (i,j) έχει μία υπολειπόμενη χωρητικότητα = u ij x ij Η ακμή (j,i) έχει μία υπολειπόμενη χωρητικότητα = x ij Κάθε ακμή του μονοπατιού έχει μία υπολειπόμενη/απομένουσα χωρητικότητα > Υπολειπόμενη χωρητικότητα σε ένα μονοπάτι αύξησης: το ελάχιστο των χωρητικοτήτων που απομένει για όλες τις ακμές του μονοπατιού. 8
Αλγόριθμος του Ford-Fulkerson. Αρχικοποίηση της ροής: μονάδες σε κάθε ακμή. Αν δεν μπορούμε να εντοπίσουμε κανένα μονοπάτι αύξησης, τότε τερματίζουμε: η ροή είναι μέγιστη 3. Προσδιορισμός ενός μονοπατιού αύξησης P, και έστω c, η αντίστοιχη υπολειπόμενη/απομένουσα χωρητικότητα.. Για κάθε ακμή του P: Αύξηση της ροής (c) Μείωση της υπολειπόμενης χωρητικότητας (c). Επιστροφή στο βήμα 9
Εύρεση ενός μονοπατιού αύξησης. Εντοπισμός όλων των κορυφών που μπορούν να συνδεθούν άμεσα (με μία απ ευθείας ακμή) με την πηγή Ο και με θετική υπολειπόμενη/απομένουσα χωρητικότητα (>).. Επιλογή μίας κορυφής (από τις προηγούμενες), μετάβαση σ αυτήν, και εντοπισμός όλων των νέων κορυφών (στις οποίες δεν έχει γίνει μετάβαση και με θετική υπολειπόμενη χωρητικότητα) Εάν δεν υπάρχει τέτοια κορυφή τότε τερματίζουμε: δεν υπάρχει κανένα μονοπάτι αύξησης 3. Επιστροφή στο βήμα με τις νέες κορυφές μέχρι την τελική μετάβαση στην Τ.
Παράδειγμα () A 3 Αρχικός γράφος υπολοίπων Ο B 9 D Τ C E 6 Εύρεση μονοπατιού αύξησης: Ο Β Ε Τ Υπολειπόμενη χωρητικότητα = min{,,6} =
Παράδειγμα () Ο A 3 B 9 Αύξηση της ροής και μείωση της υπολειπόμενης χωρητικότητας μονάδων σε όλες τις ακμές των Ο Β Ε Τ D Τ C E Εύρεση μονοπατιού αύξησης: Ο Α D Τ Υπολειπόμενη χωρητικότητα = min{,3,9} =3
Παράδειγμα (3) 8 Ο 3 A B 3 6 Αύξηση της ροής και μείωση της υπολειπόμενης χωρητικότητας 3 μονάδων σε όλες τις ακμές των Ο Α D Τ D 3 Τ 8 C Εύρεση μονοπατιού αύξησης: Ο Α B D Τ Υπολειπόμενη χωρητικότητα = min{,,,6} = E 3
Παράδειγμα () 9 Ο A B 3 3 Αύξηση της ροής και μείωση της υπολειπόμενης χωρητικότητας μονάδας σε όλες τις ακμές των Ο Α Β D Τ D Τ 9 C E Εύρεση μονοπατιού αύξησης: Ο B D Τ Υπολειπόμενη χωρητικότητα = min{,3,} =
Παράδειγμα () Ο A B 3 3 3 Αύξηση της ροής και μείωση της υπολειπόμενης χωρητικότητας μονάδων σε όλες τις ακμές των Ο Β D Τ D 6 Τ C Εύρεση μονοπατιού αύξησης: Ο C E D Τ Υπολειπόμενη χωρητικότητα = min{,,,3} = E
Παράδειγμα (6) Ο A 3 B 3 3 Αύξηση της ροής και μείωση της υπολειπόμενης χωρητικότητας μονάδας σε όλες τις ακμές των Ο C E D Τ D Τ C 3 E Εύρεση μονοπατιού αύξησης: Ο C E Τ Υπολειπόμενη χωρητικότητα = min{3,3,} = 6
Παράδειγμα () 3 Ο A B 3 3 Αύξηση της ροής και μείωση της υπολειπόμενης χωρητικότητας μονάδας σε όλες τις ακμές των Ο C E Τ D 6 Τ 3 C Εύρεση μονοπατιού αύξησης: Ο C E B D Τ Υπολειπόμενη χωρητικότητα = min{,,,,} = E
Παράδειγμα (8) Ο A B 3 Αύξηση της ροής και μείωση της υπολειπόμενης χωρητικότητας μονάδας σε όλες τις ακμές των Ο C E B D Τ D 8 6 Τ 3 C 3 E Κανένα μονοπάτι αύξησης Μέγιστη ροή 8
Παράδειγμα (9 τέλος) A 3 Ο B D 8 Τ 3 6 C 3 E 9
Μέγιστη ροή Μέγιστη ροή = μοντέλο ροής Όλες οι κορυφές, εκτός Ο και Τ, είναι κορυφές μεταφοράς. Υπάρχει μία δυναμικότητα σε κάθε ακμή Ο στόχος είναι η μεγιστοποίηση της τιμής της ροής, δηλαδή η καθαρή ροή στο Ο. 6
Ασκήσεις () 6 3 3 3 6 9 63
Ασκήσεις () 3 3 3 6
Ασκήσεις (3) 3 8 3 8 9 9 3 3 6 8 3 6 6
Ασκήσεις () 3 6 3 6 8 3 6 8 Βρείτε τη συντομότερη διαδρομή μεταξύ της πόλης και 8 66
Βελτιστοποίηση δικτύων Πρόβλημα ροής με ελάχιστο κόστος
Πρόβλημα της ροής με ελάχιστο κόστος Έστω ένας κατευθυνόμενος συνεκτικός γράφος Για κάθε ακμή (i,j) αντιστοιχεί μία δυναμικότητα u ij > και ένα κόστος ανά μονάδα ροής c ij Υπάρχει τουλάχιστον μία πηγή και ένας δέκτης Τα υπόλοιπα είναι κορυφές μεταφοράς Στόχος είναι η ελαχιστοποίηση του συνολικού κόστους μεταφοράς της ροής από της πηγές (κορυφές προσφοράς) προς τους δέκτες (κορυφές ζήτησης) 68
Μοντέλο ροής με ελάχιστο κόστος x ij = ροή στην ακμή (i,j) min Σ (i,j) A c ij x ij υπό τους περιορισμούς: Σ (i,j) A + (i) x ij - Σ (j, i) A - (i) x ji = b i i V x ij u ij (i,j) A b i = (μεταφορά), προσφορά (πηγή), -ζήτηση (δέκτες) V = σύνολο κορυφών ; A = σύνολο ακμών A + (i) = σύνολο εξερχόμενων ακμών της κορυφής i A - (i) = σύνολο εισερχόμενων ακμών της κορυφής i 69
Ειδικές περιπτώσεις Πρόβλημα μεταφοράς Πολλές πηγές και πολλούς δέκτες Καμία κορυφή μεταφοράς Μόνο ακμές μεταξύ πηγής και δέκτη Καμία δυναμικότητα Πρόβλημα της εκχώρησης Ειδική περίπτωση του προβλήματος μεταφοράς Πηγές όσο και δέκτες Στόχος : η εκχώρηση σε κάθε πηγή ενός μοναδικού δέκτη και αντίστροφα, έτσι ώστε να ελαχιστοποιηθεί το συνολικό κόστος των εκχωρήσεων Θέτουμε b i =+ (πηγή), - (δέκτης)
Ειδικές περιπτώσεις Πρόβλημα της συντομότερης διαδρομής Μία πηγή και ένας δέκτης πολλές κορυφές μεταφοράς Θέτουμε b i =+ (πηγή), - (δέκτης) Καμία δυναμικότητα Πρόβλημα της μέγιστης ροής b i =+F (πηγή), -F (δέκτης) όπου F> σύνολο των χωρητικοτήτων. Πρόσθεση ακμής μεταξύ Ο και Τ: c OT = M και u OT = F Όπως c ij = σε όλες τις άλλες ακμές, μία βέλτιστη λύση είναι η μεταφορά μέγιστης ροής μεταξύ Ο και Τ χωρίς να περάσει από την ακμή (O,T)
Δίκτυο διανομής Παραγωγή μ. Ερ. 9/μον. Απ. Απαίτηση 3 μ. /μον. /μον. Κ.Δ. /μον. 3/μον. 8 3/μον. /μον. Παραγωγή μ. Ερ. Απ. Απαίτηση 6 μ.
Μοντέλο x i,j =αριθμός μονάδων που μεταφέρονται στην ακμή (i,j) μεταξύ των κόμβων i και j Στόχος: Ελαχιστοποίηση: z = x Ερ,Ερ + x Ερ,ΚΔ + 9 x Ερ,Απ + 3 x Ερ,ΚΔ + x ΚΔ,Απ +3 x Απ,Απ + x Απ,Απ Διατήρηση της ροής: σε κάθε κόμβο του δικτύου: Ροή εξόδου ροή εισόδου= αρ. Μονάδων που παράχθηκαν (εργοστάσιο) - αρ. Μονάδων που απαιτήθηκαν (αποθήκες) ΚΔ Ανώτατο όριο μεταφοράς (σε μερικές ακμές) Πχ. Για την ακμή (Ερ.,Ερ.): x Ερ,Ερ Περιορισμοί μη αρνητικότητας 3
Μοντέλο (λεπτομερή περιγραφή) Ελαχιστοποίηση z = x Ερ,Ερ + x Ερ,ΚΔ + 9 x Ερ,Απ + 3 x Ερ,ΚΔ +x ΚΔ,Απ + 3 x Απ,Απ + x Απ,Απ Κάτω από τις συνθήκες: x Ερ,Ερ + x Ερ,ΚΔ + x Ερ,Απ = -x Ερ,Ερ + x Ερ,ΚΔ = - x Ερ,ΚΔ - x Ερ,ΚΔ + x ΚΔ,Απ = - x Ερ,Απ + x Απ,Απ - x Απ,Απ = - 3 - x ΚΔ,Απ - x Απ,Απ + x Απ,Απ = - 6 x Ερ,Ερ, x ΚΔ,Απ 8 x Ερ,Ερ, x Ερ,ΚΔ, x Ερ,Απ, x Ερ,ΚΔ, x ΚΔ,Απ x Απ,Απ, x Απ,Απ
Συμπεράσματα Μοντελοποίηση και επίλυση με Excel Solver Άριστη λύση: (x Ερ,Ερ, x Ερ,ΚΔ, x Ερ, Απ, x Ερ, ΚΔ, x ΚΔ, Απ, x Απ, Απ, x Απ, Απ ) = (,,,,8,,)