A GAMS Tutorial Dr. Michael Georgiadis

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΑΘΗΜΑ 6. SELECTSELECT SELECT * FROM όνομα_πίνακα ; • Με τη εντολή SELECT ανασύρουμε δεδομένα από την βάση δεδομένων. • Το αστεράκι.
Advertisements

Support.ebsco.com Εκπαιδευτικό μάθημα για τη δημιουργία τοπικής συλλογής.
Κεφάλαιο Τμηματικός προγραμματισμός
Τεχνικές Προγραμματισμού με την JavaScript Στυλιάδης Κων/νος Φλώρινα, Οκτώβριος 2004.
Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΑΘΗΜΑ: Mathematical.
Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
Βάσεις Δεδομένων Μάθημα 3.
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 5: Επαναληπτικές και εξωτερικές συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009.
Συνέπεια Τόξου (Arc Consistency)
Γραμμικός Προγραμματισμός
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΣΥΝΑΡΤΗΣΕΙΣ.
Microsoft Excel 4.4 Τύποι και Συναρτήσεις
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
Excel Κεφάλαιο 3.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Ενότητα Α.4. Δομημένος Προγραμματισμός
Μερικές Διαφορικές Εξισώσεις ΙΙ
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Δουλεύει για όλους τους αριθμούς! Η δεύτερη ΓΡΑΨΕ δεν θα εκτελεστεί ποτέ!
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Κεφάλαιο 10 – Υποπρογράμματα
ΟΡΙΣΜΟΣ ΣΥΜΠΕΡΙΦΟΡΑΣ ΔΙΑΓΡΑΜΜΑTA ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ
Κάντε κλικ για έναρξη… Τ Ο ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ Κέντρο εντολών Χώρος γραφικών (σελίδα) Χώρος σύνταξης διαδικασιών.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ-220 Verilog HDL. Τα βασικά.... ΗΥ-220 – Ιάκωβος Μαυροειδής2 Βασική Ροή Σχεδίασης Requirements SimulateRTL Model Gate-level Model Synthesize SimulateTest.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Τεχνολογία ΛογισμικούSlide 1 Εξειδίκευση Βασισμένη σε Μοντέλο u Τυπική εξειδίκευση λογισμικού με ανάπτυξη μαθηματικού μοντέλου για το σύστημα.
Μερικές φορές το αποτέλεσμα εμφανίζεται αμέσως από κάτω.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Πρόβλημα μεταφοράς Μια επιχείρηση διαθέτει δύο εργοστάσια παραγωγής και τρείς αποθήκες. Το κάθε εργοστάσιο έχει μια εβδομαδιαία δυναμικότητα παραγωγής.
Δημιουργοί ΝΑΤΣΙΟΥΛΗΣ ΓΕΩΡΓΙΟΣ ΠΑΠΑΣ ΑΘΑΝΑΣΙΟΣ ΤΟΣΙΟΣ ΧΡΗΣΤΟΣ
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΡΟΧΩΡΗΜΕΝΕΣ ΤΕΧΝΙΚΕΣ
Εφαρμογές Υπολογιστών
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Ενισχυτική διδασκαλία
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Η Γλώσσα Pascal Υποπρογράμματα
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Εντολές και δομές αλγορίθμου
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Β.ΕΠΑΛ-Γενικής Παιδείας  ΜΑΘΗΜΑ: Εισαγωγή στης αρχές Επιστήμης των Η/Υ  ΚΕΦΑΛΑΙΟ 4: Γλώσσες Αναπαράστασης Αλγορίθμων  ΕΝΟΤΗΤΑ 4.2: Δομή Ακολουθίας 
Προβλήματα Μεταφορών (Transportation)
Προβλήματα Μεταφοράς: Παραδείγματα και Εφαρμογές
Δυναμικός Κατακερματισμός
Προβλήματα Εκχώρησης (Assignment Problems)
Μεταγράφημα παρουσίασης:

A GAMS Tutorial Dr. Michael Georgiadis Centre for Process Systems Engineering (CPSE) Department of Chemical Engineering & Chemical Technology

Περίγραμμα Χαρακτηριστικά του GAMS Ενδεικτικό παράδειγμα Αρχείο εισόδου Μεταγλώττιση Αρχείο εξόδου

