Παρουσίαση: Γραμμικός Προγραμματισμός (Αλγόριθμος...

19
Παρουσίαση: Γραμμικός Προγραμματισμός (Αλγόριθμος Simplex). Λύση δυο προβλημάτων με χρήση της μεθόδου simplex και το excel. Γκούμας Στράτος. Πτυχιούχος Οικονομολόγος. MSc ‘Εφαρμοσμένη Οικονομική και Χρηματοοικονομική (Ε.Κ.Π.Α./ Τμήμα Οικονομικών)’ Team Site: A.E.A.C. Co . Project Manager-Site Administrator e-mail: [email protected] , My Blog . 09/05/2013 ΕΙΣΑΓΩΓΗ Στην παρουσίαση αυτή θα παρουσιάσουμε μερικά προβλήματα γραμμικού προγραμματισμού (Linear Programming) και θα αναλύσουμε περιληπτικά τον αλγόριθμο simplex ο οποίος επινοήθηκε από τον μαθηματικό George Bernard Dantzig το 1947 και αποτελεί έναν από τους κορυφαίους αλγορίθμους του 20 ου αιώνα. Η μέθοδος simplex θεωρείται ίσως η καλύτερη μέθοδος επίλυσης γραμμικών προβλημάτων με πολλές μεταβλητές και πολλούς περιορισμούς. Κατά τη διάρκεια των τελευταίων δεκαετιών έχουν αναπτυχθεί περαιτέρω αλγόριθμοι για την επίλυση γραμμικών προβλημάτων οι οποίοι είτε έχουν βασιστεί στην μέθοδο simplex είτε αποτελούν βελτιώσεις αυτής. Για να λυθεί ένα πρόβλημα γραμμικού προγραμματισμού (Γ.Π.) με την μέθοδο simplex, θα πρέπει οι εξισώσεις να αποτυπωθούν στην τυπική μορφή (standard form). Η βασική εξίσωση που επιθυμούμε να βελτιστοποιήσουμε καλείται αντικειμενική συνάρτηση (objective function) υπό τους περιορισμούς (constraints) του δοθέντος προβλήματος. Μαθηματικά, γράφεται ως εξής Min ή Max την (αντικειμενική συνάρτηση) ) .. , , ( 3 2 1 n x x x x f Η οποία με μορφή μήτρας γράφεται ως 1 * * 1 * n T n x c ή j n j j x c * ` 1 = Υπό τους περιορισμούς 1 * 1 * * * m n n m b x A = ή i n j j ij b x a = =1 * με 0 x , j=1,2,…n, i=1,2,…m και m<n

Transcript of Παρουσίαση: Γραμμικός Προγραμματισμός (Αλγόριθμος...

Παρουσίαση: Γραμμικός Προγραμματισμός (Αλγόριθμος Simplex).

Λύση δυο προβλημάτων με χρήση της μεθόδου simplex και το excel.

Γκούμας Στράτος. Πτυχιούχος Οικονομολόγος.

MSc ‘Εφαρμοσμένη Οικονομική και Χρηματοοικονομική (Ε.Κ.Π.Α./ Τμήμα Οικονομικών)’

Team Site: A.E.A.C. Co. Project Manager-Site Administrator

e-mail: [email protected] , My Blog. 09/05/2013

ΕΙΣΑΓΩΓΗ

Στην παρουσίαση αυτή θα παρουσιάσουμε μερικά προβλήματα γραμμικού προγραμματισμού

(Linear Programming) και θα αναλύσουμε περιληπτικά τον αλγόριθμο simplex ο οποίος

επινοήθηκε από τον μαθηματικό George Bernard Dantzig το 1947 και αποτελεί έναν από τους

κορυφαίους αλγορίθμους του 20ου αιώνα. Η μέθοδος simplex θεωρείται ίσως η καλύτερη

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

Κατά τη διάρκεια των τελευταίων δεκαετιών έχουν αναπτυχθεί περαιτέρω αλγόριθμοι για την

επίλυση γραμμικών προβλημάτων οι οποίοι είτε έχουν βασιστεί στην μέθοδο simplex είτε

αποτελούν βελτιώσεις αυτής.

Για να λυθεί ένα πρόβλημα γραμμικού προγραμματισμού (Γ.Π.) με την μέθοδο simplex, θα

πρέπει οι εξισώσεις να αποτυπωθούν στην τυπική μορφή (standard form). Η βασική εξίσωση

που επιθυμούμε να βελτιστοποιήσουμε καλείται αντικειμενική συνάρτηση (objective

function) υπό τους περιορισμούς (constraints) του δοθέντος προβλήματος. Μαθηματικά,

γράφεται ως εξής

Min ή Max την (αντικειμενική συνάρτηση) )..,,( 321 nxxxxfΗ οποία με μορφή μήτρας γράφεται ως

1**1 * nT

n xc ή j

n

jj xc *

`1∑=

Υπό τους περιορισμούς

1*1** * mnnm bxA = ή i

n

jjij bxa =∑

=1*

με 0≥x , j=1,2,…n, i=1,2,…m και m<n

Όπου

cΤ Το διάνυσμα γραμμή, διαστάσεως 1*n, με τους συντελεστές των μεταβλητών της

αντικειμενικής συνάρτησης

x Το διάνυσμα στήλη των μεταβλητών, διαστάσεως n*1

Α Η μήτρα διαστάσεως m*n με τους συντελεστές των περιορισμών και αij τα στοιχεία της.

b Το διάνυσμα στήλη των περιορισμών, διαστάσεως m*1

Όπως παρατηρούμε από τις παραπάνω σχέσεις, τόσο η αντικειμενική συνάρτηση όσο και οι

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

εύρεση μιας αρίστης λύσης η οποία εντοπίζεται στην εφικτή περιοχή (feasible region) και η

λύση είναι μοναδική, εφόσον υπάρχει.

Γεωμετρικά και διαισθητικά, τα προβλήματα γραμμικού προγραμματισμού απεικονίζονται ως

κυρτά πολύτοπα (convex polytope), δηλαδή ως γεωμετρικά σχήματα με επίπεδες πλευρές

στον χώρο Rn, τα οποία έχουν και τις ιδιότητες του κυρτού συνόλου1 (βλ, παρακάτω στο

Γράφημα 1). Από την γεωμετρία του λυκείου, έχουν ήδη γίνει γνωστά δυο είδη πολυτόπων, το

πολύγωνο, το οποίο είναι ένα πολύτοπο απεικονισμένο σε δυο διαστάσεις (R2) και το πολύεδρο

το οποίο απεικονίζεται σε τρεις διαστάσεις (R3).

Οι κορυφές του πολυτοπου στον γραμμικού προγραμματισμό αποτελούν τις εφικτές λύσεις. Αν

υπάρχει αρίστη λύση τότε βρίσκεται σε κάποια από τις κορυφές του πολυτόπου.

1 Κυρτό ονομάζεται ένα σύνολο S ,όπου για κάθε ζεύγος τιμών x,y το τυχαίο σημείο λ επι της ευθείας που ενώνει τα x,y, ανήκει στο σύνολο S.

Παρόλο που ο αλγόριθμος simplex είναι ιδιαιτέρα αποτελεσματικός σε προβλήματα Γ.Π.,

υπάρχουν ωστόσο μερικές περιπτώσεις όπου αποτυγχάνει να εντοπίσει λύση. Αυτό συμβαίνει

όταν:

1) Δεν υπάρχει εφικτή λύση. Ένα πρόβλημα Γ.Π. δεν έχει λύση όταν δεν ικανοποιούνται

