81
Μάθημα : Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΑΘΗΜΑ: Mathematical Programming Language (MPL) 1

ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

  • Upload
    cicily

  • View
    48

  • Download
    7

Embed Size (px)

DESCRIPTION

ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ. ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΑΘΗΜΑ: Mathematical Programming Language ( MPL). ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ ( INDEXES) - PowerPoint PPT Presentation

Citation preview

Page 1: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΑΘΗΜΑ:

Mathematical Programming Language

(MPL)

1

Page 2: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL2. ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL3. ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ

MPL4. ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) 5. ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)6. ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION

VARIABLES)7. ΧΡΗΣΗ ΑΘΡΟΙΣΜΑΤΩΝ (SUM)8. ΑΝΤΙΚΕΙΜΕΝΙΚΗ ΣΥΝΑΡΤΗΣΗ (Objective Function)9. ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying

Constraints)10.ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ ΚΑΙ ΠΑΡΑΜΕΤΡΩΝ ΑΠΟ ΕΞΩΤΕΡΙΚΟ

ΑΡΧΕΙΟ11.ΧΡΗΣΗ ΜΑΚΡΟΕΝΤΟΛΩΝ (MACROS)12.ΠΑΡΑΔΕΙΓΜΑΤΑ

2

Page 3: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL

Τι είναι η MPL;

Η MPL είναι ένα προηγμένο σύστημα μοντελοποίησης που επιτρέπει στο χρήστη του συστήματος τη διαμόρφωση πολύπλοκων μοντέλων βελτιστοποίησης με σαφή, συνοπτικό και αποτελεσματικό τρόπο.

Η MPL περιλαμβάνει μια αλγεβρική γλώσσα μοντελοποίησης που επιτρέπει στο χρήστη του συστήματος τη δημιουργία μοντέλων βελτιστοποίησης με χρήση αλγεβρικών εξισώσεων.

Αλγεβρικές γλώσσες βελτιστοποίησης, όπως η MPL, είναι οι πιο αποτελεσματικές μέθοδοι για την ανάπτυξη και τη συντήρηση μοντέλων βελτιστοποίησης, επειδή είναι πιο εύκολο να τις μάθεις, πιο γρήγορο να διαμορφώσεις τα μοντέλα και απαιτούν λιγότερο προγραμματισμό.

3

Page 4: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL

Χαρακτηριστικά MPL

Διεπαφή του χρήστη σε παραθυρικό περιβάλλον (Microsoft Windows).

Μπορεί να εισάγει και να εξάγει δεδομένα απευθείας από ή προς βάσεις δεδομένων ή υπολογιστικά φύλλα. Οι βάσεις δεδομένων που υποστηρίζει είναι οι: Microsoft Access and Excel, ODBC, Paradox, FoxPro, Dbase, SQL Sever και Oracle.

4

Page 5: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL

Έχει σχεδιαστεί για να είναι φορητή (μπορεί να διαβαστεί σε οποιαδήποτε πλατφόρμα που υποστηρίζει την MPL). Υπάρχει διαθέσιμη έκδοση και για Unix περιβάλλον (OSF Motif).

H MPL μπορεί να χειριστεί εύκολα και γρήγορα πολύ μεγάλους πίνακες με εκατομμύρια μεταβλητές και περιορισμούς (πλήρη έκδοση). Ενώ στην περίπτωση της δοκιμαστικής έκδοσης (student/ trial version) υπάρχει ο περιορισμός του μεγέθους (300 μεταβλητές/ περιορισμοί).

Επιτρέπει στο χρήστη να διαμορφώσει το μοντέλο του και στη συνέχεια να επιλέξει τη μηχανή βελτιστοποίησης (CPLEX, LPSolve, GUROBI, XPRESS solver) που επιθυμεί για να επιλύσει το μοντέλο.

Τα αποτελέσματα ανακτώνται αυτόματα από τη μηχανή βελτιστοποίησης (solver) και εμφανίζονται, παρέχοντας στο χρήστη άμεση ανατροφοδότηση.

5

Page 6: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL

OptiMax Component Library

Η OptiMax είναι μια αντικειμενοστραφής βιβλιοθήκη συστατικών, σχεδιασμένη να ενσωματώνει μοντέλα βελτιστοποίησης σε ποικίλες πλατφόρμες όπως VBA για Excel/Access, Visual Basic, Visual C++, Delphi, Java και σε γλώσσες προγραμματισμού για το διαδίκτυο.

6

Page 7: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL

ΒΗΜΑ 1ο Άνοιγμα εφαρμογής MPL για Windows 4.2 και δημιουργία καινούριου αρχείου MPL.

ΒΗΜΑ 2ο Δήλωση δεικτών, μεταβλητών, παραμέτρων, αντικειμενικής συνάρτησης και περιορισμών.

ΒΗΜΑ 3ο Αποθήκευση αρχείου MPL.

ΒΗΜΑ 4ο Συντακτικός έλεγχος του μοντέλου.

7

Page 8: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL

ΒΗΜΑ 5ο Επίλυση και εμφάνιση των λύσεων του μοντέλου.

ΒΗΜΑ 6ο Εμφάνιση στατιστικών στοιχείων, μεταβλητών, παραμέτρων, αντικειμενικής συνάρτησης και περιορισμών του μοντέλου.

ΒΗΜΑ 7ο Εμφάνιση γραφικής παράστασης του πίνακα και της αντικειμενικής συνάρτησης.

8

Page 9: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 1ο

Ανοίγουμε την εφαρμογή MPL for Windows 4.2. Μετά το άνοιγμα της εφαρμογής, θα εμφανιστεί το βασικό μενού. Το βασικό μενού προσφέρει τις ακόλουθες ενέργειες στο χρήστη :• File //άνοιγμα, αποθήκευση και εκτύπωση αρχείων.• Edit //αναίρεση, αποκοπή, αντιγραφή και επικόλληση.• Search //αναζήτηση, αντικατάσταση.• Project //άνοιγμα, αποθήκευση και κλείσιμο project. • Run //εκκίνηση μηχανής βελτιστοποίησης (solver),

