Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΑΘΗΜΑ: Mathematical."— Μεταγράφημα παρουσίασης:

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

2 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΑΝΑΛΥΣΗ & ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΦΟΡΩΝ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL 2. ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL 3. ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL 4. ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) 5. ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) 6. ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES) 7. ΧΡΗΣΗ ΑΘΡΟΙΣΜΑΤΩΝ (SUM) 8. ΑΝΤΙΚΕΙΜΕΝΙΚΗ ΣΥΝΑΡΤΗΣΗ (Objective Function) 9. ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints) 10. ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ ΚΑΙ ΠΑΡΑΜΕΤΡΩΝ ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ 11. ΧΡΗΣΗ ΜΑΚΡΟΕΝΤΟΛΩΝ (MACROS) 12. ΠΑΡΑΔΕΙΓΜΑΤΑ 2

3 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL Τι είναι η MPL;  Η MPL είναι ένα προηγμένο σύστημα μοντελοποίησης που επιτρέπει στο χρήστη του συστήματος τη διαμόρφωση πολύπλοκων μοντέλων βελτιστοποίησης με σαφή, συνοπτικό και αποτελεσματικό τρόπο.  Η MPL περιλαμβάνει μια αλγεβρική γλώσσα μοντελοποίησης που επιτρέπει στο χρήστη του συστήματος τη δημιουργία μοντέλων βελτιστοποίησης με χρήση αλγεβρικών εξισώσεων.  Αλγεβρικές γλώσσες βελτιστοποίησης, όπως η MPL, είναι οι πιο αποτελεσματικές μέθοδοι για την ανάπτυξη και τη συντήρηση μοντέλων βελτιστοποίησης, επειδή είναι πιο εύκολο να τις μάθεις, πιο γρήγορο να διαμορφώσεις τα μοντέλα και απαιτούν λιγότερο προγραμματισμό. 3

4 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL Χαρακτηριστικά MPL  Διεπαφή του χρήστη σε παραθυρικό περιβάλλον (Microsoft Windows).  Μπορεί να εισάγει και να εξάγει δεδομένα απευθείας από ή προς βάσεις δεδομένων ή υπολογιστικά φύλλα. Οι βάσεις δεδομένων που υποστηρίζει είναι οι: Microsoft Access and Excel, ODBC, Paradox, FoxPro, Dbase, SQL Sever και Oracle. 4

5 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL  Έχει σχεδιαστεί για να είναι φορητή (μπορεί να διαβαστεί σε οποιαδήποτε πλατφόρμα που υποστηρίζει την MPL). Υπάρχει διαθέσιμη έκδοση και για Unix περιβάλλον (OSF Motif).  H MPL μπορεί να χειριστεί εύκολα και γρήγορα πολύ μεγάλους πίνακες με εκατομμύρια μεταβλητές και περιορισμούς (πλήρη έκδοση). Ενώ στην περίπτωση της δοκιμαστικής έκδοσης (student/ trial version) υπάρχει ο περιορισμός του μεγέθους (300 μεταβλητές/ περιορισμοί).  Επιτρέπει στο χρήστη να διαμορφώσει το μοντέλο του και στη συνέχεια να επιλέξει τη μηχανή βελτιστοποίησης (CPLEX, LPSolve, GUROBI, XPRESS solver) που επιθυμεί για να επιλύσει το μοντέλο.  Τα αποτελέσματα ανακτώνται αυτόματα από τη μηχανή βελτιστοποίησης (solver) και εμφανίζονται, παρέχοντας στο χρήστη άμεση ανατροφοδότηση. 5

6 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΕΙΣΑΓΩΓΗ ΣΤΗΝ MPL OptiMax Component Library  Η OptiMax είναι μια αντικειμενοστραφής βιβλιοθήκη συστατικών, σχεδιασμένη να ενσωματώνει μοντέλα βελτιστοποίησης σε ποικίλες πλατφόρμες όπως VBA για Excel/Access, Visual Basic, Visual C++, Delphi, Java και σε γλώσσες προγραμματισμού για το διαδίκτυο. 6

7 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL  ΒΗΜΑ 1 ο Άνοιγμα εφαρμογής MPL για Windows 4.2 και δημιουργία καινούριου αρχείου MPL.  ΒΗΜΑ 2 ο Δήλωση δεικτών, μεταβλητών, παραμέτρων, αντικειμενικής συνάρτησης και περιορισμών.  ΒΗΜΑ 3 ο Αποθήκευση αρχείου MPL.  ΒΗΜΑ 4 ο Συντακτικός έλεγχος του μοντέλου. 7

8 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL  ΒΗΜΑ 5 ο Επίλυση και εμφάνιση των λύσεων του μοντέλου.  ΒΗΜΑ 6 ο Εμφάνιση στατιστικών στοιχείων, μεταβλητών, παραμέτρων, αντικειμενικής συνάρτησης και περιορισμών του μοντέλου.  ΒΗΜΑ 7 ο Εμφάνιση γραφικής παράστασης του πίνακα και της αντικειμενικής συνάρτησης. 8