ταυτόχρονα όλοι οι περιορισμοί, οπότε ο αλγόριθμος αδυνατεί να εντοπίσει την αρίστη λύση,

Αυτό συμβαίνει όταν η εφικτή περιοχή, αποτελείται από σύνολα τα οποία δεν έχουν επαφή

μεταξύ τους. Στην περίπτωση αυτή λέμε ότι η περιοχή είναι μη συνεκτική (βλ. Γράφημα 2)

2) Απειρία λύσεων. Στην περίπτωση αυτή υπάρχουν περισσότερα από ένα σύνολα των

μεταβλητών xj τα οποία αποτελούν άριστες λύσεις, με αποτέλεσμα να δίνουν την ίδια τιμή

στην αντικειμενική συνάρτηση f

3) Μη φραγμένη λύση. Στην περίπτωση αυτή οι μεταβλητές xj, μπορούν να λάβουν μη

πεπερασμένες τιμές οπότε η αντικειμενική συνάρτηση μπορεί να μεταβληθεί απεριόριστα (βλ.

Γράφημα 3)

ΓΡΑΦΗΜΑ 1

Το πρώτο σύνολο είναι κυρτό, αφού για κάθε ζεύγος τιμών x,y το τυχαίο σημείο λ επί της

ευθείας που ενώνει τα x,y βρίσκεται εντός του συνόλου. Το δεύτερο σύνολο δεν είναι κυρτό

αφού υπάρχουν σημεία επι της ευθείας που ενώνει τα x,y τα οποία είναι εκτός του συνόλου.

ΓΡΑΦΗΜΑ 2

Οι δυο σκιαγραφημενες περιοχές δεν αποτελούν μια συνεκτική περιοχή

ΓΡΑΦΗΜΑ 3

Στην πρώτη περίπτωση έχουμε ένα παράδειγμα φραγμένης λύσης ενώ στο δεύτερη μη

φραγμένης λύσης

Τα παραπάνω θα μπορούσαμε αν τα αντιπαραβάλουμε εν μέρει με την περίπτωση των

γραμμικών συστημάτων όπου, όπως είναι γνωστό, τα γραμμικά σύστημα είτε θα έχουν μια

λύση, είτε άπειρες είτε καμιά λύση

ΠΕΡΙΛΗΨΗ