Εισαγωγή GAMS - General Algebraic Modelling System Αναπτύχθηκε από την World Bank για οικονομολόγους! Κύρια Χαρακτηριστικά: Γλώσσα υψηλού επιπέδου Αναπαράσταση μοντέλων με τρόπο παρόμοιο με αυτό στο χαρτί Η περιγραφή του μοντέλου είναι ανεξάρτητη από τον αλγόριθμο επίλυσης

GAMS Μεταγλώττιση του Μοντέλου Αρχείο Εξόδου με αποτελέσματα filename.lst Αρχείο Εισόδου του Μοντέλου filename.gms Optimization Solver e.g. MINOS CONCOPT CPLEX DICOPT

Παράδειγμα στο GAMS ΠΑΡΑΔΕΙΓΜΑ ΜΕΤΑΦΟΡΩΝ Με δεδομένα: Τη μέγιστη διαθέσιμη ποσότητα προϊόντος από το εργοστάσιο i Τη ζήτηση στην αγορά j Την απόσταση μεταφοράς από το εργοστάσιο i στην αγορά j Το μοναδιαίο κόστος μεταφοράς του προϊόντος από το εργοστάσιο i στην αγορά j Ζητείται: Το ελάχιστο κόστος μεταφοράς των προϊόντων από τα εργοστάσια στις αγορές

Παράδειγμα στο GAMS ΠΑΡΑΔΕΙΓΜΑ ΜΕΤΑΦΟΡΩΝ New York New York 325 275 300 600 350 2.5 kMiles 1.4 kMiles 1.8 kMiles 1.7 kMiles San Diego Topeka Topeka Seattle Chicago

Παράδειγμα στο GAMS ΠΑΡΑΔΕΙΓΜΑ ΜΕΤΑΦΟΡΩΝ Αποστάσεις (σε χιλιάδες μίλια) Μέγιστη Παραγωγή Αγορές (σε κιβώτια) Εργοστάσια New York Chicago Topeka Seattle 2.5 1.7 1.8 350 San Diego 2.5 1.8 1.4 600 Demand 325 300 275 Τα μεταφορικά κόστη είναι $90 ανά κιβώτιο ανά χίλια μίλια

Παράδειγμα Μεταφορών: ΑΛΓΕΒΡΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ Δείκτες (ή σύνολα): i = εργοστάσια j = αγορές Δεδομένα (ή παράμετροι): ai = διαθέσιμη ποσότητα προϊόντος στο εργοστάσιο i (σε κιβώτια) bj = ζήτηση του προϊόντος στην αγορά j (κιβώτια) f = κόστος μεταφοράς ($/κιβώτιο/1000 μίλια) dij = απόσταση μεταξύ εργοστασίου i και αγοράς j (σε χιλιάδες μίλια) cij = f.dij/ 1000, κόστος ανά μονάδα που μεταφέρεται μεταξύ του εργοστασίου i και της αγοράς j ($Κ/ κιβώτιο)

Παράδειγμα Μεταφορών: ΑΛΓΕΒΡΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ Μεταβλητές Απόφασης (Decision Variables): xij = ποσότητα που θα μεταφερθεί από το εργοστάσιο i στην αγορά j (κιβώτια), Όπου xij≥ 0, για κάθε i, j Περιορισμοί (Constraints): Παρατήρησε το όριο προμήθειας στο εργοστάσιο i: ∑j xij ≤ ai , για κάθε i (κιβώτια) Ικανοποίησε τη ζήτηση στην αγορά j: ∑i xij ≥ bj , για κάθε j (κιβώτια) Αντικειμενική Συνάρτηση (Objective Function): Minimize ∑i ∑j cij xij ($K)

GAMS Code

GAMS Code (contd.)

Δομή ενός Μοντέλου GAMS SETS Δήλωση Ορισμός μελών DATA (PARAMETERS, TABLES, SCALARS) VARIABLES Ορισμός τύπου (Προαιρετικά) Ορισμός ορίων και/ή αρχικών τιμών EQUATIONS Ορισμός MODEL και SOLVE statements (Προαιρετικά) DISPLAY statements

Γενικές Παρατηρήσεις Μοναδικός κανόνας για τη σειρά: δεν μπορούμε να αναφερθούμε σε κάτι πριν το ορίσουμε Τερματισμός statements με ερωτηματικό (;) Ο compiler του GAMS δεν είναι case-sensitive Γραμμές που ξεκινούν με * είναι γραμμές σχολίων Τα ονόματα πρέπει να ξεκινούν με γράμμα και να ακολουθούνται από μέχρι 9 γράμματα ή ψηφία Το επεξηγηματικό κείμενο πρέπει να μην ξεπερνάει τη μία γραμμή μην έχει μήκος πάνω από 80 χαρακτήρες μην ξεκινάει με δεσμευμένες λέξεις του GAMS και να μην περιέχει τα σύμβολα =, ;/

