ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. του Τσιπλίδη Κωνσταντίνου, ΑΜ: 3615 ΥΛΟΠΟΙΗΣΗ ΠΡΟΛΥΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΩΝ ΤΥΠΟΥ SIMPLEX MΕ PYTHON

Σχετικά έγγραφα
Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 3/4/2012. Lecture08 1

Υλοποίηση Αναθεωρημένου Αλγορίθμου Simplex

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διερεύνηση και Αξιολόγηση Διαφορετικών Κανόνων Περιστροφής για τον Αναθεωρημένο Αλγόριθμο Simplex

Διαχείριση ενεργειακών πόρων & συστημάτων Πρακτικά συνεδρίου(isbn: )

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Επιχειρησιακή Έρευνα I

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΠΙΛΥΣΗ ΕΚΦΥΛΙΣΜΕΝΩΝ ΚΑΙ ΓΕΝΙΚΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ. 4.1 Επίλυση Εκφυλισμένων Γραμμικών Προβλημάτων

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης

Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυϊκότητα. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 1/12/2016

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 28/3/2012. Lecture07 1

ΚΕΦΑΛΑΙΟ 2 ΑΛΓΟΡΙΘΜΟΙ ΤΥΠΟΥ SIMPLEX. 2.1 Βασικές έννοιες - Ορισμοί

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

Τμήμα Μηχανικών Πληροφορικής ΤΕ Η μέθοδος Simplex. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 19/01/2017

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Η μέθοδος Simplex. Γεωργία Φουτσιτζή-Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. Τμήμα Μηχανικών Πληροφορικής ΤΕ

12/3/2012. Εργαστήριο Αλγόριθμοι Γραμμικής Βελτιστοποίησης. Lab03 1. Διανυσματοποίηση Βρόχων. Αρχικοποίηση μητρών (preallocating)

Γραμμικός Προγραμματισμός Μέθοδος Simplex

z = c 1 x 1 + c 2 x c n x n

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Τμήμα Εφαρμοσμένης Πληροφορικής

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017

3.7 Παραδείγματα Μεθόδου Simplex

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Επιχειρησιακή Έρευνα I

ΑΛΓΟΡΙΘΜΟΙ Ενότητα 10

2. ΜΑΘΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας.

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΝΑΣ ΝΕΟΣ ΤΡΟΠΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΤΥΧΑΙΩΝ ΒΕΛΤΙΣΤΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ ΚΑΙ ΜΙΑ ΣΥΓΚΡΙΤΙΚΗ ΥΠΟΛΟΓΙΣΤΙΚΗ ΜΕΛΕΤΗ

Τμήμα Εφαρμοσμένης Πληροφορικής

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εφαρμοσμένα Μαθηματικά ΙΙ

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

Επιχειρησιακή Έρευνα

ΜΑΘΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΟΠΤΙΚΟΠΟΙΗΣΗ ΑΛΓΟΡΙΘΜΩΝ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Επιχειρησιακή Έρευνα

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 2 ΠΡΟΒΛΗΜΑΤΑ ΔΙΚΤΥΩΝ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΜΑΘΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στους Υπολογιστές

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

Υπολογιστική πολυπλοκότητα του πρωτεύοντος αλγόριθμου εξωτερικών σημείων

Ένα ολοκληρωμένο σύστημα για την διδασκαλία του αναθεωρημένου αλγορίθμου simplex A complete training system for teaching revised simplex algorithm

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

MEM 253. Αριθμητική Λύση ΜΔΕ * * *

Β. Βασιλειάδης. Επιχειρησιακή Έρευνα Διάλεξη 5 η -Αλγόριθμος Simplex

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

Γραμμικός Προγραμματισμός

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Τμήμα Μηχανικών Πληροφορικής ΤΕ Πρόβλημα Μεταφοράς. Γεωργία Φουτσιτζή ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Επιχειρησιακή Έρευνα I

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Θεωρία Δυαδικότητας ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου. Επιχειρησιακή Έρευνα

ΚΕΦΑΛΑΙΟ 4. Ακέραια Πολύεδρα

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) +

Κεφάλαιο 3ο: Γραμμικός Προγραμματισμός

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

Εφαρμοσμένη Βελτιστοποίηση

Αριθμητική Ανάλυση και Εφαρμογές

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΑΚ. ΕΤΟΣ ΔΙΑΛΕΞΗ 6 η -Η ΔΥΙΚΗ ΜΕΘΟΔΟΣ SIMPLEX

Προβλήματα Μεταφορών (Transportation)

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ Επιστήµη τωναποφάσεων, ιοικητική Επιστήµη