Στην παρουσίαση αυτή, θα λύσουμε δυο προβλήματα γραμμικού προγραμματισμού. Το πρώτο

είναι η επιλογή ενός προϊόντος και το δεύτερο το πρόβλημα της μεταφοράς. Στα πλαίσια της

παρουσίασης θα χρησιμοποιήσουμε το excel 2007, με το πρόσθετο του solver. Η ίδια

διαδικασία για την λύση των προβλημάτων ισχύει και για τις υπόλοιπες εκδόσεις του excel.

Την παρουσίαση με τα excel μπορείτε να τα κατεβάσετε εδώ

-----------------Εγκατάσταση solver

Από το Menu Excel Options Εντοπίζουμε το Add-Ins . Στην καρτέλα Add-Ins πιέζουμε

το ‘’Go’’ και επιλεγούμε το ‘’Solve’’r. Πατούμε το ΟΚ και εγκαθίσταται το πρόγραμμα. Ο

Solver πλέον έχει εγκατασταθεί στο Tab ‘’Data’’.

Αν δεν είναι εφικτή η εγκατάσταση, τότε μέσω του google μπορούμε να εντοπίσουμε οδηγίες

(keyword: how to install solver in excel 2003,2007 κτλ)

ΑΝΑΛΥΣΗ

1) Α’ ΕΚΔΟΧΗ: ΤΟ ΠΡΟΒΛΗΜΑ ΕΠΙΛΟΓΗΣ ΠΡΟΪΟΝΤΟΣ (Φύλλο excel: product_1)

Έστω ότι μια επιχείρηση παράγει τριών ειδών λάδια, τα Χ,Υ,Ζ. Για το λάδι Χ, δαπανώνται 25

εργατοώρες και αποφέρει κέρδος 30 ευρώ/ μονάδα. Για το Υ δαπανώνται 20 εργατοώρες και

αποφέρει κέρδος 27 ευρώ/ μονάδα. Τέλος για το Ζ δαπανώνται 15 εργατοωρες και αποφέρει

κέρδος 20 ευρω/ μονάδα. Οι συνολικά διαθέσιμες εργατοώρες είναι 2.000 ανά μήνα. Επίσης,

πρέπει να παραχθούν τουλάχιστον 20 μονάδες από το προϊόν Χ και 60 από το Ζ.

Ποιος είναι ο συνδυασμός των προϊόντων ώστε να μεγιστοποιηθεί το κέρδος (P) της εταιρίας?

Από τα δεδομένα του προβλήματος προκύπτει ο παρακάτω πίνακας

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

Χ 25 30

Υ 20 27

Ζ 15 20

Η αντικειμενική συνάρτηση που θέλουμε να μεγιστοποιήσουμε είναι η

Max

P= 30*X+27*Y+20*Z

Υπο

000.2*15*20*25 ≤++ ZYX

X>20

Z>60

Στο excel linear_problem.xls φαίνεται ακριβώς η διαδικασία που έχουμε ακολουθήσει και τα

βήματα εντοπίζονται εύκολα. Περιληπτικά έχουμε πραγματοποιήσει τα εξής

1) Αποτύπωση των δεδομένων του προβλήματος

2) Στην περιοχή ΠΙΝΑΚΑΣ ΔΕΔΟΜΕΝΩΝ, έχουμε επιλέξει τυχαίες τιμές για τα προϊόντα

(Χ,Υ,Ζ) (10,50,40) και έχουμε εισάγει την σχέση κέρδους, P=30*X+27*Y+20*Z,

χρησιμοποιώντας την συνάρτηση ‘’sumproduct’’ του excel.

3) Εισαγωγή των περιορισμών του προβλήματος. 000.2*15*20*25 ≤++ ZYX

και Χ>20, Ζ>60

Καλούμε τον Solver και τυπώνουμε τα εξής.

Στο ‘’Set Target Cell’’ Κελί που έχουμε εισάγει το κέρδος (Κελί Β25 στην περίπτωση μας)

Επιλογή το ‘’Equal to Max’’

Στο ‘’By Changing Cells’’ Επιλογή των κελιών με τις ποσότητες των προϊόντων (Κελιά

B23:D23, στην περίπτωση μας)

Στο ‘’Subject to the constrains‘’ Εισαγωγή των περιορισμών, δηλαδή το

ι) Σύνολο των εργατοωρων <2.000, (Κελί B33<D33 στην περίπτωση μας)

ιι) Χ>20. (Κελί B23>B36 στην περίπτωση μας)

ιιι) Ζ>60 ( Κελί D23>B37, στην περίπτωση μας).

Επίσης, στο Options, επιλεγούμε τα ‘’Assume Linear Model’’ και το ‘’Assume Non

Negative’’

Πιέζουμε το ‘’Solve’’ και επιτυγχάνουμε την λύση. Στο νέο παράθυρο που εμφανίζεται

επιλεγούμε αν θέλουμε τα ‘’Reports’’ και αποθηκεύουμε την λύση του προβλήματος.