έλεγχος συντακτικών λαθών και δημιουργία εισόδου.• View //εμφάνιση λύσης στην οθόνη.• Graph //εμφάνιση γραφικής παράστασης.• Options //αλλαγή προεπιλεγμένων επιλογών του MPL.• Window //χειρισμός πολλαπλών παραθύρων.• Help //βοήθεια.

ΒΗΜΑ 2ο

9

Page 10: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 1ο

Ο χρήστης έχει τη δυνατότητα να δημιουργήσει ένα καινούριο αρχείο MPL, μέσω της επιλογής File →New.

10

Page 11: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 2ο

Ακολουθεί η δήλωση των δεικτών, των μεταβλητών, των παραμέτρων, της αντικειμενικής συνάρτησης και των περιορισμών(η ονομασία τους πρέπει να είναι μοναδική και υπάρχει διάκριση πεζών και κεφαλαίων γραμμάτων).

11

Page 12: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 3ο

Ο χρήστης αποθηκεύει το αρχείο MPL που δημιούργησε μέσω της επιλογής Save και Save As.

12

Page 13: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 4ο

Έλεγχος του μοντέλου για συντακτικά λάθη, επιλέγοντας Run→Check Syntax.

•Σε περίπτωση που το μοντέλο δεν έχει συντακτικά λάθη.

13

Page 14: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 4ο

• Σε περίπτωση που το μοντέλο έχει συντακτικά λάθη.

14

Page 15: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 5ο

Εφόσον το μοντέλο δεν έχει συντακτικά λάθη, ακολουθεί η επίλυση του μοντέλου, μέσω της επιλογής Run→Solve.

15

Page 16: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 5ο

Η MPL μετά την επίλυση του μοντέλου δημιουργεί ένα αρχείο με τις λύσεις, ο χρήστης έχει τη δυνατότητα να δει τις λύσεις επιλέγοντας View→Files → όνομα αρχείου.sol.

16

Page 17: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 6ο

H MPL επιτρέπει στο χρήστη να δει τα στατιστικά του μοντέλου, επιλέγοντας View→Model Statistics.

17

Page 18: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 6ο

Ο χρήστης έχει τη δυνατότητα να δει τα στοιχεία (μεταβλητές, παραμέτρους, αντικειμενική συνάρτηση κ.α.) που όρισε για τη διαμόρφωση του μοντέλου, επιλέγοντας View→Model Definitions.

18

Page 19: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 7ο

Τέλος η MPL επιτρέπει στο χρήστη να δει τη γραφική παράσταση του πίνακα και της αντικειμενικής συνάρτησης, επιλέγοντας Graph→ Matrix / Objective Function.

19

Page 20: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Το αρχείο του μοντέλου MPL περιλαμβάνει τα ακόλουθα Τμήματα Δηλώσεων: i. το τμήμα δήλωσης των δεικτών, ii. το τμήμα δήλωσης των παραμέτρων,iii. το τμήμα δήλωσης των μεταβλητών, iv. το τμήμα δήλωσης της αντικειμενικής συνάρτησης και των

περιορισμών του μοντέλου

20

Page 21: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Τμήμα δήλωσης δεικτών, παραμέτρων και μεταβλητών (The Definition Part)Το Τμήμα δήλωσης δεικτών, παραμέτρων και μεταβλητών χρησιμοποιείται με σκοπό να οριστούν τα στοιχεία που θα χρησιμοποιηθούν αργότερα στο μοντέλο και αποτελείται από:

TITLE // Όνομα του προβλήματοςINDEX // Σύνολα του προβλήματοςDATA // ΠαράμετροιDECISION VARIABLES // Μεταβλητές αποφάσεωνMACRO // Μακροεντολές για επαναλαμβανόμενα

τμήματα

21

Page 22: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Για παράδειγμα:

TITLETransportationProblem ;

INDEX supply:=(S1,S2) ; dest:= (D1,D2,D3) ;

DATACapacityS[supply]:= (200,300) ;Demand[dest]:= (150,200,150) ;TransCostSD[supply, dest]:= (10,12,15, 14,10,16) ;

DECISION VARIABLESShipSD[supply, dest] ;

22

Page 23: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Τμήμα δήλωσης αντικειμενικής συνάρτησης και περιορισμών (The Model Part)

Η δήλωση της αντικειμενικής συνάρτησης και των περιορισμών πρέπει να εμφανίζεται αμέσως μετά τη δεσμευμένη λέξη: “MODEL”.

•Η εντολή MODEL είναι προαιρετική, παρόλα αυτά είναι χρήσιμο να εισάγεται στην αρχή της διαμόρφωσης του μοντέλου. •Η προσθήκη MAX (μεγιστοποίηση) ή MIN (ελαχιστοποίηση) προηγείται της δήλωσης της αντικειμενικής συνάρτησης. •Η χρήση της εντολής END σηματοδοτεί τον τερματισμό του μοντέλου.

23

Page 24: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Τμήμα δήλωσης της αντικειμενικής συνάρτησης και των περιορισμών

MODEL MAX or MIN {Αντικειμενική συνάρτηση} SUBJECT TO BOUNDS {Ανώτερα και κατώτερα όρια μεταβλητών} FREE {Ελεύθερες μεταβλητές} INTEGER {Ακέραιες μεταβλητές} BINARY {Δυαδικές μεταβλητές (0/1)}END

24

Page 25: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Για παράδειγμα:

MODEL

MIN TotalCost= SUM(supply,dest: TransCostSD * ShipSD) ;

SUBJECT TO

Const1[supply]: SUM(dest : ShipSD) <CapacityS[supply] ;Const2[dest]: SUM(supply : ShipSD) =Demand[dest] ;

END

Κόστος μεταφοράς από το supply στο dest

Ποσότητα που θα μεταφερθεί από το supply στο dest

25

Page 26: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

ΑριθμοίH MPL επιτρέπει την εισαγωγή είτε πραγματικών αριθμών είτε ακεραίων.Για παράδειγμα: • 10• 5.64• -0.657• 25.0

