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
Ορισμός των συνόλων (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/; 9
Άμεση και δυναμική ανάθεση 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/; 10
Ορισμός παραμέτρων Περιγραφή 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/; τιμής όνομα Περιγραφή ανάθεση 11
Ορισμός μεταβλητών Variable types (είδη μεταβλητών) Free Positive Negative Binary Integer Dantzig problem Variables x(i, j) shipment quantities in cases z total transportation cost in dollars; όνομα περιγραφή 12
Εξισώσεις: δήλωση και ορισμός 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; 13
Δηλώσεις 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; όνομα προτύπου είδος κατεύθυνση αντικειμενική συνάρτηση 14
Τύποι Μοντέλων 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) 15
Διαδικασία Επίλυσης Κώδικας του χρήστη sets Parameters Solve Αρχεία εισόδου ξεχωριστών επιλυτών Επιλύτης - 1 Επιλύτης - 3 Επιλύτης - 2 : Αριθμητικά δεδομένα (Numerical data) (παράγωγοι, αραιότητα πινάκων) και ρύθμιση 16
Βασική λίστα επιλυτών 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) 17
Βασική λίστα επιλυτών (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; 18
19
Κώδικας GAMS για το πρόβλημα του Dantzig (1) 20
Κώδικας GAMS για το πρόβλημα του Dantzig (2) 21
Βιβλιοθήκες μοντέλων Γεωργικής Οικονομίας Εφαρμοσμένα Γενικά Ισοζύγια Μηχανική Οικονομική Ανάπτυξη Χαρακτηριστικά της γλώσσας του GAMS Οικονομικά Ενέργειας Οικονομικά Δασονομία Διεθνές Εμπόριο Διοικητική Επιστήμη και Επιχειρησιακή Έρευνα Μικρο-Οικονομικά Στατιστική 22
Μοντέλα στα Οικονομικά p 174, GAMS: A User s Guide 23
Οικονομία Ενέργειας p 173, GAMS: A User s Guide 24
Διοικητική Επιστήμη p 175, GAMS: A User s Guide 25
Μηχανική p 174, GAMS: A User s Guide p 173, GAMS: A User s Guide 26
Αναφορά και αποτελέσματα Εκτύπωσης εισόδου (Echo prints) Μηνύματα σφαλμάτων (Error messages) Χάρτες αναφοράς (Reference maps) Έλεγχος εξισώσεων (Equation testings) Στατιστικά μοντέλου (Model statistics) Αναφορά κατάστασης (Status report) Αναφοράς λύσης (Solution reports) 27
Αναφορά κατάστασης (Status report) Σύντομη περίληψη επίλυσης με μηνύματα SOLVER STATUS και MODEL STATUS που υποδεικνύουν την ποιότητα των αποτελεσμάτων p 25, GAMS: A User s Guide 28
Μηνύματα σφαλμάτων Παράδειγμα1: Σελ. 21, GAMS: A User s Guide Παράδειγμα 2: Σελ. 22, GAMS: A User s Guide 29
Αναφορά λύσης: εξισώσεις Οι γραμμές και οι στήλες ομαδοποιούνται και ονομάζονται ανάλογα με τα ονάματα που έχουν δοθεί στο μοντέλο p 26, 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
Working session 2 Material based on Lecture 4
Outline Learn how to: Use different solvers Solve nonlinear optimization problems Select appropriate solver Select appropriate initial conditions
Solvers Preview GAMS solvers in Select options to choose solvers and solve examples Slide 6/Lecture 4 Slide 10/Lecture 4 Slide 24/Lecture 4
Nonlinear formulations and global optimization Let us try now a problem similar to that on Slide 24/Lecture 4 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
Let us try to solve it with Better initialization Reformulating some constraints Using different solvers
Setting initial conditions Try to Initialize x 1 at 33.0 5.0 0.1 Report your optimization results for each case
Reformulation Use an equivalent formulation 2 2 2 1 5 4 min x x Subject to 1 0 6 3 2 ), ( 2 1 2 1 2 1 x x x x x x h Observe and explain changes in the results
Try the following solvers Minos Pathnlp Baron Compare performance and results in each case
ΠΑΡΑΔΕΙΓΜΑ 1 ΒΕΛΤΙΣΤΟΣ ΣΧΕΔΙΑΣΜΟΣ ΕΝΑΛΛΑΚΤΗ 43
Περιγραφή του προβλήματος 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 44
Να διατυπωθεί το μοντέλο μαθηματικού προγραμματισμού του προβλήματος Να υπολογιστούν οι βαθμοί ελευθερίας του μοντέλου Να μεταφραστεί το μοντέλο στην γλώσσα μοντελοποίησης του GAMS Να επιλεχθούν διαφορετικοί αλγόριθμοι επίλυσης και να ερμηνευθούν τυχόν διαφορές στα αποτελέσματά τους 45
Μαθηματικό μοντέλο Μεταβλητές: Q, W, t, A n 4 Περιορισμοί: w Εξισώσεις: Q 100,000 350 180 0 Ανισώσεις: t w A 0 o 180 F Q W tw 80 0 h dim m 3 Q 0 Q UA 350 tw 180 80 350 tw ln 180 80 W 0 t 0 w Περιορισμοί ΔΤ min : T T 10 F H C o IN OUT min T T 10 F H C o OUT IN min n m = 1 βαθμός ελευθερίας Αντικειμενική συνάρτηση: Ελαχιστοποίηση του: C A A b C W w 46
Παράμετροι και μεταβλητές 47
Εξισώσεις και επίλυση 48
Αποτελέσματα και σχολιασμός File Options Solvers CONOPT Κακή επιλογή αρχικής λύσης και αδυναμία σύγκλισης BARON COUENNE Μη κυρτό πρόβλημα 49
ΠΑΡΑΔΕΙΓΜΑ 2 ΕΠΙΛΟΓΗ ΑΝΤΙΔΡΑΣΤΗΡΩΝ 50
Περιγραφή του προβλήματος 51
Να σχεδιαστεί η υπερδομή του προβλήματος Να διατυπωθεί το μοντέλο μαθηματικού προγραμματισμού Να υπολογιστούν οι βαθμοί ελευθερίας του μοντέλου Να μεταφραστεί το μοντέλο στην γλώσσα μοντελοποίησης του GAMS Να επιλεχθούν διαφορετικοί αρχικές λύσεις και αλγόριθμοι επίλυσης και να ερμηνευθούν τυχόν διαφορές στα αποτελέσματά τους 52
Παράδειγμα Επιλογή Αντιδραστήρων - Συνεχής προσέγγιση 53
Μαθηματικό μοντέλο 54
Αποτελέσματα και σχολιασμός 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 55
Επίλυση του NLP 875,3 56
ΠΑΡΑΔΕΙΓΜΑ 3 ΕΠΙΛΟΓΗ ΑΝΤΙΔΡΑΣΤΗΡΩΝ Με προσέγγιση μικτού ακέραιου προγραμματισμού 57
Περιγραφή του προβλήματος 58
Να διατυπωθεί το μοντέλο μαθηματικού προγραμματισμού Να μεταφραστεί το μοντέλο στην γλώσσα μοντελοποίησης του GAMS Να επιλεχθούν διαφορετικοί αρχικές λύσεις και αλγόριθμοι επίλυσης και να ερμηνευθούν τυχόν διαφορές στα αποτελέσματά τους 59
Μοντέλο και αποτελέσματα y1 y2 Κόστος 0 0 Μη εφικτή λύση 1 0 815 ολικό 0 1 954,55 1 1 870 60
ΠΑΡΑΔΕΙΓΜΑ 4 ΧΗΜΙΚΗ ΙΣΟΡΡΟΠΙΑ 61
Περιγραφή του προβλήματος Καθορισμός της χημικής σύστασης σύνθετου μίγματος σε συνθήκες χημικής ισορροπίας Εφαρμογές Ανάλυση απόδοσης καυσίμων και προωθητικών Σύθεση πολύπλοκων οργανικών συστατικών κ.α. Δεύτερος θερμοδυναμικός νόμος Ένα μίγμα χημικών συστατικών που διατηρείται σε σταθερή πίεση και θερμοκρασία καταλήγει σε κατάσταση χημικής ισορροπίας με ταυτόχρονη ελαχιστοποίση της ελεύθερης ενέργειας. Αντικειμενική συνάρτηση: έκφραση της ελεύθερης ενέργειας του μίγματος (μη γραμμική) Περιορισμοί: δυνατές χημικές αντιδράσεις μεταξύ των συστατικών (γραμμικοί) 62
Μαθηματικό μοντέλο (1) Σύνολα: Θεωρούμε μίγμα m χημικών στοιχείων που μπορούν να συνδυαστούν μεταξύ τους για να διαμορφώσουν n χημικές ενώσεις (ή συστατικά) Παράμετροι: Πίεση P Τυπική συνάρτηση ελεύθερης ενέργειας (F 0 /RT) j για το συστατικό j (= 1,..., n) a ij αριθμός ατόμων στοιχείου i (= 1,, m) στο συστατικό j (= 1,..., n) b i αριθμός ατομικών βαρών του στοιχείου i στο μίγμα 63
Μαθηματικό μοντέλο (2) Μεταβλητές: x j αριθμός moles συστατικού j (= 1,..., n) στο μίγμα ισορροπίας x ο συνoλικός αριθμός moles στο μίγμα ισορροπίας όπου Gf ελεύθερη ενέργεια Gibbs x n j 1 x j Περιορισμοί: Iσοζύγια μάζας n j 1 a x b, i 1,..., m (1) ij j i Θετικές μεταβλητές x 0, j 1,..., n (2) j 64
Μαθηματικό μοντέλο (3) Αντικειμενική συνάρτηση n G x c f j j j 1 x j ln (3) x όπου c j F 0 RT j ln P (4) Το πρόβλημα μη γραμμικού προγραμματισμού είναι να επιλεχθούν τα x j (= 1,..., n) έτσι ώστε να ελαχιστοποιηθεί η (3) και να ικανοποιούνται η γραμμικοί περιορισμοί (1). 65
66 Μαθηματικό μοντέλο (4) 1 0 1 1 ln ln, 1,..., 0, 1,..., min.. n j f j j j j j n s j n ij j i j j x x G x c x F c P RT x a s x t b i m x j n
Δεδομένα Αρχικό μίγμα: 1 N H 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 67
Κώδικας GAMS (1) Σύνολα: Παράμετροι: 1 N H 1 O 2 2 2 4 2 c j 0 F RT j lnp 68
Κώδικας GAMS (2) Μεταβλητές: Ορισμός εξισώσεων Αντι. συνάρτηση: Περιορισμοί: Επίλυση: 69
Αποτελέσματα 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 70
ΠΑΡΑΔΕΙΓΜΑ 5 ΔΟΜΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΡΟΟΔΙΑΓΡΑΜΜΑΤΟΣ 71
Περιγραφή συστήματος Ο στόχος είναι η κερδοφόρα παραγωγή του χημικού C που μπορεί να παραχθεί από χημικό Β που μπορεί να αγοραστεί από το εξωτερική αγορά ή να είναι ένα ενδιάμεσο που παράγεται από την πρώτη ύλη A. Υπάρχουν δύο εναλλακτικές διαδρομές της παραγωγής του Β από το Α (P1 και P2). Διαμορφώστε μοντέλο μεικτού ακέραιου μη γραμμικού προγραμματισμού και επιλύστε το πρόβλημα σύνθεσης της διεργασίας και επέκτασης της παραγωγικότητας. Δεδομένα: - Μέγιστη ζήτηση αγοράς σε c: 1 kt/y - Τιμή ανά μονάδα προϊόντος: 11 k /kt - Μετατροπή b σε c στην διεργασία P1: 90% - Σχέση b και a σε διεργασία P2: b = ln(1 + a) - Σχέση b και a σε διεργασία P3: b = 1.2*ln(1 + a) - Πάγιο κόστος διεργασιών P1, P2 και P3: 3.5, 1 και 1.5 αντίστοιχα - Λειτουργικό κόστος διεργασιών P1 και P2: 1 και 1.2 k ανά kt παραγόμενου b το χρόνο αντίστοιχα - Κόστος πρώτων υλών: a: 1.8 k /kt b: 7.0 k /kt 72