Η αρίστη λύση είναι η εξής:

(Χ,Υ,Ζ)= (20,30,60) και το μέγιστο κέρδος P=2.610

2) Β’ ΕΚΔΟΧΗ: ΤΟ ΠΡΟΒΛΗΜΑ ΕΠΙΛΟΓΗΣ ΠΡΟΪΟΝΤΟΣ (Φύλλο excel: product_2)

Σε τούτη την περίπτωση θα παρουσιάσουμε ένα πρόβλημα παρόμοιο με το προηγούμενο, με

την διαφορά ότι αυτή την φορά το πρόβλημα εμπίπτει στον Ακέραιο Προγραμματισμό-

Integer programming (Α.Π.), ο οποίος είναι ‘’υποσύνολο’’ του Γραμμικού

Προγραμματισμού (Γ.Π.). Η βασική διαφορά μεταξύ Α.Π. και Γ.Π. είναι ότι στον Α.Π.

υπάρχει τουλάχιστον μια μεταβλητή η οποία λαμβάνει μόνο φυσικές τιμές (διακριτή

μεταβλητή), ενώ στον Γ.Π. οι μεταβλητές λαμβάνουν οποιαδήποτε θετική τιμή (συνεχείς

μεταβλητές). Σε μερικές βιβλιογραφικές συναντάται αντί του όρου Ακέραιος

Προγραμματισμός, ο όρος Μεικτός Προγραμματισμός όταν συνυπάρχουν συνεχείς και

διακριτές μεταβλητές.

Έστω μια βιομηχανία παράγει τριών ειδών υφάσματα, μεταξένια (Μ), βαμβακερά (Β) και λινό

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

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

υπόψη τα κόστη και το κέρδος του κάθε είδους υφάσματος και τις διαθέσιμες εργατοώρες.

ΠΡΟΪΟΝ ΕΡΓΑΤΟΩΡΕΣ/ ΜΟΝΑΔΑ ΚΕΡΔΟΣ/ ΜΟΝΑΔΑ

Μ 40 50

Β 35 43

Λ 26 34

Οι συνολικά διαθέσιμες εργατοώρες είναι 5.200 ανά μηνά

Η αντικειμενική συνάρτηση που θέλουμε να μεγιστοποιήσουμε είναι η

Max

P= 50*Μ+43*Β+34*Λ

Υπο

200..5*26*35*40 ≤Λ++ BM

y1+ y2+ y3=1 (δυαδικές μεταβλητές)

Μ < y1*Α

Β < y2*Α

Λ < y3*Α

Β, Μ, Λ >0 , yι = 0 /1

Θα εξηγήσουμε τους περιορισμούς για να γίνει κατανοητό το πρόβλημα.

Ο πρώτος περιορισμός αντιστοιχεί στις εργατοωρες, οι οποίες δεν πρέπει να υπερβαίνουν τις

5.200 ανά μήνα.

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

μη παραγωγή του προϊόντος. Αν λάβει την τιμή 1, τότε πραγματοποιείται η παραγωγή του

προϊόντος, ενώ αν λάβει την τιμή 0, το προϊόν δεν θα παραχθεί. Αντιλαμβανόμαστε λοιπόν, ότι

αφού επιθυμούμε την παραγωγή ενός μόνο προϊόντος, μια από αυτές τις μεταβλητές θα λάβει

την τιμή 1, ενώ οι άλλες δυο την τιμή 0.

Οι επόμενοι τρεις περιορισμοί, υπάρχουν για να συμπληρωθεί ο περιορισμός Νο2, δηλαδή αν

κάποιο yι = 0, τότε το αντίστοιχο προϊόν θα λάβει την τιμή 0, αφού δεν θα πραγματοποιηθεί η

παραγωγή του. Το Α, είναι ένα μεγάλος θετικός αριθμός, ο οποίος λαμβάνει την τιμή η οποία

προκύπτει από την μέγιστη δυνατή παραγωγή ενός από τα προϊόντα (μέγιστη δυναμικότητα).

Στην περίπτωση μας, το Α μπορεί να λάβει τις τιμές οι οποίες λαμβάνονται από το κλάσμα:

Σύνολο εργατοωρών μηνά / Εργατοωρες ανά μονάδα προϊόντος. Άρα έχουμε τα εξής

5200/ 40= 130 (Προϊόν Μ)

5200/ 35= 148,5 (Προϊόν Β)

5200/ 26= 200 (Προϊόν Λ).

Η μέγιστη δυναμικότητα προκύπτει από το προϊόν Λ, άρα Α=200

Τέλος, ο τελευταίος περιορισμός δείχνει ότι οι μεταβλητές λαμβάνουν τιμές στο σύνολο των

φυσικών αριθμών, ενώ οι δυαδικές μεταβλητές λαμβάνουν τις τιμές 0 ή 1

Στο φύλλο excel φαίνεται η διαδικασία που έχουμε ακολουθήσει. Θα επισημάνουμε

