Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Εισαγωγή στο Γραμμικό Προγραμματισμό Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 15/10/2016 1
Παραδείγματα Που στοχεύει ο Γραμμικός Προγραμματισμός; O Γραμμικός Προγραμματισμός (Linear Programming) στοχεύει στην αποδοτική διαχείριση των διαθέσιμων πόρων έτσι ώστε να επιτευχθεί το πλέον θετικό αποτέλεσμα για την επιχείρηση ή τον οργανισμό Αυτό μπορεί να σημαίνει αύξηση κέρδους, μείωση κόστους, βελτίωση ποιότητας προϊόντων και υπηρεσιών κ.λπ. Καθορισμός ποσοτήτων παραγωγής προϊόντων μιας βιομηχανίας επιζητείται το μέγιστο κέρδος Καθορισμός προγράμματος διανομής προϊόντων σε πελάτες με χρήση των μεταφορικών μέσων της επιχείρησης στόχος μπορεί να είναι η ελαχιστοποίηση του κόστους μεταφοράς Κατανομή διαφημιστικής δαπάνης σε διάφορα μέσα (τηλεόραση, ραδιόφωνο, περιοδικά, internet κ.α.) επιζητείται η μέγιστη απόδοση της διαφήμισης Κατανομή κεφαλαίου σε εναλλακτικές επενδύσεις στόχοι μπορεί να είναι το μέγιστο κέρδος ή η ελαχιστοποίηση του επενδυτικού ρίσκου 2
Παράδειγμα 1: ένα πρόβλημα παραγωγής Η βιοτεχνία ΕΠΙΠΛΟΞΥΛ παράγει τραπέζια και καρέκλες. Τόσο τα τραπέζια όσο και οι καρέκλες απαιτούν εργασία στα τρία τμήματα της επιχείρησης: το ξυλουργείο, το βαφείο και το στιλβωτήριο. Ειδικότερα, η κατασκευή ενός τραπεζιού απαιτεί 8 ώρες στο ξυλουργείο, 4 ώρες στο βαφείο και 4 ώρες στο στιλβωτήριο. Αντίστοιχα η κατασκευή κάθε καρέκλας απαιτεί 8 στο ξυλουργείο, 2 στο βαφείο και 3 στο στιλβωτήριο. Οι διαθέσιμες ώρες εργασίας για την επόμενη περίοδο παραγωγής είναι 960 στο ξυλουργείο, 400 στο βαφείο και 420 στο στιλβωτήριο. Το κέρδος της επιχείρησης από την πώληση κάθε τραπεζιού είναι 140 ευρώ ενώ για κάθε καρέκλα το κέρδος είναι 100 ευρώ. Ποια θα πρέπει να είναι η παραγωγή σε τραπέζια και καρέκλες για την επόμενη περίοδο; 3
Βήματα κατάστρωσης μοντέλου Γραμμικού Προγραμματισμού Προσδιορισμός μεταβλητών απόφασης Προσδιορισμός αντικειμενικής συνάρτησης Προσδιορισμός περιορισμών 4
Οι μεταβλητές απόφασης Οι μεταβλητές απόφασης είναι μεγέθη που ο λήπτης αποφάσεων είναι σε θέση να προσδιορίσει Πρακτικοί κανόνες για τον εντοπισμό των μεταβλητών απόφασης: Το αποτέλεσμα μπορεί να υπολογιστεί γνωρίζοντας τις τιμές των μεταβλητών απόφασης Αντιπροσωπεύουν μεγέθη τις τιμές των οποίων μπορεί να προσδιορίσει ο λήπτης αποφάσεων Για το πρόβλημα της ΕΠΙΠΛΟΞΥΛ οι μεταβλητές απόφασης είναι ο αριθμός από τα τραπέζια x1 και ο αριθμός από καρέκλες x2 5
Η αντικειμενική συνάρτηση Η αντικειμενική συνάρτηση είναι η σχέση που συνδέει τις μεταβλητές του προβλήματος με το αποτέλεσμα για το οποίο επιζητούμε τη βελτιστοποίηση για το πρόβλημα της ΕΠΙΠΛΟΞΥΛ η αντικειμενική συνάρτηση είναι 140x1 + 100x2 6
Οι περιορισμοί Οι περιορισμοί αποτυπώνουν τους περιορισμούς πόρων που υπάρχουν στο πρόβλημα Οι περιορισμοί καταγράφονται με την μορφή ανισοτήτων ή ισοτήτων Ένας πρακτικός κανόνας είναι ότι θα πρέπει να μπορούμε να περιγράψουμε λεκτικά τι αντιπροσωπεύει το αριστερό και τι το δεξί μέρος της κάθε ανισότητας Για το πρόβλημα της ΕΠΙΠΛΟΞΥΛ οι περιορισμοί είναι τρεις: Περιορισμός Ξυλουργείου 8x1 + 8x2 960 Περιορισμός Βαφείου 4x1 + 2x2 400 Περιορισμός Στιλβωτηρίου 4x1 + 3x2 420 7
Μαθηματικό μοντέλο προβλήματος παραγωγής x1: αριθμός από τραπέζια που θα παραχθούν x2: αριθμός από καρέκλες που θα παραχθούν Περιορισμός ξυλουργείου Περιορισμός βαφείου Περιορισμός στιλβωτηρίου 8
Ανάλυση ευαισθησίας Ένα σημαντικό πλεονέκτημα του Γραμμικού Προγραμματισμού είναι ότι μπορεί να υποστηρίξει τη διαδικασία λήψης αποφάσεων παρέχοντας επιπλέον πληροφορίες για την οικονομική ανάλυση του προβλήματος (ανάλυση ευαισθησίας) Εφόσον το πρόβλημα έχει λυθεί η ανάλυση ευαισθησίας μπορεί να δώσει απαντήσεις σε ερωτήσεις της μορφής: Πως θα επηρεαστεί η λύση αν μεταβληθεί ο αριθμός των διαθέσιμων ωρών στο ξυλουργείο, στο βαφείο ή στο στιλβωτήριο; 9
Γραμμικές σχέσεις Μια σχέση ανάμεσα σε δύο μεγέθη είναι γραμμική όταν μια αλλαγή σε ένα μέγεθος προκαλεί ανάλογη αλλαγή στο άλλο μέγεθος Για παράδειγμα η σχέση y = 3x + 2 είναι γραμμική καθώς αύξηση 1 μονάδας στο x προκαλεί πάντα αύξηση 3 μονάδων στο y άσχετα με την αρχική τιμή του x Μια γραμμική σχέση όταν απεικονίζεται γραφικά είναι μια ευθεία γραμμή Μια γραμμική σχέση αναπαρίσταται μαθηματικά ως y = mx + b όπου το m ονομάζεται κλίση (slope) και το b σημείο τομής (intercept) κλίση= Δy Δx σημείο τομής 10
Προϋποθέσεις εφαρμογής Γραμμικού Προγραμματισμού Οι προϋποθέσεις που πρέπει να ισχύουν για να διατυπωθεί ένα πρόβλημα Γραμμικού Προγραμματισμού είναι: Γραμμικότητα (αναλογικότητα, προσθετικότητα) Διαιρετότητα Βεβαιότητα 11
Γραμμικότητα (linearity) Όλες οι συναρτήσεις του προβλήματος πρέπει να είναι γραμμικές ως προς τις άγνωστες μεταβλητές Σε κάποιες περιπτώσεις μπορεί να μην ισχύει απόλυτα η προϋπόθεση της γραμμικότητας αλλά οι γραμμικές συναρτήσεις να αποτελούν μια αρκετά καλή προσέγγιση της πραγματικότητας Αναλογικότητα (proportionality): η χρήση των πόρων και το κέρδος είναι ποσά ανάλογα με τις ποσότητες των μεταβλητών Προσθετικότητα (additivity): το κέρδος από τις επιμέρους μεταβλητές πρέπει να είναι ίσο με το άθροισμα των επί μέρους κερδών f(x 1, x 2,, x n ) = f(x 1 ) + f(x 2 ) + + f(x n ) 12
Διαιρετότητα (divisibility) Κάθε μεταβλητή θα πρέπει να είναι συνεχής και κατά συνέπεια άπειρα διαιρετή Άρα οι δραστηριότητες που αναπαρίστανται από τις μεταβλητές θα πρέπει να μπορούν να λαμβάνουν και δεκαδικές τιμές Αν δεν ισχύει η προϋπόθεση της διαιρετότητας τότε: είτε αγνοείται η υπόθεση της διαιρετότητας και οι τιμές στρογγυλοποιούνται στην κοντινότερη ακέραια μονάδα είτε χρησιμοποιούνται τεχνικές ακέραιου προγραμματισμού 13
Βεβαιότητα (deterministic property) Κάθε παράμετρος του προβλήματος θα πρέπει να είναι γνωστή με απόλυτη βεβαιότητα Αν κάποιες από τις παραμέτρους είναι τυχαίες μεταβλητές τότε το πρόβλημα λέγεται ότι είναι πρόβλημα στοχαστικού προγραμματισμού (stochastic programming) και οι μεταβλητές του θεωρούνται ότι ακολουθούν κάποιες κατανομές πιθανοτήτων 14
Παράδειγμα 2: ένα πρόβλημα δίαιτας Μια δίαιτα καθορίζει ότι θα πρέπει να παρέχονται ημερήσια τουλάχιστον 300 θερμίδες, 36 μονάδες βιταμίνης Α και 90 μονάδες βιταμίνης C. Ένα ποτήρι του διαιτητικού ροφήματος Χ παρέχει 60 θερμίδες, 12 μονάδες βιταμίνης Α και 10 μονάδες βιταμίνης C και έχει κόστος 0,12 ευρώ. Ένα ποτήρι του διαιτητικού ροφήματος Y παρέχει 60 θερμίδες, 6 μονάδες βιταμίνης Α και 30 μονάδες βιταμίνης C και έχει κόστος 0,15 ευρώ. Πόσα ποτήρια από το κάθε ρόφημα θα πρέπει να καταναλωθούν έτσι ώστε με τον οικονομικότερο τρόπο να καλυφθούν οι ημερήσιες ανάγκες; 15
Μαθηματικό μοντέλο προβλήματος δίαιτας x: αριθμός από ποτήρια ροφήματος X y: αριθμός από ποτήρια ροφήματος Y Περιορισμός ελάχιστων θερμίδων Περιορισμός βιταμίνης Α Περιορισμός βιταμίνης C 16
Παράδειγμα 3: ένα ακόμα πρόβλημα παραγωγής (πρόβλημα Reddy Mikks) Η επιχείρηση Reddy Mikks κατασκευάζει δύο τύπους βαφής: βαφή για εξωτερικό χώρο και βαφή για εσωτερικό χώρο. Το κέρδος ανά τόνο για τη βαφή εξωτερικού χώρου (ΒΕΞΧ) είναι 5000 ενώ για τη βαφή εσωτερικού χώρου (ΒΕΣΧ) είναι 4000. Για να παραχθεί η κάθε βαφή θα πρέπει να αναμειχθούν οι 2 πρώτες ύλες Μ1 και Μ2 ως εξής: 6 τόνοι του Μ1 και 1 τόνος του Μ2 για την παραγωγή 1 τόνου της ΒΕΞΧ 4 τόνοι του Μ1 και 2 τόνοι του Μ2 για την παραγωγή 1 τόνου της ΒΕΣΧ Η ημερήσια διαθεσιμότητα των πρώτων υλών M1 και M2 περιορίζεται σε 24 και 6 τόνους αντίστοιχα. Η ημερήσια παραγωγή ΒΕΣΧ δεν θα πρέπει να ξεπερνά την παραγωγή ΒΕΞΧ για περισσότερο από 1 τόνο. Η ημερήσια παραγωγή ΒΕΣΧ θα πρέπει να είναι το πολύ 2 τόνοι. Η επιχείρηση θέλει να καθορίσει το πλάνο παραγωγής που θα της δώσει το μέγιστο ημερήσιο κέρδος. 17
Μαθηματικό μοντέλο x1: παραγωγή σε τόνους της βαφής εξωτερικού χώρου ΒΕΞΧ x2: παραγωγή σε τόνους της βαφής εσωτερικού χώρου ΒΕΣΧ 18
Μερικές προσθήκες στο μοντέλο του παραδείγματος 3 Πως θα αλλάξει το μοντέλο εάν προστεθούν οι ακόλουθοι επιπλέον περιορισμοί: 1. Η παραγωγή ΒΕΣΧ θα πρέπει να ξεπερνά τη παραγωγή ΒΕΞΧ τουλάχιστον 1 τόνο 2. Η ημερήσια διαθεσιμότητα της πρώτης ύλης M2 είναι τουλάχιστον 5 τόνοι και το πολύ 8 τόνοι 3. Η παραγωγή ΒΕΣΧ δεν μπορεί να είναι λιγότερη από την παραγωγή ΒΕΞΧ 4. Η συνολική ποσότητα ΒΕΞΧ και ΒΕΣΧ πρέπει να ισούται με 15 τόνους 5. Το ποσοστό της ΒΕΞΧ σε σχέση με τη συνολικά παραγόμενη ποσότητα βαφής δεν θα πρέπει να ξεπερνά το 50% Θα πρέπει να προστεθούν οι περιορισμοί: 1. x2 x1 + 1 x1 x2 1 2. x1 + 2x2 5 και x1 + 2x2 8 3. x2 x1 x1 x2 0 4. x1 + x2 = 15 5. x1 x1 + x2 0.5 0.5x1 0.5x2 0 x1 x2 0 ή απευθείας x1 <= x2 x1 x2 0 19
Παράδειγμα 4: ένα πρόβλημα μεταφοράς Μια επιχείρηση έχει 3 εργοστάσια A,B,C σε δεδομένες θέσεις με παραγωγή για ένα συγκεκριμένο προϊόν 100, 120 και 120 τόνους την ημέρα. Θα πρέπει να τροφοδοτεί κάθε ημέρα 5 αποθήκες D,E,F,G,H με ποσότητες 40,50,70,90 και 90 τόνους αντίστοιχα. Το κόστος μεταφοράς ενός τόνου από ένα εργοστάσιο σε μια αποθήκη δίνεται στο διπλανό πίνακα Ζητείται να προσδιοριστεί ο πλέον οικονομικός τρόπος έτσι ώστε να καλυφθεί η ζήτηση κάθε αποθήκης D E F G H A 4 1 2 6 9 100 B 6 4 3 5 7 120 C 5 2 6 4 8 120 40 50 70 90 90 20
Μαθηματικό μοντέλο του προβλήματος μεταφοράς Μεταβλητές που δείχνουν την ποσότητα που μεταφέρεται από κάθε εργοστάσιο προς κάθε αποθήκη Η ποσότητα που μεταφέρεται από κάθε εργοστάσιο θα πρέπει να είναι ίση με αυτή που παράγεται Ποσότητα που μεταφέρεται από το εργοστάσιο 3 στην αποθήκη 1 Η ποσότητα που μεταφέρεται προς κάθε αποθήκη θα πρέπει να είναι ίση με αυτή που ζητείται από την αποθήκη http://web.tecnico.ulisboa.pt/~mcasquilho/cd_casquilho/tp_prototypeandalike.pdf 21
CPLEX LP format To CPLEX LP format είναι ένας τρόπος περιγραφής ενός προβλήματος γραμμικού προγραμματισμού που προσομοιάζει στον τρόπο με τον οποίο γράφεται ένα μοντέλο γραμμικού προγραμματισμού αλγεβρικά στο χαρτί http://www.rpi.edu/dept/math/mathprogramming/cplex66/sun4x_58/doc/refman/html/appendixe13.html Maximize obj: 5 x1 + 4 x2 Subject To c1: 6 x1 + 4 x2 <= 24 c2: x1 + 2 x2 <= 6 c3: -x1 + x2 <= 1 Bounds x2 <= 2 End 22
GUSEK (GLPK Under Scite Extended Kit) http://gusek.sourceforge.net/gusek.html GUSEK provide an open source LP/MILP IDE for Win32, packing a custom version of the SciTE editor linked to the GLPK standalone solver Περιγραφή του προβλήματος Reddy Mikks σε CPLEX lp format 23
LPSolve IDE The LPSolve IDE is a Windows interface to the lpsolve API. All functionality of lpsolve can be accessed via a graphical application To LPSolve IDE υποστηρίζει πολλά format περιγραφής προβλημάτων γραμμικού και ακέραιου προγραμματισμού όπως το CPLEX lp format, το LPSolve lp format και άλλα (http://lpsolve.sourceforge.net/5.5/lpformat.htm) Περιγραφή του προβλήματος Reddy Mikks σε LPSolve lp format 24
IBM ILOG CPLEX Optimizer Εφόσον έχει εγκατασταθεί το IBM ILOG OPL Studio, από τη γραμμή εντολών μπορούν να δοθούν οι εντολές που φορτώνουν ένα πρόβλημα σε CPLEX lp format, το επιλύουν και εμφανίζουν τα αποτελέσματα 25
IBM ILOG OPL Studio To IBM ILOG OPL Studio είναι ένα επαγγελματικό περιβάλλον ανάπτυξης μοντέλων για προβλήματα βελτιστοποίησης Χρησιμοποιεί τη γλώσσα μοντελοποίησης OPL http://www-03.ibm.com/software/products/en/ibmilogcpleoptistud 26
Java + Apache Commons Math3 http://commons.apache.org/proper/commons-math/ 27