21 a 22 a 2n. a m1 a m2 a mn

Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο. Δίκτυα Ροής Ελάχιστου Κόστους (Minimum Cost Flow Networks)

Ακέραιος Γραμμικός Προγραμματισμός

Εφαρμοσμένα Μαθηματικά ΙΙ

(sensitivity analysis, postoptimality analysis).

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

2x 1 + x 2 x 3 + x 4 = 1. 3x 1 x 2 x 3 +2x 4 = 3 x 1 +2x 2 +6x 3 x 4 = 4

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Διπλωματική Εργασία. του. Καραογλάνογλου Σωτήριου

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του Τσιπλίδη Κωνσταντίνου, ΑΜ: 3615 ΥΛΟΠΟΙΗΣΗ ΠΡΟΛΥΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΩΝ ΤΥΠΟΥ SIMPLEX MΕ PYTHON Επιβλέπων Καθηγητής: Σαμαράς Νικόλαος

Σκοπός της Εργασίας Επίλυση Γραμμικών Προβλημάτων (ΓΠ) μεγάλης κλίμακας Αντιμετώπιση προβλημάτων αποθήκευσης Ανάλυση της δομής και του περιεχομένου τους Αντιμετώπιση προβλημάτων και δυσκολιών Απαλοιφή πλεονασματικών στοιχείων και αποφυγή περιττών πράξεων και σφαλμάτων Χρήση της γλώσσας python σε επιστημονικούς υπολογισμούς με συνδυασμούς δομών της γλώσσας (tuple, list κα) και βιβλιοθήκες κώδικα (Numpy, scipy κλπ) 2

Περιεχόμενα της Εργασίας 1. Επίλυση προβλημάτων Γραμμικού Προγραμματισμού 2. Συλλογές Προβλημάτων Μετροπροβλήματα 3. Τεχνικές Αραιών Μητρών 4. Μέθοδοι Προεπίλυσης 5. Διαδικασίες Κλιμάκωσης 6. Αναθεωρημένος Αλγόριθμος Simplex 7. Επιστημονικοί Υπολογισμοί με Python 8. Υπολογιστική Μελέτη 9. Συμπεράσματα 10. Ανάλυση δομής και πληροφοριών αρχείων mps 11. Εγκατάσταση της γλώσσας python 3