επιγραμματικά τα κελιά που έχουμε χρησιμοποιήσει για τον Solver.

Αρχικά επιλεγούμε τυχαία πιο ύφασμα θα παραχθεί.. Έστω παράγουμε το μεταξένιο (Μ). Άρα

(y1=1, y2 =0, y3 =0)

Καλούμε τον Solver και τυπώνουμε τα εξής.

Στο ‘’Set Target Cell’’ Κελί που έχουμε εισάγει το κέρδος (Κελί Β34 στην περίπτωση μας)

Επιλογή το ‘’Equal to Max’’

Στο ‘’By Changing Cells’’ Επιλογή των κελιών με τις δυαδικές τιμές, οι οποίες

απεικονίζουν την παραγωγή ή μη του κάθε προϊόντος (Κελιά B46:Β48, στην περίπτωση μας)

Στο ‘’Subject to the constrains‘’ Εισαγωγή των περιορισμών.

i) Σύνολο των εργατοωρών <5.200 (Κελί B42<D42)

ii) Εισαγωγή δυαδικών μεταβλητών (Κελιά Β46=BINARY , Β47=BINARY, Β48=BINARY)

iii) Εισαγωγή περιορισμού y1+ y2+ y3=1. Οι δυαδικές μεταβλητές θα έχουν σύνολο ίσο με την

μονάδα, αφού μόνο ένα προϊόν θέλουμε να παραχθεί. (Κελί Β49=D49)

iv) Εισαγωγή περιορισμού μέγιστης δυναμικότητας (Μ < y1*Α, Β < y2*Α. Λ < y3*Α). Όπως

προαναφέραμε η μέγιστη δυναμικότητα προσδιορίζεται στις 200 μονάδες. (Κελιά Β53=D53,

Β54=D54, Β55=D55).

Επίσης, στο Options, επιλεγούμε τα ‘’Assume Linear Model’’ και το ‘’Assume Non

Negative’’

Πιέζουμε το ‘’Solve’’ και επιτυγχάνουμε την λύση. Στο νέο παράθυρο που εμφανίζεται

επιλεγούμε αν θέλουμε τα ‘’Reports’’ και αποθηκεύουμε την λύση του προβλήματος.

Η αρίστη λύση είναι εξής:

Παραγωγή του προϊόντος Λ (200 μονάδες) και το μέγιστο κέρδος P=6.800

3) ΤΟ ΠΡΟΒΛΗΜΑ ΤΗΣ ΜΕΤΑΦΟΡΑΣ. (Φύλλο excel: transportation)

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

προγραμματισμού. Συναντάται αρκετά συχνά σε θέματα επιχειρησιακής ερευνάς και

παραλλαγές αυτού απαντώνται σε αρκετά βιβλία και συγγράμματα. Τούτο το πρόβλημα

αποτελεί μια ειδική κατηγορίας προβλήματος Γ.Π. Στην ίδια κατηγορία κατατάσσονται επίσης

το πρόβλημα της δια-μεταφοράς και της ανάθεσης.

Στο πρόβλημα της μεταφοράς εμπλέκονται ένας αριθμός εγκαταστάσεων αποστολής με έναν

αριθμό εγκαταστάσεων παραλαβής, έτσι ώστε να ελαχιστοποιείται το κόστος αποστολής των

προϊόντων και παράλληλα να ικανοποιείται η ζήτηση στις εγκαταστάσεις παραλαβής. Βασικός

παράγοντας για να επιλυθεί ένα τέτοιου είδους πρόβλημα είναι η κατανόηση των εννοιών και

των δεδομένων που μας δίνονται αρχικά. Παρακάτω παρουσιάζουμε ένα πρόβλημα

μεταφοράς.

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

και μια στην Πάτρα (P1, P2) και τρεις αποθήκες όπου παραλαμβάνουν τα προϊόντα, μια στην

Θεσσαλονίκη, μια στην Λαμία και μια στην Κρήτη (W1,W2,W3). Η P1, παράγει 100 τόνους

την εβδομάδα και η P2 170 τόνους/ εβδομάδα. Η αποθήκη W1 χρειάζεται 80 τόνους/

εβδομάδα, η W2 100 τόνους/ εβδομάδα και η W3 60 τόνους/ εβδομάδα. Το κόστος μεταφοράς

(C ) σε ευρώ/ τόνο από τις εγκαταστάσεις παραγωγής στις αποθήκες έχει ως εξής:

ΚΟΣΤΟΣ

ΜΕΤΑΦΟΡΑΣ

(ΕΥΡΩ/ ΤΟΝΟ)

ΠΡΟΣ

ΑΠΟ

ΘΕΣΣΑΛΟΝΙΚΗ (W1) ΛΑΜΙΑ (W2) ΚΡΗΤΗ (W3)

ΑΘΗΝΑ (P1) 70 ευρώ/ τόνο 40 ευρώ/ τόνο 80 ευρώ/ τόνο