Σύνολα Σύνολα στο GAMS ≡ δείκτες σε αλγεβρικά μοντέλα, π.χ. Sets i canning plants / seattle, san-diego / j markets / new-york, chicago, topeka / ; Τα στοιχεία δεν μπορούν να αποτελούνται από πολλές λέξεις. Π.χ. NEW-YORK όχι NEW YORK Μπορούμε εναλλακτικά να ορίσουμε τα σύνολα ως: Set i canning plants / seattle, san-diego /; Set j markets / new-york, chicago, topeka / ; Όταν τα στοιχεία ακολουθούν μία σειρά, χρησιμοποιούμε το αστεράκι: Set T time periods /1991*2000/; Set M machines /MACH1*MACH24/; Αυτό αντιστοιχεί σε T = {1991, 1992, …, 2000} και M = {MACH1, MACH2, …, MACH24} Όταν έχουμε αλληλεπίδραση μεταξύ στοιχείων του ίδιου συνόλου (i και i΄), χρησιμοποιούμε την εντολή alias (i, ii) και ορίζουμε το σύνολο i΄: Π.χ. i = {1,2}; r1 = 6; r2 = 4; τότε bii’ = 7-ri+ri’ ==> b11 = 7, b12 = 5, b21 = 9, b22 = 7 b(i,ii) = 7 – r(i) + r(ii);

Δεδομένα Εισαγωγή με λίστες Εισαγωγή με πίνακες Parameters a(i) capacity of plant i in cases / seattle 350 san-diego 600 / b(j) demand at market j in cases / new-york 325 chicago 300 topeka 275 / ; Εισαγωγή με πίνακες Table d(i,j) distance in thousands of miles new-york chicago topeka seattle 2.5 1.7 1.8 san-diego 2.5 1.8 1.4 ; !!! Προσοχή !!! στο ;

Δεδομένα Εισαγωγή με απευθείας ανάθεση όπου το GAMS υπολογίζει τις τιμές αυτόματα: Parameter c(i,j) transport cost in 1000s of dollars per case ; c(i,j) = f * d(i,j) / 1000 ; Επίσης D(‘seattle’, ‘new-york’) = 2.5; Scalar είναι μία παράμετρος που δεν έχει πεδίο ορισμού: Scalar f freight in dollars per case per thousand miles /90/; Η προκαθορισμένη τιμή για μη ορισμένες παραμέτρους και scalars είναι μηδέν.

Μεταβλητές Τύποι μεταβλητών: Ο προκαθορισμένος τύπος είναι FREE Τύπος Μεταβλητής Επιτρεπτό εύρος τιμών FREE -∞ to +∞ POSITIVE 0 to +∞ NEGATIVE -∞ to 0 BINARY 0 or 1 INTEGER 0, 1, …, 100

Περιορισμοί Οι Περιορισμοί πρέπει να δηλωθούν και να οριστούν ξεχωριστά Η δήλωση γίνεται γράφοντας: Το όνομα της εξίσωσης που ορίζεται Το πεδίο ορισμού της Συνθήκη περιορισμού πεδίου ορισμού (προαιρετικό) Τις δύο τελείες '..‘ Το αριστερό μέρος Τελεστής: =l=, =e=, =g= Το δεξί μέρος

Περιορισμοί

Περιορισμοί Χρήση των operators SUM και PROD: SUM(J, X(J)) είναι ισοδύναμο με SUM(J, X(Ι,J)) είναι ισοδύναμο με PROD(J, X(J)) είναι ισοδύναμο με SUM((I,J), X(I,J)) είναι ισοδύναμο με SUM(I, SUM(J, X(I,J))) Μπορούν να χρησιμοποιηθούν σε απευθείας αναθέσεις PARAMETERS και SCALARS, Π.χ. SCALAR TOTSUPPLY total supply over all plants; TOTSUPPLY = SUM(i, b(i));