ΟνόματαΤα ονόματα των περιορισμών και των μεταβλητών μπορούν να έχουν οποιοδήποτε μέγεθος. Δεν επιτρέπεται η χρήση κενών διαστημάτων ανάμεσα σε ένα όνομα, εξαίρεση αποτελεί η χρήση του χαρακτήρα της κάτω παύλας(_).

26

Page 27: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Παραδείγματα ορθής και λανθασμένης ονομασίας:

• Constraint • cons1A_A• PROFIT • constraint 1 x• constaint2• demand 1_ x• B_constraint1• A _capacity x• consAB

27

Page 28: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL

Εισαγωγή σχολίωνΤο σχόλιο είναι μέρος ενός αρχείου το οποίο η MPL δεν επεξεργάζεται. Σχόλια μπορούν να εισαχθούν σε οποιοδήποτε μέρος του αρχείου. Οι βασικοί τύποι σχολίων είναι οι εξής:

• Σχόλια μίας γραμμής : !Τα σχόλια μίας γραμμής χρησιμοποιούνται για να προσθέσουν σχόλια σε μία γραμμή ή σε κάποιο κομμάτι μίας γραμμής ενός κειμένου.

• Σχόλια πολλαπλών γραμμών : {...}Τα σχόλια για πολλαπλές γραμμές χρησιμοποιούνται για να προσθέσουν σχόλια σε πολλές γραμμές του κειμένου.

28

Page 29: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Στην MPL αναγνωρίζονται δύο βασικοί τύποι συνόλων: τα αριθμητικά σύνολα και τα σύνολα ονομάτων.

Τα αριθμητικά σύνολα (Numeric Indexes) περιλαμβάνουν ακέραιους αριθμούς. Οι αριθμοί δεν πρέπει να είναι αρνητικοί και ο δεύτερος αριθμός πρέπει να είναι μεγαλύτερος από τον πρώτο. Τα αριθμητικά σύνολα ορίζονται στο τμήμα δηλώσεων “INDEX” με τον ακόλουθο τρόπο:

{όνομα συνόλου} := a..b ;

Για παράδειγμα:

INDEX warehouse_id :=1..4 ;

29

Page 30: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Εναλλακτικά ένα αριθμητικό σύνολο δηλώνεται και ως ακολούθως:

{όνομα συνόλου} := (a1,a2, ,ak) ;

Για παράδειγμα:

INDEX warehouse_id :=(1,2,3,4) ;

30

Page 31: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Τα σύνολα ονομάτων (Named Indexes) δηλώνονται με τον ακόλουθο τρόπο:

{όνομα συνόλου}: = (στοιχείο1, στοιχείο2, ,στοιχείοk);

Παράδειγμα: week := (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Στο παραπάνω παράδειγμα ορίζεται ένα σύνολο week (εβδομάδα) το οποίο αποτελείται από 7 στοιχεία (μέρες της εβδομάδας). Σε περίπτωση που ο χρήστης θέλει να χρησιμοποιήσει ένα σύνολο στοιχείων με μικρότερα ονόματα, τότε μπορεί να χρησιμοποιήσει τον τελεστή →. Ακολουθεί ένα παράδειγμα:

names := (Kostas, John, Katherine, Manolis, Dimitris, Maria) -> (Ko, Jo, Ka, Man, Di, Ma);

31

Page 32: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Το όνομα ενός συνόλου χρησιμοποιείται και ως δείκτης. H MPL δίνει τη δυνατότητα στο χρήστη να ορίσει περισσότερους από έναν δείκτες. Κάθε δείκτης ορίζεται στο τμήμα δηλώσεων “INDEX” με τον ακόλουθο τρόπο:

{όνομα δείκτη}:= {όνομα συνόλου} ;

Για παράδειγμα:

INDEX location:= (A, B, C) ; destination:= location ; depot:= location ;

32

Page 33: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Με βάση τα παραπάνω δεδομένα μπορούμε να ορίσουμε μια μεταβλητή απόφασης (DECISION VARIABLES), που περιγράφει το κόστος μεταφοράς από ένα σταθμό (depot) σε ένα προορισμό (destination):

DECISION VARIABLES shipcost[depot, destination];

33

Page 34: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Δημιουργία υποσυνόλων (subsets of Indexes)

Κάθε υποσύνολο ενός συνόλου ορίζεται στο τμήμα δηλώσεων “INDEX” ως ακολούθως:

{όνομα υποσυνόλου} [{όνομα συνόλου}] := (στοιχείο1, στοιχείο2, ...,

στοιχείοk) ;Για παράδειγμα:INDEX k:=(1..7) ; m:=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) ; Επομένως μπορούμε να ορίσουμε τα παρακάτω σύνολα σαν υποσύνολα των αρχικών συνόλων:

p[k]:= (2,4,6,7) ; Lessons[m]:= (Monday, Thursday, Saturday) ;

34

Page 35: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Δημιουργία πολυδιάστατων συνόλων (Multi-dimensional Index Sets)

Με δεδομένα κ σύνολα Σ1, Σ2, το 2-διάστατο σύνολο ορίζεται ως ακολούθως:

{όνομα κ-διάστατου συνόλου} [{Σ1}, {Σ2}] := (στοιχείο11, στοιχείο12, ..., στοιχείο1m2,

στοιχείο21, στοιχείο22, ..., στοιχείο2m2, ... ... ...

στοιχείοm11, στοιχείο m1 2 , ..., στοιχείο m1m2) ;

35

Page 36: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Για παράδειγμα αν στο μοντέλο μας έχουμε ορίσει ένα σύνολο Producer και ένα σύνολο Product, μπορεί να θέλουμε να δημιουργήσουμε ένα σύνολο που να καθορίζει ποια προϊόντα (Product) παράγει ο παραγωγός (Producer). Η δημιουργία του παραπάνω συνόλου στην MPL πραγματοποιείται με τον ακόλουθο τρόπο:

INDEX Producer :=(Kostas, Michael, George) ; Product :=(apples, bananas, oranges) ; PP[Producer,Product] := ( Kostas.bananas, Michael.oranges, George.apples ) ;