ΠΑΤΡΑ (P2) 80 ευρώ/ τόνο 50 ευρώ/ τόνο 90 ευρώ/ τόνο

Συνοψίζουμε επίσης και τους τόνους προϊόντος που παράγονται στις εγκαταστάσεις και

αποστέλλονται στις αποθήκες

ΠΑΡΑΛΑΜΒΑΝΕΙ

ΑΠΟΣΤΕΛΛΕΙ

ΘΕΣΣΑΛΟΝΙΚΗ

(W1): 80 τόνοι

ΛΑΜΙΑ

(W2): 120 τόνοι

ΚΡΗΤΗ

(W3): 60 τόνοι

ΑΘΗΝΑ (P1): 100 τόνοι X11 X12 X13

ΠΑΤΡΑ (P2): 170 τόνοι X21 X22 X23

Όπου Xij , οι τόνοι που αποστέλλοντα από την εγκατάσταση Pi (ι=1,2) στην αποθήκη Wj

(j=1,2,3). Ονομάζουμε επίσης Cij το κόστος μεταφοράς από την μονάδα παραγωγής στην

αποθήκη. Μοντελοποιούμε το πρόβλημά μας σε μαθηματικούς όρους.

1) Μέγιστη παραγωγή της εγκατάστασης P1= 100 τόνοι X11 + X12 + X13 ≤ 100

2) Μέγιστη παραγωγή της εγκατάστασης P2= 170 τόνοι X21 +X22 +X23 ≤ 170

3) Ζήτηση από την αποθήκη W1= 80 τόνοι X11 +X21 ≥ 80

4) Ζήτηση από την αποθήκη W2= 100 τόνοι X12 +X22 ≥ 100

5) Ζήτηση από την αποθήκη W3= 60 τόνοι X13 +X23 ≥ 100

6) Ολικό κόστος αποστολής από τις μονάδες παραγωγής στις αποθήκες

C= ∑∑=−

3

1ijij

2

1X * C

ji

C= C11 * X11 + C12 * X12 + C13 * X13 + C21 * X21 + C22 * X22 + C23 * X23.

Στο πρόβλημά μας θέλουμε να ελαχιστοποιήσουμε το ολικό κόστος ικανοποιώντας την ζήτηση

στις αποθήκες άρα

Min

C= ∑∑=−

3

1ijij

2

1X * C

ji

Yπο

ij

S<∑=

3

1ijX ι=1,2

ii

D>∑=

2

1ijX , j=1,2,3

Όπου Si η παραγωγή από τις μονάδες και Di η ζήτηση από τις αποθήκες.

Στο φύλλο excel φαίνεται η διαδικασία που έχουμε ακολουθήσει. Θα επισημάνουμε

επιγραμματικά τα κελιά που έχουμε χρησιμοποιήσει για τον Solver.

Αρχικά επιλεγούμε τυχαίες τιμές για τις μεταβλητές Xij (Μονάδες προϊόντος που

αποστέλλονται από τις μονάδες παραγωγής (Pi) στις αποθήκες (Wj) ). Έστω

(X11=30, X12=10, X13=60, X21=50, X22 =50, X23=20).

Καλούμε τον Solver και τυπώνουμε τα εξής.

Στο ‘’Set Target Cell’’ Κελί που έχουμε εισάγει το κόστος (Κελί F60 στην περίπτωση μας)

Επιλογή το ‘’Equal to Min’’

Στο ‘’By Changing Cells’’ Επιλογή των κελιών που απεικονίζουν τους τόνους Xij που

αποστέλλονται από τις μονάδες παραγωγής P1, P2 στις αποθήκες W1,W2,W3

(Κελιά C48:E49, στην περίπτωση μας)

Στο ‘’Subject to the constrains‘’ Εισαγωγή των περιορισμών,

i) Μέγιστη παραγωγή της εγκατάστασης P1= 100 τόνοι (Κελί F48<E69)

ii) Μέγιστη παραγωγή της εγκατάστασης P2= 170 τόνοι (Κελί F49<E70)

iii) Ζήτηση από την αποθήκη W1= 80 τόνοι (Κελί C50<E71)

iv) Ζήτηση από την αποθήκη W2= 100 τόνοι (Κελί D50<E72)

v) Ζήτηση από την αποθήκη W3= 60 τόνοι (Κελί E50<E73)

Επίσης, στο Options, επιλεγούμε τα ‘’Assume Linear Model’’ και το ‘’Assume Non

Negative’’

Πιέζουμε το ‘’Solve’’ και επιτυγχάνουμε την λύση. Στο νέο παράθυρο που εμφανίζεται

επιλεγούμε αν θέλουμε τα ‘’Reports’’ και αποθηκεύουμε την λύση του προβλήματος.

Η αρίστη λύση είναι η εξής:

ΠΑΡΑΛΑΜΒΑΝΕΙ

ΑΠΟΣΤΕΛΛΕΙ

ΘΕΣΣΑΛΟΝΙΚΗ (W1)