Ο Τελεστής Δολάριο ($) Δίνει τη δυνατότητα συνοπτικού χειρισμού εξαιρέσεων Παράδειγμα 1: If y ≥ 1.5, then x = 2, else x = 0 SCALAR X, Y; Y = 2; X = 1; X = 2 $ (Y GE 1.5); Παράδειγμα 2: If y ≥ 1.5, then x = 2, else x = 1 X $ (Y GE 1.5) = 2; Παράδειγμα 3: If xi ≠ 0, then pi = 1/xi, else pi = 0 p(i) = (1/x(i)) $ (x(i) NE 0); Παράδειγμα 4: j = {1,2,3,4}. EQ1.. SUM(j $ (ord(j) GT 1), x(j)) =E= 1; Παράδειγμα 5: If xi ≠ 0, then zi = yi-3 EQ2$(x(i) NE 0).. z(i) =E= y(i)-3;

Model and Solve Statements Με τη λέξη κλειδί MODEL στο GAMS μπορούμε να ορίσουμε μία συλλογή από Equations: MODEL TRANSPORT /ALL/ ή ισοδύναμα: MODEL TRANSPORT /COST, SUPPLY, DEMAND/; Για την επίλυση του Μοντέλου που ορίσαμε, χρησιμοποιούμε το SOLVE: SOLVE ModelName USING SolutionProcedure Keyword OptimizationVariable; Διαθέσιμα Solution Procedures: LP για linear programming NLP για non-linear programming MIP για mixed-integer linear programming MINLP για mixed-integer non-linear programming Διαθέσιμα Keywords: MINIMIZING MAXIMIZING

Display Statements Με την εντολή DISPLAY, μπορούμε να εμφανίσουμε τις τιμές παραμέτρων, μεταβλητών, κ.α. Η γενική της μορφή είναι: DISPLAY VariableName.Suffix, Parameter; Διαθέσιμα suffixes: .LO = lower bound .L = level value, actual value (initial or final) .UP = upper bound .M = dual value, Lagrange or Kuhn-Tucker multipliers Παράδειγμα DISPLAY x.l;

Όρια Πριν την επίλυση του μοντέλου, μπορούμε να ορίσουμε άνω και κάτω όρια για τις μεταβλητές μας ως εξής: X.UP(I,J) = CAPACITY(I,J); X.LO(I,J) = 10.0; X.UP(‘SEATTLE’, ‘NEW-YORK’) = 1.2*CAPACITY(‘SEATTLE’, ‘NEW-YORK’); Κάποιες τιμές μεταβλητών μπορούν να δοθούν από το χρήστη πριν την επίλυση: X.FX(‘SEATTLE’, ‘NEW-YORK’) = 45.0;

Γενική Δομή της Εξόδου του GAMS Echo Print Μηνύματα Λάθους Λίστες Εξισώσεων Στατιστικά Μοντέλου Αναφορές Κατάστασης Αναφορές Λύσης

Echo Print Αυτό είναι ένα αντίγραφο του αρχείου εισόδου με αρίθμηση γραμμών Πάντα εμφανίζεται στην έξοδο Το statement $TITLE κάνει το κείμενο που παρατίθεται να τυπωθεί στην κορυφή της κάθε σελίδας Η εντολή $OFFUPPER δίνει τη δυνατότητα στο echo να περιέχει ανάμεικτα κεφαλαία και πεζά

Μηνύματα Λάθους Αυτά εμφανίζονται μέσα στο echo. Ξεκινούν με **** και περιέχουν ένα $ με έναν αριθμό ακριβώς κάτω από το σημείο του λάθους. Οι αριθμοί αυτοί επεξηγούνται μετά το echo Παράδειγμα 1: SET SUM months /JUN, JUL, AUG/; δίνει echo: 2 SET SUM months /JUN, JUL, AUG/; **** $2 Το GAMS υποδεικνύει ότι κάτι δεν πάει καλά με το στοιχείο SUM. Στο κάτω μέρος του echo εμφανίζεται το μήνυμα: ERROR MESSAGES 2 IDENTIFIER EXPECTED Το πρόβλημα είναι ότι το SUM είναι μία δεσμευμένη λέξη του GAMS.

Μηνύματα Λάθους (contd.) Παράδειγμα 2: Έστω ότι κάποιος προσπάθησε να γράψει τον περιορισμό: Το GAMS θα βρει και τα 2 λάθη: EQ10(I).. SUM(I, X(I,J)) =E= 100; **** $125 $149 ERROR MESSAGES 125 SET IS UNDER CONTROL ALREADY 149 UNCONTROLLED SET ENTERED AS CONSTANT Συχνά 1 μικρό λάθος μπορεί να δημιουργήσει μία «χιονοστιβάδα» λαθών Πάντα φροντίζουμε να διορθώσουμε το πρώτο λάθος που εμφανίζεται και μετά τα υπόλοιπα