9 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 1 ο  Ανοίγουμε την εφαρμογή MPL for Windows 4.2. Μετά το άνοιγμα της εφαρμογής, θα εμφανιστεί το βασικό μενού. Το βασικό μενού προσφέρει τις ακόλουθες ενέργειες στο χρήστη : • File //άνοιγμα, αποθήκευση και εκτύπωση αρχείων. • Edit //αναίρεση, αποκοπή, αντιγραφή και επικόλληση. • Search //αναζήτηση, αντικατάσταση. • Project //άνοιγμα, αποθήκευση και κλείσιμο project. • Run //εκκίνηση μηχανής βελτιστοποίησης (solver), έλεγχος συντακτικών λαθών και δημιουργία εισόδου. • View //εμφάνιση λύσης στην οθόνη. • Graph //εμφάνιση γραφικής παράστασης. • Options //αλλαγή προεπιλεγμένων επιλογών του MPL. • Window //χειρισμός πολλαπλών παραθύρων. • Help //βοήθεια.  ΒΗΜΑ 2 ο 9

10 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 1 ο  Ο χρήστης έχει τη δυνατότητα να δημιουργήσει ένα καινούριο αρχείο MPL, μέσω της επιλογής File → New. 10

11 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 2 ο  Ακολουθεί η δήλωση των δεικτών, των μεταβλητών, των παραμέτρων, της αντικειμενικής συνάρτησης και των περιορισμών(η ονομασία τους πρέπει να είναι μοναδική και υπάρχει διάκριση πεζών και κεφαλαίων γραμμάτων). 11

12 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 3 ο  Ο χρήστης αποθηκεύει το αρχείο MPL που δημιούργησε μέσω της επιλογής Save και Save As. 12

13 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 4 ο  Έλεγχος του μοντέλου για συντακτικά λάθη, επιλέγοντας Run → Check Syntax. • Σε περίπτωση που το μοντέλο δεν έχει συντακτικά λάθη. 13

14 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 4 ο • Σε περίπτωση που το μοντέλο έχει συντακτικά λάθη. 14

15 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 5 ο  Εφόσον το μοντέλο δεν έχει συντακτικά λάθη, ακολουθεί η επίλυση του μοντέλου, μέσω της επιλογής Run → Solve. 15

16 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 5 ο  Η MPL μετά την επίλυση του μοντέλου δημιουργεί ένα αρχείο με τις λύσεις, ο χρήστης έχει τη δυνατότητα να δει τις λύσεις επιλέγοντας View → Files → όνομα αρχείου.sol. 16

17 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 6 ο  H MPL επιτρέπει στο χρήστη να δει τα στατιστικά του μοντέλου, επιλέγοντας View → Model Statistics. 17

18 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 6 ο  Ο χρήστης έχει τη δυνατότητα να δει τα στοιχεία (μεταβλητές, παραμέτρους, αντικειμενική συνάρτηση κ.α.) που όρισε για τη διαμόρφωση του μοντέλου, επιλέγοντας View → Model Definitions. 18

19 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΒΑΣΙΚΑ ΒΗΜΑΤΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΣΤΗΝ MPL : ΒΗΜΑ 7 ο  Τέλος η MPL επιτρέπει στο χρήστη να δει τη γραφική παράσταση του πίνακα και της αντικειμενικής συνάρτησης, επιλέγοντας Graph → Matrix / Objective Function. 19

20 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL  Το αρχείο του μοντέλου MPL περιλαμβάνει τα ακόλουθα Τμήματα Δηλώσεων: i. το τμήμα δήλωσης των δεικτών, ii. το τμήμα δήλωσης των παραμέτρων, iii. το τμήμα δήλωσης των μεταβλητών, iv. το τμήμα δήλωσης της αντικειμενικής συνάρτησης και των περιορισμών του μοντέλου 20

21 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL Τμήμα δήλωσης δεικτών, παραμέτρων και μεταβλητών (The Definition Part) Το Τμήμα δήλωσης δεικτών, παραμέτρων και μεταβλητών χρησιμοποιείται με σκοπό να οριστούν τα στοιχεία που θα χρησιμοποιηθούν αργότερα στο μοντέλο και αποτελείται από: TITLE // Όνομα του προβλήματος INDEX // Σύνολα του προβλήματος DATA // Παράμετροι DECISION VARIABLES // Μεταβλητές αποφάσεων MACRO // Μακροεντολές για επαναλαμβανόμενα τμήματα 21