ΛΑΜΙΑ (W2)

ΚΡΗΤΗ (W3)

ΑΘΗΝΑ (P1) 40 0 60

ΠΑΤΡΑ (P2) 40 100 0

Ολικό κόστος C= 15.800. Με τον τρόπο αυτό έχει ελαχιστοποιηθεί το κόστος μεταφοράς και παράλληλα έχει

ικανοποιηθεί και η ζήτηση.

ΕΠΙΣΥΜΑΝΣΕΙΣ!!

1) Προσέξτε τις σχέσεις μεταξύ των κελιών και τις συναρτήσεις που έχουν χρησιμοποιηθεί.

2) Προσοχή στις δυο εκδοχές του προβλήματος επιλογής προϊόντος. Μια πολύ σημαντική

διαφορά μεταξύ των δυο προβλημάτων είναι η φύση των μεταβλητών. Στην Α’ εκδοχή, οι

μεταβλητές είναι συνεχείς και μπορούν να λάβουν όλες τιμές στο σύνολο των ρητών θετικών

αριθμών (π.χ. Είναι δυνατή η παραγωγή 10,530 kg λαδιού). Αντιθέτως, στην Β’ εκδοχή, εκτός

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

υφάσματος) οι οποίες μπορούν να λάβουν τιμές μόνο στο σύνολο των φυσικών αριθμών. Στην

περίπτωση του προβλήματός μας οι μεταβλητές αυτές είναι δυαδικές.

ΕΦΑΡΜΟΓΕΣ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η χρήση του γραμμικού προγραμματισμού συναντάται σε πολλά και διαφορετικά πεδία

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

διαδικασίες επίλυσης προβλημάτων και διευκολύνουν τόσο την διαδικασία λήψης αποφάσεων,

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

αναφέρουμε μερικά πεδία εφαρμογής.

1) Επιχειρησιακή έρευνα (operation research)

2) Σχεδιασμός δικτύων (network design)

3) Διαχείριση πόρων στο διαδίκτυο. (Internet traffic)

4) Διαχείριση μεταφορών (transportation problem)

5) Σχεδιασμός παραγωγής (manufacturing problem)

6) Μικροοικονομικά θέματα (microeconomics)

7) Διατροφή (diet problem)

8) Διαχείριση χαρτοφυλακίου (portfolio optimization)

9) Θεωρία παιγνίων (game theory)

10) Σχεδιασμός μεγάλης κλίμακας ολοκληρωμένων κυκλωμάτων (design Very Large Scale

Integration (VLSI) integrated circuits)

ΠΑΡΑΡΤΗΜΑ ∆ΥΪΚΟΤΗΤΑ (DUALITY) Στο παράρτημα αυτό, θα εξηγήσουμε πολύ συνοπτικά την έννοια της δυϊκοτητας και του

δυικού προβλήματος.

Η δυϊκόητα αποτελεί μια έννοια συνυφασμένη με τον γραμμικό προγραμματισμό. Για την

ακρίβεια, αποτελεί την άλλη όψη ενός προβλήματος γραμμικού προγραμματισμού. Όπως θα

δούμε στην συνέχεια, μεταξύ των δυο αυτών προβλημάτων, υπάρχουν πολλές σημαντικές

σχέσεις, οι οποίες οδηγούν σε χρήσιμα συμπεράσματα.

Έστω το αρχικό πρόβλημα (primal) στην τυπική του μορφή.

Αριστοποίηση της αντικειμενικής συνάρτησης f

1**1 * nT

n xc

Υπό τους περιορισμούς

1*1** * mnnm bxA =

x>0 Το δυικό πρόβλημα γράφεται ως εξής. Αριστοποίηση της αντικειμενικής συνάρτησης g

1**1 * mm wb

Υπό τους περιορισμούς

1*1** * mmmn cwA =

w>0 Μερικές σημαντικές παρατηρήσεις που αφορούν το αρχικό (primal) και το δυικό (dual)

πρόβλημα.

1) Η αριστοποίηση του δυϊκού προβλήματος είναι η αντίθετη από αυτή του αρχικού. Άρα όταν

στο αρχικό πρόβλημα μεγιστοποιούμε της αντικειμενική συνάρτησης (f), υπό τους περιορισμός

μεγαλύτερους από κάποιες τιμές, τότε στο δυϊκό πρόβλημα ελαχιστοποιούμε την αντικειμενική

συνάρτηση (g) υπό τους περιορισμούς μικρότερους από τις αντίστοιχες τιμές.

Άρα έχουμε ότι

Αρχικό Πρόβλημα (Primal Problem)

Minimize f: 1**1 * nT

n xc

Υπό , x>0 1*1** * mnnm bxA >

Δυϊκό Πρόβλημα (Dual Problem)

Maximize g: 1**1 * mT

m wb

Υπό , w>0 1*1** * nmT

mn cwA <

2) Για κάθε περιορισμό του αρχικού προβλήματος, υπάρχει μια μεταβλητή στο δυικό