Γλώσσα υλοποίησης Γιατί Python γενικά; Ευκολία (εκμάθηση χρήση συγγραφή ανάγνωση διόρθωση) Rapid Prototyping «εκ φύσεως» αντικειμενοστραφής Βιβλιοθήκες (numpy, scipy, matplotlib και linalg κλπ) Δωρεάν και για κάθε ΛΣ Άμεση και αλληλεπιδραστική λειτουργία (Bressert (2013), Idris (2014), Langtangen (2009), Langtangen (2014), Rojas (2015), Blanco- Silva (2013), Stewart (2014) Μηχανικοί Google: Python where we can, C++ where we must 4

1. Επίλυση προβλημάτων Γραμμικού Προγραμματισμού 1. Γενική μορφή του Γραμμικού Προβλήματος (ΓΠ) min (ή max).. x 0, j 1,..., n j T c x n m mn c, x, b, A, {,, } T ή πιο απλά: min{ c x : Ax b, x 0} 2. Επίλυσή του με τον αλγόριθμο Simplex σε 2 Φάσεις με μια τεχνητή μεταβλητή z Ax b 5

2. Συλλογές Προβλημάτων Μετροπροβλήματα 1. Συλλογές από μετροπροβλήματα Netlib Βασική συλλογή Kennigton infeasible Mittelmann ΓΠ από την Ακαδημία Επιστημών της Ουγγαρίας (http://www.sztaki.hu/~meszaros/public_ftp/lptestset/), προβληματικά στοχαστικά διάφορα 6

Πηγή: http://bit.ly/2fur8ae ΥΛΟΠΟΙΗΣΗ ΠΡΟΛΥΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΩΝ ΤΥΠΟΥ SIMPLEX MΕ PYTHON 2. Συλλογές Προβλημάτων Μετροπροβλήματα 2. Μορφή προβλημάτων MPS format Modeling format 7

2. Συλλογές Προβλημάτων Μετροπροβλήματα 3. Δομή προβλημάτων Χαρακτηριστικά - Μεγάλο μέγεθος - Λίγα μη μηδενικά στοιχεία - Περιττά στοιχεία 8

2. Συλλογές Προβλημάτων Μετροπροβλήματα 4. Ο κώδικας 9

2. Συλλογές Προβλημάτων Μετροπροβλήματα 4. Ιδιαιτερότητες των Μετροπροβλημάτων Περιττές γραμμές ή/και στήλες Γραμμικώς εξαρτημένες γραμμές Μηδενικές γραμμές στήλες Διάφοροι άλλοι πλεονασμοί (singleton κλπ) Μεγάλες αποκλίσεις στις αριθμητικές τιμές 5. Προβλήματα στην επίλυσή τους Αδυναμία αντιστροφής της μήτρας των συντελεστών Συσσώρευση σφαλμάτων υπολογισμών Πολλά μηδενικά στοιχεία 10

3. Τεχνικές Αραιών Μητρών Sparse Matrices Techniques 1. Οφέλη Λιγότερος αποθηκευτικός χώρος Ταχύτητα εκτέλεσης πράξεων Αυτόματη διαχείριση της αραιής δομής 2. Δυσκολίες Υποστήριξη από την γλώσσα Εκμάθηση του συντακτικού Συνεργασία με άλλες εγγενείς δομές δεδομένων Ύπαρξη ενσωματωμένων εντολών χειρισμού (πχ πολλαπλασιασμός πινάκων) 11

3. Τεχνικές Αραιών Μητρών Sparse Matrices Techniques 3. Οι μορφές αποθήκευσης που υποστηρίζονται από την python και το scipy είναι οι εξής: BSD: Διάταξη και επεξεργασία σε ενότητες (blocks) DOK: Λεξικογραφική μέθοδος COO: Μέθοδος των συντεταγμένων LIL: Συνδεδεμένες Λίστες CSR: Μέθοδος συμπίεσης κατά γραμμή CSC: Μέθοδος συμπίεσης κατά στήλη DIA: Διαγώνια μορφή Πηγή: https://www.scipy.org 12

3. Τεχνικές Αραιών Μητρών Sparse Matrices Techniques 4. Χειρισμός αραιών μητρών στην python 13

3. Τεχνικές Αραιών Μητρών Sparse Matrices Techniques Τεχνικές αραιών μητρών και python 14

3. Μέθοδοι Προεπίλυσης 1. Απαλοιφή μηδενικών γραμμών μια μηδενική γραμμή ορίζεται ως εξής: b A x b i i i i όπου i 1,2,..., m και A 0 Διακρίνονται οι πιο κάτω περιπτώσεις: * 1. Ai 1x1 Ai 2x2... Ain xn bi και bi 0 : ο περιορισμός είναι πλεονασματικός και μπορεί να διαγραφεί * 2. Ai 1x1 Ai 2x2... Ain xn bi και bi 0 : το πρόβλημα είναι αδύνατο * 1. A1x1 A 2x2... A x b και b 0 : ο περιορισμός είναι πλεονασματικός i i in n i i i και μπορεί να διαγραφεί 15

3. Μέθοδοι Προεπίλυσης 1. Απαλοιφή μηδενικών γραμμών 1. * A1x1 A 2x2... A x b και b 0 : το πρόβλημα είναι αδύνατο i i in n i i 2. * A1x1 A 2x2... A x b b b 0: ο περιορισμός είναι πλεονασματικός i i in n i i i και μπορεί να διαγραφεί 1. * A1x1 A 2x2... A x b b b 0: το πρόβλημα είναι αδύνατο i i in n i i i 16

3. Μέθοδοι Προεπίλυσης 1. Απαλοιφή μηδενικών γραμμών Κώδικας 17

3. Μέθοδοι Προεπίλυσης 2. Απαλοιφή μηδενικών στηλών Μια στήλη είναι μηδενική όταν όλοι οι συντελεστές σε αυτή τη στήλη είναι μηδέν A =0, όπου j 1,2,..., n j Διακρίνονται οι πιο κάτω περιπτώσεις: c j 0, όπου j 1,2,..., n η μεταβλητή x j είναι περιττή και μπορεί να διαγραφεί c <0, όπου j 1,2,..., n j το ΓΠ πρόβλημα είναι απεριόριστο, οπότε σταματάει η διαδικασία 18

3. Μέθοδοι Προεπίλυσης 3. Απαλοιφή περιορισμών ισότητας τύπου singleton Όταν στην μήτρα των συντελεστών ενός προβλήματος εμφανίζονται γραμμές περιορισμοί ισότητας με ένα μόνο συντελεστή μη μηδενικό, αυτές οι γραμμές ονομάζονται singleton. Μια τέτοια γραμμή έχει την γενική μορφή: A x A x A x b i1 1 i2 2... in n i όπου i 1,2,..., m και A 0 A 0 με j k ή A x b ή x b / A ik k i k i ik ik ij 19

3. Μέθοδοι Προεπίλυσης 3. Απαλοιφή περιορισμών ισότητας τύπου singleton Διακρίνονται δύο περιπτώσεις, ανάλογα με την τιμή του x k xk 0 : η γραμμή και η στήλη είναι πλεονάζουσες και μπορούν να διαγραφούν από το πρόβλημα b b x A ανανεώνεται το ΔΜ ως εξής: k k ο σταθερός όρος ανανεώνεται ως εξής: c0 c0 ck ( bi / Aik ) xk 0 : το πρόβλημα είναι αδύνατο 20

3. Μέθοδοι Προεπίλυσης 4. Απαλοιφή ισοτικών περιορισμών τύπου k-ton Οι τύπου k-ton περιορισμοί είναι οι ισοτικοί περιορισμοί στους οποίους υπάρχουν μόνο k μη μηδενικοί συντελεστές του προβλήματος, όπως φαίνεται από τον επόμενο τύπο: A x A x A x b i1 1 i2 2... in n i όπου i 1,2,..., m και Aik 0 Aij 0 Για κάθε μη μηδενικό στοιχείο της j στήλης (διάνυσμα t) όπου βρίσκεται το k στοιχείο μιας γραμμής i, καθώς και για την I γραμμή, γίνεται η πιο κάτω ενημέρωση T A A / A και c c c A b b A b i i ij b b / A i i ij 0 0 j i c c c b j i t t tj t A A A A 21 t t tj i

3. Μέθοδοι Προεπίλυσης 4. Απαλοιφή ισοτικών περιορισμών τύπου k-ton Μετά την ενημέρωση αυτή είναι δυνατή η διαγραφή της j μεταβλητής. H διαδικασία ακολουθείται με την συνεχή μείωση του k μέχρι να γίνει k=1, οπότε ακολουθείται ότι ισχύει στην μέθοδο 3 και διακρίνονται οι εξής περιπτώσεις: xk 0 : το ΓΠ είναι αδύνατο xk 0 : γίνεται διαγραφή της γραμμής I και της στήλης j ως πλεονάζουσες. 22

3. Μέθοδοι Προεπίλυσης 5. Απαλοιφή ανισοτικών περιορισμών τύπου singleton Η μέθοδος μπορεί να οδηγήσει σε προσδιορισμό αδυναμίας επίλυσης του αρχικού προβλήματος ή στην διαγραφή γραμμών αλλά και στηλών, μειώνοντας έτσι αρκετά την διάσταση του προβλήματος. Μια τέτοια ανισότητα έχει την εξής μορφή: b A x A x A x b i i1 1 i2 2... in n i όπου i 1,2,..., m και A 0 A 0, j k, j 1,2,..., n ik ij 23

3. Μέθοδοι Προεπίλυσης 5. Απαλοιφή ανισοτικών περιορισμών τύπου singleton Σε αυτή τη μορφή διακρίνονται οι πιο κάτω περιπτώσεις: 24

3. Μέθοδοι Προεπίλυσης 5. Απαλοιφή ανισοτικών περιορισμών τύπου singleton Σε αυτή τη μορφή διακρίνονται οι πιο κάτω περιπτώσεις: 25

3. Μέθοδοι Προεπίλυσης 6. Απαλοιφή δυϊκού ανισοτικού περιορισμού τύπου singleton Μετατρέποντας το αρχικό πρόβλημα στο αντίστοιχο δυϊκό του, ένας δυϊκός ανισοτικός περιορισμός είναι τύπου singleton αν έχει ένα μη μηδενικό στοιχείο και έχει την παρακάτω μορφή: A w A w A w c j1 1 j2 2... jm m j όπου j 1,2,..., n και A 0 A 0, i k, i 1,2,..., m jk ji Χωρίς να είναι απαραίτητο να μετατραπεί το αρχικό πρωτεύον πρόβλημα στο δυϊκό του, και εξετάζοντας στήλες του πρωτεύοντος αντί γραμμές του δυϊκού, προκύπτουν οι παρακάτω περιπτώσεις: 26

3. Μέθοδοι Προεπίλυσης 6. Απαλοιφή δυϊκού ανισοτικού περιορισμού τύπου singleton 27

3. Μέθοδοι Προεπίλυσης 7. Απαλοιφή εμμέσως ελεύθερων στηλών τύπου singleton Υπάρχουν περιορισμοί που μπορεί να παρουσιάζουν ελεύθερες στήλες singleton, δηλαδή να περιέχουν το μοναδικό μη μηδενικό στοιχείο μιας στήλης, έχοντας όμως και τα πιο κάτω χαρακτηριστικά: A x A x b i 1 is s όπου i 1,2,..., m και Ais 0 A s { Ais } 0 Οι περιπτώσεις κατά τις οποίες η s στήλη είναι πλεονάζουσα: A 0 A 0, j s ή A 0 A 0, j s ή is ij O I περιορισμός μπορεί να απαλειφθεί. Πριν ολοκληρωθεί η απαλοιφή αυτών των στοιχείων, γίνεται ενημέρωση της γραμμή κόστους: c0 c0 ( cs / Ais ) bi T c c ( cs / Ais ) Ai is ij 28

3. Μέθοδοι Προεπίλυσης 8. Απαλοιφή πλεονασματικών στηλών Ένας ισοτικός περιορισμός με μηδενικό δεξιό μέρος, που έχει όλους τους συντελεστές του με ίδιο πρόσημο, υποδηλώνει την ύπαρξη πλεονασματικών μεταβλητών οι οποίες δεν επηρεάζουν την επίλυση του προβλήματος και μπορούν να διαγραφούν. Πιο συγκεκριμένα: Ai 1x1 Ai 2x2... Ain xn 0 όπου i 1,2,..., m και A 0 ή A 0, j 1,2,..., n ij ij 29

3. Μέθοδοι Προεπίλυσης 9. Απαλοιφή έμμεσων ορίων γραμμών Ένας περιορισμός που υποδηλώνει νεα όρια για τις μεταβλητές, μπορεί να θεωρηθεί πλεονασματικός και να διαγραφεί. Πιο συγκεκριμένα, διακρίνονται οι παρακάτω περιπτώσεις: όπου η γραμμή i είναι πλεονασματική και διαγράφεται. 30

3. Μέθοδοι Προεπίλυσης 10. Απαλοιφή πλεονασματικών γραμμών Η συγκεκριμένη μέθοδος αφορά τον εντοπισμό γραμμικώς εξαρτημένων γραμμών στο σύστημα των ανισοτήτων του ΓΠ, όταν δηλαδή για τις γραμμές i και k, με i k ισχύει: A A με και i, k {1,2,..., m} i k Η πιο γνωστή μέθοδος είναι αυτή της απαλοιφής του Gauss. Εδώ χρησιμοποιείται μια παραλλαγή αυτής, όπου με συνεχείς γραμμοπράξεις εντοπίζονται γραμμικώς εξαρτημένες γραμμές οι οποίες αφού εντοπιστούν σημειώνονται (σε λίστα) και αφαιρούνται στο τέλος. 31

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

4. Διαδικασίες Κλιμάκωσης 1. Μέθοδος της εξισορρόπησης Το πρώτο βήμα έχει να κάνει με την εύρεση του μεγαλύτερου κατ απόλυτη τιμή στοιχείου κάθε γραμμής. Στην συνέχεια υπολογίζονται οι λεγόμενοι παράγοντες κλιμάκωσης γραμμής ως οι αντίστροφοι αριθμοί των μεγίστων των γραμμών του προηγούμενου βήματος. Με αυτούς τους παράγοντες πολλαπλασιάζονται τα στοιχεία κάθε γραμμής και του δεξιού μέρους. Με παρόμοιο τρόπο, για κάθε στήλη της μήτρας των συντελεστών υπολογίζεται το μεγαλύτερο κατά απόλυτη τιμή στοιχείο. Οι αντίστροφοι αυτών των τιμών χρησιμοποιούνται για να πολλαπλασιάσουν κάθε στήλη και τα αντίστοιχα στοιχεία της γραμμής κόστους. 33

4. Διαδικασίες Κλιμάκωσης 1. Ο κώδικας 34

4. Διαδικασίες Κλιμάκωσης 2. Μέθοδος του γεωμετρικού μέσου Στόχος αυτής της τεχνικής είναι να ελαχιστοποιήσει την διακύμανση τιμών των μη μηδενικών στοιχείων της μήτρας των συντελεστών του ΓΠ. Και σε αυτήν την μέθοδο, όπως και στην προηγούμενη, χρησιμοποιούνται δύο βοηθητικοί πίνακες παράγοντες κλιμάκωσης, η κατασκευή των οποίων γίνεται με το παρακάτω τρόπο: 1 r max x min x k 1 k k i ij ij jn jn i i 2 και αφορά την κλιμάκωση γραμμών, ενώ για τις στήλες, υπολογίζεται ως εξής: 1 1 1 2 k 1 k k 2 2 s j max xij min x ij jm j jm j 35

5. Αναθεωρημένος Αλγόριθμος Simplex Ο αναθεωρημένος αλγόριθμος simplex δύο φάσεων ΒΗΜΑ 0 Αρχικοποίηση (Initialization) 1. Επιλογή μιας βασικής δια επιμέρισης ( BN), 2. Υπολογισμός των κάτωθι μητρών και διανυσμάτων: c c A x A b w c A s c w A 1 1 1,,,, T T, T T T B N B B B B N N N Όπου 1 A B είναι η αντίστροφη μήτρα του A, σχετική με τις βασικές μεταβλητές. 3. Αν x Bi 0, τότε η βασική διαμέριση δεν είναι εφικτή, οπότε και ξεκινάει η Φάση Ι. Διαφορετικά, επιλέγεται το ΒΗΜΑ 1. 36

5. Αναθεωρημένος Αλγόριθμος Simplex Ο αναθεωρημένος αλγόριθμος simplex δύο φάσεων ΒΗΜΑ 1 Έλεγχοι 1. Έλεγχος Βελτιστότητας (Optimality Test): Τίθεται: J { j : j N και s j 0}. Αν J, ο αλγόριθμος σταματά και το τρέχον σημείο είναι βέλτιστο. Διαφορετικά, επιλέγεται η εισερχόμενη εξερχόμενη της βάσης μεταβλητή x, l N[ t], όπου t επιλέγεται από έναν κανόνα περιστροφής. l 37

5. Αναθεωρημένος Αλγόριθμος Simplex Ο αναθεωρημένος αλγόριθμος simplex δύο φάσεων 1. Έλεγχος ελαχίστου λόγου (minimum ratio test): Υπολογίζονται τα: h A a και I i : 1 i m και h 0 1 l B l. il Αν I ο αλγόριθμος τερματίζεται, το πρόβλημα είναι απεριόριστο. Διαφορετικά, επιλέγεται ως εξερχόμενη της βάσης μεταβλητή η τον τύπο: 1 1 AB b AB b i i xl min : i I hrl hil x B r x με k 38

5. Αναθεωρημένος Αλγόριθμος Simplex Ο αναθεωρημένος αλγόριθμος simplex δύο φάσεων ΒΗΜΑ 2 Περιστροφή (pivot) Τίθεται N[] t k και B[] r έλεγχος στο ΒΗΜΑ 0.1. 2 l ως νέα βασική διαμέριση και επιστρέφεται ο 39

5. Αναθεωρημένος Αλγόριθμος Simplex 2. Φάση Ι ΒΗΜΑ 0 Αρχικοποίηση (Initialization) 1. Εισάγεται μια νέα μεταβλητή απόφασης, η xn 1, με διάνυσμα συντελεστών d A e, όπου e 1 i 1,2,..., m, που ονομάζεται τεχνητή. B i 2. Τίθεται fi 0, i 1,2,..., n και fn 1 1 για τους συντελεστές της νέας γραμμής κόστους (του τεχνητού προβλήματος). 1 3. Υπολογίζεται το r arg minab b N N B r, B r : εξερχόμενη μεταβλητή και 4. Αλλάζει η βασική διαμέριση, B B [ n 1] Br Υπολογίζονται τα νέα 40 x A b, w f A και s f w A 1 T T 1 T T T B B B B N N N

5. Αναθεωρημένος Αλγόριθμος Simplex 2. Φάση Ι (συνέχεια) ΒΗΜΑ 1 Έλεγχος τερματισμού T 1. Αν s 0 ο αλγόριθμος σταματά. Αν x 1 0 ο αλγόριθμος σταματά, το N πρόβλημα είναι αδύνατο. Διαφορετικά, γίνεται επιστροφή στην Φάση ΙΙ από το τρέχον σημείο. T 2. Αν 0, επιλέγεται εισερχόμενη μεταβλητή με τον έλεγχο ελαχίστου s N i λόγου του Dantzig: sl min s j : s j 0 j N στοιχείου n Υπολογισμός του h A a 1 l B l 41

5. Αναθεωρημένος Αλγόριθμος Simplex 2. Φάση Ι (συνέχεια) 1. Επιλογή εξερχόμενης από την βάση μεταβλητής με τον έλεγχο ελαχίστου λόγου: xb min i : i B hli ΒΗΜΑ 2 Περιστροφή T T T T Γίνεται περιστροφή και ανανέωση των B, N, f, f, x, w, s. Επιστροφή στο ΒΗΜΑ 1. B N B N 42

6. Επιστημονικοί Υπολογισμοί με Python Παραδείγματα κώδικα def delzerocols(a,c): m,n=np.shape(a) a=a.tocsc() mask = np.concatenate(([true], a.indptr[1:]!= a.indptr[:-1])) mask1 = np.concatenate(([true], a.indptr[1:] == a.indptr[:-1])) mask2=c.a<0 if not np.any(mask2.t & mask1[1:]): Α=csr_matrix(a)[:,mask[1:]] c=csr_matrix(c)[mask[1:]] m,n=np.shape(a) return A,c 43

6. Επιστημονικοί Υπολογισμοί με Python Η διάλεκτος της python [col.append(i) for i in data[0:len(data):3] if i not in col] for i in ['L','E','G']: eqtype=[k if x==i else x for x in eqtype] k+=1 Η δύναμή της οι βιβλιοθήκες της Numpy Scipy MatPlotLib from numpy.linalg import inv Binv = csr_matrix(inv(sparse_matrix.a)) 44

6. Επιστημονικοί Υπολογισμοί με Python Παραδείγματα κώδικα mask=np.where(eq!=0)[0] #sparse A augmenting με χαλαρες μτβς for i in mask: ey=np.eye(m, 1, -i)*-eq[i] #+ή- πλεονασμ ή ελλειματική χαλαρή μτβ a=hstack((a,ey),format='csr') import scipy.sparse.linalg as spsl import scipy.sparse as sp from numpy.linalg import inv newmat=matrix(mysparsematrix.a).rref() xb=csr_matrix(np.where(np.abs(xb.a)<tol,0.0,xb.a)) 45

Αλλαγή Μεγέθους 7. Υπολογιστική Μελέτη α/α Όνομα Συλλογή Περιορισμοί Στήλες Διαφορά Διαφορά Διαφορά nnz m' n' nnz' Αρχείου m n Δm Δn % 1 afiro netlib 27 32 83 27 32 83 0 0 0,00% 2 agg netlib 488 163 2410 468 163 2348 20 0-2,57% 3 beaconfd netlib 173 262 3375 120 209 2861 53 53-15,23% 4 bgprtr infeasible 20 34 64 18 32 58 2 2-9,38% 5 blend netlib 74 83 491 71 80 446 3 3-9,16% 6 farm misc 7 12 36 6 10 32 1 2-11,11% 7 farm misc 7 12 36 6 10 32 1 2-11,11% 8 israel netlib 174 142 2269 174 142 2269 0 0 0,00% 9 itest2 infeasible 9 4 17 9 4 17 0 0 0,00% 10 itest6 infeasible 11 8 20 6 2 8 5 6-60,00% 11 kleemin3 misc 3 3 6 3 3 6 0 0 0,00% 12 kleemin4 misc 4 4 10 4 4 10 0 0 0,00% 13 kleemin5 misc 5 5 15 5 5 15 0 0 0,00% 14 kleemin6 misc 6 6 21 6 6 21 0 0 0,00% 15 kleemin7 misc 7 7 28 7 7 28 0 0 0,00% 16 kleemin8 misc 8 8 36 8 8 36 0 0 0,00% 17 klein1 infeasible 54 54 696 54 54 696 0 0 0,00% 18 lotfi netlib 153 308 1078 133 288 809 20 20-24,95% 19 sc105 netlib 105 103 280 104 103 280 1 0 0,00% 20 sc205 netlib 205 203 551 203 202 550 2 1-0,18% 21 sc205-2r-16 stochlp 365 366 990 364 366 990 1 0 0,00% 22 sc205-2r-27 stochlp 607 608 1650 606 608 1650 1 0 0,00% 23 sc205-2r-32 stochlp 717 718 1950 716 718 1950 1 0 0,00% 24 sc205-2r-4 stochlp 101 102 270 100 102 270 1 0 0,00% 25 sc205-2r-8 stochlp 189 190 510 188 190 510 1 0 0,00% 26 sc50a netlib 50 48 130 49 48 130 1 0 0,00% 27 sc50b netlib 50 48 118 48 48 118 2 0 0,00% 28 share1b netlib 117 225 1151 102 210 1026 15 15-10,86% 29 share2b netlib 96 79 694 96 79 694 0 0 0,00% 30 stocfor1 netlib 117 111 447 102 96 367 15 15-17,90%

Επαναλήψεις 7. Υπολογιστική Μελέτη α/α Όνομα Περιορισμοί Στήλες Φόρτωμα Χρόνος Χρόνος Χρόνος Αρ.Επαναλήψεων Αρ.Επαναλήψεων Αρχείου m n Αρχείου Κλιμάκωσης Προεπίλυσης Επίλυσης Χωρίς Προεπίλυση με Προεπίλυση 1 afiro 27 32 0,006999 0,038001776 1,483086348 0,5040324 10 10 2 agg 488 163 0,16001 0,42702508 225,0685785 1,8091035 51 0 3 beaconfd 173 262 0,183012 0,265016079 29,97297812 31,32082 42 39 4 bgprtr 20 34 0,004 0,043000221 0,678405285 0,6670399 0 17 5 blend 74 83 0,011999 0,112004519 10,00959015 9,4278624 91 111 6 farm 7 12 0,003 0,014000654 0,121989727 0,1010056 5 3 7 farm 7 12 0,004998 0,014000654 0,121989727 0,1010056 5 3 8 israel 174 142 0,086008 0,189994335 64,59404039 19,704614 275 150 9 itest2 9 4 0,002001 0,01100111 0,207010269 0,072005 0 0 10 itest6 11 8 0,003001 0,014000654 0,15900898 0,0550048 0 0 11 kleemin3 3 3 0,003 0,007000446 0,059004307 0,0400021 8 2 12 kleemin4 4 4 0,002 0,008997679 0,074005127 0,040004 16 2 13 kleemin5 5 5 0,002 0,009000778 0,100004196 0,0490031 32 2 14 kleemin6 6 6 0,003 0,016000986 0,177009821 0,0440021 64 2 15 kleemin7 7 7 0,003001 0,012998343 0,147009611 0,0820053 128 2 16 kleemin8 8 8 0,004 0,015001059 0,215011597 0,050004 256 2 17 klein1 54 54 0,014 0,103008509 6,000358105 3,218169 0 0 18 lotfi 153 308 0,042003 0,283016443 54,50385404 47,291964 144 254 19 sc105 105 103 0,011001 0,247014284 30,64775372 8,231472 64 68 20 sc205 205 203 0,027001 0,406023741 140,5108011 67,448986 165 155 21 sc205-2r-16 365 366 0,042001 0,443023682 265,5880902 53,137043 107 107 22 sc205-2r-27 607 608 0,095004 0,708057165 765,4497273 161,0382 78 72 23 sc205-2r-32 717 718 0,132006 1,525087833 1786,72017 453,52447 203 203 24 sc205-2r-4 101 102 0,029001 0,233674049 34,04786968 6,3943682 35 35 25 sc205-2r-8 189 190 0,031001 0,379020691 120,3537464 21,140737 59 59 26 sc50a 50 48 0,015002 0,113006115 8,249606848 3,3291926 33 33 27 sc50b 50 48 0,014 0,100008011 7,889451504 3,8532214 38 38 28 share1b 117 225 0,105005 0,212009907 30,59437418 34,656513 146 214 29 share2b 96 79 0,076004 0,104006052 17,9236474 6,2493594 98 68 30 stocfor1 117 111 0,079004 0,147009134 32,48967862 8,5594914 59 65

7. Υπολογιστική Μελέτη Χρόνοι Επίλυσης 48

8. Συμπεράσματα Βελτιώσεις 1. Σχετικά καλοί χρόνοι a. Ανάγνωσης αρχείων b. κλιμάκωσης c. επίλυσης 2. Λιγότερες επαναλήψεις 3. Διερεύνηση τρόπων βελτίωσης χρόνων προεπίλυσης πχ με παράλληλο προγραμματισμό σε MultiCore GPUs 4. Βελτίωση διαδικασιών όπως η builtin ρουτίνα RREF (επιδρά δραστικά και ανάλογα με το μέγεθος του προβλήματος στον χρόνο επίλυσης) 5. Πιο αποδοτική χρήση λογικών μασκών του numpy σε δομές του scipy 6. Σύγκριση και βέλτιστη επιλογή δομών (list, set, tuple) 49

8. Βιβλιογραφία Bazaraa, M., Jarvis, J., Sherali, H. (2005). Linear Programming and Network Flows, 3rd edition, Wiley-Interscience Dantzig, B.G., (1949), Programming in a linear structure,econometrica,vol.17, pp.73-74 Erling D. Andersen, Andersen Knud D. (1995) Presolving in linear programming Mathematical Programming 71 221-245 Erling D. Andersen (1995): Finding all linearly dependent rows in large-scale linear programming, Optimization Methods and Software, 6:3, 219-227 Rojas Sergio J. G. Christensen Erik A, Francisco J. Blanco-Silva (2015 ) Learning SciPy for Numerical and Scientific Computing Second Edition, Packt Publishing Pissanetzky Sergio (1984) Sparse Matrix Technology Acad. Press Tomlin J.A. and J.S. Welch (1986), Finding duplicate rows in a linear programming model, Volume 5, Operations Research Letters Παπαρρίζος Κωνσταντίνος (2009) Γραμμικός Προγραμματισμός: Μια προσέγγιση με MATLAB Εκδόσεις Ζυγός 50

Ευχαριστώ 51