22 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL Για παράδειγμα: TITLE TransportationProblem ; INDEX supply:=(S1,S2) ; dest:= (D1,D2,D3) ; DATA CapacityS[supply]:= (200,300) ; Demand[dest]:= (150,200,150) ; TransCostSD[supply, dest]:= (10,12,15, 14,10,16) ; DECISION VARIABLES ShipSD[supply, dest] ; 22

23 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL Τμήμα δήλωσης αντικειμενικής συνάρτησης και περιορισμών (The Model Part) Η δήλωση της αντικειμενικής συνάρτησης και των περιορισμών πρέπει να εμφανίζεται αμέσως μετά τη δεσμευμένη λέξη: “MODEL”. • Η εντολή MODEL είναι προαιρετική, παρόλα αυτά είναι χρήσιμο να εισάγεται στην αρχή της διαμόρφωσης του μοντέλου. • Η προσθήκη MAX (μεγιστοποίηση) ή MIN (ελαχιστοποίηση) προηγείται της δήλωσης της αντικειμενικής συνάρτησης. • Η χρήση της εντολής END σηματοδοτεί τον τερματισμό του μοντέλου. 23

24 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL Τμήμα δήλωσης της αντικειμενικής συνάρτησης και των περιορισμών MODEL MAX or MIN {Αντικειμενική συνάρτηση} SUBJECT TO BOUNDS {Ανώτερα και κατώτερα όρια μεταβλητών} FREE {Ελεύθερες μεταβλητές} INTEGER {Ακέραιες μεταβλητές} BINARY {Δυαδικές μεταβλητές (0/1)} END 24

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

26 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL  Αριθμοί H MPL επιτρέπει την εισαγωγή είτε πραγματικών αριθμών είτε ακεραίων. Για παράδειγμα: • 10 • 5.64 • -0.657 • 25.0  Ονόματα Τα ονόματα των περιορισμών και των μεταβλητών μπορούν να έχουν οποιοδήποτε μέγεθος. Δεν επιτρέπεται η χρήση κενών διαστημάτων ανάμεσα σε ένα όνομα, εξαίρεση αποτελεί η χρήση του χαρακτήρα της κάτω παύλας(_). 26

27 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL Παραδείγματα ορθής και λανθασμένης ονομασίας: • Constraint • cons1A_A • PROFIT • constraint 1 x • constaint2 • demand 1_ x • B_constraint1 • A _capacity x • consAB 27

28 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΜΑΘΗΜΑΤΙΚΟΥ ΜΟΝΤΕΛΟΥ ΣΤΗΝ MPL  Εισαγωγή σχολίων Το σχόλιο είναι μέρος ενός αρχείου το οποίο η MPL δεν επεξεργάζεται. Σχόλια μπορούν να εισαχθούν σε οποιοδήποτε μέρος του αρχείου. Οι βασικοί τύποι σχολίων είναι οι εξής: • Σχόλια μίας γραμμής : ! Τα σχόλια μίας γραμμής χρησιμοποιούνται για να προσθέσουν σχόλια σε μία γραμμή ή σε κάποιο κομμάτι μίας γραμμής ενός κειμένου. • Σχόλια πολλαπλών γραμμών : {...} Τα σχόλια για πολλαπλές γραμμές χρησιμοποιούνται για να προσθέσουν σχόλια σε πολλές γραμμές του κειμένου. 28

29 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) Στην MPL αναγνωρίζονται δύο βασικοί τύποι συνόλων: τα αριθμητικά σύνολα και τα σύνολα ονομάτων.  Τα αριθμητικά σύνολα (Numeric Indexes) περιλαμβάνουν ακέραιους αριθμούς. Οι αριθμοί δεν πρέπει να είναι αρνητικοί και ο δεύτερος αριθμός πρέπει να είναι μεγαλύτερος από τον πρώτο. Τα αριθμητικά σύνολα ορίζονται στο τμήμα δηλώσεων “INDEX” με τον ακόλουθο τρόπο: {όνομα συνόλου} := a..b ; Για παράδειγμα: INDEX warehouse_id :=1..4 ; 29

30 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) Εναλλακτικά ένα αριθμητικό σύνολο δηλώνεται και ως ακολούθως: {όνομα συνόλου} := (a 1,a 2,,a k ) ; Για παράδειγμα: INDEX warehouse_id :=(1,2,3,4) ; 30

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

32 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)  Το όνομα ενός συνόλου χρησιμοποιείται και ως δείκτης. H MPL δίνει τη δυνατότητα στο χρήστη να ορίσει περισσότερους από έναν δείκτες. Κάθε δείκτης ορίζεται στο τμήμα δηλώσεων “INDEX” με τον ακόλουθο τρόπο: {όνομα δείκτη}:= {όνομα συνόλου} ;  Για παράδειγμα: INDEX location:= (A, B, C) ; destination:= location ; depot:= location ; 32

