Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ 1 η Διάλεξη: Αναδρομή στον Μαθηματικό Προγραμματισμό 2019, Πολυτεχνική Σχολή Εργαστήριο Συστημάτων Σχεδιασμού, Παραγωγής και Λειτουργιών
Περιεχόμενα 1. Γραμμικός Προγραμματισμός 1.1 Παράδειγμα Γραμμικού Προγραμματισμού 1.2 Η μέθοδος Simplex 2. Ακέραιος Προγραμματισμός 2.1 Παραδείγματα μοντέλων Ακέραιου Προγραμματισμού 2.2 Η μέθοδος Branch and Bound (B&B) 2.3 Μεικτός Ακέραιος Προγραμματισμός 2.4 Δυαδικές μεταβλητές 2
Γραμμικός Προγραμματισμός Παράδειγμα Γραμμικού Προγραμματισμού Παράδειγμα ΏΡΕΣ ΠΡΟΪΟΝ Π1 Π2 ΔΥΝΑΜΙ- ΚΟΤΗΤΑ Μ1 1 0 4 Μ2 0 2 12 Μ3 3 2 18 ΚΕΡΔΟΣ 3 5 max z= 3x 1 + 5x 2 x 1 4 2x 2 12 3x 1 + 2x 2 18 x 1, x 2 0 Γραφική Προσέγγιση x 2 10 9 8 z 6 = 5*6 = 30 z A = 3*2 + 5*6 = 36 z B = 3*4 + 5*3 = 27 z 4 = 3*4 = 12 7 6 5 4 3 2 1 A (2,6) B (4,3) 0 0 1 2 3 3,33 4 5 6 7 x 1 3
Περιεχόμενα 1. Γραμμικός Προγραμματισμός 1.1 Παράδειγμα Γραμμικού Προγραμματισμού 1.2 Η μέθοδος Simplex 2. Ακέραιος Προγραμματισμός 2.1 Παραδείγματα μοντέλων Ακέραιου Προγραμματισμού 2.2 Η μέθοδος Branch and Bound (B&B) 2.3 Μεικτός Ακέραιος Προγραμματισμός 2.4 Δυαδικές μεταβλητές 4
Γραμμικός Προγραμματισμός H Μέθοδος Simplex (1/4) Βήμα 1: Μεταβολή των ανισοτήτων σε ισότητες με την προσθήκη χαλαρών μεταβλητών z - 3x 1-5x 2 =0 x 1 + x 3 =4 2x 2 + x 4 =12 3x 1 + 2x 2 + x 5 =18 x 1,.,x 5 0 Μη βασικές μεταβλητές = 0 Ορισμός: Βασικές = οι υπόλοιπες Βήμα 2: Βασικές: x 3, x 4, x 5 Μη Βασικές: x 1, x 2 j Βασικές Εξ. (i) z x 1 x 2 x 3 x 4 x 5 β z 0 1-3 -5 0 0 0 0 x 3 1 0 1 0 1 0 0 4 x 4 2 0 0 2 0 1 0 12 x 5 3 0 3 2 0 0 1 18 Εφικτή λύση: x 1 = x 2 =0, x 3 =4, x 4 =12, x 5 =18 Κριτήριο: Είναι όλοι οι συντελεστές της εξίσωσης 0 Μη αρνητικοί; Αν ΝΑΙ STOP Αν ΟΧΙ CONTINUE 5
Γραμμικός Προγραμματισμός H Μέθοδος Simplex (2/4) Επαναληπτικό Βήμα Α. Προσδιορισμός Εισερχόμενης Βασικής Μεταβλητής x j Συντελεστής x j στην εξίσωση (0) είναι ο αρνητικός με τη μέγιστη απόλυτη τιμή Γιατί; Αύξηση της μεταβλητής αυτής αυξάνει γρηγορότερα την αντικειμενική συνάρτηση Η στήλη J είναι η αξονική στήλη Παράδειγμα: Εισερχόμενη βασική μεταβλητή η x 2 j = 2 B. Προσδιορισμός Εξαρτώμενης Βασικής Μεταβλητής θετικό Συντελεστή a ij υπολογίζεται b i a ij Επιλέγεται η σειρά i που αντιστοιχεί στο μικρότερο πηλίκο min Γιατί; Ο περιορισμός αυτός «περιορίζει» περισσότερο την αύξηση της εισερχόμενης μεταβλητής Η σειρά i είναι η αξονική σειρά Παράδειγμα: b 2 a 22 = 6, b 3 a 32 = 9 i = 2 Εξερχόμενη βασική μεταβλητή x 4 b i a ij 6
Γραμμικός Προγραμματισμός H Μέθοδος Simplex (3/4) Γ. Νέα εφικτή λύση Γ1. Μετατρέπεται ο συντελεστής της νέας βασικής μεταβλητής σε 1 διαιρώντας την αξονική σειρά με a i j Παράδειγμα Γ2. a i j = α i j α i j Βασικές Εξ. z x 1 x 2 x 3 x 4 x 5 β z 0 1-3 -5 0 0 0 0 x 3 1 0 1 0 1 0 0 4 x 2 2 0 0 1 0 1/2 0 6 x 5 3 0 3 2 0 0 1 18 Τα στοιχεία της αξονικής στήλης a ij θα γίνουν 0 εκτός του a i j Αυτό θα γίνει πολλαπλασιάζοντας την αξονική σειρά με a ij, i i και αφαιρώντας από τη σειρά i i Παράδειγμα Βασικές Εξ. z x 1 x 2 x 3 x 4 x 5 β z 0 1-3 0 0 5/2 0 30 x 3 1 0 1 0 1 0 0 4 x 2 2 0 0 1 0 1/2 0 6 x 5 3 0 3 0 0-1 1 6 Γ3. Συνεχίζεται η διαδικασία μέχρι όλοι οι συντελεστές της γραμμής 0 να είναι 0 x 1 = 2, x 2 = 6, x 3 = 2 7
Γραμμικός Προγραμματισμός H Μέθοδος Simplex (4/4) Παράδειγμα Βασικές Εξ. z x 1 x 2 x 3 x 4 x 5 β z 0 1-3 0 0 0 5/2 30 x 3 1 0 1 0 1 0 0 4 x 2 2 0 0 1 0 1/2 0 6 x 5 3 0 3 0 0-1 1 6 Εισερχόμενη x 1, Εξερχόμενη x 5 ( 4 1, 6 3 ) Βασικές Εξ. z x 1 x 2 x 3 x 4 x 5 β z 0 1 0 0 0-1 7/2 36 x 3 1 0 0 0 1 1/3-1/3 2 x 2 2 0 0 1 0 1/2 0 6 x 1 3 0 1 0 0-1/3 1/3 2 Όλοι οι συντελεστές της εξίσωσης (0) 0 z = 36, x 1 = 2, x 2 = 6, x 3 = 2 x 4 = 0, x 5 = 0 Μη βασικές Άσκηση: Να λυθεί γραφικά, με Simplex και με το solver max z= 2x 1 + 3x 2 x 1 + 2x 2 10 3x 1 + x 2 15 x 2 4 x 1, x 2 0 8
Περιεχόμενα 1. Γραμμικός Προγραμματισμός 1.1 Παράδειγμα Γραμμικού Προγραμματισμού 1.2 Η μέθοδος Simplex 2. Ακέραιος Προγραμματισμός 2.1 Παραδείγματα μοντέλων Ακέραιου Προγραμματισμού 2.2 Η μέθοδος Branch and Bound (B&B) 2.3 Μεικτός Ακέραιος Προγραμματισμός 2.4 Δυαδικές μεταβλητές 9
Ακέραιος Προγραμματισμός Παραδείγματα Μοντέλων Ακέραιου Προγραμματισμού (1/2) Παράδειγμα 1: Επιλογή επενδύσεων για μεγιστοποίηση κέρδους c j = κέρδος από επένδυση j j = 1,, n α ij = πόρος i που απαιτείται για επένδυση j i = 1,, m (π.χ. απαραίτητο κεφάλαιο) β i = διαθεσιμότητα πόρου i i = 1,, n x i 0,1 1 = εαν επενδύσουμε 0 = εαν δεν επενδύσουμε max n c j x j j=1 n a ij x j β i i = 1,, m j=1 x j 0, 1 j = 1,, n Γνωστό πρόβλημα: Πρόβλημα Σακκιδίου (Knapsack): Τι πρέπει να πάρει ένας ταξιδιώτης στο σακκίδιό του, c j = αξία αντικείμενου j, α j = βάρος αντικειμένου j n max c j x j j=1 j a j x j β x j 0, 1 j = 1,, n 10
Ακέραιος Προγραμματισμός Παραδείγματα Μοντέλων Ακέραιου Προγραμματισμού (2/2) Παράδειγμα 2: Σχεδιασμός Δικτύου αποθηκών Μεταβλητές απόφασης 1 = εάν χρησιμοποιηθεί αποθήκη i y i = 0,1 0 = εάν δεν χρησιμοποιηθεί αποθήκη i Κόστη Περιορισμοί x ij = ποσότητα που αποστέλλεται από αποθήκη i στον πελάτη j i. Η ζήτηση d j του πελάτη j πρέπει να ικανοποιηθεί i = 1,, m j = 1,, n f i = σταθερό κόστος λειτουργίας αποθήκης (π.χ. ενοίκιο) c ij = μεταβλητή (μοναδιαίο) κόστος logistics αποθήκης i για να εξυπηρετηθεί ο πελάτης j (π.χ. κόστος διαχείρισης αποθήκης και κόστος μεταφοράς από i σε j) ii. Η αποθήκη i αποστέλλει αγαθά μόνο εάν λειτουργεί Πολύ σημαντικό πρόβλημα για logistics όπως θα δούμε s.t. m m n min f i y i + c ij x ij i=1 m x ij d j i=1 n n x ij y i i=1 j=1 j = 1,, n i = 1,, m d j j=1 j=1 x ij 0 j = 1,, n y i 0,1 i = 1,, m 11
Περιεχόμενα 1. Γραμμικός Προγραμματισμός 1.1 Παράδειγμα Γραμμικού Προγραμματισμού 1.2 Η μέθοδος Simplex 2. Ακέραιος Προγραμματισμός 2.1 Παραδείγματα μοντέλων Ακέραιου Προγραμματισμού 2.2 Η μέθοδος Branch and Bound (B&B) 2.3 Μεικτός Ακέραιος Προγραμματισμός 2.4 Δυαδικές μεταβλητές 12
Ακέραιος Προγραμματισμός Μέθοδος Επίλυσης Παράδειγμα max z= 5x 1 + 8x 2 x 1 + x 2 6 5x 1 + 9x 2 45 x 1, x 2 0 και ακέραιοι Γραφική απεικόνιση του γραμμικού (συνεχούς) προβλήματος x 2 7 6 5 4 3 2 5/4 1 0 ( 9 4, 15 4 ) 0 2 4 6 8 9 10 5x 1 + 8x 2 =10 Η βέλτιστη λύση δεν δίνεται από στρογγυλοποίηση της βέλτιστης γραμμικής λύσης x 1 x 1 + x 2 = 6 5x 1 + 9x 2 = 45 x 1 Βέλτιστη Γραμμική Λύση Στρογγυλοποίηση Πλησιέστερη Εφικτή Βέλτιστη 9 4 = 2.25 2 2 0 15 4 = 3.75 4 3 5 z 41.25 Μη εφικτή 46 45 34 40 x 2-4 x 2 = -15 x 2 = 15 4, x 1 = 9 4 13
Ακέραιος Προγραμματισμός Μέθοδος Branch and Bound (B&B) (1/5) Η βέλτιστη λύση του γραμμικού προγραμματισμού πάντα αντιστοιχεί σε άνω όριο ενός ακέραιου προβλήματος μεγιστοποίησης (ή στο κάτω όριο ενός προβλήματος ελαχιστοποίησης) Κάθε εφικτή ακέραια λύση πάντα αντιστοιχεί σε κάτω όριο ενός προβλήματος μεγιστοποίησης (άνω όριο σε πρόβλημα ελαχιστοποίησης) Η B&B χρησιμοποιεί αυτές τις δύο παρατηρήσεις συστηματικά και υποδιαιρεί την εφικτή περιοχή για να καταλήξει στη βέλτιστη λύση Παράδειγμα: Επίλυση του γραμμικού προβλήματος z = 41 1 4 αντικειμενικής συνάρτησης είναι ακέραιοι) x 1 = 2 1 4, x 2= 3 3 4 η Γραμμική Λύση με z * z ο ή z * 41 (καθώς οι συντελεστές της Θα υποδιαιρέσουμε την εφικτή περιοχή αρχίζοντας από αυτή τη λύση π.χ. x 2 3 x 2 4 (ή x 1 2 x 2 3. Επιλέγουμε αυθαίρετα την πρώτη επιλογή) Γραμμικό Πρόβλημα L1 Γραμμικό Πρόβλημα L2 max z= 5x 1 + 8x 2 x 1 + x 2 6 5x 1 + 9x 2 45 x 2 4 x 1 0 max z= 5x 1 + 8x 2 x 1 + x 2 6 5x 1 + 9x 2 45 x 2 3 x 1, x 2 0 14
Ακέραιος Προγραμματισμός Μέθοδος Branch and Bound (B&B) (2/5) L0 x 1 = 2.25 x 2 = 3.75 z = 41.25 z * 41 x 2 4 x 2 3 Εύκολο με Γραμμική επίλυση L1 x 1 = 1.8 x 2 = 4 z = 41 L2 15
Ακέραιος Προγραμματισμός Μέθοδος Branch and Bound (B&B) (3/5) Καθότι ο x 2 είναι ακέραιος Υποδιαίρεση (διακλάδωση) μέσω x 1, L3: x 1 2, L4: x 1 1 L0 x 1 = 2.25 x 2 = 3.75 z = 41.25 z * 41 x 2 4 x 2 3 L1 x 1 = 1.8 x 2 = 4 z = 41 L2 x 1 2 x 1 1 L3 Ανέφικτο (Περιορισμός 2) Stop L4 max z= 5x 1 + 8x 2 x 1 + x 2 6 5x 1 + 9x 2 45 x 2 4 x 1 1 x 1 0 Μπορούμε να υποδιαιρέσουμε την περιοχή του L2 ή του L4 (αυθαίρετα). Στην πράξη υπάρχουν ευρετικές μέθοδοι επιτάχυνσης (π.χ. Depth-first) 16
Ας επιλέξουμε το L4 Γραφική Επίλυση x 1 = 1, x 2 = 40 Η διακλάδωση θα είναι L5: x 2 4, L6: x 2 5. Τώρα έχουμε να θεωρήσουμε τα L2, L5, L6. Για το L5: Η λύση είναι: x 1 = 1, x 2 = 4, z = 37 Το z = 37 είναι ένα κάτω όριο. Επίσης δεν υπάρχει καλύτερη ακέραια λύση στην περιοχή αυτή (καθότι είναι η λύση του γραμμικού προβλήματος) και σταματάμε. z= 5x 1 + 8x 2 x 1 + x 2 6 5x 1 + 9x 2 45 x 1 1 x 2 = 4 x 1, x 2 0 Ακέραιος Προγραμματισμός Μέθοδος Branch and Bound (B&B) (4/5) 9 (καθότι x 2 4 και x 2 4) L0 z * 41 x 2 4 x 2 3 L1 x 1 2 x 1 1 L2 L3 Stop L4 x 2 =4 x 2 5 z * 37 L5 Stop L6 17
Ακέραιος Προγραμματισμός Μέθοδος Branch and Bound (B&B) (5/5) Έχουμε να αναλύσουμε L2, L6. Στο L6 η μόνη εφικτή λύση είναι x 2 = 5, x 1 = 0 (λόγω περιορισμού 2) και z= 40. Έτσι το κάτω όριο βελτιώνεται 40 z * 41 Για το L2 x 1 =x 2 = 3, z= 39 Δεν μπορεί να προκύψει καλύτερη ακέραια λύση και εγκαταλείπεται. Έτσι το πρόβλημα επιλύθηκε Περίληψη Η βασική ιδέα του B&B είναι η υποδιαίρεση (διακλάδωση) της εφικτής περιοχής για να ευρεθούν όρια z z z. Για πρόβλημα μεγιστοποίησης το κάτω όριο z είναι η μέγιστη τιμή του z που αντιστοιχεί σε οιαδήποτε γνωστή ακέραια λύση. Το άνω όριο είναι η τιμή της αντικειμενικής συνάρτησης της βέλτιστης λύσης του γραμμικού (συνεχούς) προγραμματισμού. Γίνεται υποδιαίρεση (διακλάδωση) της εφικτής περιοχής και προχωρά η επίλυση Δεν γίνεται περαιτέρω υποδιαίρεση (διακλάδωση) μιας περιοχής όταν: α) το γραμμικό πρόβλημα L j είναι μη εφιτκό β) η λύση του γραμμικού προβλήματος L j είναι ακέραια (τότε δεν υπάρχει καλύτερη περαιτέρω διακλάδωση. Η λύση αποτελεί κάτω όριο) γ) Η λύση του γραμμικού προβλήματος L j z j z (όταν μεγιστοποιούμε) 18
Ακέραιος Προγραμματισμός Άσκηση: Να λυθεί με B&B και με το solver max z= 4x 1 + 2x 2 x 1 + x 2 8 x 1 + 3x 2 15 x 1 4 x 1, x 2 0 και ακέραιοι 19
Περιεχόμενα 1. Γραμμικός Προγραμματισμός 1.1 Παράδειγμα Γραμμικού Προγραμματισμού 1.2 Η μέθοδος Simplex 2. Ακέραιος Προγραμματισμός 2.1 Παραδείγματα μοντέλων Ακέραιου Προγραμματισμού 2.2 Η μέθοδος Branch and Bound (B&B) 2.3 Μεικτός Ακέραιος Προγραμματισμός 2.4 Δυαδικές μεταβλητές 20
Μεικτός Ακέραιος Προγραμματισμός Μέθοδος Επίλυσης: Β&Β Αφορά την περίπτωση που κάποιες μεταβλητές απόφασης είναι ακέραιες και κάποιες συνεχείς Στην περίπτωση αυτή η διαδικασία διακλάδωσης εφαρμόζεται μόνο στις ακέραιες μεταβλητές Η διαδικασία B&B εφαρμόζεται ακριβώς όπως στην περίπτωση του (καθαρά) ακέραιου προγραμματισμού Παράδειγμα max 3x 1 2x 2 + 10 x 1 2x 2 + x 3 = 5 2 2x 1 + x 2 + x 4 = 3 2 x 1, x 2, x 3, x 4 0 x 2, x 3 ακέραιοι Επίλυση L 0 με Solver L0 x 1 = 0 x 2 = 0 z=10 x 3 = 2,5 x 2 = 1,5 z * 10 21
Μεικτός Ακέραιος Προγραμματισμός Μέθοδος Επίλυσης: Β&Β Η διακλάδωση δε γίνεται στις μεταβλητές x 1 και x 4 καθότι είναι συνεχείς Η διακλάδωση δε γίνεται στη μεταβλητή x 2 καθότι είναι ακέραια και η τιμή 0 είναι η καλύτερη δυνατή στην εφικτή περιοχή x 2 0 Άρα δικλαδώνεται η x 3 σε L1: x 3 2 και L2: x 3 3 x 3 2 x 1 = 0 x 2 = 0 L0 z=10 x 3 = 2,5 x 2 = 1,5 z * 10 x 3 3 Ακέραια λύση 8,5 z * 10 x 1 = 0,5 x 2 = 0 L1 z=8,5 x 3 = 2 x 4 = 0,5 L2 x 1 = 0 x 3 = 3 x 2 = 0,25 x 4 = 1,25 z=9,5 Stop Καθότι δεν υπάρχει καλύτερη ακέραια λύση σε αυτή την υποδιαίρεση της εφικτής περιοχής (κλάδο) Όλες οι επιλύσεις των L με Solver 22
Μεικτός Ακέραιος Προγραμματισμός Μέθοδος Επίλυσης: Β&Β Διακλάδωση στη x 2 L2.1: x 2 = 0 και L2.2: x 2 1 Όλες οι επιλύσεις των L με Solver x 3 2 x 1 = 0 x 2 = 0 L0 z=10 x 3 = 2,5 x 2 = 1,5 z * 10 x 3 3 Ακέραια λύση 8,5 z * 10 x 1 = 0,5 x 2 = 0 L1 z=8,5 x 3 = 2 x 2 = 0,5 x 2 = 0 L2 x 1 = 0 x 3 = 3 x 2 = 0,25 x 2 = 1,25 z=9,5 x 2 1 Stop L2.1 L2.2 x 1 = 0 x 2 = 1 x 3 = 4.5 x 2 = 0,5 z=8 Stop Ανέφικτο πρόβλημα Συνεπώς η βέλτιστη λύση είναι αυτή του L1 Stop Λύση με τιμή z μικρότερη από το κάτω όριο 8 8,5 23
Περιεχόμενα 1. Γραμμικός Προγραμματισμός 1.1 Παράδειγμα Γραμμικού Προγραμματισμού 1.2 Η μέθοδος Simplex 2. Ακέραιος Προγραμματισμός 2.1 Παραδείγματα μοντέλων Ακέραιου Προγραμματισμού 2.2 Η μέθοδος Branch and Bound (B&B) 2.3 Μεικτός Ακέραιος Προγραμματισμός 2.4 Δυαδικές μεταβλητές 24
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β Αφορά την περίπτωση που όλες οι μεταβλητές του γραμμικού προγράμματος είναι ακέραιες και λαμβάνουν τιμές x i 0,1, i = 1,, n Στην περίπτωση αυτή θα μπορούσε κανείς να διερευνήσει όλους τους δυνατούς συνδυασμούς, και μεταξύ αυτών που ικανοποιούν τις συνθήκες να επιλέξει αυτόν που αντιστοιχεί στη βέλτιστη τιμή της αντικειμενικής συνάρτησης. Οι συνδυασμοί αυτοί είναι 2 n (π.χ. για n = 10 είναι 1024, για n=20 είναι > 1.000.000) Για τον περιορισμό των συνδυασμών χρησιμοποιείται μία απλή παραλλαγή στης μεθόδου B&B για την οποία δεν απαιτείται η λύση του συνεχούς γραμμικού προβλήματος Θα περιγράψουμε τη μέθοδο για πρόβλημα μεγιστοποίησης με αρνητικούς συντελεστές της αντικειμενικής συνάρτησης για το οποίο η καλύτερη (αλλά όχι κατ ανάγκη εφικτή) λύση είναι η x 1 = x 2 = x n = 0 Για άλλες μορφές προβλημάτων θα δούμε ότι εύκολα μετασχηματίζονται στη παραπάνω μορφή Παράδειγμα max z = 8x 1 2x 2 4x 3 7x 4 5x 5 + 10 3x 1 3x 2 + x 3 + 2x 4 + 3x 5 2 5x 1 3x 2 2x 3 x 4 + x 5 4 x 1, x 2, x 3, x 4, x 5 {0,1} 25
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β Αρχή με όλες τις μεταβλητές ελεύθερες και με κάτω όριο το z = 1. Αν δεν υφίσταται ελεύθερη μεταβλητή έχει βρεθεί η βέλτιστη λύση και είναι αυτή που αντιστοιχεί στο τρέχον κάτω όριο 2. Επιλογή μίας ελεύθερης μεταβλητής και διακλάδωση σε δύο κλάδους για τους οποίους η επιλεγμένη μεταβλητή λαμβάνει τιμές 0 ή 1, αντίστοιχα. Για τους κλάδους αυτούς η επιλεγμένη μεταβλητή δεν είναι πλέον ελεύθερη (καθώς λαμβάνει σταθερή τιμή) 3. Για κάθε κλάδο που δεν έχει διερευνηθεί I. Προσδιορίζουμε την βέλτιστη λύση για τον κλάδο θέτοντας όλες τις ελεύθερες μεταβλητές = 0 II. Εξετάζουμε αν η λύση ικανοποιεί όλους τους περιορισμούς a. Αν ναι και η τιμή της αντικειμενικής είναι μικρότερη από το τρέχον κάτω όριο, τότε σταματούμε την περαιτέρω διερεύνηση του κλάδου (καθότι κάθε υποδιαίρεση θα αντιστοιχεί σε τιμή χειρότερη ή ίδια της τρέχουσας η οποία είναι ήδη χειρότερη από τη λύση που αντιστοιχεί στο τρέχον κάτω όριο) b. Αν ναι και η τιμή της αντικειμενικής είναι μεγαλύτερη από το τρέχον κάτω όριο έχουμε ένα νέο κάτω όριο και δεν υποδιαιρούμε περαιτέρω τον κλάδο (καθότι κάθε υποδιαίρεση θα αντιστοιχεί σε τιμή χειρότερη ή ίδια της τρέχουσας) c. Αν όχι και γνωρίζουμε (θα δούμε πως) πως καμία λύση σε αυτή την υποδιαίρεση δεν είναι εφικτή σταματούμε την περαιτέρω διερεύνηση του κλάδου d. Αν όχι και υπάρχουν ελεύθερες μεταβλητές υποδιαιρούμε περαιτέρω τον κλάδο (αν είναι εφικτό) μεταβαίνοντας στο βήμα 1 26
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β Εφαρμογή αλγορίθμου στο παράδειγμα max z = 8x 1 2x 2 4x 3 7x 4 5x 5 + 10 3x 1 3x 2 + x 3 + 2x 4 + 3x 5 2 5x 1 3x 2 2x 3 x 4 + x 5 4 x 1, x 2, x 3, x 4, x 5 {0,1} x 1 = 1 0 z 10 x 1 = 0 z 2 1 2 Στον κόμβο 0 όλες οι μεταβλητές είναι ελεύθερες. Θέτοντας τις τιμές τους 0 η λύση δεν είναι εφικτή και z = 10. Η τιμή αυτή είναι άνω όριο z 10 Στον κόμβο 1, x 1 = 1 με ελεύθερες μεταβλητές x 2, x 3, x 4, x 5. Αν θέσουμε τις ελεύθερες μεταβλητές = 0,όλοι οι περιορισμοί ικανοποιούνται και z = 2, οπότε z 2 και σταματάει η περαιτέρω διερεύνηση του κλάδου. Τρέχον κάτω όριο είναι z = 2 Ο κόμβος 2 είναι ίδιος με τον 0 (με τη διαφορά ότι x 1 = 0 και μόνο οι υπόλοιπες 4 μεταβλητές είναι ελεύθερες). Άρα γίνεται περαιτέρω διακλάδωση 27
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β max z = 8x 1 2x 2 4x 3 7x 4 5x 5 + 10 3x 1 3x 2 + x 3 + 2x 4 + 3x 5 2 5x 1 3x 2 2x 3 x 4 + x 5 4 x 1, x 2, x 3, x 4, x 5 {0,1} z 2 x 1 = 1 Τρέχον κάτω όριο 0 1 2 z 10 x 1 = 0 x 2 = 1 x 2 = 0 3 4 Στον κόμβο 3 x 1 = 0, x 2 = 1 με ελεύθερες μεταβλητές x 3, x 4, x 5. Αν θέσουμε τις ελεύθερες μεταβλητές = 0, τότε ο δεύτερος περιορισμός δεν ικανοποιείται και συνεχίζουμε τη διερεύνηση της υποδιαίρεσης περαιτέρω διακλάδωση Στον κόμβο 4 x 1 = 0, x 2 = 0 με ελεύθερες μεταβλητές x 3, x 4, x 5. Αν θέσουμε τις ελεύθερες μεταβλητές = 0, τότε η λύση δεν είναι εφικτή. Παρατηρείται όμως ότι καμία λύση αυτής της υποδιαίρεσης δεν είναι εφικτή για οιονδήποτε συνδυασμό τιμών των ελεύθερων μεταβλητών. Επομένως σταματάει η περαιτέρω διερεύνηση αυτού του κλάδου Συνεχίζουμε μόνο με τον κόμβο 3 28
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β max z = 8x 1 2x 2 4x 3 7x 4 5x 5 + 10 3x 1 3x 2 + x 3 + 2x 4 + 3x 5 2 5x 1 3x 2 2x 3 x 4 + x 5 4 x 1, x 2, x 3, x 4, x 5 {0,1} z 2 x 1 = 1 Κάτω όριο 0 1 2 z 10 x 1 = 0 x 2 = 1 x 2 = 0 3 4 Στον κόμβο 5 x 1 = 0, x 2 = 1, x 3 = 1 με ελεύθερες μεταβλητές x 4, x 5. Αν θέσουμε τις ελεύθερες μεταβλητές = 0, τότε ικανοποιούνται οι περιορισμοί και z = 4, οπότε z 4 και σταματάει η περαιτέρω διερεύνηση του κλάδου. Το τρέχον κάτω όριο είναι z = 4 z 4 x 3 = 1 x 3 = 0 Ανέφικτος κλάδος 5 6 Τρέχον κάτω όριο Στον κόμβο 6 x 1 = 0, x 2 = 1, x 3 = 0 με ελεύθερες μεταβλητές x 4, x 5. Αν θέσουμε τις ελεύθερες μεταβλητές = 0, τότε η λύση δεν είναι εφικτή και συνεχίζεται η διακλάδωση 29
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β max z = 8x 1 2x 2 4x 3 7x 4 5x 5 + 10 3x 1 3x 2 + x 3 + 2x 4 + 3x 5 2 5x 1 3x 2 2x 3 x 4 + x 5 4 x 1, x 2, x 3, x 4, x 5 {0,1} Στον κόμβο 7 x 1 = 0, x 2 = 1, x 3 = 0, x 4 = 1 με ελεύθερη μεταβλητή την x 5. Αν θέσουμε την ελεύθερη μεταβλητή = 0, τότε η λύση δεν είναι εφικτή. Ούτε όμως κάποια υποδιαίρεση είναι εφικτή για οιαδήποτε τιμή της ελεύθερης μεταβλητής x 5. Επομένως σταματάει η περαιτέρω διερεύνηση αυτού του κλάδου Στον κόμβο 8 x 1 = 0, x 2 = 1, x 3 = 0, x 4 = 0 με ελεύθερη μεταβλητή την x 5. Αν θέσουμε την ελεύθερη μεταβλητή = 0, τότε η λύση δεν είναι εφικτή και συνεχίζεται η διακλάδωση z 2 z 4 x 1 = 1 Κάτω όριο 0 1 2 z 10 x 1 = 0 x 2 = 1 x 2 = 0 5 6 3 4 x 3 = 1 x 3 = 0 Ανέφικτος κλάδος Τρέχον κάτω όριο x 4 = 1 x 4 = 0 Ανέφικτος κλάδος 7 8 30
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β max z = 8x 1 2x 2 4x 3 7x 4 5x 5 + 10 3x 1 3x 2 + x 3 + 2x 4 + 3x 5 2 5x 1 3x 2 2x 3 x 4 + x 5 4 x 1, x 2, x 3, x 4, x 5 {0,1} Στον κόμβο 9 x 1 = 0, x 2 = 1, x 3 = 0, x 4 = 0, x 5 = 1 και δεν υπάρχει καμία ελεύθερη μεταβλητή. Η λύση δεν είναι εφικτή και εφόσον δεν υπάρχει καμία ελεύθερη μεταβλητή, ο κλάδος δε δύναται να διακλαδωθεί περαιτέρω. Στον κόμβο 10 x 1 = 0, x 2 = 1, x 3 = 0, x 4 = 0, x 5 = 0 και δεν υπάρχει καμία ελεύθερη μεταβλητή. Η λύση δεν είναι εφικτή και εφόσον δεν υπάρχει καμία ελεύθερη μεταβλητή, ο κλάδος δε δύναται να διακλαδωθεί περαιτέρω. Η βέλτιστη λύση συνεπώς είναι αυτή που αντιστοιχεί στο τρέχον κάτω όριο με x 1 = 0, x 2 = 1, x 3 = 1, x 4 = 0, x 5 = 0 και z = 4 z 2 z 4 x 1 = 1 Κάτω όριο 0 1 2 z 10 x 1 = 0 x 2 = 1 x 2 = 0 5 6 3 4 x 3 = 1 x 3 = 0 Ανέφικτος κλάδος Τρέχον κάτω όριο Ανέφικτος κλάδος x 4 = 1 x 4 = 0 7 8 x 5 = 1 x 5 = 0 9 10 Ανέφικτη λύση Ανέφικτη λύση 31
Δυαδικές μεταβλητές στον Ακέραιο Προγραμματισμό Μέθοδος Επίλυσης: Β&Β Ο αλγόριθμος βασίζεται στο γεγονός ότι το αρχικό πρόβλημα είναι στην κανονική μορφή με o o Η αντικειμενική συνάρτηση μεγιστοποιείται με όλους τους συντελεστές αρνητικούς Όλοι οι περιορισμοί είναι της μορφής μικρότερο ή ίσο Σε προβλήματα ελαχιστοποίησης πολλαπλασιάζουμε τους συντελεστές της αντικειμενικής συνάρτησης με -1 Εάν η μεταβλητή x j έχει θετικό συντελεστή στην αντικειμενική συνάρτηση τότε την αντικαθιστούμε με βάση την x j = 1 x j σε όλο το μοντέλο. Αυτός ο μετασχηματισμός διατηρεί τον συντελεστή της x j αρνητικό στην αντικειμενική συνάρτηση και την x j δυαδική μεταβλητή Οι περιορισμοί μεγαλύτερο ή ίσο μετατρέπονται σε μικρότερο ή ίσο πολλαπλασιάζοντάς τους με -1 Περιορισμοί ισότητας μετατρέπονται σε ζεύγη περιορισμών με μεγαλύτερο ή ίσο και μικρότερο ή ίσο του δεξιού μέρους 32
Ασκήσεις 2.2 και 2.3 Άσκηση: Να λυθεί με B&B και με το solver max 3x 1 2x 2 + 2x 4 + 2x 5 + 20 x 1 2x 2 + x 3 + x 4 + x 5 = 9 2 2x 2 + x 3 + x 4 + 2x 5 = 6 x 1, x 2, x 3, x 4, x 5 0 x 4, x 5 ακέραιοι Άσκηση: Να λυθεί με B&B και με το solver max z = x 1 + 2x 2 3x 3 5x 4 x 5 + 20 6x 1 2x 2 2x 3 5x 4 + 3x 5 6 4x 1 3x 2 6x 3 + 12x 4 6 x 1, x 2, x 3, x 4, x 5 {0,1} 33