Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΡΟΛΟΓΟΣ Τι νέο υπάρχει στο βιβλίο Λίγα λόγια για τον αναγνώστη Ευχαριστίες Μια έκκληση στον αναγνώστη vii viii x xi xii ΚΕΦΑΛΑΙΟ 0 ΕΙΣΑΓΩΓΗ ΣΤΟ ΓΡΑΜΜΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 1 0.1 Η ΦΥΣΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 3 0.1.1. Λεκτική περιγραφή του γραµµικού προβλήµατος 4 0.1.2. Μαθηµατική µορφοποίηση 5 0.1.3. Επίλυση του προβλήµατος και ανάλυση ευαισθησίας 6 0.1.4. Συγγενή γνωστικά αντικείµενα 7 0.2 ΤΟ ΜΑΘΗΜΑΤΙΚΟ ΠΡΟΤΥΠΟ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΒΛHΜΑΤΟΣ 8 0.2.1. Γενική µορφή του γραµµικού προβλήµατος 8 0.2.2. Τι είναι λύση του γραµµικού προβλήµατος 11 0.3 ΙΣΤΟΡΙΚΗ ΑΝΑ ΡΟΜΗ ΑΝΑΦΟΡΕΣ 13 Αναφορές Βιβλιογραφία 16 0.4 ΑΣΚΗΣΕΙΣ 18 ΚΕΦΑΛΑΙΟ 1 ΜΑΘΗΜΑΤΙΚΗ ΜΟΡΦΟΠΟΙΗΣΗ ΓΡΑΜΜΙΚΩΝ ΠΡΒΛΗΜΑΤΩΝ 19 1.1 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΓΝΩΡΙΣΜΑΤΑ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ 23 1.2 ΜΕΡΙΚΑ ΚΛΑΣΣΙΚΑ ΓΡΑΜΜΙΚΑ ΠΡΟΒΛΗΜΑΤΑ 24 1.3 ΑΛΛΕΣ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 31 1.4 ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΤΟ EXCEL 41 1.4.1 Εισαγωγή δεδοµένων στο φύλλο εργασίας 41 1.4.2 Χρήση του εργαλείου Επίλυση 43 1.4.3 Βελτιωµένη χρήση του EXCEL 48 1.5 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 51 i
1.5.1 Αναφορές Βιβλιογραφία 52 1.6 ΑΣΚΗΣΕΙΣ 53 ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΣΙΜΟΥ 61 2.1 ΜΟΡΦΕΣ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΒΛΗΜΑΤΟΣ 63 2.1.1 Κανονική και τυποποιηµένη µορφή 63 2.1.2 Μετασχηµατισµός από την κανονική στην τυποποιηµένη µορφή 64 2.1.3 Μετασχηµατισµός από τη γενική στην τυποποιηµένη µορφή 67 2.1.4 Μετασχηµατισµός από την τυποποιηµένη στην κανονική µορφή 70 2.2 ΓΕΩΜΕΤΡΙΑ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 72 2.2.1 Βελτιώνουσες κατευθύνσεις 73 2.2.2 Γεωµετρία στο χώρο των µεταβλητών 75 2.2.3 Γεωµετρία στο χώρο των περιορισµών 80 2.3 ΥΠΟΛΟΓΙΣΜΟΣ ΑΝΤΙΣΤΡΟΦΗΣ ΜΗΤΡΑΣ 83 2.3.1 Ορισµός και ιδιότητες αντίστροφης µήτρας 83 2.3.2 Υπολογισµός αντίστροφης µήτρας 84 2.3.3 Επίλυση γραµµικών συστηµάτων εξισώσεων 87 2.4 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 89 2.4.1 Αναφορές Bιβλιογραφία 90 2.5 ΑΣΚΗΣΕΙΣ 91 ΚΕΦΑΛΑΙΟ 3 ΕΝΑΣ ΓΕΝΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX 97 3.1 ΜΙΑ ΙΚΑΝΗ ΣΥΝΘΗΚΗ ΒΕΛΤΙΣΤΟΤΗΤΑΣ 99 3.1.1 οµή των βασικών λύσεων 99 3.1.2 Μια ικανή συνθήκη βελτιστότητας 103 3.2 Ο ΑΛΓΟΡΙΘΜΟΣ ΖΙΚ-ΖΑΚ 105 3.2.1 Βασικά χαρακτηριστικά των αλγορίθµων Simplex 106 3.2.2 Περιγραφή του αλγορίθµου Zικ Zακ 109 3.2.3 Η πρώτη αναφορά του EXCEL 118 ii
3.2.4 Γεωµετρία του αλγορίθµου Zικ Zακ 122 3.2.5 Αιτιολόγηση του αλγορίθµου Zικ Zακ 125 3.3 Η ΑΝΑΘΕΩΡΗΜΕΝΗ ΜΟΡΦΗ 129 3.3.1 Ανανέωση των δεδοµένων 129 3.3.2 O αναθεωρηµένος αλγόριθµος Ζικ Ζακ 135 3.4 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 139 3.4.1 Αναφορές Βιβλιογραφία 140 3.5 ΑΣΚΗΣΕΙΣ 141 ΚΕΦΑΛΑΙΟ 4 ΥΪΚΗ ΘΕΩΡΙΑ 147 4.1 ΣΧΗΜΑΤΙΣΜΟΣ ΥΪΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ 149 4.2 ΟΙΚΟΝΟΜΙΚΕΣ ΕΡΜΗΝΕΙΕΣ 155 4.2.1 Οικονοµικές ερµηνείες δυϊκών προβληµάτων 155 4.3 ΣΧΕΣΕΙΣ ΠΡΩΤΕΥΟΝΤΟΣ ΚΑΙ ΥΪΚΟΥ ΠΡΟΒΛΗΜΑΤΟΣ 158 4.3.1 Ασθενής δυϊκότητα 159 4.3.2 Ισχυρή δυϊκότητα 162 4.3.3 Κατηγορίες αλγορίθµων 164 4.4 ΜΕΘΟ ΟΣ LAGRANGE KAI ΣΥΝΘΗΚΕΣ ΚΚΤ 165 4.4.1 Συνθήκες ΚΚΤ 168 4.4.2 Γεωµετρική ερµηνεία των συνθηκών ΚΚΤ 171 4.5 ΙΣΧΥΡΗ ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΧΑΛΑΡΟΤΗΤΑ 174 4.5.1 Κυρτοι συνδυασµοί, κυρτά σύνολα, κυρτές συναρτήσεις 174 4.5.2 Το θεώρηµα της συµπληρωµατικής χαλαρότητας 176 4.6 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 178 4.6.1 Αναφορές Βιβλιογραφία 179 4.7 ΑΣΚΗΣΕΙΣ 180 ΚΕΦΑΛΑΙΟ 5 ΕΦΙΚΤΟΙ ΑΛΓΟΡΙΘΜΟΙ ΤΥΠΟΥ SIMPLEX 187 5.1 ΠΡΩΤΕΥΩΝ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX 189 5.1.1 Περιγραφή του αλγορίθµου 189 5.1.2 Η αναθεωρηµένη µορφή 195 5.1.3 Αιτιολόγηση του αλγορίθµου 200 iii
5.1.4 Κανόνας περιστροφής 200 5.2 ΕΠΙΛΥΣΗ ΓΕΝΙΚΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΤΟΝ ΠΡΩΤΕΥΟΝΤΑ ΑΛΓΟΡΙΘΜΟ SIMPLEX 202 5.2.1 Μέθοδος δύο φάσεων για µη εκφυλισµένα προβλήµατα 203 5.2.2 Μέθοδος δύο φάσεων για εκφυλισµένα προβλήµατα 207 5.2.3 Μέθοδος του µεγάλου Μ 212 5.2.4 Μέθοδος µιας τεχνητής µεταβλητής 214 5.2.5 Γεωµετρία του πρωτεύοντος αλγορίθµου simplex 217 5.3 ΥΪΚΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX 222 5.3.1 Περιγραφή του αλγορίθµου 222 5.3.2 Μια γεωµετρική ερµηνεία του δυϊκού αλγορίθµου simplex 226 5.3.3 Αιτιολόγηση του αλγορίθµου 229 5.4 ΕΠΙΛΥΣΗ ΓΕΝΙΚΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΤΟ ΥΪΚΟ ΑΛΓΟΡΙΘΜΟ SIMPLEX 232 5.5 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 236 5.5.1 Αναφορές Βιβλιογραφία 237 5.6 ΑΣΚΗΣΕΙΣ 238 ΚΕΦΑΛΑΙΟ 6 ΜΕΤΑΛΥΤΙΚΕΣ ΙΑ ΙΚΑΣΙΕΣ 243 6.1 ΓΕΩΜΕΤΡΙΚΕΣ ΕΡΜΗΝΕΙΕΣ ΚΑΙ ΧΡΗΣΗ ΤΟΥ EXCEL 245 6.1.1 Αλλαγές στους συντελεστές κόστους 245 6.1.2 Αλλαγές στα δεξιά µέρη 247 6.1.3 Εισαγωγή και διαγραφή περιορισµού 248 6.1.4 Σκιερές τιµές και υπολειµµατικά κόστη 249 6.1.5 Ανάλυση ευαισθησίας µε το EXCEL 251 6.2 ΑΝΑΛΥΣΗ ΕΥΑΙΣΘΗΣΙΑΣ 256 6.2.1 Αλλαγές στις τιµές των συντελεστών κόστους 256 6.2.2 Πρόσθεση νέας µεταβλητής 261 6.2.3 Αλλαγές στο δεξιό µέρος 262 6.2.4 Πρόσθεση περιορισµού 264 6.2.5 Όρια συντελεστών για βέλτιστους διαµερισµούς 266 6.3 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ 268 6.3.1 Παραµετρική ανάλυση διανύσµατος κόστους 269 6.3.2 Παραµετρική ανάλυση δεξιού µέρους 275 iv
6.3.3 Κρίσιµα σηµεία βέλτιστων διαµερίσεων 278 6.4 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 280 6.4.1 Αναφορές Βιβλιογραφία 281 6.5 ΑΣΚΗΣΕΙΣ 282 ΚΕΦΑΛΑΙΟ 7 ΑΛΛΟΙ ΑΛΓΟΡΙΘΜΟΙ ΤΥΠΟΥ SIMPLEX 285 7.1 ΕΝΑΣ ΑΛΓΟΡΙΘΜΟΣ ΕΞΩΤΕΡΙΚΩΝ ΣΗΜΕΙΩΝ 287 7.1.1 Περιγραφή του αλγορίθµου 288 7.1.2 Επίλυση γενικών γραµµικών προβληµάτων 296 7.2 ΕΝΑΣ ΠΡΩΤΕΥΩΝ ΥΪΚΟΣ ΑΛΓΟΡΙΘΜΟΣ 302 7.2.1 Περιγραφή του αλγορίθµου 303 7.2.2 Επίλυση γενικών γραµµικών προβληµάτων 309 7.3 ΕΝΑΣ ΟΜΟΤΟΠΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ 319 7.3.1 Περιγραφή του αλγορίθµου 320 7.3.2 Αιτιολόγηση του αλγορίθµου 325 7.4 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 326 7.4.1 Αναφορές Βιβλιογραφία 327 ΚΕΦΑΛΑΙΟ 8 ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΩΝ ΤΥΠΟΥ SIMPLEX 331 8.1 ΠΡΟΛΥΤΙΚΕΣ ΙΑ ΙΚΑΣΙΕΣ 333 8.1.1 Απλοί πλεονασµατικοί περιορισµοί 333 8.1.2 Σύνθετοι πλεονασµατικοί περιορισµοί 335 8.2 ΑΝΑΛΥΣΗ ΧΕΙΡΟΤΕΡΗΣ ΠΕΡΙΠΤΩΣΗΣ 337 8.2.1 Ο πρωτεύων αλγόριθµος simplex σε µορφή λεξικών 337 8.2.2 Τα παραδείγµατα Klee-Minty 339 8.2.3 Εφαρµογές 347 8.3 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 349 8.3.1 Αναφορές Βιβλιογραφία 350 v
ΚΕΦΑΛΑΙΟ 9 ΑΛΓΟΡΙΘΜΟΙ ΕΣΩΤΕΡΙΚΩΝ ΣΗΜΕΙΩΝ 353 9.1 ΠΡΩΤΥΕΩΝ ΑΦΙΝΙΚΟΣ ΙΑΒΑΘΜΩΤΟΣ ΑΛΓΟΡΙΘΜΟΣ 355 9.1.1 Προβολές διανυσµάτων και πίνακες προβολών 356 9.1.2 ιαβάθµιση του γραµµικού προβλήµατος 362 9.1.3 Περιγραφή του αλγορίθµου 365 9.1.4 Επίλυση γενικών γραµµικών προβληµάτων 371 9.2 Ο ΥΪΚΟΣ ΑΦΙΝΙΚΟΣ ΙΑΒΑΘΜΩΤΟΣ ΑΛΓΟΡΙΘΜΟΣ 373 9.2.1 Περιγραφή του αλγορίθµου 374 9.2.2 Επίλυση γενικών προβληµάτων 380 9.3 ΑΛΓΟΡΙΘΜΟΙ ΕΛΑΤΤΩΣΗΣ ΥΝΑΜΙΚΟΥ 381 9.3.1 Συναρτήσεις δυναµικού 381 9.3.2 Περιγραφή του αλγορίθµου 383 9.4 ΑΛΓΟΡΙΘΜΟΙ ΙΧΝΗΛΑΤΕΣ 394 9.4.1 Κέντρο πολυέδρου και κεντρικός δρόµος 395 9.4.2 Οι εξισώσεις του κεντρικού δρόµου 397 9.4.3 Η µέθοδος Newton 399 9.4.4 Περιγραφή του αλγορίθµου 402 9.4.5 Ξεκίνηµα του αλγορίθµου 409 9.5 ΜΗ ΕΦΙΚΤΟΙ ΑΛΓΟΡΙΘΜΟΙ ΕΣΩΤΕΡΙΚΩΝ ΣΗΜΕΙΩΝ 413 9.5.1 Μερικές βασικέ έννοιες 414 9.5.2 Ένας µη εφικτός ιχνηλάτης αλγόριθµος 415 9.6 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 422 9.6.1 Αναφορές Βιβλιογραφία 425 ΚΕΦΑΛΑΙΟ 10 ΑΛΛΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ429 10.1 Ο ΕΛΛΕΙΨΟΕΙ ΗΣ ΑΛΓΟΡΙΘΜΟΣ 431 10.1.1 Περιγραφή του ελλειψοειδούς αλγορίθµου 431 10.1.2 Επίλυση γενικών ανισοτικών συστηµάτων 435 10.1.3 Αιτιολόγηση του αλγορίθµου 436 10.1.4 Χρήση άλλων κυρτών συνόλων 444 10.2 ΜΕΘΟ ΟΣ ΧΑΛΑΡΩΣΗΣ 446 10.2.1 Κεντρική ιδέα των µεθόδων χαλάρωσης 446 vi
10.2.2 Μια πεπερασµένη µέθοδος χαλάρωσης 451 10.2.3 Αιτιολόγηση του πεπερασµένου αλγορίθµου 455 10.3 ΣΧΟΛΙΑ ΑΝΑΦΟΡΕΣ 458 10.3.1 Αναφορές Βιβλιογραφία 459 ΠΑΡΑΡΤΗΜΑ Α ΧΡΗΣΗ ΤΟΥ EXCEL ΠΑΡΑΡΤΗΜΑ Β ΧΡΗΣΗ ΤΟΥ MATLAB Α1-Α37 Β1-Β49 ΠΑΡΑΡΤΗΜΑ Γ ΧΡΗΣΙΜΕΣ ΙΕΥΘΥΝΣΕΙΣ ΣΤΟ INTERNET Γ1-Γ13 vii
Π Ρ Ο Λ Ο Γ Ο Σ Ο Γραµµικός Προγραµµατισµός ή Γραµµική Βελτιστοποίηση ασχολείται µε τον υπολογισµό βέλτιστων λύσεων προβληµάτων που περιγράφονται µε γραµµικές συναρτήσεις. Η συντριπτική πλειοψηφία των προβληµάτων της ιοικητικής Επιστήµης, της Οικονοµικής Επιστήµης, των Μηχανικών αλλά και προβλήµατα της Επιστήµης των Ηλεκτρονικών Υπολογιστών έχουν σαν βασικό τους χαρακτηριστικό τις γραµµικές συναρτήσεις. Ως εκ τούτου ο Γραµµικός Προγραµµατισµός βρίσκει πληθώρα εφαρµογών σ' όλους αυτούς τους χώρους, γεγονός που τον αναδεικνύει ως το πλέον εφαρµοσµένο τµήµα των Μαθηµατικών. Παρότι είναι σχετικά νέα επιστήµη, γεννηµένη για τις απαιτήσεις του Β' Παγκοσµίου Πολέµου, τα τελευταία 50 χρόνια γνώρισε τέτοια άνθιση και πρόοδο που µόνο σε κλάδους της πληροφορικής µπορεί κάποιος να διακρίνει. Εξάλλου, ο ίδιος ο Γραµµικός Προγραµµατισµός αποτελεί τµήµα της Πληροφορικής. Στα πρώτα 30 χρόνια της ανάπτυξής του, µέχρι το 1980, επικράτησε ολοκληρωτικά ο αλγόριθµος simplex. Ήταν τέτοια η κυριαρχία του, ώστε όλα σχεδόν τα ερευνητικά αποτελέσµατα να καθοδηγούνται απ' αυτόν ενώ βρισκόταν πίσω από κάθε εµπορικό λογισµικό. Μάλιστα, η τυφλή πίστη στις δυνατότητές του µπορούµε να ισχυριστούµε σήµερα ότι οδήγησε, τουλάχιστον σε δύο περιπτώσεις, σε λάθος κατεύθυνση την έρευνα. 1. Για µεγάλο χρονικό διάστηµα η έρευνα περιορίστηκε µόνο σε αλγορίθµους συνοριακών σηµείων. Μετά την ανακάλυψη των αλγορίθµων εσωτερικών και εξωτερικών σηµείων έγινε φανερό ότι η επιλογή αυτή ήταν µάλλον λανθασµένη. Και οι δύο τελευταίοι αλγόριθµοι είναι ταχύτεροι του "συνοριακού" αλγορίθµου simplex τουλάχιστον σε προβλήµατα µεγάλης κλίµακας. Μάλιστα πολλοί επιστήµονες πιστεύουν ότι ο αλγόριθµος simplex χρησιµοποιείται σήµερα µόνο από κεκτηµένη ταχύτητα και ότι πολύ σύντοµα θα εξαφανισθεί, όχι µόνο από τα πληροφοριακά συστήµατα αποφάσεων αλλά και από τα βιβλία. Μπορεί βεβαίως αυτή η άποψη να είναι εξτρεµιστική αλλά δεν µπορούµε πλέον να ισχυριστούµε ότι ο αλγόριθµος simplex συνεχίζει και βρίσκεται στο επίκεντρο του ενδιαφέροντος των θεµάτων που πραγµατεύεται ο Γραµµικός Προγραµµατισµός. 2. Είναι αναµφισβήτητη η πρακτική αξία του Γραµµικού Προγραµµατισµού στη λήψη ιοικητικών και Οικονοµικών Αποφάσεων. Η αξία όµως αυτή ισχυροποιείται αν τα λογισµικά πακέτα παράγουν σε κάθε πρόβληµα τα ίδια αποτελέσµατα. υστυχώς κάτι τέτοιο δεν έγινε µε τα λογισµικά που στηριζόταν και στηρίζονται στον αλγόριθµο simplex. Την ευθύνη όµως γι' αυτή την κατάσταση δεν έχει ο ίδιος ο αλγόριθµος simplex αλλά οι προγραµµατιστές, οι οποίοι στηρίχθηκαν στις ελλιπείς περιγραφές της ανάλυσης ευαισθησίας των πρώτων βιβλίων της δεκαετίς του '50 και δεν προετοίµασαν κατάλληλα τους ενδιαφερόµενους χρήστες, ιευθυντικά Στελέχη και Οικονοµολόγους. Οι δεύτεροι βλέποντας διαφορετικά αποτελέσµατα για το ίδιο πρόβληµα άρχισαν να δυσπιστούν ως προς την αξιοπιστία των αποτελεσµάτων. Βεβαίως, δεν υπήρχε και ούτε υπάρχει µαθηµατικό λάθος στα λογισµικά αυτά. Όµως όταν ο χρήστης παίρνει διαφορετικές απαντήσεις σε ερωτήµατα του τύπου "πόσο πρέπει να αυξηθεί η τιµή πώλησης του προϊόντος Α ώστε να είναι συµφέρουσα η παραγωγή του", είναι εύλογο να δυσπιστεί. viii
Λίγο µετά την εµφάνιση των αλγορίθµων εσωτερικών σηµείων το θέµα επανεξετάστηκε και τέθηκε στις σωστές βάσεις του. Η διεθνής βιβλιογραφία συµπεριέλαβε σχετικά νωρίς τα νέα αποτελέσµατα. Αντίθετα η Ελληνική βιβλιογραφία δεν ακολούθησε αυτές τις εξελίξεις. Απ' ότι γνωρίζουµε δεν υπάρχει βιβλίο που να περιγράφει αλγορίθµους εσωτερικών σηµείων, να αντιµετωπίζει ολοκληρωµένα το πρόβληµα της ανάλυσης ευαισθησίας και να µπορεί να χρησιµοποιηθεί σε µεταπτυχιακό επίπεδο. Μεταξύ άλλων αυτά τα τρία κενά φιλοδοξεί να καλύψει το παρόν βιβλίο. Τι νέο υπάρχει στο βιβλίο εν είµαστε απ αυτούς που πιστεύουν ότι οι αλγόριθµοι εσωτερικών σηµείων θα επικρατήσουν πλήρως στο γραµµικό προγραµµατισµό ή σε βαθµό παρόµοιο µε αυτόν που επικράτησε παλιά ο αλγόριθµος simplex. Πιστεύουµε ότι ο αλγόριθµος simplex θα συνεχίσει να υπάρχει τουλάχιστον στα εισαγωγικά βιβλία και για αυτό το λόγο καταλαµβάνει σεβαστό τµήµα του βιβλίου. Αντίθετα όµως µε τη συνηθισµένη πρακτική αντιµετωπίσαµε όλους τους αλγορίθµους simplex σαν οµάδα, σαν µια κλάση. Για να έχει ο αναγνώστης µια σφαιρική άποψη για όλους τους αλγορίθµους simplex ξεκινήσαµε την περιγραφή τους παρουσιάζοντας πρώτα έναν αλγόριθµο, που συγκεντρώνει τα περισσότερα χαρακτηριστικά της οµάδας, τον αλγόριθµο ζικ ζακ. Για να παράσχουµε όσο γίνεται περισσότερη συµπυκνωµένη γνώση προτιµήσαµε να παρουσιάσουµε τους αλγόριθµους σε µορφή µητρών, έτσι ώστε ο προγραµµατισµός τους σε σύγχρονα υπολογιστικά περιβάλλοντα όπως το MATLAB, να είναι εύκολος. Η προσέγγιση αυτή οδηγεί πιο οµαλά στην περιγραφή της αναθεωρηµένης µορφής απ' ότι η µορφή των tableau. Σαν αποτέλεσµα η επιλογή αυτή έδωσε τη δυνατότητα να περιγράψουµε περισσότερο αναλυτικά την επίλυση γενικών γραµµικών προβληµάτων. Έτσι ο ενδιαφερόµενος αναγνώστης µπορεί µε ελάχιστο επιπλέον κόπο να µεταβεί από τις περιγραφές του βιβλίου στην ανάπτυξη λογισµικού. Ίδια πρακτική ακολουθήθηκε και για τους αλγόριθµους εσωτερικών σηµείων. Η πρακτική χρήση της ολοκληρωµένης αντιµετώπισης των µεταλυτικών διαδικασιών απαιτεί ισχυρά υπολογιστικά εργαλεία τα οποία λίγοι στην Ελλάδα διαθέτουν. Γι αυτό το λόγο προτιµήσαµε την µέση οδό περιγράφοντας και τις δύο προσεγγίσεις. Περιγράψαµε πρώτα την κλασσική µέθοδο, αυτή που χρησιµοποιείται και από το λογισµικό λήψης αποφάσεων ΕΠΙΛΥΣΗ του EXCEL (χορηγείται µε την επαγγελµατική έκδοση του MS-Office). Έτσι ο αναγνώστης µπορεί να ερµηνεύσει σωστά τα αποτελέσµατα της ΕΠΙΛΥΣΗΣ. Για καλύτερη διευκόλυνση στη χρήση συµπεριλάβαµε στο παράρτηµα Α και ένα συνοπτικό οδηγό χρήσης του EXCEL. Επιπλέον παρουσιάσαµε ένα ολοκληρωµένο παράδειγµα Λήψης Αποφάσεων και δώσαµε κλασικές και νέες οικονοµικές ερµηνείες για το δυϊκό πρόβληµα. Μαζί µε το βιβλίο χορηγείται και µια δισκέτα µε κώδικες υλοποιηµένους στο λογισµικό ανάπτυξης εφαρµοφών MATLAB. Το MATLAB προτιµήθηκε γιατί καθιστά τον προγραµµατισµό των αλγορίθµων ασύγκριτα ευκολότερο σε σχέση µε τις υπόλοιπες γλώσσες προγραµµατισµού, όπως για παράδειγµα C, Fortran, Basic, Pascal. Αρκετοί επιστήµονες πιστεύουν ότι όσοι δεν γνωρίζουν MATLAB µοιάζουν µε µικροβιολόγους που δεν έχουν µικροσκόπιο. Η δισκέτα περιλαµβάνει τα παραδείγµατα του βιβλίου και διάφορα γραµµικά προβλήµατα που έχουν ήδη επιλυθεί. Τα προβλήµατα επιλέχτηκαν έτσι ώστε να παρουσιάζονται διαφορετικές περιπτώσεις, όπως για παράδειγµα αδύνατα ή ix
απεριόριστα προβλήµατα ή βέλτιστα προβλήµατα µε πολλαπλές βέλτιστες λύσεις. Είναι πολύ χρήσιµα για τον έλεγχο λογικών σφαλµάτων κατά τον προγραµµατισµό αλγορίθµων. Περιλαµβάνονται ακόµη µερικοί αλγόριθµοι του βιβλίου σε µορφή συναρτήσεων. Τα σχόλια των συναρτήσεων είναι γραµµένα στην Αγγλική γλώσσα. Αυτό δεν έγινε από ξενοµανία αλλά από ανάγκη και σκοπιµότητα. Το MATLAB δεν υποστηρίζει ελληνικούς χαρακτήρες, µέχρι και την έκδοση 5.0, για την εµφάνιση των κειµένων βοήθειας των συναρτήσεων (function M-files). Η συλλογή των συναρτήσεων είναι σχετικά περιορισµένη. Θα εµπλουτίζεται όµως συνεχώς ώστε να αποτελέσει µια αξιόλογη εργαλειοθήκη για εκπαιδευτικούς κυρίως σκοπούς. Όλες οι συναρτήσεις είτε περιέχονται στη δισκέτα είτε πρόκειται να προγραµµατισθούν στο µέλλον, από τη στιγµή που κριθεί ότι είναι απαλλαγµένες λογικών σφαλµάτων θα διατίθενται δωρεάν στους αναγνώστες του βιβλίου. Σε σύντοµο χρονικό διάστηµα οι κώδικες θα συµπεριληφθούν στην ηλεκτρονική διεύθυνση της εταιρείας The Mathworks, Inc στο τµήµα έκδοσης νέων βιβλίων. Η διεύθυνση αυτή είναι www.mathworks.com/support/books. Παρόµοιες πληροφορίες βρίσκονται και στην ιστοσελίδα του συγγραφέα www.macedonia.gr/~paparriz. Περισσότερες λεπτοµέρειες για τη χρήση των συναρτήσεων υπάρχουν σε ειδικό αρχείο, σε µορφή HTML µέσα στη δισκέτα. Για να εξυπηρετηθεί η ανάγκη των προγραµµατιστικών απαιτήσεων του αναγνωστικού κοινού το βιβλίο περιέχει ειδικές ασκήσεις. Τον ίδιο σκοπό εξυπηρετεί και το παράρτηµα Β µε µια σχετικά συνοπτική περιγραφή εκείνων των εντολών και συναρτήσεων του MATLAB που κρίνονται απαραίτητες για των προγραµατισµό των αλγορίθµων. Στη δισκέτα περιλαµβάνονται επίσης και τα αρχεία των παραδειγµάτων του βιβλίου που επιλύθηκαν µε το EXCEL. Ο γραµµικός προγραµµατισµός είναι νέα επιστήµη. Όµως έχει πολύ πλούσια ιστορία. Κρίθηκε σκόπιµο να συµπεριληφθεί σε κάθε κεφάλαιο ένα τµήµα µε ιστορικά στοιχεία και σχόλια. Στα τµήµατα αυτά περιγράφεται η πρόοδος της επιστήµης (µέχρι τη στιγµή που γράφεται αυτό το βιβλίο) όσον αφορά στο περιεχόµενο του κάθε κεφαλαίου. Οι πληροφορίες αντλούνται κυρίως από την βιβλιογραφία αλλά και από προσωπικές συζητήσεις του συγγραφέα µε τους πρωταγωνιστές των γεγονότων. Για να αποφευχθεί η µονόπλευρη ενηµέρωση δίνεται η δυνατότητα προσφυγής σε άλλες πηγές πληροφόρησης. Στο παράρτηµα Γ περιλαµβάνονται µερικές από τις πιο σηµαντικές ιστοσελίδες του διαδικτύου (Internet). Οι ίδιες διευθύνσεις βρίσκονται επίσης σε ειδικό αρχείο σε µορφή ΗΤΜL µέσα στη δισκέτα Για τη βελτίωση της αισθητικής εµφάνισης του βιβλίου κάθε κεφάλαιο περιλαµβάνει µια σχετική εικόνα καθώς και µια ή δυο φωτογραφίες ερευνητών που συνδέονται έµµεσα ή άµεσα µε το περιεχόµενο του κεφαλαίου. Λίγα λόγια για τον αναγνώστη Η ύλη του βιβλίου είναι διαµορφωµένη έτσι ώστε να χρησιµοποιηθεί από σπουδαστές τµηµάτων ιοίκησης Επιχειρήσεων και Οικονοµικών αλλά και από φοιτητές τµηµάτων µε αυξηµένες θεωρητικές ή προγραµµατιστικές απαιτήσεις όπως για παράδειγµα, Τµήµατα Μαθηµατικών, Πληροφορικής και Μηχανικών. Σε µια εισαγωγική χρήση του βιβλίου (Τµήµατα Οικονοµικών και ιοίκησης) δεν ενδείκνυται η µελέτη των αποδείξεων Θεωρηµάτων και Ληµµάτων. Ακόµη πρέπει να αποφεύγονται πλήρως τα x
τµήµατα και εδάφια που αναφέρονται σε αιτιολογήσεις αλγορίθµων. Γι' αυτήν την περίπτωση ενδείκνυται η παρακάτω επιλογή ύλης. Κεφ 0 (όλο) Κεφ 1 (όλο) Κεφ 2 (τµήµατα 2.1, 2.2) Κεφ 3 (τµήµατα 3.1, 3.2, 3.3) Κεφ 4 (τµήµατα 4.1, 4.2, 4.3) Κεφ 5 (όλο) Κεφ 6 (όλο) Κεφ 7 (εδάφια 7.1.1, 7.2.1) Κεφ 9 (τµήµατα 9.1, 9.4) Εναλλακτικά, ο αλγόριθµος ζικ ζακ µπορεί να µη διδαχθεί και να αντικατασταθεί µε τον πρωτεύοντα αλγόριθµο simplex. Σε µαθήµατα τµηµάτων Μαθηµατικών, Πληροφορικής και Μηχανικών µπορεί να ακολουθηθεί η ίδια επιλογή ύλης επαυξηµένη µε αποδείξεις Θεωρηµάτων και Ληµµάτων και τα εδάφια αιτιολόγησης των αλγορίθµων. Υπάρχει ακόµη ύλη στο βιβλίο ικανή να καλύψει πλήρως ένα µεταπτυχιακό µάθηµα στο χώρο του Μαθηµατικού Προγραµµατισµού. Η ύλη των Κεφαλαίων, 7 και 9 πρέπει να συµπεριλαµβάνεται οπωσδήποτε σε τέτοιες περιπτώσεις. Η ύλη του κεφαλαίου 8 ενδείκνυται για όσους ενδιαφέρονται περισσότερο σε θέµατα υλοποίησης των αλγορίθµων σε ηλεκτρονικό υπολογιστή. Σχετικά µε την διάρθρωση της ύλης µέσα στο βιβλίο ο αναγνώστης πρέπει να γνωρίσει τα εξής. Το βιβλίο χωρίζεται σε 11 Κεφάλαια τα οποία αριθµούνται 0, 1, 2,., 10. Κάθε κεφάλαιο χωρίζεται σε τµήµατα, η αρίθµηση των οποίων περιλαµβάνει δύο αριθµούς α και β γραµµένους στη µορφή α.β. Ο πρώτος αριθµός, α, δηλώνει τον αριθµό του κεφαλαίου, ενώ ο δεύτερος, β, είναι ο αύξων αριθµός του τµήµατος µέσα στο κεφάλαιο. Η αρίθµηση των εδαφίων περιλαµβάνει τρεις αριθµούς α,β,γ. Ο τρίτος αριθµός γ είναι ο αύξων αριθµός του εδαφίου µέσα στο τµήµα που αριθµείται α.β. Η αρίθµηση των Σχηµάτων, Εικόνων και Ορισµών είναι όµοια µε την αρίθµηση των εδαφίων. Το βιβλίο περιλαµβάνει Λήµµατα, Θεωρήµατα και Πορίσµατα τα οποία αριθµούνται επίσης µε τρεις αριθµούς όπως τα εδάφια. Όµως τώρα χρησιµοποιείται ενιαία αρίθµηση. Υπάρχει σαφής διαχωρισµός της έννοιας πίνακας και της έννοιας µήτρας. Με τον όρο Πίνακας εννοούµε συνήθως µια απλή καταγραφή δεδοµένων ή αποτελεσµάτων. Η αρίθµηση των πινάκων ακολουθεί την τακτική της αρίθµησης των εδαφίων. Μερικές φορές τα αποτελέσµατα κάθε επανάληψης των αλγορίθµων γράφονται σε µορφή πίνακα. Σ' αυτή την περίπτωση, που συµβαίνει µόνο στις λύσεις κάποιων παραδειγµάτων, η αρίθµηση γίνεται παραθέτοντας µπροστά από τον αριθµό του πίνακα το σύµβολο #. Οι µαθηµατικές σχέσεις, οι τύποι και τα προβλήµατα αριθµούνται πάλι µε τρεις αριθµούς ενιαία. Στα προβλήµατα όµως µπροστά από τους αριθµούς γράφεται το γράµµα Ρ ή το γράµµα D. Το γράµµα Ρ (από το πρώτο γράµµα της αγγλικής λέξης Problem ή Primal) αντιστοιχεί σε πρωτεύον πρόβληµα. Αν καταγράφεται και το δυϊκό πρόβληµα (µέσα στο ίδιο τµήµα), αριθµείται µε τον ίδιο αριθµό αλλά τώρα γράφεται µπροστά το γράµµα D (από το πρώτο γράµµα της αγγλικής λέξης Dual) αντί του γράµµατος Ρ. xi
Ευχαριστίες Το βιβλίο αυτό αποτελεί το επιστέγασµα πολλών ετών µελέτης ερευνητικών εργασιών, διδακτικής εµπειρίας και ερευνητικής προσπάθειας. εν θα έβλεπε το φως της δηµοσιότητας αν ο επιβλέπων του διδακτορικού µου, καθηγητής D. Solow του πανεπιστηµίου Case Western Reserve των ΗΠΑ, δεν µε είχε εισάγει στο χώρο του Μαθηµατικού Προγραµµατισµού. Τον ευχαριστώ θερµά και από τις γραµµές αυτές. Η σύνθεση ερευνητικών εργασιών σε µια ολοκληρωµένη παρουσίαση, όπως είναι ένα βιβλίο, είναι επίπονο και χρονοβόρο έργο. Η προσπάθεια αυτή επωφελήθηκε τα µέγιστα από συζητήσεις και ανταλλαγές απόψεων µε τους συναδέλφους µου T. Terlaky (Delft University, NL) και Y. Y. Ye (University of Iowa, USA). Πολλά ιστορικά στοιχεία µεταφέρθηκαν στις γραµµές του βιβλίου µετά από συζητήσεις µε τον G. B. Dantzig που έλαβαν χώρα σε συνεδριάσεις στην επιτροπή προώθησης Μαθηµατικού Προγραµµατισµού σε διάφορα συνέδρια. Τους ευχαριστώ όλους για τον χρόνο που µου διέθεσαν. Επίσης θέλω να εκφράσω τις θερµές µου ευχαριστίες στους υποψήφιους διδάκτορες Ν. Σαµαρά, Α. Βουτσά, Γ. Γρηγορίου, Κ. όσιο, Γ. Αλεξούδα, και Κ. Τσιπλίδη. Όλοι τους συνεισέφεραν ποικιλοτρόπως µε πληκτρολόγηση, διάβασµα και διόρθωση τµηµάτων του βιβλίου. εν µπορώ όµως µα µην ξεχωρίσω την συνεισφορά του Α. Βουτσά για την επιµέλεια του Παραρτήµατος Α και ιδιαίτερα του Ν. Σαµαρά για την επιµέλεια των Παραρτηµάτων Β και Γ και για την µορφοποίηση όλου του κειµένου. Η εµφάνιση του βιβλίου είναι έργο δικό του και ολοκληρώθηκε µε διάθεση πολύτιµου χρόνου του. Τον ευχαριστώ θερµά όπως και τον ανιήλ Σαµαρά για την πληκτρολόγηση των χειρογράφων µου καθώς επίσης και τον Φ. Κλάδο για τον σχεδιασµό των Σχηµάτων. Τελευταία αλλά όχι λιγότερο ευχαριστώ την οικογένειά µου για την υποµονή της να στερείται των γονικών µου καθηκόντων για µακρό χρονικό διάστηµα. Μια έκκληση στον αναγνώστη Το βιβλίο αυτό γράφτηκε εξολοκλήρου από την αρχή κάνοντας νέες ή σχεδόν νέες αποδείξεις για όλα τα Θεωρήµατα, Λήµµατα και Πορίσµατα. Ως εκ τούτου είναι σχεδόν απίθανο να µην περιέχει λάθη ή παραλείψεις. Θα ήµουν ευγνώµων σ' οποιοδήποτε µου υποδείξει λάθη ή κάνει δηµιουργικές προτάσεις. Για το σκοπό αυτό µπορεί να επικοινωνήσει µαζί µου στο e-mail paparriz@uom.gr. xii