Το πρόγραµµα λογιστικών φύλλων (spreadsheet) Microsoft Excel ενσωµατώνει ρουτίνα επίλυσης προτύπων γραµµικού προγραµµατισµού. Η ρουτίνα ονοµάζεται Solver και χρησιµοποιεί το λογιστικό φύλλο του Microsoft Excel για την εισαγωγή δεδοµένων από και προς αυτό. Σκοπός κεφαλαίου Παρουσίαση της µεθόδου SOLVER και αναλυτική περιγραφή της µεθοδολογίας. 1. Ενεργοποίηση του SOLVER Παρότι ο Solver είναι τµήµα του Microsoft Excel, ανήκει στην κατηγορία των add-in s και πιθανότατα δεν είναι ενεργοποιηµένος. Για να εξεταστεί αν ο Solver είναι ενεργοποιηµένος, αρκεί να εξεταστεί το µενού Tools ( Εργαλεία ) του MS-Excel. Αν υπάρχει επιλογή Solver στο µενού αυτό, ο Solver είναι ενεργοποιηµένος (Εικόνα Λ.1): 216
Επιλογή Solver (ενεργοποιηµένη) Επιλογή Add-Ins Εικόνα Λ.1: Μενού Tools του MS-Excel. 217
Αν ο Solver είναι απενεργοποιηµένος, ενεργοποιείται µε βάση την παρακάτω διαδικασία: Από το µενού Tools (Εικόνα Λ.1) επιλέγεται η εντολή Add ins και εµφανίζεται το παρακάτω παράθυρο διαλόγου (Εικόνα Λ.2). Επιλογή Solver Add-n Εικόνα Λ.2: Παράθυρο διαλόγου Add Ins. Γίνεται επιλογή του Solver, κάνοντας κλικ στο τετραγωνίδιο δίπλα στην επιλογή Solver Add-in, οπότε εµφανίζεται ένα τικ µέσα στο κουτάκι. Στη συνέχεια επιλέγοντας OK, ενεργοποιείται ο Solver και η επιλογή εκτέλεσής του φαίνεται στο µενού Tools, όπως στην Εικόνα Λ.1. ΠΡΑΚΤΙΚΗ ΕΦΑΡΜΟΓΗ Για την επίδειξη του SOLVER, θα χρησιµοποιηθεί το παρακάτω παράδειγµα, το οποίο θα αποκαλείται από εδώ και πέρα «Παράδειγµα Κεραµοσκεπών». Ο Σχηµατισµός της 69 Α ΤΕ επιθυµεί την κατασκευή κεραµοσκεπών σε Στρατόπεδα της Ζώνης Ευθύνης του για να αντικαταστήσει παλαιότερες σκεπές από φύλλα αµιαντοτσιµέντου. Λόγω υπηρεσιακών αναγκών ο Σχηµατισµός δεν δύναται να κατασκευάσει άνω των 1.500 m 2 πραγµατικής επιφάνειας κεραµοσκεπών. Για την κατασκευή των κεραµοσκεπών έχει διατεθεί κονδύλι 100.000 ΕΥΡΩ από την ΑΣ ΕΝ, ως τµήµα του ΕΜΠΑΕ 2001-2005. (συνέχεια στην επόµενη σελίδα) 218
(συνέχεια από την προηγούµενη σελίδα) ΠΡΑΚΤΙΚΗ ΕΦΑΡΜΟΓΗ Η 69 Α ΤΕ σκοπεύει να προχωρήσει σε απ ευθείας ανάθεση του έργου και για τον λόγο αυτόν έχει αναθέσει στον Λόχο Μηχανικού του Σχηµατισµού (69 ΛΜΧ) την εξεύρεση κατασκευαστών. Μετά από αξιολόγηση ο 69ΛΜΧ προτείνει τρεις κατασκευαστές των οποίων οι προσφορές και οι απαιτήσεις για να αναλάβουν την εργασία είναι οι παρακάτω: Κατασκευαστής 1 2 3 Τιµή ανά m 2 (EΥΡΩ) 47 48 53 Ελάχιστα m 2 που αναλαµβάνει 300 300 300 Μέγιστα m 2 που αναλαµβάνει 800 600 700 Για υπηρεσιακούς λόγους η 69 Α ΤΕ επιθυµεί την κατά το συντοµότερο κατασκευή των κεραµοσκεπών για τον λόγο αυτόν προτίθεται να µοιράσει το έργο και στους τρεις κατασκευαστές. Επίσης, οι κατασκευαστές 1 και 2 είναι κουµπάροι και έχουν αποφασίσει ότι δεν θα αναλάβουν τµήµα του έργου αν δεν λάβουν και οι δύο µαζί τουλάχιστον 30.000 ΕΥΡΩ ώστε να µπορούν να αποπληρώσουν δάνειο που είχαν λάβει παλαιότερα. Να βρεθεί και να επιλυθεί προτύπου γραµµικού προγραµµατισµού ώστε να µοιράζονται τα m 2 και στους τρεις κατασκευαστές µε τέτοιον τρόπο που να µεγιστοποιείται το σύνολο των m 2 που θα κατασκευαστούν υπό τις ανωτέρω συνθήκες. Λύση: Έστω x ii το σύνολο των m 2 κατασκευαστής (i=1,2,3). κεραµοσκεπών που θα αναλάβει ο κάθε To προτύπου Γραµµικού Προγραµµατισµού θα είναι το: Max x 1 +x 2 +x 3 Μεγιστοποίηση s.t. 47x 1 +48x 2 +53x 3 100000 { Περιορισµός Κονδυλίου x 1 +x 2 +x 3 1500 { Περιορισµός Επιφάνειας 47x 1 +48x 2 30000 { Περιορισµός Συµφωνίας Κατασκευαστών 1 & 2 300 x 1 800 { υνατότητες Κατασκευαστή 1 300 x 2 600 { υνατότητες Κατασκευαστή 2 300 x 3 700 { υνατότητες Κατασκευαστή 3 x 1,x 2,x 3 0 (συνέχεια στην επόµενη σελίδα) 219
(συνέχεια από την προηγούµενη σελίδα) H επίλυση του παραπάνω προβλήµατος θα γίνει µε τη βοήθεια του SOLVER. Πρώτα όµως θα αναφερθούµε σε µερικές γενικές αρχές χρήσης του SOLVER. Σηµειώνεται ότι βασικές αρχές χρήσης του Microsoft Excel θεωρούνται δεδοµένες και δεν πρόκειται να πραγµατοποιηθεί εµβάθυνση σε αυτές. 2. Βασικές Aρχές Οι βασικότερες αρχές για τον χειρισµό του SOLVER είναι οι παρακάτω: Κάθε µεταβλητή του προβλήµατος πρέπει να αντιστοιχιστεί σε ένα κελί του φύλλου εργασίας. Οι συντελεστές της αντικειµενικής συνάρτησης και των περιορισµών τοποθετούνται σε κελιά. Η αντικειµενική συνάρτηση αντιστοιχίζεται σε ένα κελί το οποίο µετά την επίλυση θα πάρει ως τιµή τη βέλτιστη τιµή της (αν υπάρχει). Τα δεξιά µέλη των περιορισµών τοποθετούνται σε κελιά. Τα αριστερά µέλη περιορισµών αλλά και η αντικειµενική συνάρτηση προκύπτουν ως πράξεις κελιών. 3. Οι Eντολές SUMPRODUCT και SUM Οι εξισώσεις των προτύπων γραµµικού προγραµµατισµού αποτελούν αθροίσµατα γινοµένων συντελεστών και µεταβλητών. Η εντολή SUMPRODUCT έχει τη δυνατότητα να αθροίζει γινόµενα κελιών. Λόγου χάρη, έστω τα κελιά A1, A2, A3 και τα κελιά Β1, Β2, Β3 τα οποία περιέχουν αριθµητικές τιµές. Η εντολή =SUMPRODUCT(A1:A3;B1:B3) θα αποδόσει το αποτέλεσµα της πράξης Α1 x B1 + A2 x B2 + A3 x B3 (των αριθµητικών τιµών των κελιών). Η εντολή αυτή είναι πολύ χρήσιµη. Όσο για την εντολή SUM, αυτή αθροίζει απλά κελιά, για παράδειγµα για τα κελιά Α1,Α2,Α3, η εντολή SUM(A1:A3) θα ήταν το αποτέλεσµα της πράξης Α1+Α2+Α3 (των αριθµητικών τιµών των κελιών). 220
4. Εισαγωγή του Προτύπου σε Φύλλο του MS-Excel Η καλή οργάνωση των δεδοµένων στο φύλλο εργασίας είναι σηµαντική για την εύκολη και παραστατική προβολή και επίλυση του προβλήµατος. Οι δυνατότητες του MS-Excel διευκολύνουν ιδιαίτερα την διαδικασία αυτή. Για το παράδειγµα των κεραµοσκεπών, τα δεδοµένα και η οργάνωσή τους στο φύλλο εργασίας φαίνονται στην Εικόνα Λ.3: Εικόνα Λ.3: Απεικόνιση του προβλήµατος σε φύλλο εργασίας του MS- Excel. Οι µεταβλητές x1, x2, x3 αντιστοιχίζονται στα κελιά D7, E7, F7 ενώ η αντικειµενική συνάρτηση στο κελί Η7. Η τιµή της αντικειµενικής συνάρτησης υπολογίζεται µε τη βοήθεια της συνάρτησης SUM, H13=SUM(D7;E7;F7). Το αριστερό µέλος του περιορισµού διατιθέµενων κονδυλίων αντιστοιχίζεται στο κελί Ε15, όπου Ε15=SUMPRODUCT(D7:F7;D11:F11). Το αριστερό µέλος του περιορισµού Συµφωνίας κουµπάρων» αντιστοιχίζεται στο κελί Ε15, όπου Ε15=SUMPRODUCT(D7:Ε7;D11:Ε11). Το αριστερό µέλος του περιορισµού προσφερόµενων τετραγωνικών µέτρων αντιστοιχίζεται στο κελί D25, όπου D25=SUM(D7;E7;F7). Το αριστερό µέλος του περιορισµού ορίων κατασκευαστή 1 αντιστοιχίζεται στο κελί D26, όπου D26=D11(=x1). Το αριστερό µέλος του περιορισµού ορίων κατασκευαστή 2 αντιστοιχίζεται στο κελί D27, όπου D27=E11(=x2). 221
Το αριστερό µέλος του περιορισµού ορίων κατασκευαστή 1 αντιστοιχίζεται στο κελί D28, όπου D28=D11(=x3). 5. Παρατηρήσεις Οι ονοµασίες των διαφόρων στοιχείων δεν επηρεάζουν τα δεδοµένα επίλυσης αλλά το πώς έχουν τοποθετηθεί στο φύλλο εργασίας σε σχέση µε τα στοιχεία που αντιπροσωπεύουν, επηρεάζει τις ονοµασίες που περιέχονται στις εξαγόµενες αναφορές. Ένας βασικός κανόνας είναι να υπάρχει µόνο ένα όνοµα στη σειρά ή στη στήλη (σε µία όµως από τις δύο) όπου υπάρχει κελί που αντιστοιχεί σε περιορισµό (εκτός και αν το όνοµα αφορά περισσότερα στοιχεία). Παρόλα αυτά, δοκιµές του προγράµµατος θα παρείχαν το καλύτερο αποτέλεσµα. Αντί για την εντολή SUM θα µπορούσε να χρησιµοποιηθεί η έκφραση H13=D7+E7+F7. Ανάλογα θα µπορούσε να αντικατασταθεί και η εντολή SUMPRODUCT από αντίστοιχη έκφραση. Οι εκφράσεις για τα αριστερά µέλη των περιορισµών του κατασκευαστή θα µπορούσαν να έχουν παραληφθεί (οπότε το αριστερό µέλος για τον κατασκευαστή 1 θα ήταν το κελί D11, µέλος για τον κατασκευαστή 2 θα ήταν το E11 και για τον κατασκευαστή 3 θα ήταν το F11. Από το µενού Tools καλείται ο Solver (Εικόνα Λ.1) και εµφανίζεται το παράθυρο διαλόγου αυτού: Εικόνα Λ.4: Παράθυρο διαλόγου Solver. Στο παράθυρο διαλόγου εισάγονται τρεις οµάδες στοιχείων: 222
(α) Η αντικειµενική συνάρτηση (την οποία αντιπροσωπεύει το κελί στόχος Τarget cell) Στην Εικόνα Ε-5, φαίνεται αναλυτικά η περιοχή του παραθύρου όπου εισάγονται τα δεδοµένα της αντικειµενικής συνάρτησης: Θέση Εισαγωγής κελιόυ Αντικειµενικής Συνάρτησης Εικονίδιο απ ευθείας επιλογής κελιών από το φύλλο εργασίας Επιλογή προβλήµατος µεγιστοποίησης (MAX), Ελαχιστοποίησης (MIN), ή ισότητας για το προτύπου Γ.Π. Εικόνα Λ.5: Περιοχή παραθύρου διαλόγου που αφορά την αντικειµενική συνάρτηση. Στην θέση «Target Cell» εισάγεται το κελί στο οποίο αντιστοιχεί η αντικειµενική συνάρτηση, δηλαδή το Η13, είτε πληκτρολογώντας Η13, είτε απευθείας από το φύλλο εργασίας αφού ο χρήστης πιέσει το ανάλογο εικονίδιο δίπλα στην θέση εισαγωγής. Στη συνέχεια, ανάλογα µε το προτύπου, επιλέγεται αν το πρόβληµα αφορά «µεγιστοποίηση» (Max), «ελαχιστοποίηση» (Min) ή αν η αντικειµενική συνάρτηση ισούται µε κάποια τιµή (Value of). Στην τελευταία περίπτωση, η τιµή αυτή µπορεί να καθοριστεί στην αντίστοιχη θέση εισαγωγής της τιµής δίπλα στην επιλογή «Value of». (β) Οι µεταβλητές (τις οποίες αντιπροσωπεύουν τα κελιά που ορίσαµε changing cells) Στην Εικόνα Λ.6, φαίνεται η περιοχή του παραθύρου όπου εισάγονται οι µεταβλητές: Εικονίδιο απ ευθείας επιλογής κελιών από το φύλλο εργασίας Εικόνα Λ.6: Περιοχή παραθύρου διαλόγου που αφορά τις µεταβλητές του προτύπου. Τα κελιά που αντιπροσωπεύουν τις µεταβλητές µπορούν να εισαχθούν µέσω πληκτρολογίου είτε απευθείας από το φύλλο εργασίας αφού πιεστεί το ανάλογο εικονίδιο δίπλα στην θέση εισαγωγής. Αφού τα κελιά των µεταβλητών είναι 223
συνεχόµενα στην ίδια περιοχή του φύλλου εργασίας, µπορούν να εισαχθούν οµαδικά (δηλαδή D7:F7). Αλλιώς θα πρέπει να εισαχθούν ξεχωριστά το καθένα παρεµβάλλοντας ερωτηµατικά (λόγου χάρη αν αντί των κελιών D7:F7 ήταν τα κελιά D7, E8, F9, θα εισάγονταν ως D7;E8;F9) ή θα επιλέγονταν από το φύλλο εργασίας µε το ποντίκι κρατώντας πατηµένο το πλήκτρο Ctrl. Επίσης, υπάρχει η δυνατότητα να επιλέξει το πρόγραµµα αυτόµατα τα κελιά που αντιστοιχούν στις µεταβλητές από το κελί στόχο (αντικειµενική συνάρτηση), µε τη βοήθεια του κουµπιού Guess δίπλα στην θέση εισαγωγής των κελιών που αντιστοιχούν στις µεταβλητές. Τα κελιά που έχουν επιλεγεί είναι προφανώς αυτά από τα οποία υπολογίζεται η τιµή του κελιού στόχου της αντικειµενικής συνάρτησης. (γ) Οι περιορισµοί (constraints, οι οποίοι αντιπροσωπεύονται από κελιά τα οποία περιέχουν τις εκφράσεις των αριστερών µελών των περιορισµών και τις αριθµητικές τιµές των δεξιών µελών αυτών). Στην Εικόνα Λ.7 φαίνεται το τµήµα του παραθύρου διαλόγου όπου εισάγονται οι περιορισµοί: Πλήκτρο Προσθήκης Περιορισµού Πλήκτρο Τροποποίησης Περιορισµού Πλήκτρο ιαγραφής Περιορισµού Εικόνα Λ.7: Περιοχή παραθύρου διαλόγου που αφορά τους περιορισµούς του προτύπου. Για να προσθέσει ο χρήστης έναν περιορισµό, πρέπει να πιέσει το πλήκτρο Add. Ένα νέο παράθυρο εµφανίζεται (Εικόνα Λ.8): Εικόνα Λ.8: Παράθυρο διαλόγου για την εισαγωγή των περιορισµών. Στο παράθυρο διαλόγου αυτό διακρίνονται τρεις θέσεις: Στην θέση Cell Reference εισάγουµε το κελί στο οποίο έχουµε τοποθετήσει το αριστερό µέλος του περιορισµού. 224
Στο ενδιάµεσο κυλιόµενο µενού εισάγουµε το σύµβολο που καθορίζει το περιορισµό (Εικόνα Λ.9). Εικόνα Λ.9: Κυλιόµενο µενού εισαγωγής συµβόλου περιορισµού. Πέρα από τα συνήθη σύµβολα ανισότητας και ισότητας, ο χρήστης µπορεί µε την επιλογή int ή bin να καθορίσει ως περιορισµό ότι µια µεταβλητή είναι ακέραια (int) ή λαµβάνει µόνο τις τιµές 0 ή 1 (bin), αν στην θέση Cell Reference επιλέξει το κελί στο οποίο αντιστοιχεί η µεταβλητή αυτή. Στην θέση Constraint εισάγεται το κελί όπου είναι τοποθετηµένη η τιµή του δεξιού µέλους του περιορισµού. Η πλήρης εισαγωγή ενός περιορισµού για το «Πρόβληµα Κεραµοσκεπών» φαίνεται στην Εικόνα Λ.10: Εικόνα Λ.10: Εισαγωγή περιορισµού. Με τη βοήθεια του πλήκτρου Add ο χρήστης µπορεί να εισάγει και άλλους περιορισµούς, ενώ όταν ολοκληρώσει την εισαγωγή των περιορισµών, πιέζοντας το πλήκτρο ΟΚ, επιστρέφει στο προηγούµενο παράθυρο διαλόγου όπου θα φαίνονται οι παράµετροι που έχουν εισαχθεί (Εικόνα Λ.11): 225
Μπάρα επιλογής Εικόνα Λ.11: Περιοχή παραθύρου διαλόγου περιορισµών του προτύπου όταν αυτοί έχουν εισαχθεί. Με απλό κλικ πάνω σε έναν περιορισµό, αυτός σηµειώνεται µε έγχρωµη µπάρα επιλογής. Ο χρήστης µπορεί να τροποποιήσει (από το παράθυρο διαλόγου της εικόνας Λ.8) ή να διαγράψει τον σηµειωµένο περιορισµό (πλήκτρα Change και Delete αντίστοιχα). 6. Επίλυση του Προτύπου Αφού ο χρήστης έχει εισάγει το προτύπου, µπορεί να προχωρήσει στην επίλυσή του αφού µεταβάλλει κατάλληλα τις παραµέτρους (Options) επίλυσης. Πιέζοντας το πλήκτρο Options του κεντρικού παραθύρου διαλόγου, εµφανίζεται νέο παράθυρο διαλόγου (Εικόνα Λ.12): Εικόνα Λ.12: Παράθυρο διαλόγου παραµέτρων. Από τις επιλογές του παραθύρου διαλόγου της Εικόνας Λ.12, ορισµένες αφορούν επίλυση µη γραµµικών προβληµάτων βελτιστοποίησης, οπότε και δεν θα αναλυθούν. Οι επιλογές είναι οι παρακάτω: 226
Μax Time: ίνεται στον χρήστη η δυνατότητα εισαγωγής του µέγιστου χρόνου που θα αφιερώσει το πρόγραµµα για την επίλυση του προτύπου. Iterations: ίνεται στον χρήστη η δυνατότητα εισαγωγής του µέγιστου αριθµού επαναλήψεων που θα αφιερώσει το πρόγραµµα για την επίλυση του προτύπου. Tolerance: Ο χρήστης µπορεί να επιλέξει το µέγιστο ποσοστό ανεκτού σφάλµατος στα αποτελέσµατα που θα λάβει (αφού για την επίλυση χρησιµοποιούνται προσεγγιστικοί αλγόριθµοι). Assume linear: Πρέπει να επιλεγεί (τικ στο τετραγωνίδιο) αφού επιλύονται πρότυπα γραµµικού προγραµµατισµού. Assume non-negative: Πρέπει να επιλεγεί αν δεν έχει εισαχθεί ως περιορισµός στο φύλλο εργασίας. Use Automatic Scaling: Αν επιλεγεί µετατρέπει, αυτόµατα κατά την επίλυση, τους συντελεστές των περιορισµών ώστε τυχόν µεγάλες ή µικρές τιµές να µετατραπούν χωρίς να αλλάξουν οι αναλογίες των εξισώσεων των περιορισµών (πολύ µεγάλες ή µικρές τιµές συντελεστών µπορεί να δηµιουργήσουν προβλήµατα στην επίλυση). Show Iteration Results: Παρουσιάζει τους ενδιάµεσους υπολογισµούς (tableau Simplex) µέχρι την εξεύρεση της βέλτιστης λύσης. Convergence: εν αφορά πρότυπα γραµµικού προγραµµατισµού. Estimates: εν αφορά πρότυπα γραµµικού προγραµµατισµού. Derivatives: εν αφορά πρότυπα γραµµικού προγραµµατισµού. Search: εν αφορά πρότυπα γραµµικού προγραµµατισµού. Αφού τροποποιηθούν κατάλληλα οι παράµετροι, ο χρήστης επιστρέφει στο κύριο παράθυρο διαλόγου του Solver. Πιέζοντας το πλήκτρο Solve, γίνεται έναρξη της επίλυσης. Όταν βρεθεί η άριστη λύση (εφόσον υπάρχει), εµφανίζεται πλαίσιο διαλόγου που ενηµερώνει για τα αποτελέσµατα της επίλυσης και ζητά από τον χρήστη να εισάγει το είδος των αναφορών αποτελεσµάτων που θα δηµιουργήσει σε νέα φύλλα ο Solver (Εικόνα Λ.13). Στο φύλλο εργασίας που είχε εισαχθεί αρχικά το πρόβληµα, το κελί-στόχος και τα κελιά των µεταβλητών αποκτούν τις βέλτιστες τιµές (Εικόνα Λ.14): Μήνυµα αποτελεσµάτων Εικόνα Λ.13: Παράθυρο διαλόγου ολοκλήρωσης εργασίας Solver. 227
Το µήνυµα των αποτελεσµάτων Solver found a solution. All constraints and optimality conditions are satisfied υποδεικνύει ότι βρέθηκε βέλτιστη λύση στο πρόβληµα γραµµικού προγραµµατισµού. Εικόνα Λ.14: Το φύλλο εργασίας µε τις βέλτιστες τιµές του προτύπου. Ο χρήστης έχει τη δυνατότητα να διατηρήσει τις νέες τιµές στο φύλλο εργασίας επιλέγοντας Keep Solver Solution ή να τις απορρίψει επιλέγοντας Restore Original Values. Παράλληλα από το πλαίσιο Reports στο δεξιό τµήµα του παραθύρου διαλόγου, ο χρήστης µπορεί να επιλέξει τις αναφορές που θα αποδόσει ο Solver, σε νέα φύλλα εργασίας. Οι επιλεγόµενες αναφορές «φωτίζονται» µε έγχρωµη µπάρα (Εικόνα Λ.15). Έγχρωµη µπάρα επιλογής Εικόνα Λ.15: Πλαίσιο επιλογής είδους αναφοράς που θα εκδόσει το Solver. Ο χρήστης έχει τη δυνατότητα να αποθηκεύσει ως σενάριο τις τιµές µεταβαλλόµενων κελιών και κελιού στόχου ως σενάριο, µε την επιλογή Save Scenario. Εµφανίζεται πλαίσιο διαλόγου στο οποίο εισάγεται το όνοµα του σεναρίου (Εικόνα Λ.16) και πιέζοντας OK αποθηκεύεται. 228
Εικόνα Λ.16: Παράθυρο εισαγωγής ονόµατος σεναρίου προς αποθήκευση. Πιέζοντας ΟΚ στο παράθυρο διαλόγου ολοκλήρωσης εργασίας Solver, δηµιουργούνται οι τυχόν επιλεγµένες αναφορές. 6.1. Αναφορές Επίλυσης Ο Solver έχει τη δυνατότητα να αποδόσει τρία είδη αναφορών σε νέα φύλλα εργασίας του Microsoft Excel. Γενικά, η αναφορά περιέχει το κελί στο οποίο αντιστοιχεί κάθε στοιχείο, την ονοµασία του όπως περιγράφεται στο φύλλο εργασίας και διάφορα άλλα στοιχεία: (α) Αναφορά αποτελεσµάτων Answer Report (Εικόνα Λ.17) Περιέχει στοιχεία για τη βέλτιστη τιµή της αντικειµενικής συνάρτησης, των µεταβαλλόµενων κελιών και των περιορισµών. Στην Εικόνα Λ.16 φαίνονται τα στοιχεία που περιέχονται στην αναφορά: 229
Εικόνα Λ.17: Αναφορά αποτελεσµάτων. Η αναφορά χωρίζεται σε τρία µέρη: Target Cell ( ): Αφορά την αντικειµενική συνάρτηση, περιέχει το κελί στο οποίο αντιστοιχίστηκε (Cell), το όνοµά της (Name), την αρχική τιµή του κελιού (Original value συνήθως 0) και τη βέλτιστη τιµή (Final value) της. H λέξη στις παρενθέσεις δίπλα στον τίτλο αναφέρει αν το πρόβληµα είναι µεγιστοποίησης (max) κ.λ.π. Adjustable Cells: Αφορά τις µεταβλητές, περιέχει τα κελιά στα οποία αντιστοιχίστηκαν (Cell), τα ονόµατά τους (Name), την αρχική τιµή τους (Original value συνήθως 0) και τη βέλτιστη τιµή (Final value) τους. Constraints: Αφορά τους περιορισµούς, το κελί στο οποίο αντιστοιχεί το αριστερό µέλος τους (Cell), το όνοµα του περιορισµού (Name), την τιµή του δεξιού µέλους (Cell Value), το είδος της εξίσωσης (Formula), την επίδραση της εξίσωσης στο προτύπου (Status) η οποία µπορεί να είναι ή όχι δεσµευτική για το αποτέλεσµα (Binding- Not Binding) και την τιµή της περιθώριας µεταβλητής (Slack). 230
Λόγου χάρη, στο παράδειγµα των κεραµοσκεπών, η βέλτιστη τιµή της αντικειµενικής συνάρτησης είναι 1500 τ.µ., που αντιστοιχεί σε 300 τ.µ. για τον πρώτο κατασκευαστή, 500 τ.µ. για τον δεύτερο κατασκευαστή και 700 τ.µ. για τον τρίτο. Από τους περιορισµούς, κρίσιµος είναι ο περιορισµός τ.µ. και ο περιορισµός ορίων για τον πρώτο και τον τρίτο κατασκευαστή. ΣΗΜΕΙΩΣΗ Το συγκεκριµένο πρόβληµα εµπίπτει στην κατηγορία αυτών µε πολλαπλές λύσεις (alternative solutions). Για τον λόγο αυτόν, αλλαγή στις παραµέτρους του Solver ή χρήση άλλου προγράµµατος, όπως η LINDO, µπορεί να προκαλέσει αλλαγή στις τιµές των µεταβλητών της βάσης (π.χ. η LINDO δίνει x 1 =300, x 2 =600, x 3 =600). Κάτι τέτοιο φαίνεται από το γεγονός ότι στο tableau SIMPLEX του προβλήµατος, η γραµµή της αντικειµενικής συνάρτησης (row 0), έχει µηδενικό συντελεστή που αντιστοιχεί στις βασικές µεταβλητές του προβλήµατος. (β) Αναφορά ανάλυσης ευαισθησίας Sensitivity Analysis Report (Εικόνα Λ.18) Περιέχει στοιχεία ανάλυσης ευαισθησίας του προτύπου. Στην Εικόνα Λ.18 φαίνονται τα στοιχεία που περιέχονται στην αναφορά: Εικόνα Λ.18: Αναφορά ανάλυσης ευαισθησίας. 231
Η αναφορά χωρίζεται σε δύο µέρη: Adjustable Cells: Αφορά τις µεταβλητές, περιέχει τα κελιά στα οποία αντιστοιχίστηκαν (Cell), τα ονόµατά τους (Name), τη βέλτιστη τιµή (Final value) τους, το ευκαιριακό κόστος κάθε µεταβλητής (Reduced cost), τον συντελεστή τους στην αντικειµενική συνάρτηση (Objective Coefficient), την επιτρεπτή αύξηση του συντελεστή χωρίς να αλλάξει η βέλτιστη βάση (Allowable Increase) όπως και την επιτρεπτή µείωση του συντελεστή χωρίς να αλλάξει η βέλτιστη βάση (Allowable decrease). Constraints: Αφορά τους περιορισµούς, το κελί στο οποίο αντιστοιχεί το αριστερό µέλος τους (Cell), το όνοµα του περιορισµού (Name), την τιµή του αριστερού µέλους για την βέλτιστη βάση (Final Value), την δυαδική τιµή κάθε περιορισµού (Shadow Price), την τιµή του δεξιού µέλους του περιορισµού (Constraint R.H. Side), την επιτρεπτή αύξηση του δεξιού µέλους κάθε περιορισµού χωρίς να αλλάξει η βέλτιστη βάση (Allowable Increase) όπως και την επιτρεπτή µείωση του δεξιού µέλους κάθε περιορισµού χωρίς να αλλάξει η βέλτιστη βάση (Allowable decrease). Λόγου χάρη, το κονδύλι µπορεί να µειωθεί κατά 24.800 ΕΥΡΩ, τα προσφερόµενα τ.µ. µπορούν να µειωθούν κατά 168.3 τ.µ. ή να αυξηθούν κατά 100 τ.µ. χωρίς να αλλάξει η βάση. Αντίστοιχα µπορούν να βγουν συµπεράσµατα για κάθε περιορισµό. (γ) Αναφορά ορίων - Limits Report (Εικόνα Λ.19) Περιέχει στοιχεία για τη δυνατή µεταβολή (αύξηση ή µείωση) των τιµών των µεταβλητών, χωρίς να παραβιαστούν οι περιορισµοί του προβλήµατος: Εικόνα Λ.19: Αναφορά ορίων. 232
Η αναφορά χωρίζεται σε δύο µέρη: Το πρώτο µέρος αφορά την αντικειµενική συνάρτηση, περιέχει το κελί στο οποίο αντιστοιχίστηκε (Cell), το όνοµά της (Name) και τη βέλτιστη τιµή (Final value) της. Το δεύτερο µέρος αφορά τις µεταβλητές, περιέχει τα κελιά στα οποία αντιστοιχίστηκαν (Cell), τα ονόµατά τους (Name), τη βέλτιστη τιµή (Final value) τους, τα ανώτερα και κατώτερα όρια ανάµεσα στα οποία µπορούν να κινηθούν (Upper Limit - Lower limit ) καθώς και την τιµή της αντικειµενικής συνάρτησης για τις µεταβολές αυτές (Target Result). Στο παράθυρο διαλόγου της Εικόνας Λ.13, πέρα από το µήνυµα της βέλτιστης λύσης, το µήνυµα αποτελεσµάτων θα είναι κάποιο από τα ακόλουθα: Solver could not find a feasible solution : To προτύπου δεν έχει εφικτή λύση. The maximum iteration limit was reached; continue anyway?: O Solver ολοκλήρωσε τον αριθµό επαναλήψεων που είχε καθοριστεί στις παραµέτρους χωρίς να βρεθεί βέλτιστη λύση. Ο χρήστης µπορεί να διακόψει την επίλυση ή να επιτρέψει την επίλυση του προτύπου επ αόριστο, µέχρι να βρεθεί βέλτιστη λύση, εφόσον βρεθεί. The maximum time limit was reached; continue anyway?: O Solver ολοκλήρωσε το χρονικό διάστηµα που είχε καθοριστεί στις παραµέτρους χωρίς να βρεθεί βέλτιστη λύση. Ο χρήστης µπορεί να διακόψει την επίλυση ή να επιτρέψει την επίλυση του προτύπου επ αόριστο, µέχρι να βρεθεί βέλτιστη λύση, εφόσον βρεθεί. 7. Συµπεράσµατα Ο Solver του MS-Excel είναι ένα δυνατό εργαλείο για την επίλυση προβληµάτων γραµµικού (και µη) προγραµµατισµού, µε πλήρεις αναφορές αποτελεσµάτων και ανάλυσης ευαισθησίας. Παράλληλα έχει τα πλεονεκτήµατα του ότι είναι µέρος ενός ιδιαίτερα δηµοφιλούς προγράµµατος του οποίου ακολουθεί τη φιλοσοφία ενώ είναι αυξηµένες οι δυνατότητες παραστατικής απεικόνισης του προβλήµατος. Βιβλιογραφικές Αναφορές Microsoft, MS-Excel 2000 On-line Help Manual, U.S.A., 2000. Βασιλείου Π.-Χ.Γ., Τσακλίδη Γ., Τσάντα Ν., Ασκήσεις στην Επιχειρησιακή Έρευνα (τόµος 1 Γραµµικός Προγραµµατισµός), Εκδόσεις ΖΗΤΗ, Θεσσαλονίκη, Ελλάδα, 1998. 233