EΘNIKO ΜEΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΙΙ: Ανάλυσης, Σχεδιασμού & Ανάπτυξης Διεργασιών & Συστημάτων ΣΧΕΔΙΑΣΜΟΣ ΧΗΜΙΚΩΝ ΒΙΟΜΗΧΑΝΙΩΝ ΙΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Εργαστηριακές Ασκήσεις Διδάσκων: Α. Νικολακόπουλος
ΠΕΡΙΒΑΛΛΟΝ ΑΛΓΕΒΡΙΚΗΣ ΜΑΘΗΜΑΤΙΚΗΣ ΠΡΟΤΥΠΟΠΟΙΗΣΗΣ GAMS 2
Σκοπός Εξοικείωση με το περιβάλλον Μαθηματικής προτυποποίησης προβλημάτων βελτιστοποίησης GAMS Επίλυση απλών προβλημάτων Δομή άσκησης Διατύπωση προβλημάτων βελτιστοποίησης στο GAMS Επίλυση Ερμηνεία αποτελεσμάτων 3
Κίνητρο Οι διαδικασίες επίλυσης εδραιώθηκαν την δεκαετία του 50 Αλγόριθμοι και κώδικες Η/Υ Μεγάλα μαθηματικά μοντέλα Ωστόσο, η διαδικασία επίλυσης είναι μόνο ένα (μικρό) μέρος του προβλήματος. Σε πρακτικά προβλήματα οι προκλήσεις περιλαμβάνουν: Ευκολία στην διατύπωση του μοντέλου Συντήρηση και αυτοματισμός Αλληλεπίδραση με μη ειδικούς Ολοκλήρωση με συστήματα διαχείρισης πληροφορίας και άλλες πλατφόρμες 4
Περιβάλλον βελτιστοποίησης: περιγραφή Αποσφαλμάτωση (Debugging) Σφάλματα μεταγλώττισης (compilation) Εκτέλεσης (execution) επίλυσης (solve) errors Χρόνου μεταγλώττισης (compilation time) Χρήστης Διεπιφάνεια εργ. Πρόγραμμα διόρθωσης κειμένου (editor) min κόστος Υπό περιορισμούς... Αναφορά (Reporting) σύνοψη επίλυσης (solution summary) Ανάλυση αποτελεσμάτων (analysis of results) solver report Βιβλιοθήκη προτύπων (Model library) προγραμματισμός διϋλιστηρίου προγραμματισμός PVC Προγραμματισμός εμπορικών δραστηριοτήτων LP επιλύτης (IBM) LP επιλύτης ( ) MILP (CONOPT) MINLP (DICOPT++) επιλύτες 5
Τύποι Μοντέλων LP NLP DNLP MIP RMIP MINLP RMINLP MCP Γραμμικός Προγραμματισμός (Linear programming) Μη Γραμμικός Προγραμματισμός (Nonlinear programming) NLP με ασυνεχείς παραγώγους (discontinuous derivatives) Μικτός Ακέραιος προγραμματισμός (Mixed integer programming) Χαλαρωμένος MIP (Relaxed) Μικτός Ακέραιος Μη Γραμμικός προγραμματισμός (Mixed integer nonlinear programming) Χαλαρωμένος MINLP Μικτού Συμπληρωματικού προβλήματος (Mixed complementary problem) 6
Διαδικασία Επίλυσης Κώδικας του χρήστη sets Parameters Solve Αρχεία εισόδου ξεχωριστών επιλυτών Επιλύτης - 1 Επιλύτης - 3 Επιλύτης - 2 : Αριθμητικά δεδομένα (Numerical data) (παράγωγοι, αραιότητα πινάκων) και ρύθμιση 7
Περιβάλλον μοντελοποίησης και επίλυσης General Algebraic Modelling System (GAMS) 8
Βασική λίστα επιλυτών BDMLP: Ελεύθερος LP και MIP επιλύτης για μικρά και μεσαίου μεγέθους μοντέλα προβλημάτων (World Bank, T. Brooke, A. Drud and A. Meerhaus) CONOPT: LP και NLP επιλύτης. Στάδια προ-επεξεργασίας με πολλές επιλογές και ρυθμίσεις (Abadie and Carpentieers 1969; Drud: 1985 and 1992) CPLEX: Ένας από τους πιο σταθερούς LP και MILP επιλύτες μέρος της συλλογής του ILOG που χρησιμοποιείται σε μεγάλων προβλημάτων logistics επίλυση OSL: Υπορουτίνα της βιβλιοθήκης της IBM. Επιλύτες υψηλής απόδοσης για LP, MIP και QP (τετραγωνικός προγραμματισμός - quadratic programming) 9
Βασική λίστα επιλυτών (2) MINOS: DICOPT: BARON: Επιλογή επιλύτη: Επιλύτης NLP γενικής χρήσης. Καλός για λείες συναρτήσεις. Χρησιμοποιεί μια Langrange μέθοδο προβολής (Murtagh and Saunders 1982) Ο πρώτος εμπορικός επιλύτης MINLP που χρησιμοποιεί την μέθοδο εξωτερικής προσέγγισης των J Viswamathan and I Grossman (1990) and Kaas and Grossman (1987) Ο πιο πρόσφατος επιλύτης MINLP option lp = bdmlp; option milp = conopt; 10
Βιβλιοθήκες μοντέλων Γεωργικής Οικονομίας Εφαρμοσμένα Γενικά Ισοζύγια Μηχανική Οικονομική Ανάπτυξη Χαρακτηριστικά της γλώσσας του GAMS Οικονομικά Ενέργειας Οικονομικά Δασονομία Διεθνές Εμπόριο Διοικητική Επιστήμη και Επιχειρησιακή Έρευνα Μικρο-Οικονομικά Στατιστική 11
Μοντέλα στα Οικονομικά p 174, GAMS: A User s Guide 12
Οικονομία Ενέργειας p 173, GAMS: A User s Guide 13
Διοικητική Επιστήμη p 175, GAMS: A User s Guide 14
Μηχανική p 174, GAMS: A User s Guide p 173, GAMS: A User s Guide 15
Δομή ενός κειμένου του GAMS Sets (Σύνολα) Declaration (Δήλωση) Assignment (Ανάθεση) Data (parameters, tables, scalars) Δεδομένα (παράμετροι, πίνακες, αριθμοί) Declaration (Δήλωση) Assignment of values (Ανάθεση τιμών) Variables (Μεταβλητές) Declaration (Δήλωση) Assignment of type (Ανάθεση είδους) Equations (Εξισώσεις) Declaration (Δήλωση) Definition (Καθορισμός) Model and solve statement (Δήλωση προτύπου και επίλυσης) Display (Προβολή αποτελεσμάτων) 16
ΠΑΡΑΔΕΙΓΜΑ 17
Μη γραμμικό μοντέλο Subject to min 4x 2 1 5 x 2 2 h( x 1, x 2 x ) 1 2x 1 1/ x 2 3x 2 6 0
Επίλυση με Αναδιαμόρφωση περιορισμών Διαφορετική αρχικοποίηση Διαφορετικούς επιλύτες GAMS file: NonLinearExample.gms
Κωδικοποίηση στο GAMS min 4x h( x 1, x 2 x 2 1 5 1 x ) 2x 1 1/ x 2 2 3x 2 2 6 0 Δεν επιλύεται 20
Αναδιαμόρφωση Ισοδύναμη διαμόρφωση Subject to min 4x 2 1 5 x 2 2 h( x 1, x x 1 2 x ) 2 1 2x 1 3x 2 6 0 Παρατηρήστε και ερμηνεύστε τα αποτελέσματα
Αρχικές συνθήκες Δοκιμή διαφορετικών αρχικών τιμών για το x 1 33.0 5.0 0.1 Ποια είναι τα αποτελέσματα σε κάθε περίπτωση
Διαφορετικοί επιλύτες Minos Pathnlp Baron Συγκρίνετε τα αποτελέσματα
ΠΑΡΑΔΕΙΓΜΑ 24
Πρόβλημα ανάμιξης σε διϋλιστήριο Crude oil #1 ($24/bbl) Crude oil #2 ($15/bbl) διϋλιστήριο Gasoline ($36/bbl) Kerosene ($24/bbl) Fuel oil ($31/bbl) Residual ($40/bbl) 25
Κατανομή προϊόντων #1 #2 Max demand (bbl/day) Gasoline 80 44 24,000 Kerosene 5 10 2,000 Fuel oil 10 36 6,000 Residual 5 10 - Cost ($/bbl) 0.5 1.0 Objective: maximise annual profits 26
Μεταβλητές X 3 Gasoline ($36/bbl) X 1 Crude oil #1 ($24/bbl) διϋλιστήριο Kerosene ($24/bbl) X 4 X 2 Crude oil #2 ($15/bbl) Fuel oil ($21/bbl) X 5 Residual ($10/bbl) X 6 27
Διαμόρφωση αντικειμενικής συνάρτησης Profit = Income Raw material Operating cost 36x 3 + 24x 4 + 21x 5 + 10x 6 24x 1 + 15x 2 0.5x 1 + x 2 28
Περιορισμοί Ισοζύγια Gasoline: Kerosene: Fuel oil: Residual: Περιορισμοί αγοράς Gasoline Kerosene Fuel Θετικές μεταβλητές Βαθμοί ελευθερίας: DOF = NV - NE =2 29
Απλοποιημένη διατύπωση μόνο μεταβητές x 1, x 2 max Subject to g 1 : g 2 : g 3 : 0 30
Κωδικοποίηση σε GAMS 31
Άμεση και δυναμική ανάθεση Parameter c(i, j) transport cost in thousands of dollars per case; c(i, j) = f*d (i, j) / 1000; } δήλωση } ανάθεση τιμών Present (j) = future (j+1) * exp (- investment * time(j)); Parameter salaries (employee, manager, department) /anderson. murphy. toy = 6000 handry. smith. toy = 9000 hoffman. morgan. cosmetics = 8000/; 32
Παράδειγμα: Το πρόβλημα του Dantzig trnsport.gms tutorial 33
Γενική διαμόρφωση: Πρόβλημα μεταφοράς a 1 1 x ij 1 b 1 a 2 2 2 b 2 a i i j b j Προμηθευτές Καταναλωτές a i : Διαθέσιμα προμηθευτή i b j : Ζήτηση καταναλωτή j c ij : Κόστος ανά μεταφερόμενη μονάδα μεταξύ προμηθευτή i και καταναλωτή j x ij : Μεταφερόμενη ποσότητα από τον προμηθευτή i στον καταναλωτή j 34
Μαθηματική διατύπωση Min c ij i Subject to x ij a i j for all i x ij b j for all j i Συμπυκνωμένη και γενική διατύπωση j x ij Πρόβλημα γραμμικού προγραμματισμού Γραμμική αντικειμενική συνάρτηση και περιορισμοί Το βέλτιστο βρίσκεται σε ακραίο σημείο της εφικτής περιοχής 35
Ειδική περίπτωση: το πρόβλημα του Danzig a 1 = 350 a 2 = 600 Seattle San Diego 300 275 50 275 New York Chicago Topeka b 1 = 325 b 2 = 300 b 3 = 275 Canning plants Markets Plants Shipping distances (1000 miles) New York Chicago Topeka Seattle 2.5 1.7 1.8 San Diego 2.5 1.8 1.4 Shipping cost c ij = $ 90/1000 miles 36
Ορισμός των συνόλων (sets) Sets i canning plants /seattle, san-diego/ j markets /new-york, chicago, topeka/; όνομα περιγραφή ανάθεση μελών Set t time periods /1991 * 2002/; Set m machines /mach1 * mach1000/; 37
Ορισμός παραμέτρων Περιγραφή Parameters a (i) capacity of plant i in cases /seattle 350 san-diego 600/; όνομα και ανάθεση τιμής Parameters b(j) demand at market j in cases /new-york 325 chicago 300 topeka 275/; Scalar f freight in dollars per case per thousand miles /90/; όνομα Περιγραφή ανάθεση τιμής 38
Ορισμός μεταβλητών Variable types (είδη μεταβλητών) Free Positive Negative Binary Integer Dantzig problem Variables x(i, j) z όνομα shipment quantities in cases total transportation cost in dollars; περιγραφή 39
Εξισώσεις: δήλωση και ορισμός Equations cost define objective function supply (i) observe supply limit at plant I demand (j) satisfy demand at market j; Cost.. Supply (i).. Demand (j).. z = e = sum ((i, j), c(i, j) * x(i, j)); sum (j, x(i, j)) = l = a(i); sum (i, x(i, j)) = g = b(j); Operators (τελεστές): = e =, = l =, = g = Explicit equations (εξειδικευμένες εξισώσεις) Constraint_on_topeka(i).. x(i, topeka ) = g = 10; 40
Δηλώσεις MODEL και SOLVE MODEL syntax MODEL Dantzig my first example /all/; όνομα περιγραφή περιεχόμενο εξισώσεις MODEL Lame_Dantzig my second example /cost, supply/; SOLVE syntax SOLVE Dantzig using LP minimizing z; όνομα μοντέλου είδος κατεύθυνση αντικειμενική συνάρτηση 41
Κώδικας GAMS για το πρόβλημα του Dantzig (1) 42
Κώδικας GAMS για το πρόβλημα του Dantzig (2) 43
Αναφορά και αποτελέσματα Εκτύπωσης εισόδου (Echo prints) Μηνύματα σφαλμάτων (Error messages) Χάρτες αναφοράς (Reference maps) Έλεγχος εξισώσεων (Equation testings) Στατιστικά μοντέλου (Model statistics) Αναφορά κατάστασης (Status report) Αναφοράς λύσης (Solution reports) 44
Αναφορά κατάστασης (Status report) Σύντομη περίληψη επίλυσης με μηνύματα SOLVER STATUS και MODEL STATUS που υποδεικνύουν την ποιότητα των αποτελεσμάτων p 25, GAMS: A User s Guide 45
Μηνύματα σφαλμάτων Παράδειγμα1: Σελ. 21, GAMS: A User s Guide Παράδειγμα 2: Σελ. 22, GAMS: A User s Guide 46
Αναφορά λύσης: εξισώσεις Οι γραμμές και οι στήλες ομαδοποιούνται και ονομάζονται ανάλογα με τα ονάματα που έχουν δοθεί στο μοντέλο p 26, GAMS: A User s Guide 47
Αναφορά μεταβλητών και σύνοψη Σελ. 26, GAMS: A User s Guide 48
Και κάποιες προχωρημένες επιλογές 49
Δηλώσεις υπό συνθήκη (Conditional statements) Εκφρασμένες με σύμβολα Αν (x > 1.5) τότε y = 2 Αν το k ανήκει στα σύνολα S και T τότε u(k) = a(k) Εκφρασμένες σε γλώσσα προτυποποίησης y$ (x > 1.5) = 2 ; u(k) $ (S(k) AND T(k)) = a(k) Εφαρμογές Προτυποποίηση εξισώσεων ορισμένες για υποσύνολα (δηλαδή για απασχολούμενους κάτω από συγκεκριμένο διευθυντή, για εργοστάσια σε συγκεκριμένες χώρες, κλπ.) Ανάπτυξη υπο-προβλημάτων μέσα από μεγαλύτερες διατυπώσεις (δυναμικά σύνολα) 50
Χαρακτηριστικά ελέγχου ροής Δήλωση Loop Χρήση: Σύνταξη Παράδειγμα Ανάπτυξη επαναλαμβανόμενων (ένθετων) λύσεων ενός μοντέλου. Σύνθετη διαμόρφωση loop (χώρος ελέγχου $(συνθήκη), δηλώση{ ; δηλώσεις} ) ; loop (k$ (z.l > target_for_z), solve dantzig using lp minimizing z; a(j) = scenario (k, j) ) ; Ομοίως: While, If-else if-else, For 51
ΠΑΡΑΔΕΙΓΜΑ 1 ΒΕΛΤΙΣΤΟΣ ΣΧΕΔΙΑΣΜΟΣ ΕΝΑΛΛΑΚΤΗ 52
Περιγραφή του προβλήματος W 80 o F C p_c = 1 m = 100,000 lb/hr C p_h = 1 350 o F A Q 180 o F Α: επιφάνεια εναλλάκτη Q: μεταφερόμενη θερμότητα μεταξύ των δυο ρευμάτων Δεδομένα: t w (α) U := συνολικός συντελεστής μεταφοράς θερμότητας (β) C W := 10, μοναδιαία κόστη βοηθητικής παροχής C A := 20 μοναδιαίo κόστος επιφάνειας εναλλαγής (γ) t w 180 o F : προδιαγραφή (δ) ΔΤ min = 10 o F (ε) b = 1.3 εκθετικός όρος στο κόστος Στόχος: Ποιο είναι το ελάχιστο συνολικό κόστος για τον εναλλάκτη; C A A b C W w 53
Να διατυπωθεί το μοντέλο μαθηματικού προγραμματισμού του προβλήματος Να υπολογιστούν οι βαθμοί ελευθερίας του μοντέλου Να μεταφραστεί το μοντέλο στην γλώσσα μοντελοποίησης του GAMS Να επιλεχθούν διαφορετικοί αλγόριθμοι επίλυσης και να ερμηνευθούν τυχόν διαφορές στα αποτελέσματά τους 54
Μαθηματικό μοντέλο Μεταβλητές: Περιορισμοί: Εξισώσεις: Ανισώσεις: h dim m? Περιορισμοί ΔΤ min : n m =? βαθμός ελευθερίας Αντικειμενική συνάρτηση: Ελαχιστοποίηση του: C A A b C W w 55
Παράμετροι και μεταβλητές 56
Εξισώσεις και επίλυση 57
Αποτελέσματα και σχολιασμός File Options Solvers CONOPT Κακή επιλογή αρχικής λύσης και αδυναμία σύγκλισης BARON COUENNE Μη κυρτό πρόβλημα 58