36

Page 37: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Ορισμός συνόλων υπό συνθήκη (Conditional sets)

Ένα σύνολο υπό συνθήκη ορίζεται στο τμήμα δηλώσεων “INDEX” ως ακολούθως:

{όνομα υπό συνθήκη συνόλου} [{όνομα συνόλου}] WHERE (περιορισμός) ;

Για παράδειγμα:INDEX plant := (Atlanta, Chicago, Dallas) ; warehouse := (Pittsburgh, Charlotte, Memphis) ;

DATA ShipCost[plant, warehouse] := (1200, 3000, 2300, 1800, 4200, 3300, 2700, 2100, 1900) ; INDEX BestRoutes[plant,warehouse] WHERE (ShipCost[plant, warehouse] <= 2400);

37

Page 38: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)

Ορισμός συνόλων υπό συνθήκη (Conditional sets)

Στο παραπάνω παράδειγμα δημιουργήσαμε ένα σύνολο BestRoutes, το οποίο περιλαμβάνει τα δρομολόγια ανάμεσα σε παραγωγούς (plants) και αποθήκες (warehouses), τα οποία έχουν κόστος μεταφοράς μικρότερο του 2400.

Ειδικότερα το παραπάνω σύνολο (BestRoutes) θα αποτελείται από τα εξής στοιχεία:

• Atlanta.Pittsburgh • Atlanta.Memphis • Chicago.Pittsburgh• Dallas.Charlotte• Dallas.Memphis

38

Page 39: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)

Οι παράμετροι του μοντέλου δηλώνονται στο τμήμα δηλώσεων “DATA”. Υπάρχουν 2 διαφορετικοί τύποι παραμέτρων που αναγνωρίζει η MPL: τις απλές παραμέτρους (Data Constants) και τις πολυδιάστατες παραμέτρους (Data Vectors).

Οι απλές παράμετροι (Data Constants) μπορούν να οριστούν με 2 διαφορετικούς τρόπους: i.Εκχωρώντας τιμές στις παραμέτρους. Στην συγκεκριμένη περίπτωση οι απλές παράμετροι ορίζονται με τον ακόλουθο τρόπο:

{όνομα παραμέτρου} := α ; όπου αͼ R

Για παράδειγμα:

DATA TransportationCost := 5 ;

39

Page 40: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)

ii.Διαδραστικά, ζητώντας από το χρήστη να εισάγει την τιμή που επιθυμεί όταν το αρχείο του μοντέλου διαβάζεται. Στην περίπτωση που οι παράμετροι ορίζονται διαδραστικά, εισάγουμε ένα αγγλικό ερωτηματικό (?) μετά την τιμή της παραμέτρου.

Για παράδειγμα:

DATA MaxStocks:= 10 ? ;

40

Page 41: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)

Παράδειγμα διαδραστικής εκχώρησης τιμής σε απλές παραμέτρους:

Η τιμή της παραμέτρου MaxStocks ζητείται κατά το χρόνο εκτέλεσης του προγράμματος, όπου εμφανίζεται ένα παράθυρο διαλόγου (Data Request Dialog) και ο χρήστης εισάγει την τιμή της παραμέτρου.

41

Page 42: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)

Οι πολυδιάστατοι παράμετροι (Data Vectors) είναι πίνακες ή διανύσματα και ορίζονται με τον ακόλουθο τρόπο:

i.Για διανυσματικές παραμέτρους διάσταση (κ): {όνομα παραμέτρου} [{όνομα συνόλου}] :=(α1, α2, , ακ); ii.Για πίνακα (n x m):

{όνομα παραμέτρου} [όνομα συνόλου] := (α11, α12, , α1m, αn1, αn2, , αnm) ;

Για παράδειγμα:

INDEX products:= (potatoes, tomatoes, lemons);DATA price[products]:= (3,4,2);

Το price είναι ένα διάνυσμα που αναφέρεται σε προϊόντα (products).

42

Page 43: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)

Θα πρέπει να υπάρχουν αρκετοί αριθμοί για να ικανοποιήσουν το μέγεθος του διανύσματος. Σε περίπτωση ύπαρξης επιπρόσθετων τιμών, οι τιμές επιτρέπονται αλλά αγνοούνται, αντιθέτως όταν οι τιμές είναι λιγότερες από το μέγεθος του διανύσματος τότε εμφανίζεται σφάλμα.

Στο παρακάτω παράδειγμα, χρησιμοποιείται ο πολλαπλασιαστής 1000.

INDEX warehouse:= (China, Bulgaria, Greece);DATA cost[warehouse]:= 1000(200,150,400);

Οι πραγματικές τιμές του διανύσματος είναι: (200000, 150000, 400000).

43

Page 44: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)

Παραδείγματα ορισμού πολυδιάστατων παραμέτρων(π.χ. Πίνακας τιμών):

D[i,j] := (5,6,3,2,7, 3,2,4,8,9, 8,9,10,5,11, 15,4,8,10,7) ;

Εναλλακτικά:

D[i,j] :=( (5,6,3,2,7), (3,2,4,8,9), (8,9,10,5,11), (15,4,8,10,7) ) ;

44

Page 45: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Οι μεταβλητές αποφάσεων ορίζονται στο τμήμα δηλώσεων “DECISION VARIABLES”.Κάθε μεταβλητή μπορεί να έχει οποιοδήποτε μέγεθος. Ξεκινάει με γράμμα και το υπόλοιπο αποτελείται από γράμματα και ψηφία.Υπάρχουν 2 τύποι μεταβλητών αποφάσεων (decision variables): απλές μεταβλητές (plain variables) και πολυδιάστατες μεταβλητές (vector variables).

Απλές Μεταβλητές (plain variables)

•Κάθε απλή μεταβλητή έχει την ακόλουθη μορφή: {όνομα μεταβλητής} [{όνομα συνόλου}];

Για παράδειγμα: Invest[stock] ;

45

Page 46: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Πολυδιάστατες μεταβλητές (vector variables).