Λίστες Εξισώσεων Εμφανίζονται μετά την επίλυση του μοντέλου και δίνουν τη δυνατότητα ελέγχου αν το GAMS παράγει το μοντέλο που θέλαμε Παράδειγμα: ο γενικός περιορισμός ζήτησης στο αρχείο εισόδου DEMAND(J).. SUM(I, X(I,J)) =G= B(J); Παράγει την παρακάτω λίστα στο αρχείο εξόδου: ----DEMAND =G= satisfy demand at market j DEMAND(NEW-YORK).. X(SEATTLE,NEW-YORK)+X(SAN-DIEGO,NEW-YORK)=G= 325; DEMAND(CHICAGO).. X(SEATTLE,CHICAGO)+X(SAN-DIEGO,CHICAGO)=G= 300; DEMAND(TOPEKA).. X(SEATTLE,TOPEKA)+X(SAN-DIEGO,TOPEKA)=G= 275; Ο προκαθορισμένος αριθμός εξισώσεων που εμφανίζεται είναι 3 για κάθε γενική εξίσωση. Για να το αλλάξουμε, εισάγουμε τη γραμμή OPTION LIMROW = number; πριν το SOLVE statement. Χρησιμοποιώντας OPTION LIMROW = 0, LIMCOL = 0; γλυτώνουμε σελίδες χαρτιού μόλις τελειώσουμε με την αποσφαλμάτωση του μοντέλου!

Στατιστικά Μοντέλου Για το πρόβλημα μεταφοράς: MODEL STATISTICS BLOCKS OF EQUATIONS 3 SINGLE EQUATIONS 6 BLOCKS OF VARIABLES 2 SINGLE VARIABLES 7 NON ZERO ELEMENTS 19 Το BLOCK αναφέρεται στις γενικές εξισώσεις και μεταβλητές Το SINGLE αναφέρεται στις ξεχωριστές γραμμές και στήλες

Περίληψη Λύσης Για το πρόβλημα μεταφοράς: SOLVE SUMMARY MODEL TRANSPORT OBJECTIVE Z TYPE LP DIRECTION MINIMIZE SOLVER CONOPT2 FROM LINE 49 **** SOLVER STATUS 1 NORMAL COMPLETION **** MODEL STATUS 1 OPTIMAL **** OBJECTIVE VALUE 153.6750 RESOURCE USAGE, LIMIT 0.101 1000.000 ITERATION COUNT, LIMIT 6 10000

Περίληψη Λύσης (συνέχεια) Η επιθυμητή κατάσταση του solver είναι 1 NORMAL COMPLETION Άλλες πιθανές καταστάσεις είναι: Ξεπεράστηκε το όριο επαναλήψεων: 2 ITERATION INTERRUPT Λύση: Αλλάξτε την τιμή της παραμέτρου ITERLIM Ξεπεράστηκε το όριο χρόνου: 3 RESOURCE INTERRUPT Λύση: Αλλάξτε την τιμή της παραμέτρου RESLIM Διακοπή από το χρήστη: 8 USER INTERRUPT κ.α.

Περίληψη Λύσης (συνέχεια) Υπάρχουν 11 πιθανές καταστάσεις του μοντέλου Για LPs, οι πιο κοινές καταστάσεις είναι: 1 OPTIMAL 3 UNBOUNDED 4 INFEASIBLE Για NLPs, η επιθυμητή κατάσταση είναι: 2 LOCALLY OPTIMAL Για IPs, η επιθυμητή κατάσταση είναι: 8 INTEGER SOLUTION

Αναφορές λύσης

Αναφορές λύσης (συνέχεια) Οι μονές τελείες αναπαριστούν μηδενικά Η καταχώρηση EPS σημαίνει μικρή τιμή αλλά όχι μηδέν Αν τα αποτελέσματα περιέχουν infeasibilities: INFES Αν τα οριακά κόστη έχουν λάθος πρόσημο: NOPT Αν το πρόβλημα είναι unbounded: UNBND Στο τέλος της αναφοράς λύσης, υπάρχει μία περιληπτική αναφορά: Η statement DISPLAY X.L, X.M; δίνει: