Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Δυϊκότητα Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 1/12/2016 1
Το δυϊκό πρόβλημα Για κάθε πρόβλημα Γραμμικού Προγραμματισμού υπάρχει ένα δεύτερο πρόβλημα Γραμμικού Προγραμματισμού το οποίο αποκαλείται δυϊκό (dual) του αρχικού προβλήματος (το αρχικό πρόβλημα λέγεται πρωτεύον - primal) Αρχή του δυϊσμού: Οι βέλτιστες λύσεις του πρωτεύοντος προβλήματος και του δυϊκού προβλήματος είναι ισοδύναμες (δηλαδή, αν γνωρίζουμε τη βέλτιστη λύση του ενός από τα δύο μπορούμε να προσδιορίσουμε τη βέλτιστη λύση και για το άλλο) 2
Πρωτεύον και δυϊκό πρόβλημα (παράδειγμα) Πρωτεύον (primal) Δυϊκό (dual) Λύση: z = 27, x1 = 0, x2 = 9 Λύση: z = 27, y1 = 3, y2 = 0, y3 = 0 Καθώς το πρωτεύον είναι πρόβλημα μεγιστοποίησης, το δυϊκό είναι πρόβλημα ελαχιστοποίησης Το δυϊκό έχει τόσες μεταβλητές όσοι είναι οι περιορισμοί του πρωτεύοντος Το δυϊκό έχει τόσους περιορισμούς όσες είναι οι μεταβλητές του πρωτεύοντος Οι συντελεστές της αντικειμενικής συνάρτησης του πρωτεύοντος γίνονται δεξιά μέρη στους περιορισμούς του δυϊκού Τα δεξιά μέρη των περιορισμών του πρωτεύοντος γίνονται συντελεστές της αντικειμενικής συνάρτησης του δυϊκού 3
Γενικοί κανόνες διαμόρφωσης του δυϊκού προβλήματος Αν το πρωτεύον είναι πρόβλημα μεγιστοποίησης, το δυϊκό πρόβλημα είναι πρόβλημα ελαχιστοποίησης και αντίστροφα Μετατροπή όλων των περιορισμών τύπου του πρωτεύοντος σε περιορισμούς τύπου πραγματοποιώντας πολλαπλασιασμό με το 1. Σε κάθε περιορισμό του πρωτεύοντος αντιστοιχεί μια μεταβλητή του δυϊκού ως εξής: Αν ο περιορισμός είναι τύπου τότε η αντίστοιχη μεταβλητή είναι μη αρνητική Αν ο περιορισμός είναι τύπου = τότε η αντίστοιχη μεταβλητή είναι ελεύθερη Οι συντελεστές των μεταβλητών στην αντικειμενική συνάρτηση του πρωτεύοντος προβλήματος εμφανίζονται ως σταθερές ποσότητες στο δεξιό μέλος των περιορισμών του δυϊκού προβλήματος Οι σταθερές ποσότητες στο δεξιό μέλος των περιορισμών του πρωτεύοντος προβλήματος εμφανίζονται ως συντελεστές των μεταβλητών στην αντικειμενική συνάρτηση του δυϊκού προβλήματος Οι συντελεστές μετατροπής των περιορισμών του πρωτεύοντος προβλήματος εμφανίζονται στο δυϊκό πρόβλημα ανάστροφα (οι στήλες γίνονται γραμμές και οι γραμμές στήλες) 4
Τυποποιημένη διαδικασία μετατροπής πρωτεύοντος σε δυϊκό Διατύπωση του πρωτεύοντος ως πρόβλημα μεγιστοποίησης με όλους τους περιορισμούς να είναι ανισότητες της μορφής ή ισότητες Αν το πρόβλημα είναι ελαχιστοποίησης τότε το μετατρέπουμε σε πρόβλημα μεγιστοποίησης της αντίθετης αντικειμενικής συνάρτησης Κάθε περιορισμός της μορφής μετατρέπεται σε περιορισμό της μορφής με πολλαπλασιασμό με το -1 1 2 3 4 5
Παράδειγμα (ΕΠΙΠΛΟΞΥΛ) στόχος του δυϊκού προβλήματος είναι η ελαχιστοποίηση της συνολικής αξίας των πόρων που χρησιμοποιούνται η αξία των πόρων που απαιτούνται για να κατασκευαστεί ένα τραπέζι είναι 8y1 + 4y2 + 4y3 και θα πρέπει να είναι τουλάχιστον ίση με την αξία ενός τραπεζιού που είναι 140, συνεπώς: 8y1 + 4y2 + 4y3 >= 140 η αξία των πόρων που απαιτούνται για να κατασκευαστεί μια καρέκλα είναι 8y1 + 2y2 + 3y3 και θα πρέπει να είναι τουλάχιστον ίση με την αξία μιας καρέκλας που είναι 100, συνεπώς: 8y1 + 2y2 + 3y3 >= 100 6
Οικονομική ερμηνεία του δυϊσμού y1, y2, y3 είναι η αξία καθεμιάς ώρας στο ξυλουργείο, βαφείο και στιλβωτήριο αντίστοιχα Το πρόβλημα Γραμμικού Προγραμματισμού μπορεί να θεωρηθεί ως ένα μοντέλο κατανομής πόρων που προσπαθεί να μεγιστοποιήσει τα έσοδα με δεδομένη τη περιορισμένη διαθεσιμότητα αυτών των πόρων Οι μεταβλητές y1, y2, y3 ονομάζονται δυϊκές μεταβλητές Κάθε δυϊκή μεταβλητή αντιστοιχεί σε έναν περιορισμό του πρωτεύοντος προβλήματος Οι δυϊκές μεταβλητές εκφράζουν την οριακή αξία της χρήσης των πόρων του αντίστοιχου περιορισμού (π.χ. η δυϊκή μεταβλητή y1 εκφράζει την αξία σε ευρώ ανά ώρα ξυλουργείου) 7
Σχέση τιμών αντικειμενικής συνάρτησης πρωτεύοντος και δυϊκού προβλήματος Ασθενής δυϊκότητα: για κάθε ζεύγος εφικτών λύσεων του πρωτεύοντος προβλήματος και του δυϊκού προβλήματος ισχύει ότι: τιμή αντικειμενικής συνάρτησης προβλήματος μεγιστοποίησης τιμή αντικειμενικής συνάρτησης προβλήματος ελαχιστοποίησης Ισχυρή δυϊκότητα: Για τη βέλτιστη λύση του πρωτεύοντος προβλήματος και τη βέλτιστη λύση του δυϊκού προβλήματος ισχύει ότι: βέλτιστη τιμή αντικειμενικής συνάρτησης προβλήματος μεγιστοποίησης = βέλτιστη τιμή αντικειμενικής συνάρτησης προβλήματος ελαχιστοποίησης 8
Σχέσεις μεταξύ πρωτεύοντος και δυϊκού προβλήματος Αν είτε το πρωτεύον είτε το δυϊκό πρόβλημα έχουν βέλτιστη λύση, τότε και το άλλο πρόβλημα έχει βέλτιστη λύση (με την ίδια τιμή) Αν είτε το πρωτεύον είτε το δυϊκό πρόβλημα είναι μη φραγμένο (unbounded), τότε το άλλο πρόβλημα δεν έχει εφικτές λύσεις (infeasible) Αν είτε το πρωτεύον είτε το δυϊκό πρόβλημα δεν έχει εφικτές λύσεις (infeasible) τότε το άλλο πρόβλημα είτε δεν έχει εφικτές λύσεις (infeasible) είτε είναι μη φραγμένο (unbounded) Αν το primal είναι Feasible Infeasible Unbounded τότε το dual είναι Feasible Infeasible ή Unbounded Infeasible Αν το dual είναι Feasible Infeasible Unbounded τότε το primal είναι Feasible Infeasible ή Unbounded Infeasible 9
Γιατί παρουσιάζει ενδιαφέρον το δυϊκό πρόβλημα; Οι μεταβλητές του δυϊκού προβλήματος εκφράζουν σημαντικές πληροφορίες που μπορούν να αποδειχθούν χρήσιμες στη λήψη αποφάσεων Σε ορισμένες περιπτώσεις η επίλυση του δυϊκού προβλήματος μπορεί να είναι ευκολότερη από την επίλυση του πρωτεύοντος προβλήματος (αν το πλήθος των μεταβλητών είναι πολύ μικρότερο από τους περιορισμούς τότε η επίλυση του δυϊκού μπορεί να είναι ταχύτερη από την επίλυση του πρωτεύοντος) Η ταχύτητα της Simplex επηρεάζεται σε μεγάλο βαθμό από το πλήθος των περιορισμών 10
Επίλυση προβλήματος ελαχιστοποίησης με τη χρήση του αντίστοιχου δυϊκού προβλήματος Ένα πρόβλημα ελαχιστοποίησης μπορεί να μετατραπεί στο δυϊκό του πρόβλημα που θα είναι πρόβλημα μεγιστοποίησης Το πρόβλημα μεγιστοποίησης μπορεί να επιλυθεί με την κλασική μέθοδο Simplex Η βέλτιστη λύση του δυϊκού δίνει και τη λύση του αρχικού προβλήματος Πρωτεύον Δυϊκό Αρχικό ταμπλό Simplex (δυϊκού) Cj 2 3 0 0 Cj Basis y1 y2 s1 s2 RHS 0 s1 3 5 1 0 29 0 s2 2 1 0 1 10 Wj 0 0 0 0 0 Cj-Wj 2 3 0 0 Τελικό ταμπλό Simplex (δυϊκού) Cj 2 3 0 0 Cj Basis y1 y2 s1 s2 RHS 2 y1 1 0 2/7-3/7 4 3 y2 0 1-1/7 5/7 3 Wj 2 3 4/7 1/7 18 Cj-Wj 0 0-4/7-1/7 Βέλτιστη λύση δυϊκού: y1 = 4, y2 = 3, z = 18 Βέλτιστη λύση πρωτεύοντος (από τον τελικό πίνακα simplex του δυϊκού): x1 = 4/7, x2 = 1/7, z = 18 11
Οικονομική ερμηνεία των δυϊκών μεταβλητών Στο πρωτεύον πρόβλημα: n: αριθμός μεταβλητών απόφασης m: αριθμός περιορισμών Η αντικειμενική συνάρτηση του πρωτεύοντος προβλήματος είναι σn j=1 c j x j όπου c j είναι τα κέρδη για κάθε μια μονάδα της δραστηριότητας j και x j είναι η αντίστοιχη μεταβλητή Η αντικειμενική συνάρτηση του δυϊκού προβλήματος είναι σ m i=1 μονάδες του πόρου i και y i είναι η αντίστοιχη δυϊκή μεταβλητή Από την ισχυρή δυϊκότητα προκύπτει ότι στη βέλτιστη λύση η ποσότητα σ m i=1 κέρδος δηλαδή: n c j x j = ΚΕΡΔΟΣ ΣΕ = b i y i = (ΜΟΝΑΔΕΣ ΠΟΡΟΥ i)( ΑΝΑ ΜΟΝΑΔΑ ΠΟΡΟΥ i) j=1 m i=1 m i=1 b i y i όπου b i είναι οι διαθέσιμες άρα η δυϊκή μεταβλητή y i αναπαριστά τη μοναδιαία αξία του πόρου i b i y i είναι ίση με το Αν το συνολικό κέρδος από όλες τις δραστηριότητες είναι μικρότερο από την αξία των πόρων τότε οι λύσεις του πρωτεύοντος και του δυϊκού προβλήματος δεν είναι βέλτιστες (δηλαδή η λύση είναι βέλτιστη μόνο όταν γίνεται βέλτιστη αξιοποίηση των πόρων) 12
Οικονομική ερμηνεία των δυϊκών περιορισμών Η ποσότητα σ m i=1 a ij y i c j είναι γνωστή ως μειωμένο κόστος (reduced cost) της δραστηριότητας j και αντιστοιχεί στον j περιορισμό του δυϊκού προβλήματος Σε ένα πρόβλημα μεγιστοποίησης η αύξηση μιας μη βασικής μεταβλητής j μπορεί να βελτιώσει το κέρδος μόνο αν το μειωμένο κόστος είναι αρνητικό Βέλτιστη λύση: x1 = 0, x2 = 100, x3 = 230, z = 1350 Δυϊκές τιμές: y1 = 1, y2 = 2, y3 = 0 Μειωμένο κόστος της μη βασικής μεταβλητής x1 3 a i1 y i c 1 = a 11 y 1 + a 21 y 2 + a 31 y 3 c 1 i=1 = 1 1 + 3 2 + 1 0 3 = 7 3 = 4 μειωμένο κόστος = κόστος πόρων που αναλώνονται ανά μονάδα - έσοδα ανά μονάδα Το μειωμένο κόστος των βασικών μεταβλητών x2 και x3 είναι μηδέν 13
Συμπληρωματική χαλαρότητα (complementary slackness) Αν το πρωτεύον πρόβλημα P έχει λύση x και το δυϊκό πρόβλημα D έχει λύση y τότε: Αν x j > 0 τότε o j περιορισμός του D είναι δεσμευτικός Αν ο j περιορισμός του D δεν είναι δεσμευτικός τότε x j = 0 Αν y i > 0 τότε o i περιορισμός του P είναι δεσμευτικός Αν ο i περιορισμός του D δεν είναι δεσμευτικός τότε y i = 0 H j μεταβλητή του πρωτεύοντος σχετίζεται με τον j περιορισμό του δυϊκού H i μεταβλητή του δυϊκού σχετίζεται με τον i περιορισμό του πρωτεύοντος Δεν μπορεί να υπάρχει slack σε δύο συσχετιζόμενα μέρη ταυτόχρονα (j μεταβλητή πρωτεύοντος, j περιορισμός δυϊκού) ή (i περιορισμός πρωτεύοντος, i μεταβλητή δυϊκού) 14
Παράδειγμα του complementary slackness Πρωτεύον (primal) Δυϊκό (dual) Λύση: z = 27, x1 = 0, x2 = 9 Λύση: z = 27, y1 = 3, y2 = 0, y3 = 0 η 1 η μεταβλητή (x1) του πρωτεύοντος είναι μηδέν, άρα ο 1 ος περιορισμός του δυϊκού είναι μη δεσμευτικός (για y1=3, y2=0, y3=0 ο 1 ος περιορισμός του δυϊκού γίνεται 1*3+2*0+1*0>=3 3>=2) δηλαδή έχει slack η 2 η μεταβλητή (x2) του πρωτεύοντος είναι θετική (9), άρα ο 2 ος περιορισμός του δυϊκού είναι δεσμευτικός (για y1=3, y2=0, y3=0 ο 2 ος περιορισμός του δυϊκού γίνεται 1*3+1*0+0*0>=3 3>=3) δηλαδή δεν έχει slack 15
Λήψη της βέλτιστης λύσης του δυϊκού από τη βέλτιστη λύση του πρωτεύοντος P D Βέλτιστη λύση: z = 42, x1 = 0, x2 = 10.4, x3 = 0, x4 = 0.4 x2 > 0 2 ος περιορισμός του D είναι ισότητα: y1 3y2 + y3 = 4 x4 > 0 4 ος περιορισμός του D είναι ισότητα: 4y1 + 3y2 y3 = 1 2 ος περιορισμός του P δεν είναι δεσμευτικός στη βέλτιστη λύση x1 3x2 + 2x3 + 3x4 = 30 < 7 y2 = 0 Άρα προκύπτει το ακόλουθο σύστημα εξισώσεων y1 + y3 = 4 4y1 y3 = 0 με λύσεις y1 = 1, y3 = 3 και z = 42 16
Λήψη της βέλτιστης λύσης του δυϊκού από το βέλτιστο ταμπλό του πρωτεύοντος Αρχικό ταμπλό Cj 2 4 3 1 0 0 0 Cj Basis x1 x2 x3 x4 s1 s2 s3 RHS 0 s1 3 1 1 4 1 0 0 12 0 s2 1-3 2 3 0 1 0 7 0 s3 2 1 3-1 0 0 1 10 Wj 0 0 0 0 0 0 0 0 Cj-Wj 2 4 4 1 0 0 0 Τελικό ταμπλό Cj 2 4 3 1 0 0 0 Cj Basis x1 x2 x3 x4 s1 s2 s3 RHS 1 x4 0.2 0-0.4 1 0.2 0-0.2 0.4 0 s2 7 0 11 0 0 1 3 37 4 x2 2.2 1 2.6 0 0.2 0 0.8 10.4 Wj 9 4-10 1 1 0 3 42 Cj-Wj -7 0-7 0-1 0-3 1 0 4 0.2 0 0.2 0 1 3 0.2 0 0.8 = 1 0 3 βέλτιστη λύση δυϊκού 17
Έλεγχος αν μια λύση είναι βέλτιστη με τη χρήση του δυϊκού προβλήματος P Λύση: x1 = 1, x2 = 4, z = 3 Στο πρωτεύον: Αντικαθιστώντας της τιμές της λύσης x1 = 1, x2 = 4, z = 3 στους περιορισμούς προκύπτει ότι κάποιοι είναι δεσμευτικοί και κάποιοι δεν είναι: περιορισμός 1 2 1 + 4 = 2 2 (δεσμευτικός) περιορισμός 2 1 2 4 = 7 2 (μη δεσμευτικός) άρα η μεταβλητή του δυϊκού που αντιστοιχεί στο δεύτερο περιορισμό είναι μηδέν, y2 = 0 περιορισμός 3 1 + 4 = 5 (δεσμευτικός) D Στο δυϊκό: Ο 1 ος περιορισμός αντιστοιχεί στη μεταβλητή x1 η οποία είναι θετική (x1 = 1) άρα ο περιορισμός δεν έχει slack, δηλαδή είναι ισότητα: 2y1 + y2 + y3 = 1 2y1 + y3 = 1 Ο 2 ος περιορισμός αντιστοιχεί στη μεταβλητή x2 η οποία είναι θετική (x2 = 4) άρα ο περιορισμός είναι ισότητα: y1 2y2 + y3 = 1 y1 + y3 = 1 Από τις ανωτέρω εξισώσεις προκύπτει ότι y1 = 2 3, y3 = 1 3 που παραβιάζουν τους περιορισμούς μη αρνητικότητας για τις μεταβλητές y1 και y3, άρα η λύση x1 = 1, x2 = 4 δεν είναι η βέλτιστη λύση του πρωτεύοντος προβλήματος 18
Αλγόριθμος δυϊκής simplex Dual Simplex 19
Ο αλγόριθμος δυϊκής simplex βασική ιδέα Πρωτεύον Το πρόβλημα λόγω του 4 ου περιορισμού θα πρέπει να επιλυθεί εισάγοντας τεχνητές μεταβλητές (με τη μέθοδο του μεγάλου M ή με τη μέθοδο των 2 φάσεων) Ο dual simplex επιτρέπει την επίλυση του πρωτεύοντος προβλήματος χωρίς να μετατραπεί σε δυϊκό αλλά εκτελώντας πράξεις στο ταμπλό simplex του πρωτεύοντος Δυϊκό Το δυϊκό πρόβλημα δεν απαιτεί για την επίλυσή του τεχνητές μεταβλητές (όλοι οι περιορισμοί είναι τύπου και τα δεξιά μέρη των περιορισμών είναι μη αρνητικά) 20
Παράδειγμα δυϊκής simplex (1/3) Προϋποθέσεις εφαρμογής της δυϊκής simplex: για προβλήματα ελαχιστοποίησης οι συντελεστές της αντικειμενικής συνάρτησης θα πρέπει να είναι θετικοί για προβλήματα μεγιστοποίησης οι συντελεστές της αντικειμενικής συνάρτησης θα πρέπει να είναι αρνητικοί θα πρέπει να υπάρχει τουλάχιστον ένας περιορισμός της μορφής ή = Η δυϊκή simplex ξεκινά από μια μη εφικτή αλλά καλύτερη λύση από τη βέλτιστη λύση, παραμένει σε μη εφικτές λύσεις μέχρι να αποκατασταθεί η εφικτότητα 21
Παράδειγμα δυϊκής simplex (2/3) Βήματα dual simplex 1. Εντοπισμός της πλέον αρνητικής τιμής στο RHS η οποία καθορίζει και τη γραμμή οδηγό 2. Διαίρεση των τιμών της γραμμής Cj Wj του πίνακα με τις αρνητικές τιμές της γραμμής οδηγού αγνοώντας το αρνητικό πρόσημο και επιλογή της μικρότερης τιμής έτσι ώστε να καθοριστεί η στήλη οδηγός 3. Αντικατάσταση της βασικής μεταβλητής που υποδηλώνεται από τη γραμμή οδηγό με τη μη βασική μεταβλητή που υποδηλώνεται από τη στήλη οδηγό 4. Επιστροφή στο βήμα 1 αν υπάρχουν αρνητικές τιμές στο RHS Το ταμπλό είναι «βέλτιστο» καθώς το πρόβλημα είναι ελαχιστοποίησης και όλες οι τιμές της γραμμής Cj-Wj είναι μη αρνητικές Όμως, η μεταβλητή s4 έχει αρνητική τιμή s4=-150 άρα η συγκεκριμένη λύση δεν είναι εφικτή Cj 3 4 0 0 0 0 Cj Basis x1 x2 s1 s2 s3 s4 RHS 0 s1 2 1 1 0 0 0 600 0 s2 1 1 0 1 0 0 225 0 s3 5 4 0 0 1 0 1000 0 s4-1 -2 0 0 0 1-150 Wj 0 0 0 0 0 0 0 Cj-Wj 3 4 0 0 0 0 Ratio 3/1 4/2 - - - - Εξέρχεται η μεταβλητή s4 (πλέον αρνητική τιμή στο RHS) Λόγοι: {x1,x2} = {3,4} Εισέρχεται η μεταβλητή x2 καθώς έχει το μικρότερο λόγο τιμών 22
Παράδειγμα δυϊκής simplex (3/3) Ταμπλό 1 Ταμπλό 2 Cj 3 4 0 0 0 0 Cj Basis x1 x2 s1 s2 s3 s4 RHS 0 s1 2 1 1 0 0 0 600 0 s2 1 1 0 1 0 0 225 0 s3 5 4 0 0 1 0 1000 0 s4-1 -2 0 0 0 1-150 Wj 0 0 0 0 0 0 0 Cj-Wj 3 4 0 0 0 0 Ratio 3/1 4/2 R4 R4/(-2) R1 R1 R4 R2 R2 R4 R3 R3 4R4 Cj 3 4 0 0 0 0 Cj Basis x1 x2 s1 s2 s3 s4 RHS 0 s1 1.5 0 1 0 0 0 525 0 s2 0.5 0 0 1 0 0.5 150 0 s3 3 0 0 0 1 2 700 4 x2 0.5 1 0 0 0-0.5 75 Wj 2 4 0 0 0-2 300 Cj-Wj 1 0 0 0 0 2 Το ταμπλό 2 είναι βέλτιστο καθώς το πρόβλημα είναι ελαχιστοποίησης και όλες οι τιμές της γραμμής Cj Wj είναι μη αρνητικές, επιπλέον όλες οι τιμές των μεταβλητών είναι μη αρνητικές άρα έχει εντοπιστεί η βέλτιστη λύση 23
Γενικευμένος αλγόριθμος simplex Ο γενικευμένος αλγόριθμος simplex συνδυάζει τον κλασικό αλγόριθμο simplex και τον dual simplex ξεκινώντας από μια λύση η οποία δεν είναι εφικτή και δεν είναι και βέλτιστη. Αρχικά χρησιμοποιείται ο dual simplex για τη μετάβαση σε εφικτή λύση χωρίς να εξετάζεται η βελτιστότητα Στη συνέχεια χρησιμοποιείται ο κλασικός simplex για την εύρεση της βέλτιστης λύσης 24