• Οι πολυδιάστατες μεταβλητές αναφέρονται σε ένα εύρος στηλών.

• Οι πολυδιάστατες μεταβλητές πρέπει να ορίζονται προτού χρησιμοποιηθούν στο μοντέλο.

• Κάθε πολυδιάστατη μεταβλητή έχει την ακόλουθη μορφή:

{όνομα πολυδιάστατης μεταβλητής} [{όνομα συνόλου1, όνομα συνόλου2,..., όνομα συνόλουκ}] ;

Για παράδειγμα:

DECISION VARIABLES ShipWM[producer, warehouse];

Στο συγκεκριμένο παράδειγμα ορίζουμε μια μεταβλητή απόφασης ShipWM, η οποία αναφέρεται στη ποσότητα που μεταφέρεται από το producer (προμηθευτή) στο warehouse (αποθήκη). 46

Page 47: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Επειδή το μέγεθος των ονομάτων των μεταβλητών στις περισσότερες μηχανές βελτιστοποίησης (LP solver) δεν ξεπερνά τους 8 χαρακτήρες, μπορεί να χρησιμοποιηθεί ο τελεστής → για να εισάγουμε μικρότερο όνομα.

Για παράδειγμα:

DECISION VARIABLES Production[product,month] -> Prod ;

47

Page 48: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Ορισμός μεταβλητών με υποσυνθήκη συνόλα

Όταν οι δείκτες ανήκουν σε κάποιο υποσύνολο:

Για παράδειγμα:

INDEXNodes:=(1,2,3,4);i[Nodes];j[Nodes];link[i,j]:=((1,2),(1,4),(1,3),(2,3),(3,2));

DECISION VARIABLEX[link];

48

Page 49: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Όταν οι δείκτες ορίζονται από αλγεβρική παράσταση παραμέτρων:

Σε αυτές τις περιπτώσεις γίνεται χρήση της συνθήκης WHERE. Η συνθήκη WHERE χρησιμοποιείται όταν ο χρήστης θέλει να περιορίσει τον αριθμό των μεταβλητών που θα οριστούν.

Για παράδειγμα:

DECISION VARIABLES Production[product, month] WHERE (Demand[product, month]>0) ;

49

Page 50: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Πιο συγκεκριμένα:

INDEXNodes:=(1,2,3,4);i[Nodes];j[Nodes];

DATAcost[i,j]:=(0,2,2,3,

2,0,3,5, 3,4,0,5, 2,5,7,0) ;

DECISION VARIABLE Y[i,j] WHERE (cost[i,j] > 0) ;

50

Page 51: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Όταν οι δείκτες ορίζονται από αλγεβρική παράσταση δεικτών:

Για παράδειγμα:INDEXNodes:=(1,2,3,4);i[Nodes];j[Nodes];DATAcost[i,j]:=(0,2,2,3,

2,0,3,5, 3,4,0,5, 2,5,7,0) ;INDEXnewset[i,j] WHERE (cost[i,j]>0) ;N[newset];DECISION VARIABLEY[N] ;

51

Page 52: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Ακέραιες/Δίτιμες μεταβλητές (Integer /Binary Variables)

Σε περίπτωση που κάποιες μεταβλητές του μοντέλου είναι ακέραιες, μπορούμε να τις ορίσουμε, χρησιμοποιώντας την εντολή INTEGER . Με τον ίδιο τρόπο μπορούμε να ορίσουμε και δίτιμες (δυαδικές) μεταβλητές, χρησιμοποιώντας την εντολή BINARY.Το συγκεκριμένο τμήμα μπορεί να τοποθετηθεί οπουδήποτε μετά το τμήμα των περιορισμών.

Για παράδειγμα:

INTEGER Production[month, product] ;BINARY Open[warehouse] ;

52

Page 53: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Εξαγωγή τιμών μεταβλητών σε αρχεία δεδομένωνΜετά τη βελτιστοποίηση του προβλήματος, η MPL επιτρέπει την εξαγωγή των τιμών των μεταβλητών σε ξεχωριστά αρχεία δεδομένων. Αυτό επιτυγχάνεται με την εντολή EXPORT TO ακολουθούμενη από την εντολή SPARSEFILE.

53

Page 54: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Για παράδειγμα:

DECISION VARIABLES ShipPP[Producer,Plant] EXPORT TO SPARSEFILE(“Ship.dat”) ;

Το παραπάνω παράδειγμα γράφει σε ένα αρχείο κειμένου (σε αραιή μορφή) τις τιμές του Activity και Reduced Cost για κάθε εισαγωγή της πολυδιάστατης μεταβλητής ShipPP.

Εξαγωγή τιμών μεταβλητών σε υπολογιστικό φύλλοΗ MPL επιτρέπει την εξαγωγή των τιμών των μεταβλητών σε υπολογιστικό φύλλο (Excel Spreadsheet), με χρήση της εντολής EXPORT TO ακολουθούμενη από την εντολή EXCELRANGE.

54

Page 55: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)

Για παράδειγμα:

DECISION VARIABLES SheetsCuts [cuts] EXPORT TO EXCELRANGE

(“CutStock.xls”,“SheetsToCut”) ;

Στο παραπάνω παράδειγμα, η MPL ανοίγει το υπολογιστικό φύλλο CutStock.xls, εντοπίζει την περιοχή SheetsToCut και εξάγει τις λύσεις της πολυδιάστατης μεταβλητής SheetsCuts .

55

Page 56: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΧΡΗΣΗ ΑΘΡΟΙΣΜΑΤΩΝ (SUM)

Τα αθροίσματα χρησιμοποιούνται όταν θέλουμε να αθροίσουμε διανύσματα.

Μπορούν να χρησιμοποιηθούν και στο τμήμα δήλωσης της αντικειμενικής συνάρτησης αλλά και στο τμήμα των περιορισμών.

Στον τύπο της άθροισης μπορούν να περιλαμβάνονται και μεταβλητές και πολυδιάστατοι παράμετροι.

Για παράδειγμα:

MIN TotalCost= SUM(supply,destination: TransCostSD * ShipSD) ;

Στο παραπάνω παράδειγμα επιθυμούμε την ελαχιστοποίηση του συνολικού κόστους. Το συνολικό κόστος προκύπτει από το άθροισμα των γινομένων της ποσότητας που μεταφέρεται (ShipSD) με το κόστος μεταφοράς (TransCostSD) από τον προμηθευτή (supply) σε ένα προορισμό (destination).

56

Page 57: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΑΝΤΙΚΕΙΜΕΝΙΚΗ ΣΥΝΑΡΤΗΣΗ (Objective Function)

Η αντικειμενική συνάρτηση (objective function) ορίζεται στο τμήμα δήλωσης της αντικειμενικής συνάρτησης , ξεκινάει με την εντολή MAX (MAXIMIZE) ή MIN (MINIMIZE), ανάλογα με το αν ο χρήστης επιθυμεί να βελτιστοποιήσει ή να ελαχιστοποιήσει το πρόβλημα. Το όνομα της αντικειμενικής συνάρτησης είναι προαιρετικό, μπορεί να έχει οποιοδήποτε μέγεθος, αλλά δεν πρέπει να περιλαμβάνει κενά και διαχωριστικά.

Παραδείγματα ορισμού αντικειμενικών συναρτήσεων:

MODEL

MAX Profit = Revenues – TotalCost ; MINIMIZE Cost = SUM(Producer, Plant : TransCostPP * ShipPP) ;

Κόστος μεταφοράς από το Producer → Plant

Ποσότητα που μεταφέρεται από το Producer → Plant

57

Page 58: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)

Οι περιορισμοί δηλώνονται στο τμήμα δηλώσεων “SUBJECT TO”.Υπάρχουν δύο είδη περιορισμών: οι απλοί περιορισμοί (plain constraints) και οι πολυδιάστατοι περιορισμοί (Vector Constraints).

Απλοί περιορισμοί (plain constraints) Οι απλοί περιορισμοί ορίζονται ως ακολούθως:

{όνομα περιορισμού} {<=, =,>=,<,>} {τιμή};Για παράδειγμα:constraint <= 8000;

Ο χρήστης μπορεί να δώσει όνομα (οποιοδήποτε μεγέθους) σε περιορισμό, όμως το όνομα δεν πρέπει να περιλαμβάνει κενά και διαχωριστικά.

58

Page 59: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)

Πολυδιάστατοι περιορισμοί (Vector Constraints).

Κάθε πολυδιάστατος περιορισμός ορίζεται ως ακολούθως:{όνομα περιορισμού } [{όνομα συνόλου1, όνομα συνόλου2, ...

όνομα συνόλουκ}] : ... ;

Το όνομα του περιορισμού μπορεί να έχει οποιοδήποτε μέγεθος, αλλά δεν πρέπει να περιέχει κενά και διαχωριστικά.

Για παράδειγμα:

•SUBJECT TO Constraint1[market] : SUM(supply : ShipSM[supply,market]) = Demand[market];Στο παραπάνω παράδειγμα ορίζεται ένας περιορισμός (Constraint1) με βάση τον οποίο η ποσότητα που μεταφέρεται (ShipSM) από τον προμηθευτή (supply) στην αγορά (market) πρέπει να είναι ίση με την ζήτηση της αγοράς (Demand).

59

Page 60: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)

Ορισμός περιορισμών με υποσυνθήκη συνόλα

Όταν οι δείκτες ορίζονται με αλγεβρική παράσταση παραμέτρων:

Για παράδειγμα:INDEXNodes:=(1,2,3,4);i[Nodes];j[Nodes];link[i,j]:=((1,2),(1,4),(1,3),(2,3),(3,2));DATAcost[i,j]:=(0,2,2,3,

2,0,3,5, 3,4,0,5, 2,5,7,0) ;DECISION VARIABLEX[link];SUBJECT TOconstraint1[i,j] WHERE (cost[i,j]>0) : SUM(link:X[link])=0 ;

60

Page 61: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)

Όταν οι δείκτες ορίζονται με αλγεβρική παράσταση δεικτών:

Για παράδειγμα:INDEXNodes:=(1,2,3,4);i[Nodes];j[Nodes];link[i,j]:=((1,2),(1,4),(1,3),(2,3),(3,2));DATAcost[i,j]:=(0,2,2,3

2,0,3,5 3,4,0,5 2,5,7,0) ;INDEXnewset[i,j] WHERE (cost[i,j]>0) ;N[newset];DECISION VARIABLEX[link];SUBJECT TOconstraint2[Ν] : SUM(link:X[link])=0 ;

61

Page 62: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)

Όταν ο χρήστης ορίζει ένα περιορισμό, κάνει χρήση συγκεκριμένων τελεστών:

Τελεστές

Μεγαλύτερο >

Μεγαλύτερο ίσο >=

Ισότητα =

Μικρότερο <

Μικρότερο ίσο <=

62

Page 63: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Δημιουργία συνόλου με στοιχεία που προέρχονται από εξωτερικό αρχείο:

Ο χρήστης μπορεί να δηλώσει και να ορίσει ένα σύνολο, τα στοιχεία του οποίου θα προέρχονται από ένα εξωτερικό αρχείο, χρησιμοποιώντας την εντολή INDEXFILE ως ακολούθως:

{όνομα συνόλου} := INDEXFILE(“όνομα αρχείου.dat”);

Στο παρακάτω παράδειγμα ορίζουμε ένα σύνολο producer του οποίου τα στοιχεία θα προέρχονται από το αρχείο producer.dat.

INDEX producer := INDEXFILE(“producer.dat”);

63

Page 64: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Τα στοιχεία του συνόλου εντός του αρχείου θα πρέπει να είναι γραμμένα με διάταξη στήλης χωριζόμενα με ένα κόμμα.

Για παράδειγμα:

64

Page 65: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Σε περιπτώσεις που το αρχείο του οποίου τα στοιχεία θέλουμε να διαβάσουμε περιλαμβάνει πολλές στήλες, η MPL επιτρέπει στο χρήστη να επιλέξει τη στήλη πoυ αυτός επιθυμεί προσθέτοντας ένα κόμμα και τον αριθμό της στήλης.

Για παράδειγμα: INDEX producer := INDEXFILE(“producer.dat”,2);

65

Page 66: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Δημιουργία συνόλου με στοιχεία που προέρχονται από υπολογιστικό φύλλο (Excel Spreadsheet):

Η MPL επιτρέπει στο χρήστη να εισάγει στοιχεία σε ένα σύνολο από ένα υπολογιστικό φύλλο (Excel Spreadsheet). Στο τμήμα δηλώσεων “INDEX” που ορίζουμε το σύνολο, εισάγουμε την εντολη EXCELRANGE και μέσα σε παρένθεση το όνομα του αρχείου Excel και το όνομα της περιοχής του αρχείου Excel της οποίας τα στοιχεία επιθυμούμε να περιέχει το σύνολο με τον ακόλουθο τρόπο:

{όνομα συνόλου} := EXCELRANGE(“όνομα υπολογιστικού φύλλου εργασίας”, “όνομα περιοχής του υπολογιστικού φύλλου ”) ;

66

Page 67: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Για παράδειγμα:

INDEX

warehouse := EXCELRANGE(“warehouse.xls”, “warehouserange”);

Στο συγκεκριμένο παράδειγμα, η MPL ανοίγει το υπολογιστικό φύλλο εργασίας warehouse.xls, εντοπίζει το warehouserange και στη συνέχεια διαβάζει τις καταχωρήσεις που υπάρχουν στο αρχείο αυτό και θα αποτελέσουν τα στοιχεία του συνόλου warehouse.

67

Page 68: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Το υπολογιστικό φύλλο εργασίας θα έχει την ακόλουθη μορφή:

68

Page 69: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Η εντολή EXCELRANGE διαβάζει κάθε κελί του συγκεκριμένου αρχείου Excel και της περιοχής που μας ενδιαφέρει, μέχρι να εντοπίσει κενό κελί. Σε περιπτώση που ο χρήστης θέλει να διαβάσει στοιχεία από μια συγκεκριμένη στήλη της περιοχής του αρχείου Excel, τότε θα πρέπει να ακολουθήσει την παρακάτω αλληλουχία εντολών: INDEX warehouse := EXCELRANGE(“warehouse.xls”, “warehouserange”, 2);

Στη παραπάνω περίπτωση θα διαβαστεί μόνο η δεύτερη στήλη του warehouserange.

69

Page 70: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Όπως και στην περίπτωση των συνόλων, έτσι και στην περίπτωση των παραμέτρων, η MPL επιτρέπει στο χρήστη να εισάγει απλές παραμέτρους από εξωτερικά αρχεία ή υπολογιστικά φύλλα (Excel Spreadsheet). Ο χρήστης μπορεί να δηλώσει και να ορίσει μία απλή παράμετρο, τα στοιχεία της οποίας θα προέρχονται από ένα εξωτερικό αρχείο, χρησιμοποιώντας την εντολή DATAFILE ως ακολούθως:

{όνομα παραμέτρου} := DATAFILE(“όνομα αρχείου.dat”) ;

Για παράδειγμα:

DATA NumberofWarehouses := DATAFILE(“warehouses.dat”);

70

Page 71: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Ανάγνωση παραμέτρων από αρχείο κειμένουΗ MPL υποστηρίζει την ανάγνωση παραμέτρων που προέρχονται από αρχεία κειμένου. Όπως και στην περίπτωση των συνόλων, έτσι και στην περίπτωση των παραμέτρων για να διαβαστούν οι παράμετροι από αρχειο κειμένου χρησιμοποιείται η εντολή DATAFILE ως ακολούθως:

{όνομα παραμέτρου} [{όνομα συνόλου}] := DATAFILE(“αρχείο κειμένου.dat ”) ;

Για παράδειγμα:

DATA TranspCost[depot, destination] := DATAFILE(“transcost.dat”) ;

71

Page 72: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Τα στοιχεία του συνόλου εντός του αρχείου θα πρέπει να είναι γραμμένα με διάταξη στήλης χωριζόμενα με ένα κόμμα.

72

Page 73: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Το αρχείο κειμένου από το οποίο θα πραγματοποιηθεί η ανάγνωση των παραμέτρων μπορεί να έχει είτε πυκνή μορφή (dense format) είτε αραιή μορφή (sparse format).

Στην περίπτωση της πυκνής μορφής (dense format) το αρχείο κειμένου αποτελείται μόνο από τιμές (values).

73

Page 74: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Ενώ στην περίπτωση της αραιής μορφής το αρχείο κειμένου αποτελείται όχι μόνο από τιμές αλλά και από δείκτες.

Σε αυτήν την περίπτωση χρησιμοποιείται η εντολή SPARSEFILE αντί της της DATAFILE. Για παράδειγμα:DATA TransCost[Plant, Producer] := SPARSEFILE(“transcost.dat”) ;

74

Page 75: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Όπως και στην περίπτωση των συνόλων, ο χρήστης έχει τη δυνατότητα να επιλέξει τη στήλη πoυ αυτός επιθυμεί προσθέτοντας ένα κόμμα και τον αριθμό της στήλης.

Για παράδειγμα:

DATA TransCost[Plant, Producer] := SPARSEFILE(“transcost.dat”,3) ;

Το αρχείο “transcost.dat” θα έχει την παρακάτω μορφή:

Kostas, George, 500,Nick, John, 200,Michael, Dimitris, 300

75

Page 76: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Ανάγνωση παραμέτρων από υπολογιστικό φύλλο (Excel Spreadsheet)Η MPL επιτρέπει στο χρήστη να διαβάζει παραμέτρους από ένα υπολογιστικό φύλλο (Excel Spreadsheet) με τον ακόλουθο τρόπο:

{όνομα παραμέτρου} [{όνομα συνόλου}] := EXCELRANGE(“όνομα υπολογιστικού φύλλου εργασίας”, “όνομα περιοχής του υπολογιστικού φύλλου ”) ; Για παράδειγμα:

