Β. Βασιλειάδης Επιχειρησιακή Έρευνα Διάλεξη 5 η -Αλγόριθμος Simplex
Περιεχόμενα Ο αλγόριθμος Simplex Βασικά Βήματα Παραδείγματα Συμπεράσματα
1o Bήμα: εξάλειψη των ανισοτήτων Στη μαθηματική διατύπωση του προβλήματος: για να αντικαταστήσουμε τις ανισότητες με ισότητες (και έτσι να λύσουμε πιο εύκολα το πρόβλημα) εισάγουμε νέες μεταβλητές: εισάγουμε την y1 έτσι ώστε: To 1o βήμα αφορά ανισότητες που δεν περιέχουν το 0 ώς όριο (π.χ. X>0)
Παραδείγματα Μετατρέπεται σε :
2o Bήμα: Ισότητα στην αντικειμενική συνάρτηση να μεγιστοποιείται το 2x+3y+4z δηλ. max{2x+3y+4z} Θέτουμε P=2x+3y+4z και ορίζουμε την ισότητα : P-2x-3y-4z = 0 Θέτουμε P για max και P για min
Παράδειγμα 1 Δίνεται το πρόβλημα ΓΠ: max{2x+3y+4z } --- αντικειμενική συνάρτηση --- περιορισμοί = Να εφαρμοστούν τα βήματα 1 και 2 του αλγόριθμού Simplex
Λύση Βήμα 1 ο : Βήμα 2 ο : Θέτουμε P=2x+3y+4z και ορίζουμε την ισότητα : P-2x-3y-4z = 0
3ο Βήμα: ορισμός του πίνακα (Simplex tableau) 1-2 -3-4 0 0 0
3ο Βήμα: ορισμός του πίνακα ( Simplex tableau)
4ο Βήμα: Αναγνώριση Pivot στήλης Στο Simplex tableau: Η pivot στήλη είναι αυτή με τη μεγαλύτερη αρνητική τιμή στην αντικειμενική συνάρτηση
4ο Βήμα: Αναγνώριση Pivot γραμμής Στο Simplex tableau: Διαιρούμε τις τιμές της στήλης Τιμές (values) των κριτηρίων με την τιμή της στήλης pivot Η μικρότερη τιμή μετά τη διαίρεση δίνει τη pivot γραμμή O πίνακας δεν μεταβάλλεται. 10/1 = 10 = 15/3 = 5
Άρα
Σημείο Pivot To κελί όπου η γραμμή και η στήλη pivot τέμνονται:
Επίσημη μορφή πίνακα simplex (μέχρι και το βήμα 4)
Βήμα 5: μηδενισμός του σημείου pivot Διαίρεση της γραμμής pivot με τη τιμή του σημείου Pivot
Προκύπτει... Καλύτερα να αφήσουμε τις τιμές ως κλάσματα όπου δεν γίνεται ακριβώς η διαίρεση!
Μηδενισμός των τιμών της στήλης pivot Προσθέτουμε ή αφαιρούμε πολλαπλάσια τoυ σημείου pivot: Για να μηδενιστεί το -4, θα πρέπει να πολλαπλασιάσουμε το σημείο pivot (το 1 στον κύκλο) με το 4 και να το προσθέσουμε. Το ίδιο κάνουμε για όλη τη γραμμή που βρίσκεται το σημείο pivot
Μηδενισμός Και μετά τις πράξεις:
Μηδενισμός των κριτηρίων Το ίδιο κάνουμε και για τις άλλες γραμμές των κριτηρίων Στο συγκεκριμένο παράδειγμα, πολλαπλασιάζουμε με το 1 και αφαιρούμε:
Τέλος 1 ης Φάσης του αλγορίθμου Simplex Εφόσον υπάρχουν αρνητικές τιμές στη γραμμή της αντικειμενικής συνάρτησης επαναλαμβάνουμε τη διαδικασία. Στο συγκεκριμένο παράδειγμα, δεν υπάρχουν άρα η λύση είναι η βέλτιστη!
Προσδιορισμός των τιμών των κριτηρίων για τη βέλτιση λύση Η αντικειμενική συνάρτηση είναι πλέον: 0
Μέγιστη τιμή Από την αντικειμενική συνάρτηση προκύπτει: Η μέγιστη τιμή του P είναι 20 Για να συμβεί αυτό τα x,y,t θα πρέπει να είναι 0 (γενικά, κάθε μεταβλητή που συμμετέχει στην αντικειμενική συνάρτηση θα πρέπει να είναι 0 για να έχουμε το βέλτιστο!)
Αντικατάσταση τιμών στον πίνακα simplex Αντικαθιστούμε, x,y,t με 0 στις γραμμές των κριτηρίων και Προκύπτουν οι ισότητες Από τη 3 η γραμμή: 0*P+0*x+0*y+0*z+1*s+0*t=5 => z=5 Από τη 2 η γραμμή: 0*P+0*x+0*y+1*z+0*s+0*t=5 => s=5
Τελική Λύση Το πρόβλημα ΓΠ που εκφράζεται ως: max{2x+3y+4z } Έχει λύση: Max: 20 x=0 y=0 z=5
Παράδειγμα 2 ο : Δίνεται το πρόβλημα ΓΠ: Να μεγιστοποιηθεί το 2x+y Με κριτήρια: x+2y<=6 x+y<=5
Λύση Το πρόβλημα αναπαρίσταται αρχικά ως εξής x+2y<=6 x+y<=5 Και η αντικειμενική συνάρτηση ως:
Λύση: ο πίνακας simplex O αρχικός πίνακας
Pivot Στήλη Επιλογή στήλης pivot (μικρότερη αρνητική τιμή στη γραμμή της συνάρτησης)
Pivot γραμμή 6/1=6 5/1=5
Σημείο Pivot Κοινό σημείο γραμμής και στήλης pivot!
Μηδενισμός του σημείου Pivot Δηλαδή διαίρεση με την τιμή του σημείου έτσι ώστε αυτό να γίνει 1. Είναι ήδη 1, οπότε δεν χρειάζεται να κάνουμε τίποτα.
Μηδενισμός των τιμών της στήλης pivot Για να γίνει το -2->0, θα πρέπει να πολλαπλασιάσω το 1 (pivot) με 2 και να το προσθέσω στο -2: -2+ 2*1=0. To ίδιο κάνω για όλη τη γραμμή. P x y s t k 1 0 1 0 2 10 0 1 2 1 0 6 0 1 1 0 1 5
Μηδενισμός των κριτηρίων P x y s t k 1 0 1 0 2 10 0 1 2 1 0 6 0 1 1 0 1 5 Για να μηδενίσω το κελί πάνω από τo pivot, απλώς αφαιρώ από αυτό την τιμή του pivot: 1-1=0. Το ίδιο κάνω για όλη τη γραμμή, δηλάδή αφαιρώ από τη 2η την 3η. P x y s t k 1 0 1 0 2 10 0 0 1 1-1 1 0 1 1 0 1 5
Τέλος 1 ου τρεξίματος του αλγορίθμου Simplex Δεν υπάρχουν αρνητικές τιμές στην 1 η γραμμή. Άρα η λύση είναι η βέλτιστη! Από την αντικειμενική συνάρτηση προκύπτει: P+y+2*t=10 Η μέγιστη τιμή του P είναι 10 Για να συμβεί αυτό τα y,t θα πρέπει να είναι 0
Αντικατάσταση τιμών στον πίνακα simplex Οι στήλες y, t είναι 0, άρα: 2 η γραμμή: s=1 3η γραμμή: x=5
Τελική λύση Το πρόβλημα ΓΠ που εκφράζεται ως: max{2x+y} με κριτήρια: x+2y<=6 x+y<=5 Έχει λύση: Max: 10 y=0 x=5
Επόμενη Διάλεξη Game theory