33 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES)  Με βάση τα παραπάνω δεδομένα μπορούμε να ορίσουμε μια μεταβλητή απόφασης (DECISION VARIABLES), που περιγράφει το κόστος μεταφοράς από ένα σταθμό (depot) σε ένα προορισμό (destination): DECISION VARIABLES shipcost[depot, destination]; 33

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

35 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) Δημιουργία πολυδιάστατων συνόλων (Multi-dimensional Index Sets)  Με δεδομένα κ σύνολα Σ 1, Σ 2, το 2-διάστατο σύνολο ορίζεται ως ακολούθως: {όνομα κ-διάστατου συνόλου} [{Σ 1 }, {Σ 2 }] := (στοιχείο11, στοιχείο12,..., στοιχείο1m 2, στοιχείο21, στοιχείο22,..., στοιχείο2m 2,......... στοιχείοm 1 1, στοιχείο m 1 2,..., στοιχείο m 1 m 2 ) ; 35

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

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

38 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) Ορισμός συνόλων υπό συνθήκη (Conditional sets)  Στο παραπάνω παράδειγμα δημιουργήσαμε ένα σύνολο BestRoutes, το οποίο περιλαμβάνει τα δρομολόγια ανάμεσα σε παραγωγούς (plants) και αποθήκες (warehouses), τα οποία έχουν κόστος μεταφοράς μικρότερο του 2400.  Ειδικότερα το παραπάνω σύνολο (BestRoutes) θα αποτελείται από τα εξής στοιχεία: • Atlanta.Pittsburgh • Atlanta.Memphis • Chicago.Pittsburgh • Dallas.Charlotte • Dallas.Memphis 38

39 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) Οι παράμετροι του μοντέλου δηλώνονται στο τμήμα δηλώσεων “DATA”. Υπάρχουν 2 διαφορετικοί τύποι παραμέτρων που αναγνωρίζει η MPL: τις απλές παραμέτρους (Data Constants) και τις πολυδιάστατες παραμέτρους (Data Vectors).  Οι απλές παράμετροι (Data Constants) μπορούν να οριστούν με 2 διαφορετικούς τρόπους: i. Εκχωρώντας τιμές στις παραμέτρους. Στην συγκεκριμένη περίπτωση οι απλές παράμετροι ορίζονται με τον ακόλουθο τρόπο: {όνομα παραμέτρου} := α ; όπου α R Για παράδειγμα: DATA TransportationCost := 5 ; 39

40 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ii. Διαδραστικά, ζητώντας από το χρήστη να εισάγει την τιμή που επιθυμεί όταν το αρχείο του μοντέλου διαβάζεται. Στην περίπτωση που οι παράμετροι ορίζονται διαδραστικά, εισάγουμε ένα αγγλικό ερωτηματικό (?) μετά την τιμή της παραμέτρου. Για παράδειγμα: DATA MaxStocks:= 10 ? ; 40

41 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA)  Παράδειγμα διαδραστικής εκχώρησης τιμής σε απλές παραμέτρους:  Η τιμή της παραμέτρου MaxStocks ζητείται κατά το χρόνο εκτέλεσης του προγράμματος, όπου εμφανίζεται ένα παράθυρο διαλόγου (Data Request Dialog) και ο χρήστης εισάγει την τιμή της παραμέτρου. 41

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

43 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) Θα πρέπει να υπάρχουν αρκετοί αριθμοί για να ικανοποιήσουν το μέγεθος του διανύσματος. Σε περίπτωση ύπαρξης επιπρόσθετων τιμών, οι τιμές επιτρέπονται αλλά αγνοούνται, αντιθέτως όταν οι τιμές είναι λιγότερες από το μέγεθος του διανύσματος τότε εμφανίζεται σφάλμα. Στο παρακάτω παράδειγμα, χρησιμοποιείται ο πολλαπλασιαστής 1000. INDEX warehouse:= (China, Bulgaria, Greece); DATA cost[warehouse]:= 1000(200,150,400); Οι πραγματικές τιμές του διανύσματος είναι: (200000, 150000, 400000). 43

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

45 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)  Οι μεταβλητές αποφάσεων ορίζονται στο τμήμα δηλώσεων “DECISION VARIABLES”.  Κάθε μεταβλητή μπορεί να έχει οποιοδήποτε μέγεθος. Ξεκινάει με γράμμα και το υπόλοιπο αποτελείται από γράμματα και ψηφία.  Υπάρχουν 2 τύποι μεταβλητών αποφάσεων (decision variables): απλές μεταβλητές (plain variables) και πολυδιάστατες μεταβλητές (vector variables). Απλές Μεταβλητές (plain variables) • Κάθε απλή μεταβλητή έχει την ακόλουθη μορφή: {όνομα μεταβλητής} [{όνομα συνόλου}]; Για παράδειγμα: Invest[stock] ; 45

46 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES) Πολυδιάστατες μεταβλητές (vector variables). • Οι πολυδιάστατες μεταβλητές αναφέρονται σε ένα εύρος στηλών. • Οι πολυδιάστατες μεταβλητές πρέπει να ορίζονται προτού χρησιμοποιηθούν στο μοντέλο. • Κάθε πολυδιάστατη μεταβλητή έχει την ακόλουθη μορφή: {όνομα πολυδιάστατης μεταβλητής} [{όνομα συνόλου1, όνομα συνόλου2,..., όνομα συνόλουκ}] ; Για παράδειγμα: DECISION VARIABLES ShipWM[producer, warehouse]; Στο συγκεκριμένο παράδειγμα ορίζουμε μια μεταβλητή απόφασης ShipWM, η οποία αναφέρεται στη ποσότητα που μεταφέρεται από το producer (προμηθευτή) στο warehouse (αποθήκη). 46

47 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)  Επειδή το μέγεθος των ονομάτων των μεταβλητών στις περισσότερες μηχανές βελτιστοποίησης (LP solver) δεν ξεπερνά τους 8 χαρακτήρες, μπορεί να χρησιμοποιηθεί ο τελεστής → για να εισάγουμε μικρότερο όνομα. Για παράδειγμα: DECISION VARIABLES Production[product,month] -> Prod ; 47

48 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)  Ορισμός μεταβλητών με υποσυνθήκη συνόλα  Όταν οι δείκτες ανήκουν σε κάποιο υποσύνολο: Για παράδειγμα: INDEX Nodes:=(1,2,3,4); i[Nodes]; j[Nodes]; link[i,j]:=((1,2),(1,4),(1,3),(2,3),(3,2)); DECISION VARIABLE X[link]; 48

49 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)  Όταν οι δείκτες ορίζονται από αλγεβρική παράσταση παραμέτρων:  Σε αυτές τις περιπτώσεις γίνεται χρήση της συνθήκης WHERE. Η συνθήκη WHERE χρησιμοποιείται όταν ο χρήστης θέλει να περιορίσει τον αριθμό των μεταβλητών που θα οριστούν. Για παράδειγμα: DECISION VARIABLES Production[product, month] WHERE (Demand[product, month]>0) ; 49

50 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES) Πιο συγκεκριμένα: INDEX Nodes:=(1,2,3,4); i[Nodes]; j[Nodes]; DATA cost[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

51 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)  Όταν οι δείκτες ορίζονται από αλγεβρική παράσταση δεικτών: Για παράδειγμα: INDEX Nodes:=(1,2,3,4); i[Nodes]; j[Nodes]; DATA cost[i,j]:=(0,2,2,3, 2,0,3,5, 3,4,0,5, 2,5,7,0) ; INDEX newset[i,j] WHERE (cost[i,j]>0) ; N[newset]; DECISION VARIABLE Y[N] ; 51

52 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES) Ακέραιες/Δίτιμες μεταβλητές (Integer /Binary Variables)  Σε περίπτωση που κάποιες μεταβλητές του μοντέλου είναι ακέραιες, μπορούμε να τις ορίσουμε, χρησιμοποιώντας την εντολή INTEGER. Με τον ίδιο τρόπο μπορούμε να ορίσουμε και δίτιμες (δυαδικές) μεταβλητές, χρησιμοποιώντας την εντολή BINARY.Το συγκεκριμένο τμήμα μπορεί να τοποθετηθεί οπουδήποτε μετά το τμήμα των περιορισμών. Για παράδειγμα: INTEGER Production[month, product] ; BINARY Open[warehouse] ; 52

53 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES)  Εξαγωγή τιμών μεταβλητών σε αρχεία δεδομένων Μετά τη βελτιστοποίηση του προβλήματος, η MPL επιτρέπει την εξαγωγή των τιμών των μεταβλητών σε ξεχωριστά αρχεία δεδομένων. Αυτό επιτυγχάνεται με την εντολή EXPORT TO ακολουθούμενη από την εντολή SPARSEFILE. 53

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

55 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΑΠΟΦΑΣΕΩΝ (DECISION VARIABLES) Για παράδειγμα: DECISION VARIABLES SheetsCuts [cuts] EXPORT TO EXCELRANGE (“CutStock.xls”,“SheetsToCut”) ; Στο παραπάνω παράδειγμα, η MPL ανοίγει το υπολογιστικό φύλλο CutStock.xls, εντοπίζει την περιοχή SheetsToCut και εξάγει τις λύσεις της πολυδιάστατης μεταβλητής SheetsCuts. 55

56 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΧΡΗΣΗ ΑΘΡΟΙΣΜΑΤΩΝ (SUM)  Τα αθροίσματα χρησιμοποιούνται όταν θέλουμε να αθροίσουμε διανύσματα.  Μπορούν να χρησιμοποιηθούν και στο τμήμα δήλωσης της αντικειμενικής συνάρτησης αλλά και στο τμήμα των περιορισμών.  Στον τύπο της άθροισης μπορούν να περιλαμβάνονται και μεταβλητές και πολυδιάστατοι παράμετροι. Για παράδειγμα:  MIN TotalCost= SUM(supply,destination: TransCostSD * ShipSD) ; Στο παραπάνω παράδειγμα επιθυμούμε την ελαχιστοποίηση του συνολικού κόστους. Το συνολικό κόστος προκύπτει από το άθροισμα των γινομένων της ποσότητας που μεταφέρεται (ShipSD) με το κόστος μεταφοράς (TransCostSD) από τον προμηθευτή (supply) σε ένα προορισμό (destination). 56

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

58 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)  Οι περιορισμοί δηλώνονται στο τμήμα δηλώσεων “SUBJECT TO”.  Υπάρχουν δύο είδη περιορισμών: οι απλοί περιορισμοί (plain constraints) και οι πολυδιάστατοι περιορισμοί (Vector Constraints). Απλοί περιορισμοί (plain constraints)  Οι απλοί περιορισμοί ορίζονται ως ακολούθως: {όνομα περιορισμού} { =, } {τιμή}; Για παράδειγμα: constraint <= 8000;  Ο χρήστης μπορεί να δώσει όνομα (οποιοδήποτε μεγέθους) σε περιορισμό, όμως το όνομα δεν πρέπει να περιλαμβάνει κενά και διαχωριστικά. 58

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

60 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)  Ορισμός περιορισμών με υποσυνθήκη συνόλα  Όταν οι δείκτες ορίζονται με αλγεβρική παράσταση παραμέτρων: Για παράδειγμα: INDEX Nodes:=(1,2,3,4); i[Nodes]; j[Nodes]; link[i,j]:=((1,2),(1,4),(1,3),(2,3),(3,2)); DATA cost[i,j]:=(0,2,2,3, 2,0,3,5, 3,4,0,5, 2,5,7,0) ; DECISION VARIABLE X[link]; SUBJECT TO constraint1[i,j] WHERE (cost[i,j]>0) : SUM(link:X[link])=0 ; 60

61 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)  Όταν οι δείκτες ορίζονται με αλγεβρική παράσταση δεικτών: Για παράδειγμα: INDEX Nodes:=(1,2,3,4); i[Nodes]; j[Nodes]; link[i,j]:=((1,2),(1,4),(1,3),(2,3),(3,2)); DATA cost[i,j]:=(0,2,2,3 2,0,3,5 3,4,0,5 2,5,7,0) ; INDEX newset[i,j] WHERE (cost[i,j]>0) ; N[newset]; DECISION VARIABLE X[link]; SUBJECT TO constraint2[Ν] : SUM(link:X[link])=0 ; 61

62 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ/ ΟΡΙΣΜΟΣ ΠΕΡΙΟΡΙΣΜΩΝ (Specifying Constraints)  Όταν ο χρήστης ορίζει ένα περιορισμό, κάνει χρήση συγκεκριμένων τελεστών: Τελεστές Μεγαλύτερο> Μεγαλύτερο ίσο>= Ισότητα= Μικρότερο< Μικρότερο ίσο<= 62

63 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ Δημιουργία συνόλου με στοιχεία που προέρχονται από εξωτερικό αρχείο:  Ο χρήστης μπορεί να δηλώσει και να ορίσει ένα σύνολο, τα στοιχεία του οποίου θα προέρχονται από ένα εξωτερικό αρχείο, χρησιμοποιώντας την εντολή INDEXFILE ως ακολούθως: {όνομα συνόλου} := INDEXFILE(“όνομα αρχείου.dat”); Στο παρακάτω παράδειγμα ορίζουμε ένα σύνολο producer του οποίου τα στοιχεία θα προέρχονται από το αρχείο producer.dat. INDEX producer := INDEXFILE(“producer.dat”); 63

64 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Τα στοιχεία του συνόλου εντός του αρχείου θα πρέπει να είναι γραμμένα με διάταξη στήλης χωριζόμενα με ένα κόμμα. Για παράδειγμα: 64

65 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Σε περιπτώσεις που το αρχείο του οποίου τα στοιχεία θέλουμε να διαβάσουμε περιλαμβάνει πολλές στήλες, η MPL επιτρέπει στο χρήστη να επιλέξει τη στήλη πoυ αυτός επιθυμεί προσθέτοντας ένα κόμμα και τον αριθμό της στήλης. Για παράδειγμα: INDEX producer := INDEXFILE(“producer.dat”,2); 65

66 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ Δημιουργία συνόλου με στοιχεία που προέρχονται από υπολογιστικό φύλλο (Excel Spreadsheet):  Η MPL επιτρέπει στο χρήστη να εισάγει στοιχεία σε ένα σύνολο από ένα υπολογιστικό φύλλο (Excel Spreadsheet). Στο τμήμα δηλώσεων “INDEX” που ορίζουμε το σύνολο, εισάγουμε την εντολη EXCELRANGE και μέσα σε παρένθεση το όνομα του αρχείου Excel και το όνομα της περιοχής του αρχείου Excel της οποίας τα στοιχεία επιθυμούμε να περιέχει το σύνολο με τον ακόλουθο τρόπο: {όνομα συνόλου} := EXCELRANGE(“όνομα υπολογιστικού φύλλου εργασίας”, “όνομα περιοχής του υπολογιστικού φύλλου ”) ; 66

67 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Για παράδειγμα: INDEX warehouse := EXCELRANGE(“warehouse.xls”, “warehouserange”); Στο συγκεκριμένο παράδειγμα, η MPL ανοίγει το υπολογιστικό φύλλο εργασίας warehouse.xls, εντοπίζει το warehouserange και στη συνέχεια διαβάζει τις καταχωρήσεις που υπάρχουν στο αρχείο αυτό και θα αποτελέσουν τα στοιχεία του συνόλου warehouse. 67

68 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Το υπολογιστικό φύλλο εργασίας θα έχει την ακόλουθη μορφή: 68

69 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΣΥΝΟΛΩΝ/ ΔΕΙΚΤΩΝ (INDEXES) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Η εντολή EXCELRANGE διαβάζει κάθε κελί του συγκεκριμένου αρχείου Excel και της περιοχής που μας ενδιαφέρει, μέχρι να εντοπίσει κενό κελί. Σε περιπτώση που ο χρήστης θέλει να διαβάσει στοιχεία από μια συγκεκριμένη στήλη της περιοχής του αρχείου Excel, τότε θα πρέπει να ακολουθήσει την παρακάτω αλληλουχία εντολών: INDEX warehouse := EXCELRANGE(“warehouse.xls”, “warehouserange”, 2); Στη παραπάνω περίπτωση θα διαβαστεί μόνο η δεύτερη στήλη του warehouserange. 69

70 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Όπως και στην περίπτωση των συνόλων, έτσι και στην περίπτωση των παραμέτρων, η MPL επιτρέπει στο χρήστη να εισάγει απλές παραμέτρους από εξωτερικά αρχεία ή υπολογιστικά φύλλα (Excel Spreadsheet). Ο χρήστης μπορεί να δηλώσει και να ορίσει μία απλή παράμετρο, τα στοιχεία της οποίας θα προέρχονται από ένα εξωτερικό αρχείο, χρησιμοποιώντας την εντολή DATAFILE ως ακολούθως: {όνομα παραμέτρου} := DATAFILE(“όνομα αρχείου.dat”) ; Για παράδειγμα: DATA NumberofWarehouses := DATAFILE(“warehouses.dat”); 70

71 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ Ανάγνωση παραμέτρων από αρχείο κειμένου  Η MPL υποστηρίζει την ανάγνωση παραμέτρων που προέρχονται από αρχεία κειμένου. Όπως και στην περίπτωση των συνόλων, έτσι και στην περίπτωση των παραμέτρων για να διαβαστούν οι παράμετροι από αρχειο κειμένου χρησιμοποιείται η εντολή DATAFILE ως ακολούθως: {όνομα παραμέτρου} [{όνομα συνόλου}] := DATAFILE(“αρχείο κειμένου.dat ”) ; Για παράδειγμα: DATA TranspCost[depot, destination] := DATAFILE(“transcost.dat”) ; 71

72 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Τα στοιχεία του συνόλου εντός του αρχείου θα πρέπει να είναι γραμμένα με διάταξη στήλης χωριζόμενα με ένα κόμμα. 72

73 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Το αρχείο κειμένου από το οποίο θα πραγματοποιηθεί η ανάγνωση των παραμέτρων μπορεί να έχει είτε πυκνή μορφή (dense format) είτε αραιή μορφή (sparse format).  Στην περίπτωση της πυκνής μορφής (dense format) το αρχείο κειμένου αποτελείται μόνο από τιμές (values). 73

74 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Ενώ στην περίπτωση της αραιής μορφής το αρχείο κειμένου αποτελείται όχι μόνο από τιμές αλλά και από δείκτες.  Σε αυτήν την περίπτωση χρησιμοποιείται η εντολή SPARSEFILE αντί της της DATAFILE. Για παράδειγμα: DATA TransCost[Plant, Producer] := SPARSEFILE(“transcost.dat”) ; 74

75 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ  Όπως και στην περίπτωση των συνόλων, ο χρήστης έχει τη δυνατότητα να επιλέξει τη στήλη πoυ αυτός επιθυμεί προσθέτοντας ένα κόμμα και τον αριθμό της στήλης.  Για παράδειγμα: DATA TransCost[Plant, Producer] := SPARSEFILE(“transcost.dat”,3) ; Το αρχείο “transcost.dat” θα έχει την παρακάτω μορφή: Kostas, George, 500, Nick, John, 200, Michael, Dimitris, 300 75

76 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ (DATA) ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΑΡΧΕΙΟ Ανάγνωση παραμέτρων από υπολογιστικό φύλλο (Excel Spreadsheet)  Η MPL επιτρέπει στο χρήστη να διαβάζει παραμέτρους από ένα υπολογιστικό φύλλο (Excel Spreadsheet) με τον ακόλουθο τρόπο: {όνομα παραμέτρου} [{όνομα συνόλου}] := EXCELRANGE(“όνομα υπολογιστικού φύλλου εργασίας”, “όνομα περιοχής του υπολογιστικού φύλλου ”) ; Για παράδειγμα: DATA DemandCustomer[product,month] := EXCELRANGE(“customer.xls”, “demand”) ; Στο παραπάνω παράδειγμα η MPL ανοίγει το υπολογιστικό φύλλο customer.xls, εντοπίζει την περιοχή demand και στη συνέχεια διαβάζει τα στοιχεία με βάση τα οποία θα δημιουργηθεί η πολυδιάστατη παράμετρος. 76

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

78 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΧΡΗΣΗ ΜΑΚΡΟΕΝΤΟΛΩΝ (MACROS) Οι μακροεντολές (Macros) είναι σημαντικό χαρακτηριστικό της γλώσσας μαθηματικού προγραμματισμού MPL γιατί:  Μπορούν να χρησιμοποιηθούν με πολλούς τρόπους και είναι χρήσιμες για τη συντήρηση του μοντέλου, και αυτό μπορεί να επιτευχθεί με το να οριστεί ένα συγκεκριμένο τμήμα του μοντέλου με μακροεντολή, το οποίο θα δώσει τη δυνατότητα στο χρήστη να χρησιμοποιήσει το συγκεκριμένο τμήμα επανειλημμένα.  Οι μακροεντολές μπορούν να χρησιμοποιηθούν με σκοπό να δώσουν σε περίπλοκες εκφράσεις ένα μοναδικό όνομα και ο χρήστης μπορεί να αναφέρεται σε αυτές τις εκφράσεις μέσα στο μοντέλο μέσω των μακροεντολών.  Επίσης μπορούν να χρησιμοποιηθούν με σκοπό να εξαλειφθούν περιττοί περιορισμοί από το μοντέλο και επομένως μειώνεται το μέγεθος του προβλήματος που θα πρέπει να λυθεί. 78

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

80 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΡΟΒΛΗΜΑ ΜΕΤΑΦΟΡΑΣ (TRANSPORTATION PROBLEM)  Μια εταιρεία παράγει ένα προϊόν και θέλει να το μεταφέρει από δύο αποθήκες (S1 & S2) σε τρεις αγορές (D1,D2 & D3). Η χωρητικότητα των αποθηκών (S1 & S2) είναι 200 και 300 τόνοι αντίστοιχα. Ενώ η ζήτηση των αγορών (D1,D2 & D3) είναι 150,200 και 150 τόνοι αντίστοιχα. Το κόστος μεταφοράς του προϊόντος από τις αποθήκες στις αγορές παρουσιάζεται στον παρακάτω πίνακα:  Ορίστε το μοντέλο που θα επιτρέπει στην εταιρεία να ελαχιστοποιήσει το συνολικό κόστος μεταφοράς. Υλοποιήστε το μοντέλο στην MPL και επιλύστε το. Κόστος μεταφοράς(€/τόνο) 80

81 Μάθημα: Ανάλυση & Σχεδιασμός Συστημάτων Μεταφορών, Τμήμα ΔΕΤ, 5ο Εξάμηνο Σπουδών ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΡΟΒΛΗΜΑ ΕΛΑΧΙΣΤΟΥ ΚΟΣΤΟΥΣ ΡΟΗΣ (MINIMUM COST FLOW)  Το παρακάτω προσανατολισμένο γράφημα G(V,A), το οποίο αποτελείται από ένα σύνολο από κόμβους (V), και συνδέσμους (A), αναπαριστά ένα δίκτυο ροής (network flow). Κάθε σύνδεσμος (i,j) έχει συγκεκριμένο μοναδιαίο κόστος και χωρητικότητα (c ij, u ij για i,j V) και κάθε κόμβος έχει συγκεκριμένη προσφορά ή ζήτηση (b i i V). Καθορίστε το ελάχιστο κόστος ροής μέσα στο δίκτυο ικανοποιώντας τις απαιτήσεις σε προσφορά και ζήτηση. Υλοποιήστε το μοντέλο στην MPL και επιλύστε το. 2 3 1 (7,25) (6,20) (1,20) (5,25) (2,15) 25 0 0 4 -25 81


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google