DATA DemandCustomer[product,month] := EXCELRANGE(“customer.xls”, “demand”) ; Στο παραπάνω παράδειγμα η MPL ανοίγει το υπολογιστικό φύλλο customer.xls, εντοπίζει την περιοχή demand και στη συνέχεια διαβάζει τα στοιχεία με βάση τα οποία θα δημιουργηθεί η πολυδιάστατη παράμετρος.

76

Page 77: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ

Η εντολή EXCELRANGE χρησιμοποιείται όταν οι παράμετροι είναι αποθηκευμένοι σε πυκνή μορφή (dense format) στο υπολογιστικό φύλλο. Σε περιπτώσεις που οι παράμετροι είναι αποθηκευμένοι σε αραιή μορφή, γίνεται χρήση της εντολής EXCELSPARSE.

Για παράδειγμα:

DATA ProductID[products] := EXCELSPARSE(“Product.xls”,“ProductsTable”,2) ; ProductCost[products] := EXCELSPARSE(“Product.xls”,“ProductsTable”,3) ;Στο παραπάνω παράδειγμα η περιοχή ProductsTable περιλαμβάνει 3 στήλες. Η πρώτη στήλη περιέχει τις τιμές του δείκτη products, και οι άλλες στήλες περιέχουν το ProductID και ProductCost για κάθε δείκτη product. Οι αριθμοί 2 και 3 αντίστοιχα αναφέρονται στη δεύτερη και τρίτη στήλη της περιοχής ProductsTable.

77

Page 78: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΧΡΗΣΗ ΜΑΚΡΟΕΝΤΟΛΩΝ (MACROS)

Οι μακροεντολές (Macros) είναι σημαντικό χαρακτηριστικό της γλώσσας μαθηματικού προγραμματισμού MPL γιατί: Μπορούν να χρησιμοποιηθούν με πολλούς τρόπους και είναι χρήσιμες για τη συντήρηση του μοντέλου, και αυτό μπορεί να επιτευχθεί με το να οριστεί ένα συγκεκριμένο τμήμα του μοντέλου με μακροεντολή, το οποίο θα δώσει τη δυνατότητα στο χρήστη να χρησιμοποιήσει το συγκεκριμένο τμήμα επανειλημμένα. Οι μακροεντολές μπορούν να χρησιμοποιηθούν με σκοπό να δώσουν σε περίπλοκες εκφράσεις ένα μοναδικό όνομα και ο χρήστης μπορεί να αναφέρεται σε αυτές τις εκφράσεις μέσα στο μοντέλο μέσω των μακροεντολών. Επίσης μπορούν να χρησιμοποιηθούν με σκοπό να εξαλειφθούν περιττοί περιορισμοί από το μοντέλο και επομένως μειώνεται το μέγεθος του προβλήματος που θα πρέπει να λυθεί .

78

Page 79: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΧΡΗΣΗ ΜΑΚΡΟΕΝΤΟΛΩΝ (MACROS)

Για παράδειγμα:

MACRO TotalRevenue := SUM (product,month : price * Sales); TotalCost :=SUM(product,month := InventoryCost * Inventory

+ ProductionCost * Production) ;

MODEL MAX Profit = TotalRevenue - TotalCost ;

Στο παραπάνω παράδειγμα ορίζουμε την μακροεντολή TotalRevenue που αναφέρεται στα συνολικά έσοδα και την μακροεντολή TotalCost που αναφέρεται στα συνολικά έξοδα. Οπότε όταν θα ορίσουμε την αντικειμενική συνάρτηση η οποία θα υπολογίζει το μέγιστο κέρδος, θα χρησιμοποιήσουμε τις μακροεντολές που έχουμε ήδη ορίσει.

79

Page 80: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΠΑΡΑΔΕΙΓΜΑΤΑ

ΠΡΟΒΛΗΜΑ ΜΕΤΑΦΟΡΑΣ (TRANSPORTATION PROBLEM) Μια εταιρεία παράγει ένα προϊόν και θέλει να το μεταφέρει

από δύο αποθήκες (S1 & S2) σε τρεις αγορές (D1,D2 & D3). Η χωρητικότητα των αποθηκών (S1 & S2) είναι 200 και 300 τόνοι αντίστοιχα. Ενώ η ζήτηση των αγορών (D1,D2 & D3) είναι 150,200 και 150 τόνοι αντίστοιχα. Το κόστος μεταφοράς του προϊόντος από τις αποθήκες στις αγορές παρουσιάζεται στον παρακάτω πίνακα:

Ορίστε το μοντέλο που θα επιτρέπει στην εταιρεία να ελαχιστοποιήσει το συνολικό κόστος μεταφοράς. Υλοποιήστε το μοντέλο στην MPL και επιλύστε το.

D1 D2 D3

S1 10 12 15

S2 14 10 16

Κόστος μεταφοράς(€/τόνο)

80

Page 81: ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ

Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών

ΠΑΡΑΔΕΙΓΜΑΤΑ

ΠΡΟΒΛΗΜΑ ΕΛΑΧΙΣΤΟΥ ΚΟΣΤΟΥΣ ΡΟΗΣ (MINIMUM COST FLOW)

Το παρακάτω προσανατολισμένο γράφημα G(V,A), το οποίο αποτελείται από ένα σύνολο από κόμβους (V), και συνδέσμους (A), αναπαριστά ένα δίκτυο ροής (network flow). Κάθε σύνδεσμος (i,j) έχει συγκεκριμένο μοναδιαίο κόστος και χωρητικότητα (cij, uij για i,jͼ V) και κάθε κόμβος έχει συγκεκριμένη προσφορά ή ζήτηση (bi iͼ V). Καθορίστε το ελάχιστο κόστος ροής μέσα στο δίκτυο ικανοποιώντας τις απαιτήσεις σε προσφορά και ζήτηση. Υλοποιήστε το μοντέλο στην MPL και επιλύστε το.2

3

1

(7,25)

(6,20)

(1,20)

(5,25)

(2,15)

25

0

0

4 -25

81