πρόβλημα και για κάθε μεταβλητή του αρχικού προβλήματος υπάρχει ένας περιορισμός στο

δυικό πρόβλημα. Δηλαδή, οι περιορισμοί του αρχικού προβλήματος αντιστοιχούν στις

μεταβλητές του δυικού προβλήματος και οι μεταβλητές του αρχικού αντιστοιχούν στους

περιορισμούς του δυικού προβλήματος.

Προσοχή επίσης και στον πίνακα Α των συντελεστών των περιορισμών, ο οποίος στο δυικό

πρόβλημα είναι ο ανάστροφος από αυτόν του αρχικού προβλήματος!

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

των διανυσμάτων c, b καθώς και τον πίνακα Α μεταξύ του αρχικού και δυϊκού προβλήματος.

Παράδειγμα

Αρχικό Πρόβλημα

Minimize 21 *5*3 xx +

Υπό

4*x1+5*x2 >6

2*x1+9*x2 >3

x1, x2> 0

Δυϊκό Πρόβλημα

Maximize 21 *3*6 ww +

Υπό

4*w1+2*w2 <3

5*w1+9*w2 < 5

w1, w2> 0

3) Θεμελιώδες Θεώρημα Δυϊκότητας.

Μεταξύ αρχικού και δυικού προβλήματος ισχύει μόνο μια από της παρακάτω σχέσεις

α) Και τα δυο προβλήματα έχουν άριστες λύσεις, τις c*x (primal problem) και b*w (dual

problem)

β) Αν το ένα από τα δυο προβλήματα έχει μη φραγμένη αντικειμενική συνάρτηση τότε το άλλο

δεν έχει εφικτή λύση

γ) Και τα δυο προβλήματα δεν έχουμε εφικτή λύση.

4) Το διάνυσμα w, του δυικού προβλήματος ονομάζεται διάνυσμα σκιωδών τιμών (shadow

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

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

Παράδειγμα

Έστω το δυϊκό πρόβλημα

Max g: 21*5,1 ww +Υπό

w1+w2 <8

3*w1+w2 <18

w2 <6

w1, w2> 0

Η αρίστη λύση είναι η ( w1 , w2)= (5 , 3)

Έστω ότι μεταβάλλουμε τον 1ο περιορισμό κατά μια μονάδα. Άρα θα έχουμε ότι w1+w2 <9.

Η νέα αρίστη λύση είναι (w1 , w2)= (4.5 , 4.5), δηλαδή το w1 μειώθηκε κατά 0.5 μονάδες ενώ το

w2 αυξήθηκε κατά 1.5 μονάδες. Η αντικειμενική συνάρτηση g, μεταβλήθηκε κατά

1.5*(-0.5) + 1*1.5= 0.75 Σκιώδης τιμή 0.75

Στο σημείο αυτό αξίζει να αναφέρουμε την έννοια του ενεργού (binding) και του μη ενεργού

(not binding) περιορισμού. Συνοπτικά, ένας περιορισμός θεωρείται ενεργός όταν συμμετέχει

στην βέλτιστη λύση ως ισότητα. Οι ενεργοί περιορισμοί, είναι εκείνοι που σχηματίζουν τις

κορυφές που αποτελούν τις βέλτιστες λύσεις. Άρα, η αλλαγή των ενεργών περιορισμών

μεταβάλλουν τις βέλτιστες λύσεις.

Αντιθέτως, οι μη ενεργοί περιορισμοί δεν συμμετέχουν στην διαμόρφωση των βέλτιστων

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

μεταβλητή η οποία δεν έχει αξιοποιηθεί πλήρως, ενώ στην περίπτωση οπού ισχύει ,

εκφράζει μια μεταβλητή η οποία έχει ξεπεράσει το ελάχιστο όριο και απαιτούνται επιπλέον

μονάδες.

Στο παραπάνω παράδειγμα, ο περιορισμός w1+w2 <8, είναι ενεργός διότι όπως παρατηρήσαμε,

μετέβαλλε την αντικειμενική συνάρτηση και συνεπώς την βέλτιστη λύση. Αντιθέτως, ο

περιορισμός w2 <6, είναι μη ενεργός διότι η μεταβολή του δεν επηρεάζει την βέλτιστη λύση.

ΠΑΡΑΤΗΡΗΣΗ

Οι ενεργοί περιορισμοί (binding) έχουν σκιώδη τιμή. Οι μη ενεργοί περιορισμοί (not binding)

έχουν μηδενική σκιώδη τιμή

ΑΝΑΦΟΡΕΣ Διοικητική επιστήμη στην πράξη - Γρήγορης Πραστακος

Μαθηματικά οικονομικής ανάλυσης Τόμος Β- Αναστάσιος Κορκοτσιδης

Γραμμική άλγεβρα- Ξένος Θανάσης

Γραμμικός προγραμματισμός- Ρασσιας Ιωαννης

Τεχνικές βελτιστοποίησης - Ι.Α Ροβυθακης