EΘNIKO ΜEΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΙΙ: Ανάλυσης, Σχεδιασμού & Ανάπτυξης Διεργασιών & Συστημάτων Υπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασμού Εργαστηριακές Ασκήσεις Διδάσκων: Α. Κοκόσης Συνεργάτες: Α. Νικολακόπουλος, Θ.Χ. Ξενίδου
Εργαστηριακή Άσκηση 6 ΠΕΡΙΒΑΛΛΟΝ ΑΛΓΕΒΡΙΚΗΣ ΜΑΘΗΜΑΤΙΚΗΣ ΠΡΟΤΥΠΟΠΟΙΗΣΗΣ 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
Ένα παράδειγμα General Algebraic Modelling System (GAMS) 6
Δομή ενός κειμένου του 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 (Προβολή αποτελεσμάτων) 7
Παράδειγμα: Το πρόβλημα του Dantzig trnsport.gms tutorial 8
το πρόβλημα του Dantzig 9
Ορισμός των συνόλων (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/; 10
Άμεση και δυναμική ανάθεση 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/; 11
Ορισμός παραμέτρων Περιγραφή 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/; όνομα Περιγραφή ανάθεση 12 τιμής
Ορισμός μεταβλητών Variable types (είδη μεταβλητών) Free Positive Negative Binary Integer Dantzig problem Variables x(i, j) shipment quantities in cases z total transportation cost in dollars; όνομα περιγραφή 13
Εξισώσεις: δήλωση και ορισμός 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; 14
Δηλώσεις 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; όνομα προτύπου είδος κατεύθυνση αντικειμενική συνάρτηση 15
Τύποι Μοντέλων 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) 16
Διαδικασία Επίλυσης Κώδικας του χρήστη sets Parameters Solve Αρχεία εισόδου ξεχωριστών επιλυτών Επιλύτης - 1 Επιλύτης - 3 Επιλύτης - 2 : Αριθμητικά δεδομένα (Numerical data) (παράγωγοι, αραιότητα πινάκων) και ρύθμιση 17
Βασική λίστα επιλυτών 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) 18
Βασική λίστα επιλυτών (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; 19
το πρόβλημα του Dantzig 20
Κώδικας GAMS για το πρόβλημα του Dantzig (1) 21
Κώδικας GAMS για το πρόβλημα του Dantzig (2) 22
Βιβλιοθήκες μοντέλων Γεωργικής Οικονομίας Εφαρμοσμένα Γενικά Ισοζύγια Μηχανική Οικονομική Ανάπτυξη Χαρακτηριστικά της γλώσσας του GAMS Οικονομικά Ενέργειας Οικονομικά Δασονομία Διεθνές Εμπόριο Διοικητική Επιστήμη και Επιχειρησιακή Έρευνα Μικρο-Οικονομικά Στατιστική 23
Μοντέλα στα Οικονομικά p 174, GAMS: A User s Guide 24
Οικονομία Ενέργειας p 173, GAMS: A User s Guide 25
Διοικητική Επιστήμη p 175, GAMS: A User s Guide 26
Μηχανική p 174, GAMS: A User s Guide p 173, GAMS: A User s Guide 27
Αναφορά και αποτελέσματα Εκτύπωσης εισόδου (Echo prints) Μηνύματα σφαλμάτων (Error messages) Χάρτες αναφοράς (Reference maps) Έλεγχος εξισώσεων (Equation testings) Στατιστικά μοντέλου (Model statistics) Αναφορά κατάστασης (Status report) Αναφοράς λύσης (Solution reports) 28
Αναφορά κατάστασης (Status report) Σύντομη περίληψη επίλυσης με μηνύματα SOLVER STATUS και MODEL STATUS που υποδεικνύουν την ποιότητα των αποτελεσμάτων p 25, GAMS: A User s Guide 29
Μηνύματα σφαλμάτων Παράδειγμα1: Σελ. 21, GAMS: A User s Guide Παράδειγμα 2: Σελ. 22, GAMS: A User s Guide 30
Αναφορά μεταβλητών και σύνοψη Σελ. 26, GAMS: A User s Guide 31
Και κάποιες προχωρημένες επιλογές 32
Δηλώσεις υπό συνθήκη (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) Εφαρμογές Προτυποποίηση εξισώσεων ορισμένες για υποσύνολα (δηλαδή για απασχολούμενους κάτω από συγκεκριμένο διευθυντή, για εργοστάσια σε συγκεκριμένες χώρες, κλπ.) Ανάπτυξη υπο-προβλημάτων μέσα από μεγαλύτερες διατυπώσεις (δυναμικά σύνολα) 33
Χαρακτηριστικά ελέγχου ροής Δήλωση 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 34
ΠΑΡΑΔΕΙΓΜΑ 1 ΒΕΛΤΙΣΤΟΣ ΣΧΕΔΙΑΣΜΟΣ ΕΝΑΛΛΑΚΤΗ 35
Περιγραφή του προβλήματος 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, μοναδιαίο κόστος επιφάνειας εναλλαγής (γ) t w 180 o F : προδιαγραφή (δ) ΔΤ min = 10 o F (ε) b = 1.3 εκθετικός όρος στο κόστος Στόχος: Ποιο είναι το ελάχιστο συνολικό κόστος για τον εναλλάκτη; CA A b + CW w 36
Να διατυπωθεί το μοντέλο μαθηματικού προγραμματισμού του προβλήματος Να υπολογιστούν οι βαθμοί ελευθερίας του μοντέλου Να μεταφραστεί το μοντέλο στην γλώσσα μοντελοποίησης του GAMS Να επιλεχθούν διαφορετικοί αλγόριθμοι επίλυσης και να ερμηνευθούν τυχόν διαφορές στα αποτελέσματά τους 37
Μαθηματικό μοντέλο Μεταβλητές: Q, W, t, A n = 4 Περιορισμοί: w Εξισώσεις: Q 100,000( 350 180) = 0 Q W ( tw 80) = 0 ( 350 tw ) ( 180 80) Q = UA 350 tw ln 180 80 { h} dim = m = 3 Ανισώσεις: t w A 0 Q 0 w o 180 F W 0 t 0 Περιορισμοί ΔΤ min : T T Τ = 10 F H C o IN OUT min T T Τ = 10 F H C o OUT IN min n m = 1 βαθμός ελευθερίας Αντικειμενική συνάρτηση: Ελαχιστοποίηση του: CA A b + CW w 38
Αποτελέσματα και σχολιασμός File Options Solvers CONOPT Κακή επιλογή αρχικής λύσης και αδυναμία σύγκλισης BARON COUENNE Μη κυρτό πρόβλημα 39
ΠΑΡΑΔΕΙΓΜΑ 2 ΕΠΙΛΟΓΗ ΑΝΤΙΔΡΑΣΤΗΡΩΝ 40
Περιγραφή του προβλήματος 41
Να σχεδιαστεί η υπερδομή του προβλήματος Να διατυπωθεί το μοντέλο μαθηματικού προγραμματισμού Να υπολογιστούν οι βαθμοί ελευθερίας του μοντέλου Να μεταφραστεί το μοντέλο στην γλώσσα μοντελοποίησης του GAMS Να επιλεχθούν διαφορετικοί αρχικές λύσεις και αλγόριθμοι επίλυσης και να ερμηνευθούν τυχόν διαφορές στα αποτελέσματά τους 42
Παράδειγμα Επιλογή Αντιδραστήρων - Συνεχής προσέγγιση 43
Μαθηματικό μοντέλο 44
Αποτελέσματα και σχολιασμός SOLVER CONOPT + x2.l = 14.8 ή x2.l = 2; **** SOLVER STATUS 1 Normal Completion **** MODEL STATUS 2 Locally Optimal **** OBJECTIVE VALUE 952.6665 SOLVER COUENNE + x2.l = 14.8 ή x2.l = 2; **** SOLVER STATUS 1 Normal Completion **** MODEL STATUS 2 Locally Optimal **** OBJECTIVE VALUE 875.3276 SOLVER BARON + x2.l = 14.8 ή x2.l = 2; **** SOLVER STATUS 1 Normal Completion **** MODEL STATUS 2 Locally Optimal **** OBJECTIVE VALUE 875.3276 SOLVER KNITRO **** SOLVER STATUS 4 Terminated By Solver **** MODEL STATUS 14 No Solution Returned **** OBJECTIVE VALUE 0.0000 45
Επίλυση του NLP 875,3 46
ΠΑΡΑΔΕΙΓΜΑ 3 ΕΠΙΛΟΓΗ ΑΝΤΙΔΡΑΣΤΗΡΩΝ Με προσέγγιση μικτού ακέραιου προγραμματισμού 47
Περιγραφή του προβλήματος 48
Να διατυπωθεί το μοντέλο μαθηματικού προγραμματισμού Να μεταφραστεί το μοντέλο στην γλώσσα μοντελοποίησης του GAMS Να επιλεχθούν διαφορετικοί αρχικές λύσεις και αλγόριθμοι επίλυσης και να ερμηνευθούν τυχόν διαφορές στα αποτελέσματά τους 49
Μοντέλο και αποτελέσματα y1 y2 Κόστος 0 0 Μη εφικτή λύση 1 0 815 ολικό 0 1 954,55 1 1 870 50
ΠΑΡΑΔΕΙΓΜΑ 4 ΧΗΜΙΚΗ ΙΣΟΡΡΟΠΙΑ 51
Περιγραφή του προβλήματος Καθορισμός της χημικής σύστασης σύνθετου μίγματος σε συνθήκες χημικής ισορροπίας Εφαρμογές Ανάλυση απόδοσης καυσίμων και προωθητικών Σύθεση πολύπλοκων οργανικών συστατικών κ.α. Δεύτερος θερμοδυναμικός νόμος Ένα μίγμα χημικών συστατικών που διατηρείται σε σταθερή πίεση και θερμοκρασία καταλήγει σε κατάσταση χημικής ισορροπίας με ταυτόχρονη ελαχιστοποίηση της ελεύθερης ενέργειας. Αντικειμενική συνάρτηση: έκφραση της ελεύθερης ενέργειας του μίγματος (μη γραμμική) Περιορισμοί: δυνατές χημικές αντιδράσεις μεταξύ των συστατικών (γραμμικοί) 52
Μαθηματικό μοντέλο (1) Σύνολα: Θεωρούμε μίγμα m χημικών στοιχείων που μπορούν να συνδυαστούν μεταξύ τους για να διαμορφώσουν n χημικές ενώσεις (ή συστατικά) Παράμετροι: Πίεση P Τυπική συνάρτηση ελεύθερης ενέργειας (F 0 /RT) j για το συστατικό j (= 1,..., n) a ij αριθμός ατόμων στοιχείου i (= 1,, m) στο συστατικό j (= 1,..., n) b i αριθμός ατομικών βαρών του στοιχείου i στο μίγμα 53
Μαθηματικό μοντέλο (2) Μεταβλητές: x j αριθμός moles συστατικού j (= 1,..., n) στο μίγμα ισορροπίας x ο συνoλικός αριθμός moles στο μίγμα ισορροπίας όπου Gf ελεύθερη ενέργεια Gibbs x n = j = 1 x j Περιορισμοί: Iσοζύγια μάζας n j = 1 ax = b, i= 1,..., m (1) ij j i Θετικές μεταβλητές x 0, j = 1,..., n (2) j 54
Μαθηματικό μοντέλο (3) Αντικειμενική συνάρτηση n x j Gf = xj cj + ln (3) j = 1 x όπου c j 0 F = + RT j ln P (4) Το πρόβλημα μή γραμμικού προγραμματισμού είναι να επιλεχθούν τα x j (= 1,..., n) έτσι ώστε να ελαχιστοποιηθεί η (3) και να ικανοποιούνται η γραμμικοί περιορισμοί (1). 55
Μαθηματικό μοντέλο (4) n x ming = f xj cj + ln j = 1 x st.. n j = 1 c j 0 F = + lnp RT x = n j = 1 j ax = b, i= 1,..., m ij j i x j x 0, j = 1,..., n j j 56
Δεδομένα Αρχικό μίγμα: 1 NH + 1 O 2 2 Θερμοκρασία: 3500 ο Κ Πίεση: 750 psi 2 4 2 Τυπική συνάρτηση ελεύθερης ενέργειας συστατικού j (F 0 /RT) j : j Συστατικό (F 0 /RT) j 1 H -10.021 2 H2-21.096 3 H2O -37.986 4 N -9.846 5 N2-28.653 6 NH -18.918 7 NO -28.032 8 O -14.640 9 O2-30.594 10 OH -26.111 57
Αποτελέσματα SOLVE SUMMARY MODEL mixer OBJECTIVE Gf TYPE NLP DIRECTION MINIMIZE SOLVER BARON FROM LINE 55 **** SOLVER STATUS 1 Normal Completion **** MODEL STATUS 2 Locally Optimal **** OBJECTIVE VALUE -47.7066 Τιμές μεταβλητών ---- VAR x number of mols of component - j - in mixture LOWER LEVEL UPPER MARGINAL H 0.001 0.040 +INF. N 0.001 0.001 +INF. O 0.001 0.018 +INF. H2 0.001 0.146 +INF. H2O 0.001 0.785 +INF. N2 0.001 0.485 +INF. NH 0.001 0.001 +INF 0.371 NO 0.001 0.027 +INF 2.5139E-6 O2 0.001 0.037 +INF. OH 0.001 0.096 +INF 1.7489E-6 58